MEMCoder: Multi-dimensional Evolving Memory for Private-Library-Oriented Code Generation
作者: Mofei Li, Taozhi Chen, Guowei Yang, Jia Li
分类: cs.SE, cs.AI, cs.CL
发布日期: 2026-04-27
💡 一句话要点
MEMCoder:面向私有库代码生成的多维演化记忆框架
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码生成 大型语言模型 检索增强生成 私有库 多维演化记忆
📋 核心要点
- 现有方法依赖静态API文档,缺乏API间的协调和对参数约束的理解,导致私有库代码生成性能下降。
- MEMCoder通过多维演化记忆,自主积累和演化使用指南,弥补了LLM在API使用上的知识缺口。
- 实验表明,MEMCoder显著提升了RAG系统性能,在NdonnxEval和NumbaEval上pass@1平均提升16.31%。
📝 摘要(中文)
大型语言模型(LLMs)在通用代码生成方面表现出色,但在企业环境中,由于缺乏公共预训练语料库中存在的内部私有库,其性能会急剧下降。检索增强生成(RAG)通过提供静态API文档提供了一种无需训练的替代方案,但我们发现这些文档通常只提供孤立的定义,留下了一个根本的知识缺口。具体来说,LLMs在API之间的任务级协调模式方面存在困难,并且对API参数约束和边界条件存在误解。为了解决这个问题,我们提出了MEMCoder,这是一个新颖的框架,使LLMs能够自主地积累和演化跨这两个维度的使用指南。MEMCoder引入了一个多维演化记忆,用于捕获从模型自身问题解决轨迹中提炼出的经验。在推理过程中,MEMCoder采用双源检索机制,将静态文档和相关的历史指南注入到上下文中。该框架通过使用客观的执行反馈来反思成功和失败,解决知识冲突,并动态更新记忆,从而在自动闭环中运行。在NdonnxEval和NumbaEval基准上的大量评估表明,MEMCoder显著增强了现有的RAG系统,平均绝对pass@1增益为16.31%。此外,与现有的基于记忆的持续学习方法相比,MEMCoder表现出优越的领域特定适应性。
🔬 方法详解
问题定义:论文旨在解决大型语言模型在企业私有库代码生成任务中表现不佳的问题。现有方法,如检索增强生成(RAG),虽然可以利用API文档,但这些文档通常是孤立的,缺乏API之间的关联信息以及参数约束的详细说明。这导致LLM难以理解API的使用模式和限制,从而影响代码生成的准确性和效率。
核心思路:MEMCoder的核心思路是让LLM通过自身的实践经验来学习API的使用方法。它通过构建一个多维演化记忆,记录模型在解决问题过程中的成功和失败案例,并从中提炼出使用指南。这些指南不仅包含API的定义,还包括API之间的协调模式和参数约束等信息,从而帮助LLM更好地理解和使用API。
技术框架:MEMCoder的整体框架包含以下几个主要模块:1) 代码生成模块:利用LLM生成代码;2) 执行反馈模块:获取代码执行结果的反馈信息;3) 记忆更新模块:根据反馈信息更新多维演化记忆;4) 双源检索模块:在推理时,从静态API文档和多维演化记忆中检索相关信息,并将其注入到LLM的上下文中。整个过程形成一个自动闭环,使LLM能够不断学习和改进。
关键创新:MEMCoder的关键创新在于提出了多维演化记忆。该记忆不仅记录了API的定义,还记录了API之间的协调模式和参数约束等信息。此外,MEMCoder还采用了双源检索机制,将静态API文档和多维演化记忆中的信息结合起来,为LLM提供更全面的上下文信息。
关键设计:多维演化记忆的设计是MEMCoder的关键。具体来说,该记忆包含两个维度:任务维度和API维度。任务维度记录了不同任务的代码生成过程和执行结果,API维度记录了不同API的使用方法和参数约束。记忆更新模块根据代码执行结果的反馈信息,动态更新这两个维度中的信息。双源检索模块根据当前任务的需求,从静态API文档和多维演化记忆中检索相关信息,并将其注入到LLM的上下文中。
🖼️ 关键图片
📊 实验亮点
实验结果表明,MEMCoder在NdonnxEval和NumbaEval基准测试中,相比现有RAG系统,pass@1指标平均提升16.31%。这表明MEMCoder能够有效提升LLM在私有库代码生成任务中的性能。此外,MEMCoder在领域特定适应性方面也优于现有的基于记忆的持续学习方法。
🎯 应用场景
MEMCoder可应用于企业内部私有库的代码生成,提高开发效率和代码质量。通过自主学习和积累API使用经验,降低对人工维护API文档的依赖。该研究对提升LLM在特定领域的应用能力具有重要意义,并为构建更智能的代码生成系统提供了新的思路。
📄 摘要(原文)
Large Language Models (LLMs) excel at general code generation, but their performance drops sharply in enterprise settings that rely on internal private libraries absent from public pre-training corpora. While Retrieval-Augmented Generation (RAG) offers a training-free alternative by providing static API documentation, we find that such documentation typically provides only isolated definitions, leaving a fundamental knowledge gap. Specifically, LLMs struggle with a task-level lack of coordination patterns between APIs and an API-level misunderstanding of parameter constraints and boundary conditions. To address this, we propose MEMCoder, a novel framework that enables LLMs to autonomously accumulate and evolve Usage Guidelines across these two dimensions. MEMCoder introduces a Multi-dimensional Evolving Memory that captures distilled lessons from the model's own problem-solving trajectories. During inference, MEMCoder employs a dual-source retrieval mechanism to inject both static documentation and relevant historical guidelines into the context. The framework operates in an automated closed loop by using objective execution feedback to reflect on successes and failures, resolve knowledge conflicts, and dynamically update memory. Extensive evaluations on the NdonnxEval and NumbaEval benchmarks demonstrate that MEMCoder substantially enhances existing RAG systems, yielding an average absolute pass@1 gain of 16.31%. Furthermore, MEMCoder exhibits vastly superior domain-specific adaptation compared to existing memory-based continual learning methods.