大语言模型能否重构其自身带异味代码?四种开源模型下的自重构有效性与行为保持研究

《Applied Sciences》:Can LLMs Refactor Their Own Smelly Code? Self-Refactoring Effectiveness and Behavioral Preservation Across Four Open-Source Models

【字体: 时间:2026年08月05日 来源:Applied Sciences 2.5

编辑推荐:

  (1)背景:大语言模型(LLM)生成代码常含降低可维护性的代码异味(code smell),生成模型能否有效重构自身输出(自重构,self-refactoring)尚未被验证。(2)方法:研究人员构建含六类LLM专属Python 3.12代码异味分类法(F1=

  
(1)背景:大语言模型(LLM)生成代码常含降低可维护性的代码异味(code smell),生成模型能否有效重构自身输出(自重构,self-refactoring)尚未被验证。(2)方法:研究人员构建含六类LLM专属Python 3.12代码异味分类法(F1=0.87),在BigCodeBench上基于四种开源LLM(CodeLlama-13B、DeepSeekCoder-6.7B、StarCoder2-15B、Qwen2.5-Coder-14B)的1404条真实推理带异味片段测试自重构。(3)结果:浮现三种自重构画像:风格固化(CodeLlama,中位自重构率SRR为0%)、内在能力(DeepSeekCoder,100%)、提示依赖(Qwen,带异味感知提示100%对比零样本0%)。因叙述性注释(Narrative Comment)占主导,按异味类型呈现结果,StarCoder2(n=14)为初步结论。单元测试确认测试通过片段行为保持率(Behavioral Preservation Rate,BPR)96.0%(95% CI 93.3–97.7%)。直接交叉重构实验(356次运行,四独立重构器)证伪风格一致性假设:自重构从未优于最佳独立模型(0/89片段),CodeLlama自身代码自清1/25,却被他模清25/25。生成—重构反馈环在仿真中强、真实推理下无效。(4)结论:自重构有效性取决于模型、异味类型与提示策略交互。异味感知提示可实现轻量、保行为的生成后质量流水线,无需额外模型或重训;闭环反馈变体不能从仿真迁移至真实推理。
研究背景方面,现有代码质量研究多关注Java或通用Python静态检查,未覆盖LLM生成行为诱发的专属异味;且既往重构框架将生成器与重构代理割裂,模型能否“自己改自己”并保行为正确尚属空白。论文发表于《Applied Sciences》,研究人员针对该空白提出三问:LLM专属异味有哪些、自重构有效性如何、风格一致性假设与生成—重构反馈能否成立。
关键技术方法上,研究人员从BigCodeBench取用CodeLlama-13B-Instruct、DeepSeekCoder-6.7B-Instruct、StarCoder2-15B-Instruct、Qwen2.5-Coder-14B-Instruct四模型指令模式输出(温度0贪心解码,单任务单解共5700条,含Mistral-7B仅作异味流行度统计),以自研基于Python标准库ast与tokenize的六类LLM生成产物异味(LLM Generation Artifact)检测器筛选1404条带异味片段;自重构采用异味感知提示(列异味名+行号+Chain-of-Thought+迭代纠错上限I=10)与零样本基线对照,真实推理经LM Studio本地GGUF Q4_K_M部署,交叉重构另引Qwen2.5-Coder-7B、DeepSeek-Coder-7B及API端Qwen3-Coder-480B-A35B、DeepSeek-V4-Flash共356次运行;行为保持以BigCodeBench原单元测试校验,仿真框架仅作先验投影不介入结论。
研究结果部分,RQ1(LLM专属异味)经卡片分类与三位专家一致验收得六类异味:Narrative Comment、Docstring Hallucination、Boilerplate Padding、Redundant Type Comment、Confident Fallback、Over-Protective Handler,检测器整体F1=0.87;5700条中30.0%带异味,Narrative Comment占实例约96%,两类长代码异味未在BigCodeBench出现,模型间异味率从StarCoder2-15B的1.2%到Qwen2.5-Coder-14B的54.1%不等。RQ2(自重构有效性)真实推理显三画像:CodeLlama-13B中位SRR 0%(94%逐字复现)、DeepSeekCoder-6.7B中位SRR 100%且零样本同效、Qwen2.5-Coder-14B异味感知100%对比零样本0%(改率97.7% vs 45.1%),StarCoder2-15B(n=14)结构异味下异味感知100%零样本0%;325条原测试通过片段BPR 96.0%(Qwen 98.0%、CodeLlama 98.4%因少改、DeepSeekCoder 87.9%),零样本BPR降至85.8%,证异味感知提示同时抬高SRR与BPR。RQ3(风格一致性假设)间接密度—SRR Spearman相关不显著(ρ=0.10, p=0.62),直接交叉重构中自重构89条全样从未严格优于最佳独立重构器(0/89),CodeLlama自清1/25而独立模清25/25,假设被证伪;仿真ρ≈0.9系预设编码非证据。RQ4(反馈环)对DeepSeekCoder-6.7B与Qwen2.5-Coder-14B各跑一轮少样本注入自重构对,密度变化Wilcoxon不显著(DeepSeekCoder p=0.71,Qwen反向变差p=0.04),仿真预估Δ=-0.38/100 LOC不重现,闭环反馈真实推理无效。
讨论部分指出,自重构价值不在普适优于外部代理,而在免第二模型部署成本,仅适用于内在能力型与提示依赖型;风格固化型应路由至异模。风格一致性假设证伪后实践应按重构器能力而非生成者匹配选人。与RefAgent等外部多智能体比,自重构谱宽5.5%–96.8%中位SRR,不替代而异构舰队下外部代理仍优。威胁效度中量化(4-bit Q4_K_M)致CodeLlama逐字复现非全局指令崩溃,因同量化下DeepSeek-Coder-7B清同25条中23条,故归为模型自身风格对齐病理;Narrative Comment一家独大使聚合数为其加权,已用按异味分型表与Wilson CI缓释。
结论部分翻译:本研究探明LLM能否有效重构自身带异味代码及结果可否回灌生成。其一,建六类LLM专属Python异味分类法(F1=0.87),真实片段30.0%至少含一类,Narrative Comment约占实例96%,两类长码异味未现于BigCodeBench短函数,聚合数受其驱动故按型报。其二,自重构有效性由模型×异味型×提示策略交互决定,1404条显三画像——风格固化(CodeLlama-13B中位SRR 0%、94%逐字)、内在能力(DeepSeekCoder-6.7B中位SRR 100%自零同效)、提示依赖(Qwen2.5-Coder-14B异味感知100% vs 零样本0%);325原测过片段BPR 96.0%(95% CI 93.3–97.7%),全样通过率23.1%→22.6%近中性。其三,直证风格一致性假设于真实推理不成立(89片段356跑,自重构0/89严格优,CodeLlama自清1/25而独立清25/25),生成—重构反馈环仅仿真显效(Δ=-0.38/100 LOC)真实归零;仿真按异味类均匀率无法表CodeLlama逐字病理,作方法论警示。综上,轻量生成后检测—自重构流水线适于非固化模,固化模交异模;闭环回灌生成当前真实推理不可行。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号