一句话:训练前沿小语言模型判断并排序代码候选,证明其低成本即可媲美大模型并优于 RankEF。
大型语言模型在自动代码生成上表现优异,但在小众或领域特定语言上可能不如商业工具,而小模型支持代码生成时需从多个候选解中选出正确者。已有 RankEF 用 T5 排序,但未评估其分类准确率,且实验模型较旧。本文训练多个最新小语言模型作为代码正确性评判者,评估其区分正确与错误实现的能力,并用作排序器。结果显示,现代小模型即使不利用执行信息也优于 RankEF;作为排序器时性能增益更高,可与大 5–25 倍的大语言模型竞争,成本却低得多。
Large language models (LLMs) have shown remarkable capabilities in automated code generation. While effective for mainstream languages, they may underperform on less common or domain-specific languages, prompting companies to develop in-house code generators. While open-source models can be trained for this, only LLMs with tens of billions of parameters match the performance of commercial tools, demanding costly training and deployment. Recent work proposed supporting code generation with smaller models (SLMs) by generating multiple candidate solutions and using another SLM to select the most likely correct one. The most recent work in this area is the one by Sun et al. [29] presenting RankEF, a T5 model trained to rank code solutions using both execution-based and non-execution-based information. However, Sun et al. do not assess the T5 ranker’s classification accuracy, that is, how often it misjudges correct implementations as incorrect or vice versa, leaving open questions about the reliability of LMs as code correctness judges for other tasks (e.g., automated code review). Moreover, their experiments involve relatively old models, making it unclear the extent to which such a methodology would still help companies in cheaply training their own code generators with performance comparable to those of massive LLMs. We present a study addressing these limitations. We train several state-of-the-art SLMs as code correctness judges and assess their ability to discriminate between correct and wrong implementations. We show that modern SLMs outperform RankEF, even without exploiting execution-based information. When used as code rankers, they achieve higher performance gains than RankEF and perform competitively with LLMs 5–25 × larger, at a fraction of the cost.