检测与纠正 LLM 生成代码中的幻觉:基于确定性 AST 分析
机器学习
2026-01-30 v2
摘要
大型语言模型 (LLM) 用于代码生成虽提升生产力,但经常引入知识冲突幻觉 (KCH),即细微的语义错误,如不存在的 API 参数,能通过 linter 检查,却导致运行时失败。现有缓解措施如受限解码或非确定性 LLM-in-the-loop 修复方法常不够可靠。本文探讨whether 一个确定性、静态分析框架能可靠地检测 \textit{and} 自动纠正 KCH。我们提出一种后处理框架,该框架将生成的代码解析为抽象语法树 (AST),并根据通过库内省构建的动态生成知识库 (KB) 进行验证。该非执行方法使用确定性规则查找和修复两种 API 和标识符级别的冲突。在一个手动精选的 200 个 Python 代码片段数据集上,我们的框架以 100% 的精确率和 87.6% 的召回率 (0.934 F1 分数) 检测 KCH,并成功自动纠正了 77.0% 的所有识别出的幻觉。我们的发现表明,这种确定性后处理方法是一种可行且可靠的概率性修复方法的替代方案,为可信赖的代码生成提供了明确的路径。
引用
@article{arxiv.2601.19107,
title = {TinyTorch: Building Machine Learning Systems from First Principles},
author = {Vijay Janapa Reddi},
journal= {arXiv preprint arXiv:2601.19107},
year = {2026}
}