专栏名称: 新智元
智能+中国主平台,致力于推动中国从互联网+迈向智能+新纪元。重点关注人工智能、机器人等前沿领域发展,关注人机融合、人工智能和机器人革命对人类社会与文明进化的影响,领航中国新智能时代。
目录
相关文章推荐
机器之心  ·  20万美元商业级视频生成大模型Open-So ... ·  2 天前  
宝玉xp  ·  转发微博-20250313022601 ·  2 天前  
爱可可-爱生活  ·  【[62星]groundlight/r1_v ... ·  2 天前  
51好读  ›  专栏  ›  新智元

32B IOI奥赛击败DeepSeek-R1!Open R1开源复刻第三弹,下一步R1-Zero

新智元  · 公众号  · AI  · 2025-03-12 13:25

主要观点总结

Hugging Face的Open R1项目发布了重要的升级,通过CodeForces-CoTs数据集和IOI基准测试,7B模型在代码推理界展现了惊艳的性能。团队面临了如模型训练、提交策略优化、创建新的数据集等挑战。同时,他们也分享了在模型训练过程中的一些经验教训,如使用较大的学习率、避免样本打包、合理设置奖励权重等。最新的改进包括GRPO优化器的更新,以及对模型生成速度和可扩展性的提升。除此之外,研究团队还丰富了OpenR1-Math-Raw数据集,并分享了他们在训练评估过程中的发现。

关键观点总结

关键观点1: Open R1的升级和性能

Hugging Face的Open R1项目通过最新的升级,在代码推理领域表现出强大的性能。7B模型在CodeForces-CoTs数据集和IOI基准测试中展现了惊人的结果。

关键观点2: 模型训练的挑战和策略

在模型训练过程中,团队面临了诸多挑战,包括创建新的数据集、设置合适的提交策略、优化模型训练等。他们通过一系列的实验和调试,总结出了一些经验教训,如避免样本打包、使用较大的学习率、合理设置奖励权重等。

关键观点3: 最新的改进和优化

团队在GRPO优化器方面取得了重要的进展,通过更新改进了模型的生成速度和可扩展性。此外,他们还丰富了OpenR1-Math-Raw数据集,并分享了训练评估过程中的发现。

关键观点4: 未来的工作计划

目前,团队的重点是进一步提升模型的生成速度,并将GRPO扩展到多节点设置。同时,他们还在完善数学和代码等领域的奖励信号,并计划引入奖励模型来评分非推理数据。


正文



新智元报道

编辑:犀牛 英智
【新智元导读】 Hugging Face的Open R1重磅升级,7B击败Claude 3.7 Sonnet等一众前沿模型。凭借CodeForces-CoTs数据集的10万高质量样本、IOI难题的严苛测试,以及模拟真实竞赛的提交策略优化,这款模型展现了惊艳的性能。

Hugging Face的Open R1再度升级!

Hugging Face的Open R1是一个社区驱动的项目,目标是创建一个完全开源的DeepSeek-R1版本。目前,已有模型如OlympicCoder-32B和数据集如codeforces发布,显示了项目的进展。

最新发布的7B和32B OlympicCoder,在IOI挑战上超越了一众前沿模型,比Claude 3.7 Sonnet还猛。

OlympicCoder已经成了代码推理界的「肌肉猛男」,有些模型规模比它大100倍,结果还是被它按在地上摩擦……

模型在2024年国际信息学奥林匹克竞赛(IOI)50次提交中的表现

而这一切,得感谢Open R1的一系列骚操作:

  • CodeForces-CoTs数据集 :近10万个高质量样本,提炼自DeepSeek-R1,专门训练C++和Python代码生成。
  • IOI基准测试 :拿2024年国际信息学奥林匹克竞赛(IOI)的难题来虐AI,看看谁是真正的「代码战神」。
  • 提交策略优化 :模拟OpenAI的策略,让模型最大化得分,像真正的选手一样参加比赛。

我们来扒一扒它是怎么炼成的,以及Hugging Face团队踩过的那些坑。

(小心,可能会让你怀疑人生:AI连刷题都比你强了……)

CodeForces-CoTs数据集

CodeForces作为编程竞赛的热门平台,其中的算法优化问题极具挑战性。

这使其成为一个有趣的数据集,用于提升和测试模型的代码推理能力。

此次发布的open-r1/codeforces包含了超过1万个问题,时间跨度从最初的竞赛一直到2025年,其中约3000个问题是DeepMind和CodeContests中没有的。

对于约60%的问题,数据集提供了竞赛组织者撰写的解题思路,这对理解原理至关重要。

同时,每个问题都从官方网站提取了3个正确解决方案。

open-r1/codeforces-cots数据集更是一大亮点,其中包含了DeepSeek-R1针对这些问题生成的近10万个思维链(CoT)样本,用C++和Python两种语言呈现。

研究团队在这个数据集上对Qwen2.5 Coder Instruct 7B和32B进行微调,得到了OlympicCoder-7B和OlympicCoder-32B模型。

代码可验证性危机

虽然DeepMind和其他竞赛数据集都包含测试用例,并声称是可验证的,但这些通常只是竞赛网站上全套测试用例的一小部分。

特别是CodeForces,显示的测试用例上限约为500个字符,这意味着这些数据集只包含符合此限制的较短、较简单的测试用例。

例如,研究者选取了7个问题,R1生成的解决方案通过了全部公开测试用例,并将它们提交到CodeForces平台:

尽管这些方案通过了较短的测试,但均未通过完整测试集。这凸显了对新的可验证的编程竞赛数据集的需求。

国际信息学奥林匹克竞赛(IOI)

国际信息学奥林匹克竞赛(IOI)是全球顶尖的编程竞赛。

完整测试集遵循宽松的(CC-BY)许可发布,使其成为测试代码推理能力的理想数据集。

如果你熟悉美国数学邀请赛(AIME),IOI就相当于数学奥林匹克竞赛(IMO)的编程版,参加AIME的最优秀学生才有资格受邀参加IMO。

IOI的问题设计独特,每个问题细分为多个子任务,各子任务输入约束不同。

参赛者要解决子任务,提交的方案须在严格时限内通过所有测试用例。

最后子任务通常是完整复杂问题,而前面子任务相对简单、约束更多,参赛者常针对特定子任务拿部分分数,竞赛中得满分十分罕见。

团队整理了2020-2024年的IOI问题,将它们拆分为子任务,使每个提示都能解决一个特定的子任务,便于有针对性地训练和评估。

他们还在open-r1/ioi和open-r1/ioi-test-cases中发布了处理后的问题陈述、评分检查文件及测试用例,同时创建了自定义代码,用于运行解决方案并按IOI规则评分,代码可在 https://github.com/huggingface/ioi 上获取。

研究者对2024年IOI上40多个领先的推理模型进行了全面评估。

每个问题的提交次数限制为50次,采用与OpenAI类似的选择策略模拟得分。

评估结果显示,OlympicCoder模型表现出色。

OlympicCoder-32B在50次提交限制下,超越了o1-mini、DeepSeek-R1、Claude-3.7-Sonnet-thinking等模型。

模型在2024年国际信息学奥林匹克竞赛(IOI)50次提交中的表现

提交策略

这种提交策略可能不利于非推理模型,像OlympicCoder-32B-Instruct和Qwen-2.5-Coder-32B-Instruct。

为模拟真实竞赛,团队采用类似OpenAI用于o1-ioi的循环提交策略。

首先提交针对最后一个子任务的解决方案,然后是倒数第二个子任务的方案,以此类推,只有选定提交时才评估解决方案。

若子任务已被之前选定的提交解决,就跳过针对该子任务的提交。

在每个目标子任务里,倾向于选择更长的生成内容,这对推理模型合理,对其他模型不太适用。

如果取消50次提交限制,并评估生成的所有提交,会得到以下结果:

国际信息学奥林匹克竞赛(2024年)无提交限制时模型的表现

基于R1轨迹训练的经验教训

在创建OlympicCoder模型时,研究者进行了大量SFT实验,以了解用于CodeForces数据集的各种筛选条件的作用。

发现open-r1/codeforces-cots的以下子集表现最佳:

  • solutions :R1根据问题陈述生成的方案。
  • solutions_w_editorials :R1根据问题陈述和解释正确解决方案的说明生成的方案。

请注意,这里只关注了C++解决方案,融入Python解决方案可能进一步提高性能。

用LiveCodeBench作为模型的测试平台,然后将表现最佳的checkpoints用于更具挑战性的IOI基准测试。

研究者测试了各种超参数配置来训练模型,最终确定如下:

  • 模型:Qwen2.5 Coder Instruct 7B和32B

  • 轮数:10

  • 有效批大小:128

  • 学习率:4e-5

  • 调度器:余弦衰减至峰值学习率的10%

  • 上下文长度:7B为32,768个token,32B为22,528个token

样本打包会损害推理性能

样本打包是一种在训练中常用的加速方法,它将训练样本连接成大小相等的块,无需填充token。

打包后,样本可能会跨块边界重叠。不过,要是大部分样本比块小很多,这种重叠影响不大。

然而,对于从R1提取的推理轨迹,这可能会带来负面影响。

因为很多轨迹长,答案被截断的可能性高。这就导致训练时,它很难关注长上下文信息,尤其是问题和答案被分到不同块的时候。

如下图所示,打包会严重损害模型的性能。用打包时,模型几乎解不出LiveCodebench里的题;不用打包,性能在几个训练周期后趋于平稳。







请到「今天看啥」查看全文