摘要:去年12月,OpenAI连续12天发布会直播,推出了一系列新品,首日亮相o1正式版,最后一天压轴大戏o3登场,作为新一代的推理模型,其ARC-AGI测试得分高达87.7%(人类平均水平85%),比o1要强悍不少。
去年12月,OpenAI连续12天发布会直播,推出了一系列新品,首日亮相o1正式版,最后一天压轴大戏o3登场,作为新一代的推理模型,其ARC-AGI测试得分高达87.7%(人类平均水平85%),比o1要强悍不少。
o1、o3的接连发布,让拥有高推理性能的大模型逐渐成为了AI市场新宠。
从我自己和身边同事使用AI大模型的场景来看,主要是内容搜索、数理推断、文案生成这三大需求,其中我觉得大模型最擅长且实用性最强的领域是数理推断。
数理推断包括代码开发、数学计算、逻辑推理之类,能解决很多实用性问题,比如自动化开发程序软件、分析科研制造数据、解决数学物理难题等,是学习工作最需要的能力。
除了ChatGPT,最近国内也出了一款推理能力极强的大模型GLM-zero-Preview,是智谱AI研发的新一代推理模型,我用它设计了一个代码开发系统-Python万能脚本生成器,非常的有用,后面会详细介绍实现流程和完整代码。
GLM-Zero-Preview之所以推理能力强,是因为它基于拓展强化学习技术(ERL)开发的,这种技术通过多任务学习和复杂环境建模增强了推理能力,且对新任务的适应性更好,像GPT、Bard、LLaMA、Claude等国际主流大模型都采用了ERL技术。
想使用GLM-Zero-Preview有两种方法,首先可以在智谱清言APP上使用基于GLM-Zero-Preview模型的“Zero推理模型”智能体,它能回答极具考验推理能力的问题,比如经典的零件不合格品检测问题:
Zero推理模型能够精确地给出答案,其实大部分人都不一定能回答出来。
除了APP,还可以在BigModel平台调用模型GLM-Zero-Preview API,部署到自己的应用中,开发类似“数学解题大师”、“软件开发专家”这样的智能体。
调用API接口其实非常简单,首先注册BigModel平台账号,然后在右上角添加新的API key,创建好后便可以在程序中(任何语言都可以)进行调用。
BigModel的接口文档非常详细,还提供了Python接口的案例,当然其他语言也都支持。
比如刚刚那个关于产品检测的推理题就可以通过Python接口来提问。
from zhipuai import ZhipuAIclient = ZhipuAI(api_key="your api key") response = client.chat.asyncCompletions.create( model="glm-zero-preview", messages=[ {"role": "system", "content": "Please think deeply before your response."}, {"role": "user", "content": "有13个零件,外表完全一样,但有一个是不合格品,其重量和其它的不同,且轻重不知。请你用天平称3次,把它找出来。要求精简介绍解决方案,100字以内"} ],)print(response)在进行部署之前,你还可以在BigModel上进行模型测试和参数调优。
主要参数包括system promp和max_tokens,其中system prompt用于定义系统角色,比如你想开发编程智能体,那system prompt就应该设置为软件开发专家之类的角色。
max_tokens则是控制模型生成文本最大长度的参数,一个汉字代表一个tokens,你可以根据不同应用需求来设置。
以上测试是让GLM-Zero-Preview解一个常见的一元二次方程题,它能很快的给出准确答案和解题思路。如果用来开发一个数学解题智能体,相信也很有市场价值。
可以看到和GLM-4-Plus等其他传统模型相比,GLM-Zero-Preview在逻辑推理这样的专家任务能力上,有很明显的提升,而且它的通用能力也保持着高水平,像是一个博古通今、见微知著的科学家。
一般我们在衡量某个大模型推理能力的时候,会用到国际公认的3个重要指标,AIME 2024、MATH500 和 LiveCodeBench。
AIME 2024(美国数学邀请赛)用于评估AI模型在数学推理和解题能力,MATH500是包含500道数学题的综合数学能力评估,LiveCodeBench则是评估代码生成能力的基准测试。
GLM-Zero-Preview在这三项测试中,成绩都略高于OpenAI的o1-preview模型,可见在GLM-Zero-Preview在推理能力和代码生成方面已经达到国际主流大模型的水准。
比如回答一个好玩的问题,虽然作为人来说很简单,但非常考验模型的推理能力,我们来看看GLM-Zero-Preview和o1-preview的差异。
四年级一班准备去郊游,班里有 42 名学生参加,每位学生要缴纳 35 元 活动费,老师还向学校申请了 300 元 额外补助。郊游费用方面,其中用于租车的费用是 1200 元,午餐费用为每人 25 元。另外,班主任自己还个人给大家买了250元钱的零食。
❞
问题:班级的活动经费够吗?还剩多少钱?
算出来应该是经费不够,差480元。
这里要记住班主任自己出的钱不能算在经费里,否则差720元。
先看看o1-preview的回答:
很明显出错了,它把班主任自己出的钱算进去了,推断不够严谨。
再看看GLM-Zero-Preview的回答:
GLM-Zero-Preview考虑到了班主任个人费用可能不能算作班级经费,推理能力似乎更胜一筹。
除了推理能力外,GLM-Zero-Preview在响应速度、成本上也有优势,通过优化模型算法、训练方法、资源管理策略使得响应速度更快,且在保证高性能的同时,降低了对硬件资源的依赖,让成本更低。
既然GLM-Zero-Preview推理能力如此之强,那用它来写代码一定会很丝滑,能够保证代码的完整性、准确性和规范性,很大程度解放码农在程序开发上的时间。
我尝试用Python Dash构建了一个web应用,叫作“Python万能脚本生成器”,核心功能是根据用户需求自动化生成Python脚本,而这背后用到的代码生成模型正是GLM-Zero-Preview。
先简单介绍下Dash,这是一个用于搭建web应用的Python框架,可以使用非常少的代码鼓捣出一款酷炫的web app,很适合构建数据产品、AI应用。
为什么要开发Python万能脚本生成器呢?
首先,Python作为最普及的编程语言被大部分人使用,它就像万能工具可以解决各种自动化问题,比如数据采集、数据清洗、文档编辑、可视化展示等,只需要一个简单的Python脚本,就能自动化批量处理问题,非常的适合科研、办公、实际生产使用。
现在的大模型APP已经可以生成Python代码,那为什么还要开发一个单独的代码生成应用呢?
我设计的这个应用有几个特点,刚好是当下一些通用AI产品缺失的。
1、不需要复杂的prompt,只需要提出简单的需求(比如:拼接两个excel表格),就能直接生成Python脚本,而且生成的代码更加精准,因为底层已经做过提示语优化。
2、生成的内容只包含Python代码,没有其他任何的无关内容,非常简洁清爽。
3、支持编辑生成的Python代码,你可以根据需求来修改。
4、支持将生成的Python代码一键导出为.py格式文件,简单好用。
先展示下“Python万能脚本生成器”的界面,后面会讲到如何具体实现它。
你只需要在左边框中填写需求,并点击生成脚本,右边便会生成对应Python代码。
案例如下:拼接5个同样字段的Excel表格
生成代码后,你可以点击复制代码,也可以点击“导出为.py文件”的按钮,就能下载包含该脚本的.py格式文件。
要实现这个web应用并不难,分为以下几个步骤:
1、在BigModel平台获取智谱AI API key,前面已经讲过具体步骤。
智谱AI开放平台
2、在Python中安装zhipuai和dash第三方库,前者是智谱AI Python SDK,后者是web应用框架。
3、编写Dash代码(可使用Zero推理模型打辅助),构建应用框架和UI。
4、编写GLM-Zero-Preview模型调用函数,设计初始参数system promp、user prompt和max_tokens。
system promp:你是专业的Python工程师,需要针对用户给到的需求,直接生成Python脚本,注意你只需要给出代码即可,不需要除代码外其他任何文字解释,如果有解释都放在注释里,并且你需要保证完整性、准确性、可执行、规范性,代码注释清晰,可读性强。
user prompt:生成一个Python脚本,实现以下功能:{user description}
max_tokens:12000
5、保存代码到app.py文件,打开命令行工具,导航到保存 app.py 文件的目录。
运行命令python app.py启动 Dash 应用,会出现以下提示:Dash is running on http://127.0.0.1:8050/
打开浏览器,访问 http://127.0.0.1:8050/,就可看到 Dash 应用
部分代码如下:
import dashfrom dash import html, dcc, Input, Output, Stateimport dash_bootstrap_components as dbcfrom zhipuai import ZhipuAI# 初始化 Dash 应用app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])app.title = "万能Python脚本生成器"# 设置智谱AI API Keyclient = ZhipuAI(api_key="你申请的key") # 替换为你的 API Key# 应用布局app.layout = dbc.Container(......此处省略n行dash布局代码......)# 回调函数:生成脚本@app.callback( Output("output-code", "value"), Input("generate-button", "n_clicks"), State("input-request", "value"), prevent_initial_call=True,)......此处省略n行dash回调函数代码......# 使用zhipuai调用glm-zero-preview模型def generate_script(n_clicks, request): if not request: return "请输入有效的需求描述!" try: # 调用智谱AI API response = client.chat.completions.create( model="glm-zero-preview", messages=[ {"role": "system", "content": '''你是专业的Python工程师,需要针对用户给到的需求,直接生成Python脚本, 注意你只需要给出代码即可,不需要除代码外其他任何文字解释,如果有解释都放在注释里。 并且你需要保证完整性、准确性、可执行、规范性。 而且代码注释清晰,可读性强。'''}, {"role": "user", "content": f"生成一个 Python 脚本,实现以下功能:{request}"}, ], max_tokens=12000, ) # 提取生成的代码 generated_code = response.choices[0].message.content return generated_code except Exception as e: return f"生成脚本时出错:{str(e)}"# 运行应用if __name__ == "__main__": app.run_server(debug=True)你可以在自己电脑本地实现这个web应用,非常的实用且有趣。
如今AI推理模型的能力越来越强,随着o1、o3、GLM-Zero-Preview等推理模型的接连发布,我相信会涌现出非常多的AI应用,在编程、数学、逻辑推断等各个方向都会有广阔的应用方向。
作为个人,其实也可以开发一些简单的AI应用,配合GLM-Zero-Preview模型的能力,可玩的场景也很多,想象力是无穷的,AI赋能的场景也是无限的。
来源:朱卫军AI