论文

从执行中学习:用于私有代码库代码生成的自我进化记忆

Learning from Execution: Self-Evolving Memory for Private-Library Code Generation

摘要

大语言模型 (LLM) 在一般代码生成方面取得了强大的性能,但在软件开发依赖于公共 预训练 语料库中不存在的内部私有库的企业环境中,其有效性急剧下降。现有的检索增强生成(RAG)方法通过检索静态 API 文档提供了 无需训练 解决方案,但我们的分析表明,文档主要帮助模型识别要使用的 API,而不足以教授如何正确使用它们。即使使用 Oracle API 文档检索,LLM 仍然会在 API、跨 API 和任务级别重复出现错误,包括 API 误用或幻觉、有缺陷的 API 组合以及不正确的解决策略。为了解决这个限制,我们提出了 MEMCoder,一个用于私有库代码生成的 无需训练 自进化记忆框架。 MEMCoder 通过多级演进记忆增强了现有的 RAG 管道,该记忆在 API、跨 API 和任务级别上不断积累和重用执行衍生的使用指南。在生成过程中,MEMCoder 检索静态 API 文档和相关历史记忆来指导代码生成;执行后,它会分析反馈,通过生成、执行、反射和更新的闭环来优化记忆。对 NdonnxEval 和 NumbaEval 的大量实验表明,MEMCoder 一致增强了不同规模的 LLM 上的不同 RAG 主干,平均绝对 pass@1 提高了 18.41 个百分点。此外,MEMCoder 优于现有的自进化记忆方法,并验证了将执行反馈组织到多级使用记忆中的有效性。