OpenAI o1 self-play RL 技术路线推演

知乎:曹宇

链接:https://zhuanlan.zhihu.com/p/720106482

OpenAI的self-play RL新模型o1最近交卷,直接引爆了关于对于self-play的讨论。在数理推理领域获得了傲人的成绩,同时提出了train-time compute和test-time compute两个全新的RL scaling law。作为领域博主,在时效性方面肯定卷不过其他营销号了,所以这次准备了大概一万字的内容,彻底深入分析并推演一遍其中的相关技术细节。

图片

o1,而今迈步从头越

首先要说一下,o1是一个多模态模型,很多人包括 Jim Fan 都忽略了这一点:

图片

因此他继续叫做o,作为omni系列是没有任何疑问的。只不过这次发布是过于低调了,很多人都没有注意到这个拉爆了所有其他多模态框架的78.1分。

图片

那么这个o1,说明这个技术路线就是一个全新的模型pipeline弄出来的了。作为一个全新的多模态Self-play RL模型,首秀的成绩还是相当不错的。虽然现在评价该self-play方法是否能够泛化至多模态还为时尚早,但是至少语言层面的Reasoning能力进化没有以牺牲其他模态的能力作为基础。

图片

另外这个模型official name叫做OpenAI o1,而不是gpt-o1,更能体现出这在技术路线上极有可能是有与gpt4系列的路数稍有不同的新玩法。在JS离开了之后,颇有雄关漫道真如铁,而今迈步从头越 的豪迈之情。要是模型再不出来, 这个code name梗估计都要被玩烂了。

We have found that the performance of o1 consistently improves with more reinforcement learning (train-time compute) and with more time spent thinking (test-time compute).

那么o1为什么有资格能够获得一个全新的系列名字,和这句最关键但是没有任何信息量的发布消息还是非常相关的。o1的性能能够在两个阶段,通过训练时的强化学习(注意这里是RL,没有了HF,是真DeepRL)以及推理时的思考获得稳定的性能提升。

换句话说:预训练的scaling已经被吃光了,主要的收益要考post train去拿了;o1表明在特定领域,post train的收益依然存在,不过要拿到这种收益光靠SFT的token level supervision已经不够了。甚至光靠训练时的scaling也不够了,在推理时scaling也是有必要的。(推理卡厂商笑嘻嘻)

草莓去哪儿了,o1到底怎么work的?

草莓这个梗最早是因为人们测试GPT系列的时候,发现了他没有办法数对草莓这个单词里面的r的数量。坊间传闻,OpenAI有了一个新的模型可以通过self-play的方式提升模型Reasoning的能力,从而数对r的数量。于是这个名叫草莓的模型就开始在网上不断发酵,并在Sam Altman的各种有意无意的暗示中升温。终于在屡次炒作和跳票,o1还是没有否认自己和草莓 的关系。

图片

oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step

Use the example above to decode:

oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz

这个例子说明了o1的推理能力:文中prompt的内容是给了一个密文到明文的映射过程,同时要求LLM对于给定的密文进行转译。转译的正确结果应该是:

THERE ARE THREE RS IN STRAWBERRY

中间的逻辑也相对比较隐蔽:每两个字母组成一组,比如oy在一起,取字母表顺序的均值,'o' (15) + 'y' (25) = 40,40再除以2得到20,对应字母t。以此类推,可以解码出来对应的内容。

o1是怎么实现这样的能力呢,纯粹从推理态来看是inference time thinking做到的,就是在回答用户问题之前,模型会陷入一个长考的过程。逐步思考,提出假设,并且反思,以实现Reasoning能力。

图片

这里面的thinking流程是模型和其他大模型最大的不同,在这中间经历了相当长时间的长考阶段。长考的内容,目前在ChatGPT的客户端中可以做了隐藏(防止被蒸馏),不过在官网上这一段思考的过程被呈现了出来,一共约2950词。我把内容放在了附录里面,然后总结了一下其中的思路,大致一共分为9步:

  1. 观察密文和明文的关系,发现每个密文单词的字母数是对应明文单词字母数的两倍。

  2. 推断每对密文字母对应一个明文字母。

  3. 确定解码方法:将每对密文字母的数值(A=1, B=2, 等)相加后取平均值。

  4. 将平均值转换回字母,得到对应的明文字母。

  5. 按照这个方法,将密文分组为字母对。

  6. 对每对字母应用解码方法,得到明文字母。

  7. 将解码后的字母组合成单词,再将单词组合成句子。

  8. 解决过程中遇到的问题,如处理不成对的字母。

  9. 最终解码出完整的信息:"THERE ARE THREE R'S IN STRAWBERRY"(草莓中有三个R)。

这个题目的难点在于,大模型要不断地给出假设并探索,在遇到和假设不同的时候就需要反思并进一步提出反思。目前除了o1的大模型,都没有对应的能力进行如此长时间的思考,并最终给出答案。虽然不清楚背后实现的具体逻辑,但是从目前已有的接口来看,o1至少已经能够实现:提出假设,验证思路,反思过程这三种主要的逻辑推理能力。并且这些能力的结合是在完全没有人类参与的情况下完成的,提升了在各类数理类benchmark上的效果。

图片

表面上来看,这类思路和CoT的以推理范式推动模型主动反思的思维链模式没有本质区别,甚至前段时间的大乌龙Reflection Tuning也和o1有一部分异曲同工之妙。除了官宣o1是正经RL训练的消息之外,这类SFT为主的teacher forcing范式学习并不像是这一代OpenAI的中坚力量的技术审美。说到这里,不得不把时间线拉长去看一看self-play LLM的主创的心路历程。

大语言模型scaling law的担忧

图片

你会玩德扑嘛?

很多中文LLM圈的人估计是第一次见到这个人,Noam Brown,OpenAI reasoning 方向的新生代力量。但是对于RL圈来说,Noam是一个老人了,他的成名之作是德扑AI,外交官游戏AI等非完美信息博弈领域。为什么要看他的过往呢?因为对于一个顶级研究者来说,他的研究思路会不断进化但是大概率不会突变。OpenAI从John Sculman和Jan Leike走之后,老的RL正统传承目前严格来说应该在A家了,OpenAI的未来方向更多的是这些天才年轻人决定的了。

viv学习策略 优点 缺点 代表
Behaviour Clone Expert 1. 更像人、专家,并且有人的偏好
2. 可以通过单agent的方式训练
3. 当数据量无限多的时候可以取得完美表现
1. 实际能力由于数据分布有偏
2. 无法探索出人类行为之外的行为
3. 无法利用错误数据
各种游戏陪玩AI,LLM SFT
RLHF 1. 可以对齐人类偏好及价值观
2. 能力利用错误数据
3. 数据利用效率高
1. 偏好建模困难,容易hacking
2. 训练成本高
ChatGPT
Self-play 1. 绝对强度更高,甚至超越最强人类、专家
2. 可以实现双人零和博弈的最优
1. 有时候无法理解人类,行为不像人
2. 训练及推理成本极高
AlphaGo,OpenAI o1

大语言模型的主要学习策略从RLHF的巨大成功之后,也出现过摇摆。以next token prediction作为代表的Behavior Clone思路主要的手段是预训练和SFT为主的,主要强调从海量知识中自监督学习加上专家数据的示教。但是这一条路径遇到了很大的困难,我们如今已经几乎耗尽了几乎所有互联网上所有的语料,但是极强的智能也没有出现。同时SFT作为Behavior Clone的上限是比较低的,大多数情况下需要堆叠大量高质量语料,成本几乎成为了垂直领域难以负担的问题。更大的问题在于SFT几乎无法囊括负例的示教,对于trial-n-error的自我博弈智能来说,只能利用其中比例极低的正例。所以祖师爷John Schulman的PPO加上RLHF力挽狂澜,把GPT-3拉出黑暗,直接进化到InstructGPT,用人类反馈进行建模引爆了整个领域。

但是我们现在又到了一个十字路口,大模型看起来好像是一个死记硬背的书呆子,推理能力迟迟没有见到突飞猛进的变化,我们都在期望self-play的出现:

大模型Self-play能否通过部分领域示教数据,模型通过自我博弈持续提升策略?

这里面需要有两个先决条件:

图片

这张图来自于Noam的演讲[1],作为演讲的最后一部分,他大概展望了LLM中self-play的挑战与机遇。先决条件在于:Generator 和 Verifier 都要足够强。

### 自博弈强化学习概述 自博弈(self-play)是一种特殊的强化学习训练机制,在这种机制下,代理通过与不同版本的自己互动来提升决策能力[^1]。这种方法允许代理逐步改进策略,而无需外部对手或环境提供标签数据。 #### 实现方法 在实践中,自博弈通常涉及两个主要组件: - **初始策略初始化**:创建一个基础模型作为起点。 - **迭代对抗过程**:让当前最优版与其他历史版本相互竞争,收集交互产生的经验用于更新参数。随着轮次增加,整体性能不断提高。 具体来说,AlphaGo Zero展示了如何仅依靠自博弈达到超越人类水平的表现。其核心算法结合了蒙特卡洛树搜索(MCTS)和深度神经网络(DNN),能够在围棋游戏中不断自我挑战并优化权重。 ```python import numpy as np class SelfPlayAgent: def __init__(self, model): self.model = model def play(self, opponent=None): state = initial_state() while not game_over(state): action = choose_action(state, self.model) if opponent is None: next_state = apply_move(state, action) reward = evaluate_position(next_state) train_model(self.model, (state, action, reward)) state = next_state else: # Play against another version of itself during training phase. pass def main(): agent = SelfPlayAgent(initialize_network()) for episode in range(num_episodes): agent.play(opponent=agent) if __name__ == "__main__": main() ``` 此代码片段简化地描述了一个基于自博弈框架下的智能体类定义及其基本操作逻辑。实际应用中还需要考虑更多细节如状态表示、奖励设计等。 #### 应用场景 自博弈广泛应用于多个领域,特别是在那些具有明确规则但难以穷尽所有可能性的游戏环境中表现出色。除了经典的棋盘游戏外,还包括但不限于以下几个方面: - 多智能体系统中的合作与竞争模拟; - 对抗性任务如网络安全攻防演练; - 需要长期规划的任务自动化处理,例如自动驾驶汽车路径选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值