
-
生物通官微
陪你抓住生命科技
跳动的脉搏
生成与检测协同优化:降低大语言模型代码生成缺陷率的方法
《Scientific Reports》:Token-level defect feedback and alternating optimization for coupled code generation and defect detection with large language models
【字体: 大 中 小 】 时间:2026年09月20日 来源:Scientific Reports 4.9
编辑推荐:
摘要大语言模型能够流畅地编写代码,然而其生成的程序存在缺陷率,普通的功能评估很少能暴露这些问题,而能够捕获这些故障的检测系统介入时机太晚,无法影响生成它们的生成过程。本文主张生成和检测应协同优化而非按顺序进行,并通过一种特定的耦合机制使这一论点具体化:检测器的节点级风险估计被
大语言模型能够流畅地编写代码,然而其生成的程序存在缺陷率,普通的功能评估很少能暴露这些问题,而能够捕获这些故障的检测系统介入时机太晚,无法影响生成它们的生成过程。本文主张生成和检测应协同优化而非按顺序进行,并通过一种特定的耦合机制使这一论点具体化:检测器的节点级风险估计被映射回解码器位置,用于逐词元地重新加权生成损失,同时由测试结果和缺陷概率构建的复合奖励提供第二个采样梯度。生成器和检测器在受控的调度下交替更新;失败的候选项重新进入检测器的训练流,十二个变异算子扩大了其对代表性不足的故障家族的覆盖范围。采用 Qwen2.5-Coder-7B-Instruct 作为生成器,门控图神经网络作为检测器,并对五个独立种子取平均值,该耦合方法将通过测试代码的缺陷率从 0.216 ± 0.008 降至 0.128 ± 0.008,同时将 pass@10 从 0.724 ± 0.008 提升至 0.761 ± 0.008。此处报告的所有缺陷率均由循环外冻结的参考检测器评分,因此这种改进不可能是评估者给自己的学生打分所导致的假象。检测 F1 值从 0.627 ± 0.011 上升至 0.681 ± 0.011,尽管这一收益混淆了耦合机制与耦合检测器所接收到的更大训练流的影响。消融实验证实,逐词元级的责任分配是贡献最大的组件,而一项受控的错误注入研究则量化了检测器错误向生成过程传播的程度。相关证据仅限于函数级的 Python 和 C 语言,且并发故障仍具有抗性,因此本文的主张刻意限定在该设置范围内;代码、配置及每个种子的记录随提交一并提供,以便直接验证该边界。