热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >OpenAI o1: 合成数据与推理搜索

OpenAI o1: 合成数据与推理搜索

来源:互联网 更新时间:2026-08-27 14:45

趁着昨天 OpenAI o1 的发布,难得从每日忙碌的产品研发中抽出点时间来,学习跟进一下最近非常火热的 LLM 新范式。

背景简介

先推荐阅读一下拾象的《LLM 的范式转移:RL 带来新的 Scaling Law》,这篇文章很好地科普了基于 RL 的新 LLM scaling 范式。

谈到 Scaling Law,之前我们更多指的是预训练阶段通过堆算力、数据和模型参数来提升智能水平。但最近一年,这条路碰到了不少瓶颈:

  • 算力这块,超大规模训练集群本身有不少工程挑战。比如 LLaMA 3 的论文就提到,他们的万卡集群每两小时就会有坏卡故障,想进一步拓展到 10 万卡规模,难度可想而知。
  • 数据方面,文本数据到了 10-20T Token 量级后,想再在数量上往上跳一个台阶,难度明显增加。尤其是能带来“增量收益”的复杂推理数据,更加稀缺。

所以大家普遍有种感觉:自 GPT-4 发布后,基本没再见到那种让人惊艳的“魔法时刻”——模型能力大幅提升。不过,Claude-3.5 和 OpenAI o1 逐渐展现出一条新路,也就是拾象所说的 RL 带来的新范式。RL 这个定义很宽泛,在 OpenAI o1 里具体是如何体现的呢?可以看看他们的这张图:

左图说的是训练时的 scaling。面对数据量的挑战,结合 RL 的核心做法就是“合成数据”。

如上图所示,我们可以通过 LLM 生成一系列回答,再利用 LLM 自身作为 reward model 给回答打分,挑出质量高的作为新的训练数据(这里是偏好数据)。大家普遍认为,Claude-3.5 在数学、代码等方面的能力大幅提升,很大程度上就归功于这个方法。尤其是数学和代码,比较容易形成更精确的 reward 计算(可以类比 AlphaZero)。

右图讲的是推理阶段的 scaling。最初的形式可能就是 Jason Wei 提出的思维链(CoT),后来的 Tree of Thoughts (ToT) 则是其拓展,跟 AlphaZero 中的蒙特卡洛树搜索(MCTS)思路很像。

结合官方给的这张图,大家对 o1 的一个直观理解就是:它自带了多轮隐含 CoT 的模型。当然,背后的方法可能复杂得多。这里的一个关键点仍然是我们之前提到的、用于筛选数据的 reward model,它可以帮助在 test time 评估多个候选生成结果以及推理步骤。

总结一下,reward model 确实是核心。在合成数据时,它能帮忙判断数据质量;在 test time search 时,它同样用于评估生成质量,决定是继续探索还是及时剪枝。

问题

这两个应用 RL 的方式看起来挺直观,但背后还是有很多有意思的问题值得深挖:

  • 模型自己生成数据给自己训练,真的能不断提升,甚至超越人类能力吗?
  • 在数学和代码之外的领域,如何构建有效的 reward model?
  • 推理时进行搜索优化,有哪些提高效率和效果的方法?
  • 怎么平衡训练时 scaling 和推理时 scaling 两者的算力投入?

带着这些问题,再回看一些相关工作。当然,个人视野有限,可能遗漏了不少重要的工作。

Synthetic Data

Reinforced Self-Training (ReST) for Language Modeling

这是一篇比较早期的讲合成数据应用于模型训练提升的文章,方法很直观。

  1. 主要分为两个阶段:Grow 阶段,让模型生成多个输出预测。
  2. Improve 阶段,利用 reward model 对上面的输出数据进行过滤,选出高质量的来做微调(fine tune)。
  3. 微调时会混入原始数据,跟 RLHF 类似,防止模型跑偏或者坍塌(collapse)。
  4. 这篇文章做的是翻译任务,用 Metric X 作为 reward model,感觉有 overfit 的风险。
  5. 多轮迭代能持续提升能力吗?从论文结果来看效果不错,不管是 grow 一次、improve 多次,还是多次 grow,都能持续提升。
  6. RL 训练之后的多样性如何?文中提到仍然可以结合 best-of-N 获得 test time 的提升。
  7. 这个策略看起来比较简单,但如果应用于数学/代码等领域,会不会有 reward hacking 的问题?后续有不少文章指出了这一点。

Self-Rewarding Language Models

前面合成数据的示意图就来自这篇文章,也是相当知名的一篇工作。

  1. 跟 ReST 做 SFT 不同,这里是使用模型自己生成内容,自己打分形成偏好数据集,进行 DPO 训练生成下一代模型。
  2. 实验跑了 3 轮,有持续提升,但继续跑效果可能会饱和。值得留意的是,这里的验证用的是另一个模型(GPT-4)和人工评估,而不是让模型自己评判。
  3. 除了任务本身的微调数据外,额外准备给任务打分的评估微调数据,会对 LLM-as-a-Judge 的效果有额外提升。
  4. 任务能力的提升也带来了评估能力的提升,这点很有意思。
  5. 文章吐槽了前面提到的 ReST 方法——仅添加正面样例来做 SFT,在他们场景中没效果,偏好数据才有用。
  6. 语言模型评估时往往倾向于更长的回答,这可能是一种 reward hacking 的表现。另外也有多样性丧失的风险。

Training Large Language Models for Reasoning through Reverse Curriculum Reinforcement Learning

这也是讲合成数据结合 RL 的,重点在 reward model 和数据构建的创新上。

  1. OpenAI 之前发过文章说,面向过程的 reward model(PRM)效果要显著优于面向结果的 reward model(ORM),但面向过程需要大量的人工标注。同样,RLHF 也很贵。
  2. 这篇文章提出一个简单却很有效的办法:只用面向结果的 reward model,但巧妙构建出难度循序渐进的多步推理数据,从而实现近似面向过程的 reward model 的效果。
  3. 具体方法是:让模型生成多步推理和最终结果,然后用面向结果的 reward model 找出那些正确的。假设正确的推理过程有 5 步,我们可以分别构造“已知前 4 步,推理最后 1 步”、“已知前 3 步,推理后 2 步”……以此类推,形成难度逐渐提升的训练数据。这些数据都能通过面向结果的 reward model 来给出 reward,从而提升了奖励信号的密度。
  4. 他们也用 PPO 进行训练优化,在具体训练时需要注意数据混合,别让大量简单推理问题把模型带偏了。RL 里的“玄学”还是蛮多的。
  5. 另外一篇工作《Dense Reward for Free in Reinforcement Learning from Human Feedback》,虽然讲的不是合成数据,但目标类似——通过 reward model 的 attention 来构建更丰富的 reward signal。

Easy-to-Hard Generalization

合成数据能否实现“飞升”,是个很有意思的问题。一开始想到的是 OpenAI 的 weak-to-strong,但读了下发现那主要是用于 scalable alignment——用弱模型来对齐下一代的强模型,对齐后强模型能力会下降,但确保了安全。而我们更关心的是:模型在简单问题上训练,能不能泛化到解决困难的问题。

Easy-to-Hard Generalization: Scalable Alignment Beyond Human Supervision

在 AlphaZero 这类游戏环境中,模型的确可以通过完全自我探索、生成数据、训练提升来达到超过人类的水平。但对于数学这类更难定义 reward 的领域呢?

  1. 这篇文章主要研究模型在简单问题上的训练,能不能泛化到解决更难的问题,主要通过数学题进行实验。实验设定比较复杂,简单来说,一方面是验证在简单问题上做 SFT 能否解决复杂问题;另一方面是在简单问题上训练 reward model,看能不能在 test time 和 RL 中提升效果。
  2. 一个直觉是:困难的数学问题,经过拆解后,每个推理步骤是简单的。如果每个中间步骤都正确,那么大概率也能解决困难问题,所以可能存在从简单到困难的泛化。
  3. 文章做了不少实验,选几个有意思的结论:只在简单问题上做 SFT,确实能解决一些困难问题,效果与在全量问题上做 SFT 相差不大。
  4. 只在简单问题上做的 reward model,也能大幅提升模型的整体效果(test-time search),尤其是在困难问题上。这里的泛化效果比 SFT 更明显。
  5. 混合面向结果和面向过程的 reward model(OPRM),效果更好。
  6. 在 Test time search 中,带权重的投票效果最好,不过这里没有比较更复杂的 MCTS 等。
  7. 进一步用 RL 方法来提升模型,效果排序是 PPO > DPO > ReST。而且,仅在简单问题上训练的 SFT model + reward model,也能超越在所有数据上跑 RL 的效果。
  8. 可惜文章没有进一步研究 reward model 能不能像 SFT model 那样,通过合成数据继续提升。

The Unreasonable Effectiveness of Easy Training Data for Hard Tasks

上一篇文章提到,在简单问题上训练的效果能泛化到困难问题,甚至比用了困难数据训练的模型效果还好。这篇文章也给出了类似的结论:

  1. 当困难问题的数据难以收集或噪声较大时,通常用简单问题的数据训练就能有很好的效果。
  2. 如果要解决的困难问题是大学水平的 STEM 问题,用多简单的数据来训练模型能达到比较好的效果?结论是:初中水平的问题表现就挺好了。
  3. 文章也提到,他们担心用的模型里已经见过评估集里的困难问题了。不过《Physics of Language Models》(强烈推荐学习)里做了限定更严格的实验,证明了这种泛化能力的存在。

Small Language Models Need Strong Verifiers to Self-Correct Reasoning

这是合成数据与 test time search 交叉的一个研究。

  1. 大模型默认的自我纠正能力都不太好,但可以通过训练来优化。
  2. 让模型生成回答,自己进行 verify,尝试 recover,把那些成功的案例作为训练数据去训练 refiner,这样就能有更好的 test time search 能力(从错误中恢复)。
  3. 很多人都提到“判别”比“生成”容易,但这篇文章的结论是:verifier 是整个环节中最关键的,而且往往需要更大的模型来实现提升。
  4. 在合成数据实践中,reward model 的能力需求是不是会比 generator/actor 更高,且更难以提升?

Test-time Search

Large Language Monkeys: Scaling Inference Compute with Repeated Sampling

一篇非常知名的讲 test time search 提升模型效果的文章。

  1. 使用比较弱的模型生成非常多的候选答案(candidates)。
  2. 使用 verifier 来选择最终答案,比如单元测试、证明检查(Lean)、多数投票等。
  3. 如果有精确的 verifier,最终效果提升与生成 candidates 的数量呈 log-linear 关系。
  4. 相比精确的 verifier,多数投票、reward model(比如 ArmoRM-Llama3-8B-v0.1)等往往在几百个 candidates 时效果就饱和了。这说明 reward model 本身也需要 scaling。可以参考最新的 RewardBench Leaderboard。
  5. 最大化覆盖范围时,不同问题最适合的模型也不一样,有时 8B 模型最好,有时需要用 70B 模型。
  6. 未来方向:如何提升模型输出多样性,多轮交互(ReAct、树搜索等),从之前的尝试中学习。

An Empirical Analysis of Compute-Optimal Inference for Problem-Solving with Language Models

一篇类似的研究 test time search 策略和效果的文章。

  1. 同等计算量下,小模型往往效果更好。但由于各种 test time search 的效果会饱和,饱和后就需要引入更强的模型了。
  2. 普通的 MCTS 算法(ToT 也算一种)效果不好,因为经常没法达到完整的 solution。
  3. Best-of-N、加权投票等也都需要 reward model。他们基于 Llemma-34B 微调了一个 process reward model。
  4. 他们还设计了一种新的树搜索算法,把预算(budget)根据 reward 大小分配给不同节点:有希望的节点子孙更多,当完成的 solution 增多时,预算就相应减少。
  5. 在他们的实验中,新搜索算法虽然表现好,但仍然是会效果饱和的。也就是说,不能在 test time 投入无限算力来达到完美结果。

Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters

研究如何平衡在训练阶段和推理阶段投入的算力,以达到总体最好的效果。

  1. 第一个维度:利用 verifier 来搜索好的解法。比较不同的 test time 搜索算法,包括并行采样(parallel sampling)、束搜索(beam search)、前瞻搜索(look ahead search)。
  2. 预算少或问题困难时,beam search 效果好;预算多时,暴力采样效果最好。look ahead search 总体来说表现不佳,与上一篇文章结论一致。
  3. 需要使用面向过程的 reward model 来实现 beam search 等复杂搜索算法。
  4. 另一个维度:让模型自我修复。微调模型,使其能在推理过程中纠正自己的错误。需要把正确结果与相似的错误答案配对,让模型学会从错误中恢复的能力。可以发现,这两个维度跟 o1 那两张图很相似。
  5. 总体来说,sequential 的多步推理效果比多个独立的多步推理效果好,尤其是对于简单问题。
  6. 算力用在 pre-train 阶段好还是 test-time 好?对于困难的问题,或者推理负载(inference load,比如大规模用量)比较高时,把更多算力放在 pre-train 阶段更好。
  7. test time 优化的数据也可以反哺 pre-train。

Retrieval Augmented Thought Process for Private Data Handling in Healthcare

一篇比较有趣的 RAG 结合 MCTS 的文章,应用于医疗健康领域。领域特定的 reward model 仍然十分关键,不过文章中没有比较 MCTS 与一些更简单搜索算法的效果。

Reward Model 畅想

OpenAI 在文章里展示了 o1 相对于 GPT-4o 在各领域的提升,其中也包括像法律、公共关系这类偏文科的专业领域。这是否意味着他们已经找到了构建通用 reward model 的路径?这里有几个猜测:

  • 如果借用张俊林老师的思路,把语言模型的能力拆解为语言理解、世界知识、逻辑推理三个维度,那么即便是文科领域的问题,甚至创意写作这类任务,是不是也会随着逻辑推理能力的提升而水涨船高?
  • 另一种思路是通过“元学习”,结合 LLM 的综合能力来构建通用的 reward model,输出 correctness、helpfulness、safety 等通用标签。这种方法能否随着 scaling 达到通用 reward model 的效果?
  • 或许也可以从人类专家的经验开始 bootstrap,一个个构建垂直领域的 reward model(这可能是目前最可行的),并找到一种让它们后续自我提升的方法。不知道是否有关于 reward model 自我提升、scaling up 的相关研究。
  • 所谓的隐性知识如何包含在 reward model 中?这或许是下一步通过多模态能力来拓宽模型的感知范围,然后才能转化成更丰富的 reward signal。比如跟人交谈时的语气感知,面部表情判断是否是正向反馈等等。
关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc