OpenAI训练了一个自博弈(Self-play)模型o1-IOI,该模型在2024年国际信息学奥林匹克竞赛(IOI)中获得了213分,超过49% 的人类选手(即大模型大约处在人类水平的中间状态)。OpenAI以o1为基础进行初始化,并进一步训练以提升编程技能。o1-IOI在2024 IOI中与人类参赛者在相同条件下竞争。它有十个小时的时间来解决六个具有挑战性的算法问题,并且每个问题允许提交50次。
针对每个问题,IOI模型系统给出了很多候选的提交,根据特定的策略从中选出50个进行提交,这种策略是基于在IOI公共测试用例、模型生成的测试用例(如同生成代码和测试代码之间就是一种博弈)和一个学习得分函数上的表现来决定的。如果IOI模型系统选择随机提交,平均只会得156分,这表明在竞赛限制下,这种策略的价值带来了60分(213-156=57)。
在放宽提交限制(不受50次限制)后,我们发现模型性能显著提升。当每个问题允许10,000次提交时(相当于进行了充分的自博弈),模型得分达到362.14,超过了金牌门槛(即几乎超过了所有人类选手),即使没有任何测试-时间选择策略(test-time selection strategy)。
这是不是也验证了我在《软件工程3.0的解释》6)中的观点?
最后,OpenAI模拟了由Codeforces在线编程竞赛(全球最强的,竞赛题目涵盖了数据结构、算法、数学等),以展示该模型的编码能力。这次严格遵循比赛规则,允许10次提交。GPT-4o获得了808积分的Elo评级(Elo评分具有较强的实时性和准确性,通过玩家之间的多轮对局结果来动态调整评分,直接反映了他们的相对强度),只超过了(优于)11%的人类选手(位置很低)。但自博弈模型(o1-IOI)远超GPT-4o和o1,获得了1807的Elo评级,表现优于93%的竞争者。是不是很恐怖?GPT-4o很强了(在Codeforces不算强),但在自博弈模型(o1-IOI)面前很弱:11%vs 93%。
其实早在2017年,OpenAI开始这方面的探索与研究:
我们还记得同一时期的AlphaZero(远强于AlphaGO)非常厉害,也是进行自博弈的结果。AlphaZero从零开始训练:
4小时就打败了国际象棋的最强程序Stockfish!
2小时就打败了日本将棋的最强程序Elmo!
8小时就打败了与李世石对战的AlphaGo v18!
要了解self- play,可以好好看看这篇论文:A Survey on Self-play Methods in Reinforcement Learning( arXiv:2408.01072v1 [cs.AI] 2 Aug 2024)。这篇论文提出了统一框架并分类梳理了现有算法,分析了其在不同场景中的应用,给出了不少强化学习中自我博弈方法的成功案例。
强化学习中的自博弈方法通过让智能体与自身的副本或过去版本进行交互学习,能够适应复杂环境、开发稳健策略,在围棋、扑克、视频游戏等多种领域展现出卓越性能,且有助于微调大语言模型、提升其推理和决策能力,具有广泛的应用潜力和发展前景。