解密prompt系列47. O1 Long Thought的一些特征分析

news/2025/1/22 7:42:57/文章来源:https://www.cnblogs.com/gogoSandy/p/18684917

之前我们花很多章讨论过思维链,包括思维链的

  • 组织结构,例如Self-Consistency,TOT,TOMT, GOT,AOT,POT
  • 编排方式,例如Plan-and-Slove,Least-to-most, Verify-and-Edit,Iteration-of-Thought
  • fewshot选择:AutoCOT,最优化fewshot,fewshot多样性,fewshot复杂化
  • Distillation:思考能力蒸馏到小模型
  • Bootstrap:让模型自我优化提升思考链路

但O1之后,思维链的一个简单但之前都没进入视野的特征引起了大家的注意,那就是思考的长度对推理效果的影响,更准确来说是通过哪些思考步骤来有效延长思维长度对推理的影响。这一章我们着重讨论思考长度慢思考的一些特点,下一章再讨论一些实现方案。哈哈注意这里的很多观点都是各方推测,请审慎辨别~

COT长度的影响分析

  • The Impact of Reasoning Step Length on Large Language Models

先上一篇分析COT长度的论文打前阵,论文得到了个很有趣的观点:COT长度比质量更重要,思考的对不对没有思考的长不长来的重要,即便思考的不对,也不太影响思考的越长,准确略越高。对思维链的长度要求也和任务有关,任务越复杂需要的思考长度越长。但其实读完论文后我个人理解的其实是,在思考过程中通过加入问题复述、思考回顾、反思、知识回忆、公式化等思考节点可以有效提升推理效果

但思维链长度的实验论证,最难的点其实在于如何改变模型思维长度,又不引入其他Confounder来影响实验归因。我们来看下论文是如何实现的

  1. zero-shot COT — Add steps
    纯指令COT引导的实现更简单些,论文单纯把“Let's think step by step”替换成了
    "Let's think step by step, you must think more steps"

  2. Few-shot COT - Add steps
    而Few-shot COT更复杂些,因为如果单纯改变few-shot样本,增加few-shot的思考长度,其实是变相引入了任务相关的补充信息。那就无保证最终模型推理效果的提升是否来自这部分补充信息,因此需要有能改变(变长,变短)思维链长度,但又和任务不直接相关的指令引入。

论文选择从人类思考模式入手,引入了5个和任务无关,只和思考模式相关,通过在思考步骤中引入特定的步骤,改变思考长度的方式,包括

  • Think about the world:让模型思考问题中的相关知识
  • Read the question again:Rephrase Prompting早就证明可以有效的提升模型推理效果。
  • Repeat State:每推理一段之后会进行局部总结,简化上文的推理过程。人类也会不断回顾并自己的推理过程
  • Self-Verification: 增加模型对自我答案的反思。人类在给出答案前也会校验自己的推理过程。
  • Make Equation:让模型尝试把问题公式化。公式化对于人类可以辅助记忆

这里可能就Think about the world不太好理解,这里我们看下论文的prompt,其实类似于定位问题中的知识(实体),在回答中复述(类比人类一边回答一边在脑海中思考对应信息)。

image

这里会先使用zero-shot COT,让模型基于以上5种COT增长指令生成新的Demo,再使用增长之后的Demo作为Few-shot样本。

  1. Few Shot COT - Compression
    前面两个都是COT增加推理步骤的方案,这里论文也对比了压缩,同样为剔除任何和任务有关的信息变化,这里论文使用指令让大模型,对few shot Demo进行句子和句子的压缩合并。指令如下
Please compress the following two sentences without losing any information, and make them as concise as possible

实验结果有2个和长度相关的重要结论

  • 通过指令、few-shot增加推理步骤会显著带来效果提升,以下论文分别对比了和Manual-COT,AUTOCOT的效果增益。同时在复杂任务上效果会随步数增长而持续提升。

image

image

  • 单纯对few-shot demo进行文字压缩就会影响推理效果
    image

但最后我们回头再看下论文的实现,其实不能直接把效果提升和思考的长度进行等同。比如我在COT里随机加一段“略略略略略略”,那八成是不能提升推理效果的。所以要审慎理解这里的思考长度。个人感觉其实更类似于模仿人类的思考过程,在推理链路中加入有效的思考模块,可以提升推理效果。那咱直接和人类类比的话,除了上面论文提到的思考模块,还有一些常见的模块其实也值得尝试

  • 系统推理:把复杂问题进行并行或串行分解
  • 类比推理:该问题是否和其他问题相关,是否可以迁移知识
  • 溯因推理(假设检验):问题是否包含多个可能的假设,可以逐步排除或验证
  • 辩证推理:从问题的多个视角进行思考,通过观点碰撞得到最终正确的结论
  • 经验反思:引导模型反思回答该问题是否有其他可以借鉴的经验
  • 启发式思考:引导模型使用直觉进行思考,先进行一轮答案的尝试,再进行修正。
  • 场景模拟:给出一端推理后,可以针对给出的推理给个例子,如果在例子上跑不通,则需要调整思考方向
  • 纠错行为:如果反思发现推理存在错误,如何得到新的修正方向,或者从指出的错误中进行学习

涉及到的模型行为其实包括:分解,类比,假设,辩证,反思,纠错,直觉,模拟,归纳,演绎,评估,总结

O1的思考有哪些特征?

  • O1 Replication Journey: A Strategic Progress Report – Part 1

论文1在复现O1之前,先让数学博士们对O1的推理路径进行了结构分析, 示例如下

image

作者发现,O1的思考过程中存在一些高频出现的关键词,这些关键词指引了模型下一个思考模块,例如“if”,“consider”,“possible”显示模型存在多个思考角度或假设检验路径,再例如“wait”,“Alternatively”显示模型再进行反思,纠错等行为。他们对思考过程中的不同思考模块进行不完全分类后得到了如下的几个特点

  • 多步问题分解(Divide and conqure):模型会先定义问题,分解问题,再逐步解决各个问题,整个思考链路呈现结构化
  • 关键思考节点:当出现上述的一些关键词后模型会进入一些特定的思考节点。除了上面的假设路径,反思,还有“Let me Compute”会进入公式计算,“Therefore”会进入局部结果总结
  • 循环和反思节点(self-refine and consistency):模型会频繁评估,验证中间结果,并通过多次循环尝试校验一致性
  • 探索假设:模型会尝试多个假设,并根据不同路径收集的信息,调整思考路径,整个思考过程非常灵活。
  • 总结和验证:在得到最终结论前,模型会对结论进行校验。(个人感觉从逻辑上其实这也属于反思节点)

论文1认为O1长思考是通过模拟人类的思考过程,通过过程监督学习,让模型掌握不同的推理模式,和思考过程。

O1的思考包括哪些模式?

  • A Comparative Study on Reasoning Patterns of OpenAI's o1 Model

论文2也做了类型的事情,不过更多在把思考模式进行模块化的分类,包含以下几种思考模式

  • Systematic Analysis: 一上来o1会先分析问题,剖析输入输出,限制条件,再选择解决方案。其实是repeat the problem的进一步延申,先复述问题,再从系统角度分析问题。
  • Method Reuse:对于可以被转化成经典问题的,模型会迅速联想相关的经典问题解法,类似经验类比。
  • Divide and Conquer:多步问题分解
  • Self-Refinement:和前面提到的反思评估和循环论证类似
  • Context Identification:类似前面提到的Think about the world,在知识密集的QA问题上,模型会先回忆问题相关的核心知识
  • Emphasizing Constraints:模型会在推理过程中复述重要的条件。

image

论文在不同数据集上统计分析了不同思考模式的出现频率,发现

  • CommonSense问题:最常见问题分解、反思、知识回顾、和条件复述
  • Code问题(USACO):更常见系统分析、经验类比、问题分解、反思
  • Math问题(AIME):更常见系统分析、经验类比、问题分解

更长更更长?

文末聊个有意思的话题,就是O3亮相后,大家都被推理成本震惊到,感觉整个慢思考推理链路在变得越来越长,那后面还会继续变长么?这里聊聊我的感受(纯猜测向)~

之前从O1开始的边长,更像是在摸索让模型如何从结果学习到过程学习的一种中间产物,让模型在训练过程中降低各种shortcut,跳步,一步步扎实的学习如何推演正确结果,也就是把整个思维链显式化。而大家对思维链的剖析也更多是从常规的逻辑推理,辩证思考模式的角度去把O1的思维链按照常规人类的思考方式,进行分隔,分类,再串联起来。大家就会说那一般人解决复杂问题时本来就要经过很长的思考过程,那模型自然也是一样的呀。

但其实个人感觉,模型擅长模仿,但也擅长压缩,当我们近乎完全激发出模型显式长思维链推理效果后,下一步就该向回看,让模型学会跳步,在思维链路中寻找所谓shortest path了,那个时候才是模型推理该变短的时候。

想看更全的大模型论文·微调预训练数据·开源框架·AIGC应用 >> DecryPrompt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873094.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析 Spring AI 系列:解析返回参数处理

关于普通聊天对接,目前已经完成了大部分讲解,剩下的就是最后一步,今天我们将重点讨论在返回参数时需要注意的几个关键点。为了更好地说明这些注意事项,我们仍然以OpenAI接口为例,逐步讲解相关的代码实现,帮助大家更清楚地理解这一部分的细节。 接下来,我们就直接看一下这…

演练 dotnet 使用 GeneratedComInterface 源代码生成方式调用 COM 接口

本文将提供使用源代码生成方式的 COM 调用。本文例子基于 dotnet 9 框架官方文档:ComWrappers source generation - .NET Microsoft Learn Using the ComWrappers API - .NET Microsoft Learn本文将演练在 WPF 应用里面手动写 COM 调用的方式,调用打开文件对话框。访问 COM 的…

演练 dotnet 使用 函数指针 调用 COM 接口

本文将和大家演练如何在 dotnet 里面使用 函数指针 调用 COM 接口,整个过程没有 COM 封装的存在,其性能非常高,调用非常直接和底层,无中间商赚差价官方文档: 函数指针 - C# feature specifications Microsoft Learn ComWrappers source generation - .NET Microsoft Learn…

读量子霸权11基因剪辑

读量子霸权11基因剪辑1. 癌症 1.1. 癌症是美国人口死亡病因中排名第二的“杀手”​,仅次于心血管疾病1.1.1. 虽然手术、化学治疗和放射治疗等医学手段在对抗癌症方面取得了越来越多的进展,但因癌症而死亡的人数仍然居高不下1.2. 人类与癌症之间的战争尚存在一个根本问题没有得…

Wi-Fi 8:开创连接的未来

Wi-Fi 8:开创连接的未来 下一代 Wi-Fi 8。主要见解包括:多 AP 协调 进一步优化频谱效率 扩展范围 能效改进然而,Wi-Fi 8 优先考虑无线通信的一个方面,这个方面变得越来越重要:可靠性。 Wi-Fi 8 的 8021.1 亿则专注于“超高可靠性”。 本白皮书讨论了 Wi-Fi 8 的新功能、蜂…

请说说什么是分区响应图?

分区响应图在前端开发中是一种特殊的技术实现,它允许开发者将一张图片划分为多个区域,并为每个区域指定不同的超链接或响应行为。当用户点击图片的不同区域时,会根据该区域的设置触发相应的操作,比如跳转到不同的网页或执行特定的JavaScript函数。 以下是关于分区响应图的详…

用于非均匀二次谐波产生的光子集成电路

用于非均匀二次谐波产生的光子集成电路 摘要:GaAs基激光器与倍频波导的异质集成为在所谓的绿隙中实现可扩展相干源提供了一条清晰的途径,但到目前为止,倍频系统一直依赖于单独制造的激光器来提供足够的功率用于二次谐波产生。在这项工作中,提出了一种光子集成电路(PIC),…

迈向基于离子的大规模集成电路:离子电子元件的电路级设计、仿真和集成

迈向基于离子的大规模集成电路:离子电子元件的电路级设计、仿真和集成 离子电子学将离子作为电荷载体与类电子操作相结合,实现了独特的信息处理、化学调节和增强的生物可整合性。标准仿真工具在有效模拟集成离子电子元件的行为方面遇到了困难,这突显了对专门设计和仿真方法的…

推荐书籍《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》,谢谢

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

JavaScript的其他常用库

setTimeout与setInterval、requestAnimationFrame、Map与Set、localStorage、JSON、日期、WebSocket、window、canvas等常用库ε=ε=ε=(~ ̄▽ ̄)~setTimeout与setIntervalsetTimeout(func, delay) :delay毫秒后,执行函数func()。 例如: let main = function() {let $div =…

内外网安全文件交换系统:守护企业数据安全的坚固防线

介绍内外网安全文件交换系统的使用在当今数字化时代,企业内外网数据交换的需求日益增长,但数据安全问题也愈发突出。如何在保障数据高效传输的同时,确保其安全性?内外网安全文件交换系统给出了完美答案。 一、产品定位与功能亮点 内外网安全文件交换系统是一款专为企业内外…

git 证书验证问题 SSL certificate problem

提示这个 fatal: unable to access https://github.com/example/repo.git/: SSL certificate problem: unable to get local issuer certificate 一般配置证书即可 第一步 导出网站证书第二步 添加导出的证书 具体命令为 git config --global http.sslCAInfo /path/to/root_cer…