文章主要内容
本文聚焦于大语言模型(LLMs)在代码生成中出现的API幻觉问题,即生成不存在或误用现有API的情况。现有方法如RAG因忽视项目结构依赖和未验证API有效性而效果有限。为此,作者提出了MARIN框架,包含两个核心阶段:
- 层次依赖挖掘:分析当前函数的局部(方法调用、引用API)和全局(相关文件结构)依赖,构建项目结构表示以丰富LLM输入提示。
- 依赖约束解码:利用挖掘的依赖构建有效API前缀树和参数模式,自适应约束生成过程,确保生成的API符合项目规范。
此外,作者引入了新的基准测试集APIHulBench和两个评估指标(MiHN和MaHR)。实验表明,MARIN在6个主流LLMs上显著降低API幻觉,相比RAG平均减少67.52%的MiHN和73.56%的MaHR,在华为内部项目中也取得了显著效果。
文章创新点
- 首次系统性研究实际场景中的API幻觉问题ÿ