1. 首页>>分享

新一代代码模型训练遇瓶颈,MicroCoder从多维度升级开源

MicroCoder团队 投稿

量子位 | 公众号 QbitAI

新一代代码模型训练的动态状况,已然和旧模型有着极大的差异,主要流行的强化学习方式以及数据集,在它上面基本上已经“不起作用”了。

微软亚洲研究院,和剑桥大学、普林斯顿一起,联合推出了MicroCoder。它在算法、数据、框架、训练经验这四个层面,进行了全面的升级。在最新的代码测试集合上,取得了显著的提升。并且从七个不同的方面,开源了34条关于训练的洞察哦。

背景:旧经验遇上新模型,为何几乎全部“失效”?

强化学习正变成代码大模型能力增长的关键途径,以GRPO为典型的策略优化方式在数学推理工作里积攒了诸多成功经历,人们顺理成章地将这一方式转移到了代码生成方面。

然而,研究者很快就发现了这样一个现象,即使用DeepCoder这类主流数据集去训练最新推理模型,其性能几乎未曾有提升,而同样的这种做法,在过去版本的模型上却有着显著的效果。

这一背后的缘由具备代际性,最新发展的推理模型能力已然超越了主流数据集的难度水准,那些题目对于它来讲太过简易,根本没办法产生出有效的学习效益。在同一时间,最新的推理模型于训练期间输出长度持续不断地增长,然而旧有的模型输出长度呈现出稳定态势甚至出现下降情况,两代模型的训练动态已然全然不一样,专门为旧模型设计打造的训练方法在新模型那里便不再适用了。

围绕这一训练方面存在的瓶颈,由来自微软亚洲研究院、剑桥大学,还有普林斯顿大学的研究团队,提出了名为MicroCoder的项目,该项目含有四个核心贡献,分别是MicroCoder - GRPO算法,MicroCoder - Dataset数据集,MicroCoder - Evaluator训练评估框架,以及经过跨超过30组的受控实验总结得出的34条训练经验。

算法:MicroCoder-GRPO

MicroCoder - GRPO,于GRPO的基础之上,引入了三项修改,专门用来应对现代代码模型的训练动态。

修改一:条件截断掩码

在强化学习训练之时,凡是被最大长度截断的输出,要是参与策略优化,就会引导模型生成更为短的输出。鉴于此等情况,DeepCoder之类的方法采用“全部掩码”策略,对于所有达到最大长度的输出,都会把优势分数设置为零。然而,这样的做法会致使输出长度增长速度过快。

针对同时满足四个条件的输出执行掩码,这四个条件分别是达到最大长度,答案非错误,无尾部重复序列,且以特定概率随机抽取,MicroCoder - GRPO提出了更精细的条件截断掩码。实验表明,这一策略有效解锁了模型的长输出潜力,同时规避了全掩码策略带来的训练问题,最终收敛性能高于无掩码和全掩码两种方案。

修改二:多样性驱动的温度选择

稳定训练强化学习的关键指标是输出多样性,研究有发现,在固定温度的情形下,多样性并非会随着训练的持续而一直变动,在不同温度情况时,最终会收敛到相近的水平,一旦初始多样性与预期收敛值之间相差比较大,模型的训练就容易受到影响,传统标准温度对于最新推理模型来讲较低,容易因为这个产生影响。

MicroCoder - GRPO讲出要依照模型初始输出多样性动态去确定训练温度,这包含测量初始多样性趋势,还要挑选能让多样性平稳收敛的温度值。文章又发觉“先低温后高温”这种分阶段方法比全程固定温度要好,然而要防止连续的温度过渡,就算是短暂的渐变也可能对多样性产生影响。

修改三:去除KL散度+高裁剪比率

沿用名为DAPO的设计思路,MicroCoder - GRPO把KL散度权重设定为0,并且采用了更高的裁剪比率。经过实验验证,保留KL散度会持续地对输出多样性产生影响,还会限制输出长度的增长,进而导致性能出现“先涨后跌”的情况;而将其去除之后,模型能够获得持续的性能提升。

三项修改共同发挥作用,MicroCoder-GRPO于最新代码测试集里,相较于DAPO基线,获得显著的提升,并且在拓展测试上下文长度之际,提升更显突出。

数据:MicroCoder-Dataset

算法之外,数据难度也是代码模型能力的重要影响因素。

四阶段数据处理流水线

“收集”为MicroCoder - Dataset构建的第一阶段,是从多元平台收集真实竞赛题目;“处理”是第二阶段,要统一语言、去噪、格式标准化,还要用LLM自动生成和筛选测试用例;“筛选”作为第三阶段,需实施软硬约束及自适应难度过滤;“验证”是最后阶段,要进行人工抽查确保可读性和测试用例准确性。

自动难度过滤:预测-校准-选择

关键创新在于MicroCoder-Dataset的难度过滤。研究团队设计出来一套五维难度评估矩阵,借助LLM针对每一道题实施三次独立打分,求取平均之后去计算加权难度分。

此五个维度的权重设计存有其理论依据,参照了Bloom教育目标分类法,还参考了McCabe和Halstead方法,把重心置于真正对推理以及编程能力予以考验的维度之上,并非语义理解与记忆。

紧随其后,依据模型实际通过的比率作为基准来对预测分数予以校准,于LiveCodeBench数据集合之上确定容易、中等、困难的划分界限数值,预测的分布跟实际的分布近乎完全契合。经过过滤之后,简单题目的占比下降到25%以下,困难题目的占比提高到50%以上。

数据集特点

最终,MicroCoder - Dataset含有超过13K经过严格挑选的真实竞赛题目,这些题目全都源自实际竞赛平台,并非由LLM生成。经过聚类分析可知,各平台的题目具有互补性,和测试集之间不存在重合情况。

效果对比

在同样的训练情形之下,MicroCoder - Dataset于300步训练范围之内所获取到的性能方面的增益,是DeepCoder数据集的3倍。拿DAPO训练最新的推理模型作为例子来说,相较于DeepCoder,MicroCoder在LeetCode上整体提升了大概6.0个百分点,而且难度越高,其增益就愈发显著。

经典瓶颈模型_如何突破训练瓶颈期_

训练评估框架:MicroCoder-Evaluator

代码评估的准确性直接决定强化学习的质量。

问题:原版评估器的误判

LiveCodeBench原版之下实施评估工作所用的评估器,所取用的是一种严格精确匹配策略,该策略涵盖直接等值比较这一内容,还有精确浮点计算方面,并且仅仅进行最基本的空白去除操作。通过这样的方式,会把大批量格式是正确的然而存在略微差异的正确答案判定成为错误,就像返回出的列表与元组之间存在格式方面的差异,以及浮点精度上出现差异,进而产生噪声,对训练造成干扰。

解决方案:多方法回退的综合验证

MicroCoder-Evaluator运用由6至7种方法所构成的回退链来开展综合输出验证,会依次去尝试不一样的比较策略,其支持列表、元组、字符串、集合等格式进行自动类型转换,会进行浮点近似比较,且要进行多行分割与空白规范化等预处理,一旦单个方法失败便会自动切换到下一种方法,整个过程具备高容错性。

效果

与LiveCodeBench原版评估器作比较,MicroCoder-Evaluator把评估准确率提高了大约25%,也就是更精准地辨认出了正确解法的变体,降低了误判噪声。训练曲线对比表明,运用MicroCoder-Evaluator的模型在早期训练阶段能够获取更可靠的学习反馈,最终测试准确率更高并且收敛更快。

除此之外,借助优化并行处理策略,MicroCoder - Evaluator把每个训练步的执行速度提高了大约40%,明显提升了训练效率。

训练洞察:34条跨越七大维度的经验

MicroCoder项目借助超过30组经严格控制的实验,将现代代码模型强化学习训练里的经验予以完整记录,该记录覆盖七大维度,在此列举各维度的核心洞察:

代码评估器,评估准确性对于训练效果的影响十分显著,特别是处于早期阶段的时候。具备高容错特性的评估能够带来更为可靠的结果反馈,这可以有效地防止出现次优收敛的情况。原版的LiveCodeBench评估器所采用的严格匹配策略会引发误判现象,这种误判现象会在训练的初期阶段产生一定影响。

温度的动态情况是,模型针对温度所具备的鲁棒性,会随着训练的持续开展而不断增强。在不同的温度条件之下,输出的多样性会发生变化,不过最终会收敛到相近的水平。当一开始的多样性低于收敛预期的时候,有可能致使训练走向失败。

据以训练的数据:数据具备的难度状况会对泛化能力产生影响,在那些被判定为简单的数据集里呈现出优秀表现,这并不代表于进行测试的集会上也具备同样出色之表现,唯有那些挑战性程度更高的训练所涉问题,才能够带来切实的泛化能力提升,更具难度的问题会推动模型生成更为漫长的解题途径,其输出长度的增长速率以及最终所达长度均更为可观。

最长输出的长度以及扩展这块内容表明,跟更高的最终真实准确程度、输出增长更为快捷以及具备更高的多样特性直接关联的是,上下文的那一 length 更长。早期培训阶段之中,输出长度所存在的那种限制,会造成一种“不可回转”的作用效果,一旦模型处在短输出的限制状况下,开展了足够时长的训练以后,后续就算是把上下文加大,其性能状态也没办法彻底恢复过来。

截断掩码的策略是,掩码比例,在训练速度跟峰值性能之间,形成了一种平衡状态,一个情况是,更高的掩码比例能够更快地达到初始峰值,然而另一个情况是,较低的掩码比例能够延长上升阶段并且达到更高的峰值。还有,30%的条件掩码,在输出长度增长速率方面,已经接近全掩码了,与此同时,在训练稳定性等方面的表现,显著优于全掩码。

训练批大小和在线训练方面,较小的训练批大小会造就更趋近于在线训练的行为,这种行为能使多样性收敛加快,然而却会对训练稳定性产生影响;较大的批大小会引发离线训练行为,并且其稳定性更为突出。最优的选择源自于两者相互之间的那种平衡情况。

KL散度跟裁剪比率,标准KL散度会不断地对输出多样性产生影响,并且限制输出长度提高,从而形成“性能先涨而后跌”这样的形式,去除KL散度是支撑长期持续性能提升的关键条件。

整个的34条洞察,已经完整地在项目主页的叫做MicroCoder - Insights的博客里进行了相应整理,这些整理涵盖了每一个维度的细细的具体实验以及对应的结论,其属于当下最为完备的现代代码模型强化学习训练经验库当中的一个。

项目价值

代码大模型在强化学习训练方面,长期以来借鉴着来自数学推理任务的经验。MicroCoder首次完整地提出,存在这样一条迁移路径,这条迁移路径存在代际断层。在不同的模型世代之间,训练动态出现了变化,数据需求也有了改变,算法设计的有效假设发生了质变而非量变。这打破了该领域原本固有的认知,明确了新一代代码模型的研究方向。

对于算法设计层面而言,条件截断掩码以及多样性驱动温度选择,针对强化学习训练里训练稳定性同策略探索性之间的平衡,给出了能够执行的兼顾方案,具备超出代码生成任务自身的方法论参考价值。

该项目借助超三十组受控实验全面整理34条训练方面的经验与洞察力,这些经验与洞察力涵盖算法、数据、评估、上下文、温度等七大核心层面,属于当下代码大模型开展后续训练领域里最为完备、有效的知识积累中的一种,针对研究内容进行的整理并予以分享,是模型训练社区中极有影响力的开源项目之一。

作者介绍:

MicroCoder的第一作者是李宗谦,他是剑桥大学自然语言处理专业的博士生,还是剑桥信托学者,获得了剑桥国际生全额博士奖学金,在微软亚洲研究院开展了系列性工作。他于微软、谷歌、红杉、真格等有过实习工作经历,在2025年拥有9篇以第一作者身份发表的论文,这些论文发表于NeurIPS、ACL等会议,其参与的工作发表于Nature,他对学界、业界、创业有着浓厚兴趣,是当下大语言模型领域中值得予以关注的年轻研究员。

项目主页:

https://github.com/ZongqianLi/MicroCoder

算法论文:

链接为,https://arxiv.org/abs/2603.07777。

数据集论文:

这个链接是https://arxiv.org/abs/2603.07779。

训练经验博客:https://github.com/ZongqianLi/MicroCoder/blob/main/MicroCoder-Insights.md

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.mjgaz.cn/fenxiang/280156.html

联系我们

在线咨询:点击这里给我发消息

微信号:13588888888

工作日:9:30-18:30,节假日休息