专栏名称: 斌叔OKmath
橙旭园CEO 教育博主 教育部双创优秀导师。前微软员工。橙旭园儿童编程创始人。
目录
相关文章推荐
中国上海国际艺术节  ·  101艺场 | 敦煌古韵绘童心,艺术传承育英才 ·  昨天  
LCA  ·  结冰的天空 ·  2 天前  
LCA  ·  我必须,形单影孤 ·  2 天前  
塔罗牌解忧馆  ·  注意了,你对另一半的掌控过度了吗? ·  2 天前  
51好读  ›  专栏  ›  斌叔OKmath

OpenAI 的 o1 究竟是如何工作的?第 2 部分。以下是我-20241016140544

斌叔OKmath  · 微博  ·  · 2024-10-16 14:05

正文

2024-10-16 14:05

OpenAI 的 o1 究竟是如何工作的?第 2 部分。以下是我最近阅读的关于 LLM 推理的论文和摘要列表。全部基于学习。

0) STaR:自学推理机网页链接

归零点。不必总是提示 CoT,而是将其融入默认模型行为中。给定一个(问题,答案)对的数据集,手动整理一些 CoT 跟踪并将它们用作少数样本示例,以生成(理由,答案)三元组(给定一个问题),用于其余数据集(“引导推理”)。对(问题,理由,答案)三元组进行 SFT。对此进行多次迭代,即收集数据重新训练并继续从该新策略中进行采样(在实践中,我观察到人们使用约 3 次迭代)。缺点:只能从正确的三元组中学习。

1)V-STaR: 网页链接

STaR 的变体。收集正确/不正确的样本。不正确的样本可用于通过 DPO 训练验证器 LLM。在推理过程中,还使用验证器对各代进行排序。

---
[建议阅读下文 2)]
让我们一步步验证一下: 网页链接

他们训练了一个过程监督奖励模型 PRM,并展示了它相对于结果监督 RM - ORM 的优势(即,不仅仅是传递一整代并询问它有多好,而是传递单独的 CoT 元素;更精细的分辨率)。

数据收集:雇用人工注释每行分步解决方案(数学问题)——成本高昂!!他们获得了一个精选的样本列表,这些样本被自动选为“令人信服的错误答案”解决方案——一种硬样本挖掘形式。
---

2)提高 LM 中的数学推理能力: 网页链接

提出 OmegaPRM - 一种使用 MCTS(AlphaGo 风格?是的,论文来自 DeepMind)收集的数据进行训练的流程 RM。作为收集 PRM 数据的策略,他们使用了 SFT-ed Gemini Pro(从 Gemini Ultra 中提取的指示样本)。Gemini Pro 与 OmegaPRM 加权多数投票相结合,在数学基准上取得了不错的改进。仅适用于有黄金答案的情况,不适用于开放式任务。

3)超越答案: 网页链接

他们不是增加 SFT 数据集中的样本数量(类似 STaR),而是通过向现有 (q,a) 元组附加反射来增加/扩展样本。反射 = 替代推理和后续行动,如类比和抽象)。与 STaR 互补。

4)安静-STaR: 网页链接

使用 RL(强化方法)并选择从思想中分支出来的理论,以增加正确答案的可能性,然后对其进行训练。添加新的思考开始/结束标记,以及用于将理论流与默认流混合的 MLP。有趣的想法,我觉得由于其复杂性,它无法通过 Bitter Lesson 的筛选。

5)扩展 LLM 测试时间计算: 网页链接

他们首先估计用户查询的难度,将其放入 5 个难度箱中的一个(我认为他们需要 2048 个样本!)。然后根据查询的难度,他们部署各种技术来估计最佳结果。

他们尝试了两类方法:搜索需要 PRM 验证器)和修订(据我所知,他们只进行了内部比较,即他们没有比较搜索与修订)。

对于搜索,他们尝试了最佳 N 加权、束流和前瞻。

对于较简单的 Q,最佳方法为 N,之后则是光束(前瞻永远不会有回报)。对于修订,他们首先对由 0-4 个不正确的中间步骤组成的样本进行 SFT,然后是正确的解决方案(以教会它自我纠正)。随后,他们测试按顺序应用它还是并行应用它。根据难度箱,存在一个“最佳”顺序与并行比率。

6)特工Q: 网页链接

真正的主要思想是使用 MCTS 进行测试时间搜索(根据他们获得的性能,而不是根据论文作者)。

第二个核心思想是利用“引导式 MCTS”(由 LLM 评委引导)收集的成功和不成功轨迹,通过 DPO 改进基础策略,从而得到“Agent Q”。Agent Q + 测试时间 MCTS 可产生最佳结果。

注意:它们在非常特定的环境中运行 - 网络,并专注于一项狭窄的任务:预订餐桌。

7)通过 RL 训练 LM 进行自我纠正: 网页链接

他们介绍了 SCoRe,一种多轮(多轮=2)强化学习方法。他们表明 STaR 方法在多轮设置中无法改进(由于编辑距离直方图测量的行为崩溃;即 STaR 模型不愿意明显偏离其第一个解决方案)。

训练分为两个阶段进行:

1)训练基础模型,使其在第二次尝试时产生高奖励响应,同时强制模型不要改变其第一次尝试(通过 KL div)

2)共同最大化两次尝试的奖励;为了防止崩溃为非自我纠正行为,他们通过添加额外的惩罚来进行奖励塑造,如果模型在第二次尝试中获得更高的奖励,则奖励模型,并严厉惩罚从正确->不正确的转变。

---

现在就到这里,那么 o1 是如何工作的呢?

没有想法,但可能涉及上述想法+大量的计算和规模(数据、参数)。

如果我错过了一篇重要的论文,而该论文不是上述想法的明显插入,请告诉我(除非尽管如此,它仍然是开创性的? :)) 。