Onboard ポッドキャストノート(2)o1 初体験 - EP62: OpenAI o1 およびLLM + 強化学習の新しいパラダイム

接着记笔记。我觉得Host Monica好厉害,不仅能迅速抓住核心,还能通过深入的追问引导嘉宾分享更多细节。

播客链接:https://castbox.fm/episode/id5557944-id743751924

关于o1的发布及初体验感受

Eric

真正提出并实现了“scaling up the inference time”这一概念,并将其应用于推理任务,带来了显著的提升。

这种方法对reasoning能力的增强展示了很大的潜力。具体来说,在处理任何推理问题时,o1的推理过程展现出了不同以往的特性。它能够在自身的思维和推理模式之间进行动态切换。例如,它会主动判断:

  • 是否需要逐步推理,以确保逻辑链条的完整性;
  • 或者是否需要批判性地回溯,找出之前推理中的错误并加以修正。

这些特性在之前的模型(例如GPT-4)中并不常见,尤其是“批判性回溯”的能力更是一个全新的亮点。

Kimi

我想引用UCLA数学教授Terence Tao的一句话来形容使用o1的感受,他曾说过:

The experience seems roughly on par with trying to advise a mediocre but not completely incompetent graduate student. (这感觉大致相当于指导一位中等水平但不完全无能的研究生。)

在我之前使用Cursor结合Claude 3.5的时候,经常会遇到这种情况:它生成的代码有bug,我需要运行一遍,拿到错误信息后再反馈给Claude 3.5,模型会回复“I'm sorry”并帮我修正错误。通过多次迭代,代码最终可以正常运行,但整个过程还是需要人类在loop中不断地进行纠错和反馈。相比之下,当我用o1的时候,它的表现更加平滑和流畅。大多数情况下,它能够直接生成一条通畅的解决路径,将代码写得更完整,减少了中间的错误修正环节。这背后涉及到一个关键问题:当代码出现错误时,o1是如何实现自我修正的。这种能力本质上与“reasoning token”的机制相关,也就是模型在推理过程中如何组织和调整自己的思考模式。

Cage

我用o1测试了一些复杂的旅行规划场景,比如跨国家庭旅行,包含机票时间、景点安排等细节。相比GPT-4,o1在细节处理上表现更贴心。

  • 时差考虑:能自动调整到达后的休息时间,避免直接安排高强度活动。
  • 本地化安排:准确考虑不同地区的博物馆开放时间。
  • 路程优化:合理规划车程时间,避免行程过于紧凑。

这些细节让我觉得像是请了一个专业旅行顾问。

对o1泛化能力的思考:

旅行规划这种开放场景比LeetCode题更复杂,能测试模型的泛化能力。o1的表现让我倾向于两种可能:

  1. 通用Reward机制:o1可能通过优化奖励机制解决了开放任务中的平衡问题。
  2. 跨场景推理泛化:它的强推理能力成功迁移到了旅行规划这种领域。

苏慧

在将强化学习应用于语言模型时,一个重要问题是 “力度”(granularity)的选择:Token 为单位、Sentence 或 Step 为单位。在 OpenAI 提供的 CoT 示例中,有一些语言特征让人联想到人类标注数据,例如:语气词与停顿:模型生成内容中包含类似“嗯”“好像不行”等停顿和语气词,仿佛是在模仿人类思考时自言自语的过程;分步推理的清晰性:模型像是以人为单位,逐步展开每个 reasoning step,这种条理性让生成内容更加自然且易于理解。

人类标注的影子这可能得益于一批高质量的 CoT 数据,其标注方式将推理过程切分得非常清晰,从而让模型更好地模仿人类的思考方式。可能以推理步骤为单位:每个 reasoning step 都能得到独立的反馈,便于奖励模型评估。在需要时,模型可以通过回溯重新优化推理路径,从而提高整体 reasoning 的质量。相当于他已经把这条路线走通了。从他的 CoT 示例中,我能够感受到模型确实是按照这样的一条清晰逻辑路线在进行推理,这让我觉得这个方法是有效且“聪明的”。这无疑会给很多人带来信心——沿着这条路继续探索,至少能够达到目前这样的水平。我觉得这是一个非常重要的进展。

关于逻辑推理过程的隐藏与展现

Eric

目前展示出来的逻辑推理过程似乎仍然比较有限,o1可能隐藏了哪些“思考过程”。这些隐藏的内容是人类可读的,还是更偏向人类不可读的内在机制?

在Chain-of-Thought(CoT)相关的研究方向中,有许多论文探讨过类似的问题。例如,研究发现CoT的长度越长,模型的表现往往越好;甚至通过添加特定的“think token”,也能让模型“思考”得更多,并因此提高其性能。但问题在于,这些“think token”背后具体代表的思考过程,对人类来说通常是不可见、也难以理解的。

如果模型的思考过程能够被更清晰地展现出来,那就不仅仅是记录每一步推理模式(例如“下一步我该做什么”),而是可以揭示更深层次的元思考内容。例如:

  • 为什么选择自我反思?
  • 为什么决定将一个问题分解为多个子问题?
  • 为什么要调整推理的模式,或者采用不同的逻辑路径?

这些决定背后的逻辑其实是更高阶的推理能力体现,这些更偏元思考的这种范畴。

Kimi

从o1的表现来看,最让我感兴趣的一点,是它是否在背后采用了显性的reasoning token,还是通过隐性的机制实现了这种推理能力。例如,我在观察o1处理数学问题时,它展示了一种类似coding任务的推理过程:

  • 它在解题时,会主动提出:“Actually, alternatively, let me consider this.”
  • 然后基于新的思路进行修正和调整,再进一步完善答案。

这种反复自我优化的能力非常迷人,因为它模拟了一种自我反思和自我精炼的思考过程。这让我感到惊艳的一点在于,o1的这种能力减少了Human-in-the-Loop (HITL)纠正错误的需求,让它的解决方案更加自动化和高效。

关于o1的不足之处

Eric

在实际使用中,观察到了一些o1当前表现得不够理想的地方。例如,有一个经典的测试问题是计算“strawberry”中有多少个字母。当尝试用类似的问题测试时,发现o1在这类计算上并不能达到非常高的准确率。

不过,我认为这类问题的表现不足是可以接受的。毕竟,如果仅仅把o1视作一个语言模型而不是一个完整的系统,某些特定任务,比如基本的算术运算或类似“计算器”功能的任务,并不一定需要LM来完成。所以,我更关注的,是它在内部推理模式上的表现。

Kimi

例如,有网友测试了o1一个很简单却常见的问题:“如何安装CUDA?”,o1思考了27个小时之久,结果回答是“I don’t know”。这一点反映出o1的训练数据虽然在某些领域非常深入,但在另一些领域的覆盖仍有不足。这种局限可能是因为o1的训练数据过于聚焦在特定方向,导致它主要在这些领域表现非常惊艳。

为什么大家总喜欢用“strawberry里有多少个r”来测试LM?

这类问题其实并不是为了强求LM必须能完全正确地解决。它的意义更多在于考察LM在处理简单的输入到输出的映射时的表现,比如是否能有效理解并处理问题背后的逻辑。用一个专门的工具去完成这类任务可能更自然,也更有效率。

相比之下,人类在处理这种任务时,只需要一两个示例就能很好地理解并解决问题,但对于LM而言,即使提供了两三个例子,也可能因为其学习机制的局限性而难以表现得同样好。这就让这个问题成为了一种简单但有效的测试方法,用于了解模型是否能处理基础的输入-输出映射关系。

更科学的评估方法: 当然,从更科学的角度来看,类似“strawberry”问题的测试对语言模型的推理能力评估是有限的。如果想深入了解模型的真正能力,可能需要用一些更复杂的任务来进行测试。例如:

  • 数学推理问题
  • 编程相关任务
  • 量子物理等高度抽象领域的问题

期待下一个版本解决的局限性

  1. 数据覆盖范围
  2. 数据评估方式更加可扩展
  3. 数据标注与奖励机制,OpenAI在这一领域的一些研究为我们提供了启发:
  • Process Reward Model (PRM):通过对每个子步骤而非整体序列的奖励机制,逐步优化模型的推理过程,而不是仅仅依赖最终的“对”或“错”来评估结果。

  • Let’s Verify Step by Step:强调在推理过程中逐步验证,进一步提升模型的精确性和可靠性。对于许多开放性问题(例如没有明确正确答案的任务),需要开发更细粒度的奖励信号,帮助模型在多样化场景中进行有效学习和优化。

训练o1模型所需的数据与难点

训练o1这样的模型,需要在数据获取和处理上与传统方法有所不同。回顾早期,OpenAI从Instruction GPT开始,用preference数据代替传统SFT数据,这一做法开创了一条新路径。

  1. Preference数据的高效标注:Preference数据相较于SFT数据更容易扩展,通过智能方式实现高质量、可扩展的数据标注,这是OpenAI的一个突破点。

  2. 细粒度奖励信号:初期的preference数据偏稀疏,仅对整个对话结果进行评价,而无法对中间推理步骤评分。后来,OpenAI提出“let’s verify step by step”,通过逐步验证中间步骤(PRM 800K数据集),提升了对推理过程的细粒度控制。

  3. 未来的挑战:

    • 标注效率:如何以可扩展的方式标注更多高质量数据。
    • 数据形式的突破:未来可能会找到比Preference数据更容易标注、同样高质量的数据,从而进一步推动数据扩展,实现10倍甚至100倍的Scaling Law增长。

人类标注与AI协作的平衡

目前,有两种主要方法:

  1. 直接偏好优化(DPO)之前分享过:DPO vs RLHF

    • DPO是一种简单直接的方法:人类标注数据直接用于训练,无需复杂的奖励模型或记忆结构。
    • 好处是避免了训练复杂奖励模型的负担,更适合快速迭代。
  1. AI辅助标注(RLAIF)

    • RLAIF通过现有的模型生成偏好数据,但它有“先有鸡还是先有蛋”的问题:模型需要足够强大才能生成高质量数据,而高质量数据又是训练好模型的前提。
    • 初期需要依赖人类标注,先训练一个基础的奖励模型,然后用AI逐步扩展数据。但这可能引发reward hacking,即AI在优化奖励时产生意外行为,例如过度关注安全问题却忽略应答质量。

挑战与未来方向:

  • Reward模型的关键性:训练一个可靠的reward模型是扩展RLHF或RLAIF的核心,但需要更多时间和研究来解决其潜在问题,如reward hacking。

  • 人类与AI协作:人类标注提供质量基础,AI协助扩展数据规模,两者需结合以实现高效且可控的训练。

旅游规划与数学/编程推理的区别

两种推理的核心不同在于问题类型知识基础数学/编程推理:问题明确,有固定规则(如逻辑公式、编程逻辑);推理过程基于符号运算和严谨的逻辑体系。旅游规划推理更依赖常识,需要理解世界运作的经验和泛化能力;比如下雨天卖伞的合理性,基于对场景和需求的直觉推导。

旅游规划更符合后者的Common Sense Reasoning,因为在旅行规划中,模型需要考虑人类需求(如舒适性、老人耐力),做出合乎逻辑的安排(避免周车劳顿),依赖领域知识(如景点开放时间、时差调整)。过去这种问题依赖复杂的agent pipelines和明确规则设计,现在模型通过prompt和对常识的理解,直接完成类似推理。这是对数学和编程之外更广泛推理能力的一种体现。

o1的reasoning能力提升的关键来源

数据质量与可用性:

  • 基础模型(如Wikipedia 和 Stack Overflow)已有高质量的Question to Answer和Question to Code数据,这些数据易于获取;数据集质量评估的手段(如页面点击量、用户 Upvote 数)让模型预训练和对齐过程更加直接,这种能力的强大表现并不意外。

  • 但长逻辑的reasoning数据并不常见。Reasoning 能力需要明确的定义,比如逻辑推理、因果分析、步骤化问题解决等,远超简单问答或代码生成。目前几乎没有优质的、公开的长逻辑推理数据集。即便是知乎上的科普内容或 AI/ML 问答,也只是片段化的推理数据,而非系统性的 reasoning 数据集。

生成与过滤:

  • 高质量的reasoning数据更多是合成生成出来的。
  • 通过迫使让模型显式地step-by-step推理,再结合ground truth(已知的正确答案)或一致性检查,筛选出好的推理数据。

具体方法:

  1. 数学题作为范例:
  • 设计如“3x + 5 = 100,求 x = ?”的题目,让模型逐步解答,并通过对 ground truth 的验证筛选出高质量的推理。
  • 若模型的 reasoning 步骤最终未能得出正确答案(如 x ≠ 31.67),则将该数据标记为“错误推理”。
  • 迭代生成和筛选:
    • 通过运行模型生成多个推理路径(如 100 次),利用启发式规则或奖励模型筛选最佳路径。
  • Self-Consistency 筛选:
    • 当 ground truth 不明确时,可以通过一致性验证筛选出逻辑最连贯的推理路径。

    不断精炼:类似于 PhD 学术研究,模型先从大量已有文献中吸收知识,尝试推理生成新的 idea,再通过多次 iteration 改进。

    在模型层面,可以通过以下过程实现:

    1. 让模型显式展示推理过程(例如一步步地输出其 reasoning)。
    2. 收集这些推理过程数据,去除低质量数据。
    3. 将筛选后的高质量数据重新返回模型作为训练数据,进一步 fine-tune。

    模型逐渐从“直接输出答案”转变为“展示推理路径”,并在路径优化的过程中强化其 reasoning 能力。

    数据形态与训练方法

    Kimi

    当前主流方法包括 SFT(监督微调)和 RLHF(基于人类反馈的强化学习)。两者各有适用场景:

    • SFT:适用于数据质量非常高的场景,但现实中很难生成足够高质量的数据集。
    • RLHF:更适合数据存在偏好的场景,通过对结果的相对偏好迭代优化模型。DPO 正在成为更泛化的形式,与 RLHF 方法的区别逐渐缩小。

    模型在初始状态下生成多个解答(A 和 B),通过偏好权重(如更倾向 A)调整模型。基于优化后的模型,重新生成解答(A' 和 B'),比较新一轮结果的优劣,继续优化。反复迭代,通过偏好数据和推理路径的改进,逐步提升模型的 reasoning 能力。

    DeepMind 的 AlphaGeometry 项目(之前分享过:《State of AI Report 2024》(1) - AlphaGeometry 、 合成数据、RAG)展示了在数学推理领域的潜力,证明特定领域的表现可以达到更高水准。AlphaGeometry产生数据是不是也可以用于这个o1这样的模型的训练。

    一个强大的基础模型是扩展领域模型能力的前提。如果用一个更specified reward model来训练, 如果你可以训练一个领域特定模型, 如果你觉得这个数据的quantity是好的话, 你完全可以用他的数据来反补用于提升通用模型。

    Eric

    o1 模型 Reasoning 表现的两大关键:数据与强化学习

    o1 的 reasoning 能力或许来自于大量关于推理偏好的数据,即用于评估和比较不同推理步骤的数据。需要构建一个专门的 reward model,用于评估哪些 reasoning step 更加 make sense、更加高效,甚至更加 optimal。一旦有了一个优质的 reward model,生成合成数据将变得更加高效。MCTS(蒙特卡洛树搜索)等方法:基于 reward model,对不同路径进行探索,生成更优质的推理数据。模型生成的数据质量可能高于人类。人类在生成 reasoning 数据时,往往存在逻辑不清的现象,而模型在逻辑性上的表现更加稳定且可控。合成数据可以规模化生成,为大模型提供持续进化的基础。

    传统方法(如 SFT 和 Instruction Tuning)在推理任务中局限性明显,SFT 强调从人类生成的数据中学习,但人类推理本身可能并不 optimal;Instruction Tuning 偏重任务对齐,而非提升推理能力。当前趋势更倾向于通过 RL 让模型自主探索推理路径,模型通过尝试不同推理路径获取反馈,逐步优化自身的 reasoning 逻辑;人类只需提供最终结果的好坏,而不需要手动设计复杂的推理逻辑。模型可以通过自身的探索,发现甚至超越人类设计的推理方式,就像 AlphaGo 通过自我对弈产生了超越人类顶尖棋手的策略。RL 的潜在问题是Reward Hacking。

    模型可能会通过发现 reward model 的漏洞(trick)来提升奖励,而非真正优化推理能力。为了解决这一问题,需要设计更强大的 reward model 专门用于 reasoning,帮助 LLM 主动发现更优的 reasoning path,并在探索中自我优化整个推理过程。目前业内一个非常常见的模式是,AI 已能够替代人类设计许多模型架构或工作流程,并实现自动化优化。我认为这是一个非常典型且有代表性的例子。

    是否需要 multistep data

    一个足够优秀的 reward model 能对每个 reasoning step 或整体推理路径进行可靠的评判。在这种情况下,multistep data 的作用不再是直接教模型“怎么推理”,而是通过 reward 提供反馈,激励模型自主优化推理路径。

    如果 reward model 对每个 reasoning step 的评估非常可靠,那么 dense reward可以显著提升强化学习训练的效果。但如果 reward model 足够强大,可以可靠评判整体推理路径(而非单独的步骤),那么对 dense multistep data 的依赖会降低,因为模型可以通过整体路径的反馈直接优化。

    o1 模型给人的启示是,推理能力的优化并不需要 SFT 去显式告诉模型该怎么解题,也不需要人类预设具体的推理步骤:比如在解“3x + 5 = 100”时,不必让模型学习传统步骤(如先计算 100 - 5,再除以 3),而是允许模型探索其他可能更高效或创新的路径。重点是对每一个 reasoning step 或整体路径进行合理的评估,通过设计合理的 reward model,鼓励模型发现最佳的推理路径,而不是直接干预模型的推理方式。