OpenAI GPT-o1实现方案记录与梳理

  • 本篇文章用于记录从各处收集到的o1复现方案的推测以及介绍

    目录

      • Journey Learning - 上海交通大学+NYU+MBZUAI+GAIR
        • Core Idea
        • Key Questions
        • Key Technologies
        • Training
        • Inference
      • A Tutorial on LLM Reasoning: Relevant methods behind ChatGPT o1 - UCL汪军教授
        • Core Idea
        • 先导
        • 自回归LLM面临的挑战
        • 将LLM推理看作是马尔科夫决策过程
        • 实现方法
      • Pangu-Agent: A Fine-Tunable Generalist Agent with Structured Reasoning
        • Core Idea

Journey Learning - 上海交通大学+NYU+MBZUAI+GAIR

  • github:https://github.com/GAIR-NLP/O1-Journey#about-the-team
  • paper: https://github.com/GAIR-NLP/O1-Journey/blob/main/resource/report.pdf

Core Idea

  • “Journey Learning,” was proposed to teach models to learn through trial and error rather than shortcuts
    • 在这里插入图片描述

Key Questions

  • o1的思维链有哪些特征:
    • 迭代式
    • 关键思维方式:结论、路径、反思、计算
    • 递归与反思:经常评估与验证中间结果
    • 假设探索
    • 结论与验证
  • 思维链如何工作?
    • 团队给出了自己的猜测
  • 如何构建长思维链?(本质上是数据集构建方法
    • 尝试1:基于 LLM 和奖励的树搜索
      • 反思回溯 (要求有) 推理树 (需要) 细粒度的奖励模型
    • 尝试2:提议 - 批评循环
      • 为模型预定义了一些可能的行为(即继续、回溯、反思、终止),并让模型自身选择行为来构建推理树
      • 如果树没有达到最终答案,可以将这个负面信号告知模型,引导它反思和纠正其方法
    • 尝试3:多智能体方法
      • 挑战:基于推理树构建长思维存在许多冗余的无效节点,以及存在不依赖于反思行为的推理步骤,从而引起构建的长思维逻辑不一致
      • 多智能体辩论的算法:其中一个智能体充当策略模型,持续推理,而另一个智能体充当评论模型,指示策略模型是否应该继续当前推理或执行回溯等行为。两个智能体进行持续对话,在找到正确答案时自然构建长思维数据集
    • 完整的人类思维过程注释:通过记录人类思维过程产生高质量的思维链数据
  • 如何构建奖励模型?
    • 团队将评估粒度定义在步骤层面
  • 如何构建on-policy推理树?
  • 如何从推理树中导出长思维链?
  • 如何进行评估?
  • 如何训练?
  • 什么是人类和 AI 协同标注的有效策略?

Key Technologies

  • Multi-Agent Debate System
    • 包含两个Agents
      • Agent#1: 生成推理步骤
      • Agent#2: 评价Agent#1生成的推理步骤
  • Reasoning Trees
    • 用于表示整个思维过程
  • Reward Models Design
    • 用于对reasoning tree中的每一个步骤进行评价

Training

  • Stage#1: Supervised Fine-Tuning(SFT)
    • Phase#1: short-cut reasoning data
    • Phase#2: journey learning data
  • Stage#2: Direct Preference Optimization(DPO)
    • 一次性生成多个回答,学习如何判断回答的正确性与有效性

Inference

  • Stage#1: Reasoning Tree Construction
    • 构建思维树
  • Stage#2: Traversal and Output
    • 采用深度优先的方式(DFS)进行推理

A Tutorial on LLM Reasoning: Relevant methods behind ChatGPT o1 - UCL汪军教授

  • github: https://github.com/openreasoner/openr/blob/main/reports/Tutorial-LLM-Reasoning-Wang.pdf

Core Idea

  • o1 的训练使用了强化学习技术,通过显式地嵌入一个**原生「思维链」(NCoT)**过程,可出色地完成复杂的推理任务
  • 范式转变:从快速、直接的反应转向缓慢、深思熟虑、多步骤的推理时间计算
    • 在这里插入图片描述
    • 疑问与思考:不同的研究者对快慢推理有着很不一样的理解,例如汪教授认为原来的direct autoregressive model就是快推理;而部分研究者从模型的角度进行划分,大模型是慢推理,小模型是快推理

先导

  • 思维链方案能够提升大语言模型的执行能力并不是才出现(COT,TOT等);同时,你也可以通过简单的prompt使(o1前)时代的LLM输出思维过程,从而提升整体表现
    • 这些方法都基于已有的 LLM,并没有将思维链嵌入到模型本身之中。因此,LLM 无法内化这种学习能力
    • 之前人们提出的方法包括收集专门的训练数据构建奖励模型增加解码的计算复杂度,但目前还没有一种方法能大规模地在性能上取得重大突破
    • 注意:由于OpenAI不再Open,汪军教授表示,我们目前尚不清楚 OpenAI 的 o1 创新是否植根于模型本身,还是依然依赖于外部提示系统。如果它确实涉及在架构中明确嵌入分步推理,那么这将是一个重大突破
  • OpenAI表示:“传统上在训练期间应用的扩展原则现在也与推理阶段相关了”
    • 算力(重心)逐渐向推理过度
    • 如果LLM能够在推理过程中提升自己的能力,那么就是向**自我改进式智能体(self-improving agent)**迈出的重要一步
    • 汪军教授表示:这个研究方向暂且称为 LLM 原生思维链(LLM-Native Chain-of-Thought/NativeCoT),其应当能够固有地反映人类系统2思维所具有的深思熟虑的分析过程。

自回归LLM面临的挑战

  • 自回归LLM以预测下一个token为目标
    • 汪军教授表示,仅仅专注于预测下一个词会限制智能的潜力。为了得到更深层次的智能,可能需要不同的优化目标和学习范式
    • 如何使系统超越其训练数据的界限并开发出新颖的、可能更优的策略?
      • 汪军教授:如果使用数据来开发更深度的理解或世界模型,就有可能实现复杂策略的演进,进而超越训练数据的限制
    • 世界模型(World Model)
      • 代表了智能体对环境的理解
      • 基于模型的策略(如蒙特卡洛树搜索 (MCTS))是这种方法的经典例证。向系统 2 型推理的过渡(o1 可能就是一个例证)依赖于建立某种类型的世界模型并利用强化学习(奖励最大化),而不仅仅是最小化预测误差。这种方法的转变可能是 OpenAI o1 强大推理能力背后的关键过渡技术之一
      • 通过将 LLM 的预测能力与强化学习和世界建模的策略深度相结合,像 o1 这样的 AI 系统可以解决更复杂的问题和实现更复杂的决策过程。这种混合方法既可以实现快速模式识别(类似于系统 1 思维),也可以实现深思熟虑的逐步推理(系统 2 思维的特征)。
  • 巨大的计算复杂性
    • LLM 运行时受到二次计算复杂性的约束(Transformer架构)。当 LLM 遇到多步数学难题时,这种约束会变得尤为明显
    • 思维链却有望减轻这一限制
      • 尽管该方法颇具潜力,但它仍然不是一个完全动态的内存系统,并且没有原生地融入解码阶段。这种必要性使得研究社区亟需超越当前 Transformer 解码器网络能力的高级计算架构。
      • 需求:在推理和解码阶段实现类似于蒙特卡洛树搜索 (MCTS)的基于模型的复杂策略。
      • 这种先进的推理时间计算系统将使 AI 模型能够维护和动态更新问题空间的表征,从而促进更复杂的推理过程(汪军教授这里提到了Working Memory这个概念)

将LLM推理看作是马尔科夫决策过程

  • 为了建模问答或问题解答等任务中的推理过程,这里将推理的结构调整成 Q → {R} → A 序列的形式
    • Q:表示启动推理过程的问题或提示词;
    • R:表示为了得到解答,模型生成的中间推理步骤的序列;
    • A:表示推理步骤完成后得到的最终答案或解。
  • 汪军教授表示,可以将该推理过程定义为一个马尔可夫决策过程(MDP)
    • MDP 能为建模推理提供一个灵活的框架。它允许模型自回归地生成迈向最终答案的顺序推理步骤,同时还通过在每个步骤采样多条路径来实现树结构以获得备选推理轨迹
  • 现在可以使用状态、动作、策略和奖励来描述这个推理过程了。其中 LLM 的任务是逐步生成与推理步骤和最终答案相对应的连贯 token 序列
    • LLM_as_MDP
    • 思考:
      • 这里可以的动作空间只有两个:选择新推理步骤、结束推理(得到final answer)
      • 反思在这里没有具体的体现,但带着新的信息回到原来的推理节点是否同样可以被看作是生成新的推理节点?
      • 汪军教授有明确的提到树结构,如何在这里得到体现——State相同
        • 是否可以认为:旅行推理对State进行了结构化的定义,而汪军教授提出的方法是一种更加宏观的方法——二者是否具有一致性?
  • 在这里插入图片描述
    • 过程奖励模型(Process Reward Model, PRM)是一种基于强化学习的模型,专注于对中间步骤或过程的质量进行评估和奖励,而不仅仅是对最终结果进行评分。它的目标是鼓励系统在任务的每个步骤中都做出合理和高质量的决策,从而提高整个任务执行的效率和效果。
    • 优势:
      • 细粒度反馈:相较于传统的结果奖励模型,针对执行过程提供持续的反馈
      • 加快学习速度:更早地提供奖励信号
      • 稳定性更高:能过缓解仅依赖最终奖励导致的奖励稀疏问题,减少陷入局部最优解的风险

实现方法

  • 核心步骤
      1. 收集中间推理数据
      1. 训练过程奖励模型PRM
      1. 利用PRM来训练LLM
      1. 在解码阶段引导推理过程
  • 自动获取推理步骤数据
    • Self-Taught Reasoner (STaR): 一种无需人类监督,有效的收集数据和提升 LLM 推理的方法
      • “The STaR (Self-Taught Reasoner) method is a technique used to improve the reasoning capabilities of language models. It works by having the model generate intermediate reasoning steps (called rationales) for given problems, which helps it learn how to solve more complex tasks. Initially, the model is trained to solve problems and generate reasoning steps. If it fails, it reviews its own rationales, refines them, and learns from the corrected version. This iterative process helps improve the accuracy and reliability of the model’s reasoning abilities over time.”
      • STaR
      • 要求:1. LLM有能力生成中间步骤;2. LLM能够通过自己的策略验证正确性
      • 收集到的 {Q, {R}, A} 就可进一步用于训练策略 π_LLM,提升有效推理步骤的生成过程
      • 当推理序列较长时,还会用到蒙特卡洛树搜索(MCTS)
  • 自我增强式训练
    • Self-augmented training
      • 在训练时:LLM基于policy进行生成;PRM进行评价
    • Stage1: PRM价值迭代:训练世界模型——过程奖励模型(PRM)
      • 目标:构建引导搜索、推理和解码过程的通用奖励模型——通常被称为验证器vPRM
      • 训练方式一:使用有标注的推理步骤数据集进行训练。其训练通常涉及根据推理步骤的正确性优化一个分类损失函数
        • 交叉熵
      • 训练方式二:将PRM视为一个可迭代价值函数(贝尔安方程-递归关系)——预测累积奖励,通过选择最佳动作指导推理过程
        • 目标:学习一个由 θ \theta θ参数化的价值函数 V θ ( s ) V_\theta(s) Vθ(s),其中 s s s是当前的状态,用于预测从状态 s s s开始的预期累积奖励
        • 贝尔曼方程
        • 其中 r ( s ) r(s) r(s)是奖励函数,根据中间推理步骤或最终答案的正确性为状态s分配一个标量奖励, γ \gamma γ是折扣因子,决定了未来奖励的相对重要性
          • 疑问:这里的 a a a表示动作空间,LLM的动作本身只有一个“Text generation”,在这种情况下是否意味着该方法同样需要划分明确的动作空间,是否可以理解为这里是对世界模型的特殊定义——包含反思、推理、计算等“动作”?
        • 为了学习 θ \theta θ,TD(时序差分)损失函数定义为:
          • 贝尔曼损失函数
    • Stage 2: LLM的策略迭代
      • 分组相对策略优化(Group Relative Policy Optimization - GPRO)
        • 假设对于每个问题 Q = q,策略都会生成推理步骤 { o 1 , o 2 , . . . , o G } \{o_1, o_2, . . . , o_G\} {o1,o2,...,oG},每个输出 o i o_i oi由多个步骤 { a i , 1 , a i , 2 , . . . , a i , K i } \{a_{i,1}, a_{i,2}, . . . , a_{i,Ki} \} {ai,1,ai,2,...,ai,Ki} 组成,其中 K i K_i Ki 是输出 o i o_i oi 中的推理步骤(或 token)总数
        • 优化策略:
          • gpro
          • GRPO 没有将 K L KL KL 惩罚直接纳入奖励,其规范策略的方式是将当前策略 π θ π_θ πθ 和参考策略 π θ r e f π_{θ_{ref}} πθref 之间的 K L KL KL 散度直接添加到损失函数中。这可确保更新后的策略在训练期间不会过度偏离参考策略,从而有助于保持稳定性
          • 这种 GRPO 形式是通过利用推理步骤和最终步骤中的分组相对奖励来优化 LLM 策略,专门适用于通过过程奖励模型的推理任务
          • 归一化的优势函数(advantage function)是根据相对性能计算的,鼓励策略偏向在一组采样输出中表现更好的输出
          • K L KL KL 正则化可确保更新后的策略与参考策略保持接近,从而提高训练稳定性和效率
          • 其他策略:token-level DPO(direct preference optimization)—— Token-level direct preference optimization —— 一种区别于RLHF的LLM训练方法
    • Stage 3: 推理优化
      • LLM 常用的方法是自回归,即根据之前的 token 逐一生成新 token。但是,对于推理任务,还必需更复杂的解码技术
      • 使用 MCTS 模型
        • MCTS 可模拟多条推理路径,并根据奖励系统对其进行评估,选择预期奖励最高的路径。这允许模型在推理过程中探索更大范围的可能性,从而增加其获得最优解的机会
        • 使用 MDP对推理过程结构进行定义
      • 原生思维链(Native Chain-of-Thought - NCoT)
        • 使LLM在无需外部提示词的情况下自动执行逐步式的结构化推理
        • 该能力可以表述为一个马尔可夫决策过程(MDP) ( S , A , π , R ) (S, A, π, R) (S,A,π,R)
          • S S S 是状态空间,表示生成到给定位置处的 token 序列或推理步骤
          • A A A 是动作空间,由潜在推理步骤 R t R_t Rt 或最终答案 A A A 组成
          • π L L M ( a t ∣ s t ) π_{LLM (a_t | s_t)} πLLM(atst) 是控制动作选择的策略(也是LLM —— 多LLM),其可根据当前状态 s t s_t st 确定下一个推理步骤或最终答案
          • R ( s t a t ) R (s_t a_t) R(stat) 是过程奖励模型(PRM,其作用是根据所选动作 a t a_t at 的质量和相关性分配奖励 r t r_t rt,以引导推理过程
        • 该模型既可以通过展开 MDP 来遵循顺序推理路径,也可以通过在每个状态下采样不同的推理步骤来探索多个轨迹(树状推理)
          • MDP

Pangu-Agent: A Fine-Tunable Generalist Agent with Structured Reasoning

  • paper: https://arxiv.org/abs/2312.14878

Core Idea

  • Structured Reasoning Framework: Pangu-Agent引入了内在和外在函数,将先验知识整合到感知-行动循环中,允许智能体将结构化推理纳入其学习过程。内在功能作用于内部记忆,而外在功能则与环境相互作用
    • 内在函数是修改代理的内部状态或记忆的操作。
      • Thinking:基于过去的经验或观察,对某一情况产生高层次的思考
      • Planning:组织步骤以有效地解决问题
      • Reflection:评估过去的行动,为未来的决策提供信息
      • Tool Use:利用诸如代码解释器之类的工具来帮助代理改进其推理
      • Communication:与其他代理相互作用,进行合作决策
    • 外在功能与主体与外部环境的相互作用直接相关。
  • Modularity and Flexibility: 该框架允许人工智能代理通过监督微调和强化学习微调模块化地适应多个任务。该体系结构旨在创建能够跨各种环境进行交互的通才代理,通过结构化推理提高其性能和适应性。
    • Supervised fine-tuning (SFT)
    • Reinforcement learning fine-tuning (RLFT)
  • Improved AI Agent Performance: 实验表明,结构化推理和微调的使用显著提高了人工智能智能体的适应性和泛化性。得益于结构化的模块化功能和内存管理,代理能够跨各种任务实现更高的成功率。

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

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

相关文章

shodan2---清风

注:本文章源于泷羽SEC,如有侵权请联系我,违规必删 学习请认准泷羽SEC学习视频:https://space.bilibili.com/350329294 实验一:search 存在CVE-2019-0708的网络设备 CVE - 2019 - 0708**漏洞:** 该漏洞存在于远程桌面…

offset Explorer连接云服务上的kafka连接不上

以上配置后报连接错误时,可能是因为kafka的server.properties配置文件没配置好: 加上面两条配置,再次测试连接,成功 listeners和advertised.listeners

C++的相关习题(2)

初阶模板 下面有关C中为什么用模板类的原因,描述错误的是? ( ) A.可用来创建动态增长和减小的数据结构 B.它是类型无关的,因此具有很高的可复用性 C.它运行时检查数据类型,保证了类型安全 D.它是平台无关的,可移植…

Vue.js 组件开发教程:从基础到进阶

Vue.js 组件开发教程:从基础到进阶 引言 在现代前端开发中,Vue.js 作为一款流行的 JavaScript 框架,以其简单易用和灵活性赢得了开发者的青睐。Vue 组件是 Vue.js 的核心概念之一,理解组件的开发和使用对构建复杂的用户界面至关重要。本篇文章将详细介绍 Vue.js 组件的开…

NFS练习

一、实验目的 1、开放/nfs/shared目录,供所有用户查询资料 2、开放/nfs/upload目录,为192.168.xxx.0/24网段主机可以上传目录, 并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210 3、将/home/tom目录仅共享给192.168.xxx.xxx这台…

MySQL全文索引检索中文

MySQL全文索引检索中文 5.7.6版本不支持中文检索,需要手动修改配置 ft_min_word_len 1 ,因为默认配置 4 SHOW VARIABLES LIKE ft%; show VARIABLES like ngram_token_size;配置 修改 MySQL 配置文件 vim /etc/my.cnf在配置的 [mysqld] 下面添加**ft_…

C++——string的模拟实现(上)

目录 引言 成员变量 1.基本框架 成员函数 1.构造函数和析构函数 2.拷贝构造函数 3.容量操作函数 3.1 有效长度和容量大小 3.2 容量操作 3.3 访问操作 (1)operator[]函数 (2)iterator迭代器 3.4 修改操作 (1)push_back()和append() (2)operator函数 引言 在 C—…

【C++单调栈 贡献法】907. 子数组的最小值之和|1975

本文涉及的基础知识点 C单调栈 LeetCode907. 子数组的最小值之和 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 由于答案可能很大,因此 返回答案模 109 7 。 示例 1&#x…

RabbitMQ是一个开源的消息代理和队列服务器

RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)协议实现,同时也支持其他消息协议如STOMP、MQTT等。作为一个可靠的消息传递服务,RabbitMQ在分…

了解光耦合器输入输出关系---腾恩科技

光耦合器,也称为光隔离器,是电子电路中必不可少的元件,主要用于在隔离部分之间传输信号,同时防止电噪声或高压影响敏感元件。其独特的设计使它们能够在没有直接电接触的情况下,弥合不同电压域之间的差距。在本文中&…

小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(5)定时器和计数器

越努力,越幸运! 兄弟们,要搬家到上海滴水湖了 职业生涯又迎来一次比较重要的变动 郑州->上海->上海临港 哈哈哈 flechazo 小柴冲刺软考中级嵌入式系统设计师系列总目录 一、硬件定时器 从硬件角度来看,定时器&#xf…

学习--图像信噪比

目录 图像信噪比 图像信噪比 图像信噪比的计算公式: 其中, M M M和 N N N分别表示图像长度和宽度上的像素数。 f ( i , j ) f(i,j) f(i,j) 和 g ( i , j ) g(i,j) g(i,j)分别是原始图像和去噪后的图像在点 ( i , j ) (i,j) (i,j)处的像素值。 信噪…

SYN590RL 300MHz至450MHz ASK接收机芯片IC

一般描述 SYN590RL是赛诺克全新开发设计的一款宽电压范围,低功耗,高性能,无需外置AGC电容,灵敏度达到典型-110dBm,300MHz”450MHz 频率范围应用的单芯片ASK或OOK射频接收器。 SYN59ORL是一款典型的即插即用型单片高集成度无线接收器&…

vue elementui el-table实现增加行,行内编辑修改

需求&#xff1a; 前端进行新增表单时&#xff0c;同时增加表单的明细数据。明细数据部分&#xff0c;可进行行编辑。 效果图&#xff1a; <el-card><div slot"header"><span style"font-weight: bold">外来人员名单2</span><…

代码随想录算法训练营第46期Day43

leetcode.322零钱兑换 class Solution { public: //无限个硬币->完全背包int coinChange(vector<int>& coins, int amount) {vector<int> dp(10010,INT_MAX);//dp代表的在某个数值下最小的硬币数&#xff0c;要求是最小的硬币数&#xff0c;所以初始值要尽可…

面试域——技术面试准备

摘要 来到技术面试这环节有两种情况&#xff0c;其一&#xff1a;这场技术面试可能就是一个面试官KPI面试&#xff08;就是面试工作量&#xff0c;这个面试你是不可能过。&#xff09;如今的就业环境下&#xff0c;人力资源部门也是有考核指标。如果遇到这样的面试你就放平心态…

NLP实践项目1——判断推文的负面情绪

数据来源&#xff1a;https://datahack.analyticsvidhya.com/contest/linguipedia-codefest-natural-language-processing-1/?utm_sourceword-embeddings-count-word2veec&utm_mediumbloghttps://datahack.analyticsvidhya.com/contest/linguipedia-codefest-natural-lang…

FPGA开发时,什么情况下使用BRAM,什么情况下使用DRAM

DRAM&#xff1a;Distributed RAM&#xff0c;DRAM是用逻辑单元拼出来的。 BRAM&#xff1a;Block RAM&#xff0c;BRAM是fpga中定制的ram资源。 较大的存储应用&#xff0c;建议用block ram ; 零星的小ram&#xff0c;一般就用distributed ram。但这只是个一般原则&#xff0…

反射、动态代理、SPI机制在RPC框架中应用

Java反射的理解 Java 反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类中的所有属性和方法&#xff0c;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性&#xff1b;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语…

Cesium基础-(Viewer)

1. Viewer 构造参数介绍 Cesium中的Viewer是用于显示和控制3D场景的核心组件。它提供了创建和管理3D地球模型、加载图像覆盖物、设置相机位置和方向以及处理用户输入等功能。Viewer可以看作是一个带有多种功能的可交互的三维数字地球容器&#xff0c;是任何Cesium应用程序的基…