ai, engineering,

一分钟读论文:《小语言模型作为评委提升代码生成》

Unbug By Unbug Follow · 1 min read
一分钟读论文:《小语言模型作为评委提升代码生成》
Share this

瑞士意大利语大学(USI)的 ICSE 2026 论文《Improving Code Generation via Small Language Model-as-a-judge》(arXiv:2602.11911)把小语言模型(SLM)训练成”代码正确性评委”,证明微调后的小模型判别能力可以超过 GPT-4.1-mini,让”小生成器 + 小评委”团队的代码生成性能超越 5-25 倍参数规模的大模型,而硬件成本只有后者的约 3%。

问题与方法

主流大语言模型擅长常见语言,但在小众或领域专用语言上表现不佳,企业只能自研代码生成器;而开源模型中只有数百亿参数的规模才能追平商业工具,训练和部署成本都很高,小模型因此成为务实选项。已有工作 RankEF 用 T5 模型结合执行与非执行信息对候选代码排序,但没有评估排名器本身的分类准确率——即它多久会把正确实现误判为错误,而且实验所用模型较旧,方法论能否沿用至今并不清楚。这篇论文的做法是:让一个小型代码生成器针对同一需求生成多个候选方案,再让另一个经过微调的小型判别器(judge)从中挑选最可能正确的一个。团队训练了多个现代 SLM 作为正确性评委,用 Cohen’s Kappa(衡量判定与真实标签一致性的指标)评估其对正确与错误实现的判别能力,并在 HumanEval、MBPP、CoderEval 三个基准上评测,对照的大模型比小模型大 5-25 倍。

关键数据

判别能力:微调后的 Qwen2.5 Coder 3B Kappa 达到 0.57,超过 GPT-4.1-mini 的 0.54,也优于 RankEF 的 0.40;所有微调后的小模型 Kappa 均达到 0.45 以上的中等一致水平,其中最小的 Qwen2.5 Coder 0.5B 从零样本的 0.00 提升到 0.45,Gemma-3 4B 从 0.10 提升到 0.49。生成性能:生成 10 个候选加 1 个评委的配置,相比单模型提升 5.3% 到 20.6%——Phi-4 mini 4B 提升 +20.6%(Pass@1 从 0.200 到 0.406)、Qwen2.5 Coder 3B 提升 +16.0%(Pass@1 达 0.521)、DeepSeek Coder 1.3B 提升 +12.1%、OpenCoder 1.5B 提升 +11.1%、Gemma-3 4B 提升 +5.3%。以小胜大:5 个小模型团队中有 4 个超越了对应的大模型版本,例如 Qwen2.5 Coder 3B 团队比 25 倍大的对应模型高 +0.034,Phi-4 mini 4B 团队高 +0.090。成本:小模型团队硬件投入约 $600,对比 30B 级方案约 $17,500,相差约 29 倍;生成 2 个候选时推理时间甚至比大模型更快。实验还显示 10 个候选优于 2 或 5 个,1 个评委通常足够,多个评委收益很小,所有方法都显著优于随机选择和 log likelihood(对数似然)选择,后者只看生成概率。

对企业的意义

这项工作的价值在于把”代码正确性判别”变成可自训、可负担的能力:企业不必购买或部署巨大模型,用几百分之一的成本微调一个 3B 级评委,配合小生成器就能逼近大模型效果。落地要点有三条:判别器必须微调,零样本效果普遍一般;候选数以 10 个左右为甜点位,多候选可并行推理来摊薄延迟;评委保持单个即可,避免无谓的复杂度。由于评委本质上是”判断代码对错”的模型,同样的思路还能延伸到自动代码审查等需要程序理解能力的场景。同类话题可参阅站内《GitHub Copilot 的代码生成稳健吗?》。

References


Related
Featured