你是在合成还是回忆?评估 LLMs 的算法代码检索能力
Are you Synthesizing or Recalling? Evaluating LLMs on Algorithmic Code Retrieval
精选理由
区分代码生成中的算法记忆与推理,提供跨语言评测基准并揭示可靠性风险。
AI 摘要
arXiv:2610.02438v1 公告类型:新 摘要:大型语言模型(LLMs)在代码生成方面展现出强大性能,而成功与否取决于两方面:回忆相关的算法知识,以及推理如何应用这些知识。然而,现有的 LLMs 流程是不透明的,没有明确区分这两个组成部分。我们认为,对于那些规范实现已广泛存在于预训练语料库中的知名算法,代码生成更适合被衡量为\textit{参数化代码检索}:即从内化的知识中复现一个指定名称的算法,而不是合成一个全新的算法。我们推出了 AlgoREval,这是一个包含 599 个问题的基准测试,涵盖 14 个领域中的 77 种经典算法、7 种编程语言以及 4 种图输入表示形式,用于单独评估这一能力;同时,我们在零样本设置下评估了 15 个模型(参数量为 7B--34B)。我们发现,即使对于有广泛文档记录的算法,不同语言和输入表示形式之间的检索准确率也存在显著差异;我们还发现,使用检索到的代码片段或结构化算法提示来增强提示词,能够提升复杂算法的准确率,而 SFT 能够带来更广泛的语言增益,GRPO 则能在特定语言上带来更大的单语言增益。总体而言,我们的结果确立了参数化代码检索是一种独立且可测量的能力,并警示人们不要在缺乏系统验证的情况下部署 AI 生成的算法代码。\footnote{代码和数据集已发布于 https://github.com/Nickil21/AlgoREval