基于马尔可夫自适应令牌选择的修复感知代码生成框架MATS-Code

《Array》:MATS-Code: Markovian Adaptive Token Selection for Efficient and Repair-Aware LLM-Based Code Generation

【字体: 大 中 小 】 时间:2026年10月29日 来源:Array 5.3

编辑推荐:

  大型语言模型(LLMs)生成的代码质量与成本在很大程度上取决于推理时提供的提示上下文。真实场景中的上下文混合了任务指令、函数签名、文档、示例以及无关的干扰材料;将所有内容全部输入会推高令牌成本,而按位置截断则可能删除关键信息。本文提出MATS-Code,一种置

  
大型语言模型(LLMs)生成的代码质量与成本在很大程度上取决于推理时提供的提示上下文。真实场景中的上下文混合了任务指令、函数签名、文档、示例以及无关的干扰材料;将所有内容全部输入会推高令牌成本,而按位置截断则可能删除关键信息。本文提出MATS-Code,一种置于任何代码LLM之前的上下文选择层。该方法将上下文分解为类型化块,构建有向图,其边综合语义相似度、抽象语法树(AST)依赖关系以及错误共现证据,并通过错误个性化PageRank迭代计算平稳相关性分布。选择过程在匹配令牌预算下采用贪心最大边际相关性(MMR)流程,并利用基于覆盖率的自适应预算按任务缩减提示。生成后,验证反馈回路将执行失败转化为更新的个性化向量,用于有针对性的重新选择与修复。所有实验均使用真实开源代码LLM(Qwen/Qwen2.5-Coder-1.5B-Instruct),在干扰增强的HumanEval+和MBPP+任务上采用确定性贪心解码,且每种方法使用相等的令牌预算。MATS-Code的Pass@1为0.580,低于最强基线(Self-Refine,0.589),同时拒绝了48.1%的注入干扰块,并相对于完整上下文减少了34.0%的提示令牌。配对自助区间和McNemar检验量化了所有比较的显著性,消融研究分离了各组件的贡献。零干扰参考运行以及来自六个模型家族、参数量从1.3B至14B的另外七个生成器的实验表明,MATS-Code在每个生成器上均超过完整上下文,并且在所有生成器上均保持在Self-Refine的配对置信区间内。
**MATS-Code:面向高效且可修复感知的LLM代码生成的马尔可夫自适应令牌选择——论文解读**

**一、研究背景与问题**

基于Transformer的语言模型已成为自动代码生成的主流技术,Code Llama、StarCoder2、DeepSeek-Coder和Qwen2.5-Coder等代码专用模型能够从自然语言规范中合成完整函数。然而,实际生成请求极少仅包含规范本身,往往还捆绑了函数签名、文档、示例、仓库片段、先前尝试和日志,形成长提示。由于自注意力成本随提示长度呈二次增长,过大的上下文会造成计算浪费;更严重的是,模型无法均匀利用长上下文,会丢失位于提示中间位置的信息。已有的提示压缩研究显示,当删除操作有依据时,大量上下文令牌可以被移除而不显著损失质量,但盲目的截断可能恰好删除任务所依赖的块。因此,核心问题在于:在显式令牌预算下,应选择可用上下文中的哪些部分提供给代码生成器,以及这种选择应如何响应验证失败。

**二、研究内容与结论**

研究人员提出MATS-Code,一种置于任何代码LLM之前的上下文选择层。该方法将完整上下文建模为图,图的边融合语义相似度、AST依赖关系和错误共现证据;通过错误个性化的PageRank迭代传播相关性;在匹配的令牌预算下使用贪心MMR准则选择多样化的块;并根据平稳相关性的分布形态自适应调整每任务的预算。在干扰增强的HumanEval+和MBPP+基准上,使用真实生成器Qwen/Qwen2.5-Coder-1.5B-Instruct和确定性贪心解码进行实验。结果显示,MATS-Code的Pass@1为0.580,低于最强基线Self-Refine(0.589),但高于完整上下文(0.532);同时实现了34.0%的令牌减少和48.1%的干扰块拒绝率。配对自助检验和McNemar检验表明,MATS-Code在5个基线上显著优于对方,而与Similarity Top-B、BM25、Error-Aware和Self-Refine的差异在统计上不可区分。跨八个生成器(1.3B至14B参数,六个模型家族)的实验表明,MATS-Code在所有生成器上均超过完整上下文,并且均处于Self-Refine的配对置信区间内。零干扰参考运行显示,MATS-Code在干净提示下不会降低性能,且略优于完整上下文。该方法的组件均通过消融实验得到验证,选择过程具有可解释性,且开销极低(每任务85.7ms,仅为生成时间的0.16%)。

**三、关键方法**

研究人员采用的主要方法包括:①上下文块分解与图构建——将上下文分解为类型化块,每块作为节点,边权重由语义相似度(Sentence-BERT嵌入余弦)、AST依赖分数(解析代码块提取定义/使用符号)和错误共现分数组成;②错误个性化PageRank传播——利用重启概率为0.15的阻尼迭代计算平稳相关性分布,重启向量结合查询重叠、依赖显著性、指令先验和错误相关性;③预算受限MMR选择——贪心加入相关性减去冗余惩罚的块,直到匹配令牌预算或达到覆盖率阈值;④验证反馈修复循环——将执行失败转化为更新错误个性化向量,重新选择上下文并重新生成,最多进行R轮修复。实验采用匹配令牌预算(T=300)协议,所有方法使用等量令牌,并在EvalPlus强化测试集上评估,使用配对bootstrap置信区间和McNemar检验比较显著性。

**四、研究结果**

**A. 主要结果**:在314个任务上,MATS-Code获得Pass@1为0.580,低于Self-Refine(0.589),高于完整上下文(0.532),平均使用253个提示令牌,较完整上下文434个令牌减少34.0%。干扰拒绝率为48.1%,显著高于Random-B的31.5%。在HumanEval+上令牌减少53.7%,干扰拒绝77.8%;在MBPP+上令牌减少12.5%,干扰拒绝15.6%。MATS-Code在96.2%的任务中保留签名块,83.4%保留指令块。

**B. 失败与错误分析**:MATS-Code失败而完整上下文通过的任务有11个,反之有26个。失败的11个均为断言或运行时错误,无语法错误;MATS-Code的运行时错误少于完整上下文(18对30)。选择保留的干扰块中,来自其他任务的代码片段占比最高(44.5%),因为其形态与任务块相似。

**C. 正确性-成本权衡**:通过帕累托前沿图展示所有方法在提示令牌和Pass@1平面上的位置,强调压缩必须与正确性联合评估。

**D. 消融研究**:在120个任务子集上,去除误差相关组件导致最大性能下降(Pass@1从0.650降至0.642);去除自适应预算不改变Pass@1,但增加平均上下文令牌(252.2增至260.5),证明其是成本/选择质量组件而非正确性组件。验证循环的增益中,误差个性化贡献0.008(1/120任务)。

**E. 敏感性分析**:预算T、阻尼μ、温度τ和覆盖率θ的扫描显示,预算是压缩-正确性前沿的直接驱动;干扰种子、嵌入模型、块粒度和边权重配置的变化对拒绝率有影响,但主结论保持一致。

**F. 干净提示参考与生成器迁移**:零干扰下MATS-Code Pass@1为0.602 vs 完整上下文0.583,配对差0.019(bootstrap区间[0.003,0.038])。七个额外生成器上,MATS-Code全部超过完整上下文,与Self-Refine的差距均落在配对置信区间内。

**G. 可解释性**:转移矩阵、收敛曲线和选定块得分使每个决策可审计,优于定位和随机基线。

**H. 局限性与有效性威胁**:主要在Python函数级基准上评估,BigCodeBench-Hard上性能有限;依赖Python的ast模块解析,其他语言需自行解析器;未测试跨文件依赖、多轮会话、安全性和对抗性博弈。

**五、讨论与结论**

讨论部分强调,MATS-Code通过结构传播、执行反馈和预算自适应的组合填补了现有方法的空白:压缩方法通常结构盲,检索方法逐点且无反馈,修复方法往往每轮支付全上下文成本。研究结论指出:MATS-Code在干扰增强的HumanEval+和MBPP+上达到Pass@1为0.580,低于Self-Refine(0.589),同时实现34.0%令牌减少和48.1%干扰拒绝;方法模块化、可解释且生成器无关;在八个生成器上均优于完整上下文,与Self-Refine统计不可区分;零干扰下不损害性能;选择开销远低于生成时间。未来工作可扩展至仓库级评估、学习参数、规模与污染控制,以及更丰富的块语义。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普

热点排行

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

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号