文章转载于新智元
九月份,OpenAI o1正式登场。
作为新一代的老大哥,o1系列专注于复杂的推理任务,一经推出也是直接屠榜了大模型竞技场。
在下面这些难度较大的数学、编码、科学等任务中,o1不仅比GPT-4o强上一大截,甚至比人类专家还要凶猛。
OpenAI对此曾表示:通往AGI的路上,已经没有任何阻碍。
——但其实还是有的,那就是新东西通常太贵。
o1-preview的每百万输入token为15美元,每百万输出token为60美元,而对位的GPT-4o分别是5美元和15美元。
本来GPT-4o就不便宜,现在想体验更强大的推理能力则需要再付出几倍的成本。
嫌OpenAI o1太贵?那就自己做一个!
近日,一篇利用纯提示方法让普通LLM变身成为OpenAI o1的文章在推特上爆火。
开源代码:https://github.com/harishsg993010/LLM-Research-Scripts
动态思维链(Dynamic Chain of Thoughts)+ 反思(refection)+ 语言强化学习(verbal reinforcement),
让没有经过特殊推理训练的GPT-4o、价格更便宜的Claude 3.5 Sonnet,甚至是开源免费的Llama 3.1 8B,在复杂问题的推理上都获得了相当大的提升!
在严格的学术基准测试中,「开挂」之后的Claude 3.5 Sonnet反超GPT-4o,和o1打平。
——不是o1玩不起,而是开挂更有性价比。
怎样才能把Claude 3.5调教成比博士还要强的o1呢?
在OpenAI o1的官网中有下面这样一个范例,从密文和明文的对应中找关系,然后解码一段新的密文。
老实说,如果没刷过这类题,小编估计一时半会儿也找不着北。
o1作对这道题花费了5秒的思考时间,在官网中点开下拉可以看到它的推理过程,真是混沌又守序。
时而规规矩矩思考,找出不错的方向,又经常马马虎虎,与正确道路失之交臂,兜兜转转,跟人类很像。
——模拟这个思考的过程,也许就是关键。
make LLM smarter
首先,OpenAI o1所代表的reasoning model具有以下能力:
逻辑思考
作出推论
解决复杂问题
根据可用信息做出明智的决策
这些能力对于AI未来的发展至关重要:
Deeper Understanding:真正的推理能力表明LLM可以超越模式匹配,对世界有更深入的理解。
Problem-Solving:可以更有效地解决复杂领域的问题。
Decision-Making:帮助人类进行复杂的决策过程。
Generalization:帮助LLM在out of distribution任务上表现得更好,增强它们的泛化性。
Practical Applications:推理能力可以加速科学发现,加强政策制定,并改善教育和医疗保健领域的个性化服务,比如AI Agent,可以获取时间序列数据的数据集,找到一个更难的模式来识别,以此准确预测未来。
对于o1来说,如果花费更长的训练或者推理时间,其性能还会不断提升。
那么,对于其他LLM来说,是否也能如此?
在阅读了一些论文之后,作者决定创建新的提示范式,结合动态思维链、反思和语言强化,并通过实验来验证提示的效果。
以下是编码和数学问题中所采用的prompt示例:
Begin by enclosing all thoughts within <thinking> tags, exploring multiple angles and approaches.
Break down the solution into clear steps within <step> tags. Start with a 20-step budget, requesting more for complex problems if needed.
Use <count> tags after each step to show the remaining budget. Stop when reaching 0.
Continuously adjust your reasoning based on intermediate results and reflections, adapting your strategy as you progress.
Regularly evaluate progress using <reflection> tags. Be critical and honest about your reasoning process.
Assign a quality score between 0.0 and 1.0 using <reward> tags after each reflection. Use this to guide your approach:
0.8+: Continue current approach
0.5-0.7: Consider minor adjustments
Below 0.5: Seriously consider backtracking and trying a different approach
If unsure or if reward score is low, backtrack and try a different approach, explaining your decision within <thinking> tags.
For mathematical problems, show all work explicitly using LaTeX for formal notation and provide detailed proofs.
Explore multiple solutions individually if possible, comparing approaches in reflections.
Use thoughts as a scratchpad, writing out all calculations and reasoning explicitly.
Synthesize the final answer within <answer> tags, providing a clear, concise summary.
Conclude with a final reflection on the overall solution, discussing effectiveness, challenges, and solutions. Assign a final reward score.
深入细节
这个过程从Dynamic CoT生成初始推理路径开始,然后通过Reflection机制对其进行评估和完善。
在每个反思阶段之后,模型会以奖励分数的形式得到强化,从而指导未来的推理步骤。
这种循环过程使模型能够迭代改进输出,适应不断变化的条件,并有效地响应复杂的问题结构。
比如在自主导航等多阶段决策任务的场景中,模型可能首先使用Dynamic CoT探索路径。
当它遇到障碍或环境变化时,反射机制将允许它重新评估策略,而强化分数则为如何调整其行动提供指导。
这样的AI系统不仅能从操作中学习,而且随着时间的推移不断提高其推理能力,尤其在动态的真实应用中。
以上穿插的一组截图展示了LLM的推理过程。
基准测试
只是能够回答一些经典问题,例如「计算单词strawberry中 r 的数量」和「比较0.9 和 0.11哪个更大」,还不足以证明这套提示方法的功效——尽管大部分LLM连这样的问题都搞不定。
作者为此创建了用于基准测试评估的数据集,包含来自JEE(Joint Entrance Examination)Advanced和UPSC prelims的问题。
JEE Advanced被认为是全球最难的本科入学考试之一,面向有志于加入印度理工学院(IIT)的学生。
UPSC公务员考试是世界上竞争最激烈的考试之一,吸引了希望在印度官僚机构担任管理人员的候选人,常识试卷测试不同领域的知识。
这些问题非常严格,测试深入的概念理解、解决问题的能力以及跨多个领域(如物理、数学、化学、社会科学等)的概念应用。
作者使用脚本来进行这项评估:
脚本使用Streamlit创建一个Web应用程序,使用开源模型Groq API和闭源模型(如 gpt4o、o1和Claude)的API生成响应。
脚本包括一个详细的系统提示(以「You are an AI assistant that step by step explain your reasoning and explaining your reasoning ...」开头),用于指导模型的推理过程。
prompt指示AI使用动态思维链(CoT)、反射和语言强化学习技术。
AI将其推理分解为清晰的步骤,每个步骤都有标题、内容、置信度分数和思考时间。
每3个步骤,AI会进行一次自我反思,考虑潜在的偏见和不同的观点。
脚本在允许最终答案之前至少执行15个步骤,以确保对给定查询进行全面分析。
脚本修改自Benjamin Klieger的版本:https://github.com/bklieger-groq/g1
作者修改了其实现的逻辑,用户会向AI系统提供一个问题,AI需要足够的时间以各种方式思考这个问题,最终解决这个问题——模仿人类如何思考。
结果表明,动态CoT、反射和语言强化学习技术的应用显著提高了大多数模型的性能,尤其是Claude Sonnet和Llama 3.1 8b。
满分48分,使用提示方法的Claude Sonnet拿到了最高分(40分),在数学、物理和化学问题上表现出色。Llama 3.1 8b(33分)和GPT-4o(36分)也获得了明显改进。
而不使用提示技术的o1得分为39分,确实具有很强的内在解决问题的能力,——但开挂的Claude取得了胜利。
IMO 2023基准测试
OpenAI表示o1能够在IMO上获得83%的分数。
作为对比,使用本文提示技术的Claude 3.5 Sonnet在首次测试中达到了50%,而如果多次测试就会反超o1。
Putnam数学竞赛
The William Lowell Putnam Mathematical Competition,俗称Putnam竞赛,是一项面向美国和加拿大本科生的极具挑战性的数学竞赛。
比赛由两个3小时的部分组成,每个部分有6个问题。每道题10分,最高120分。
Putnam竞赛被广泛认为是世界上最难的本科数学竞赛之一。
参赛者成绩的中位数通常为0分或1分,这意味着超过一半的人基本上啥也没做出来。
而在85年的竞赛历史中,只出现过五次满分。
作者从2013到2023年的试卷中选取了28道题目:
结果Llama3.1 70B、Claude Sonnet和o1 mini解决了14个问题,o1模型解决了13个问题,GPT-4o解决了9个问题。
可以看出,Claude Sonnet 3.5使用本文的提示技术,能够在需要更好推理能力的问题中胜过o1模型。
应用
LLM就像一个阅读了数百万本书的人,但它不知道如何利用这些数据来解决问题,这就是提示技术的用武之地。
人们可以利用这种推理能力来构建强大的工作流程自动化,以解决IT、网络安全、汽车等各个领域的问题。
组织可以使用较小的开源模型来替代GPT-4o等成本较高的模型,用于需要复杂推理能力来解决的任务。