自提示:基于梯度引导的离散提示优化方法用于代码生成

《Neurocomputing》:Self-prompt: Gradient-guided discrete prompt optimization for code generation

【字体: 大 中 小 】 时间:2026年09月02日 来源:Neurocomputing 6.7

编辑推荐:

  摘要 虽然大型语言模型在代码生成方面展现出了显著的能力,但其执行可靠性仍然高度依赖于提示的表述方式。自动化提示工程技术缓解了手动提示设计中的低效率问题;然而,现有的离散搜索方法主要依赖于启发式的语言先验,这限制了优化过程只能在次优的语义范围内进行。在本文中,我们提出了Self

  摘要
虽然大型语言模型在代码生成方面展现出了显著的能力,但其执行可靠性仍然高度依赖于提示的表述方式。自动化提示工程技术缓解了手动提示设计中的低效率问题;然而,现有的离散搜索方法主要依赖于启发式的语言先验,这限制了优化过程只能在次优的语义范围内进行。在本文中,我们提出了Self-Prompt,这是一个结合了连续梯度下降和离散提示合成的梯度驱动优化框架。我们的方法不是在离散的文本空间内进行启发式搜索,而是将提示生成分为自然语言上下文构建和梯度引导的离散触发词提取两部分。通过将提示提取视为一个参数固定的伪训练过程,Self-Prompt模拟了传统微调的优化动态,同时将所有更新限制在虚拟嵌入层内。学到的连续表示随后被投影到离散词汇空间中,生成与任务对齐的触发词标记,这些标记保留了在梯度下降过程中获得的优化信号,而不会修改底层模型参数。在HumanEval、MBPP和EvalPlus等十个不同的开放权重LLM上的全面评估表明,Self-Prompt有效规避了对启发式文本搜索的依赖,在大多数评估配置中实现了整体性能的提升和良好的跨模型稳定性。

引言
大型语言模型(LLMs)逐渐重塑了自动化代码生成的格局,为编程生产力带来了新的范式 [1]、[2]。然而,与自然语言交流不同,可执行代码受到严格的句法和确定性逻辑约束。将抽象的人类意图转化为功能程序仍然是一个非常脆弱的序列到序列映射过程。因此,LLMs仍然存在固有的局限性,即使是微小的标记偏差也经常会导致带有句法错误或逻辑不一致的输出,从而影响整体可靠性 [3]、[4]、[5]。这种脆弱性由于标记级表示与程序结构之间的不匹配而进一步加剧:语义上等价的代码在表面级的重写下可能会映射成不同的子词序列 [6],小的标记偏差可能会违反语法引导解码可以帮助执行的形式语法约束 [7],代码的正确性往往取决于层次依赖关系,如嵌套结构、匹配的分隔符以及范围相关的一致性约束,而这些最好通过AST感知的表示来捕捉 [8]。这些特性有助于解释为什么词汇扰动对代码生成的影响比对一般自然语言生成的影响更大。

为了缓解这些局限性,现有方法通常分为两条不同的路径:更新内部模型参数 [9],或优化外部文本输入 [10]。参数化适应通常表现为监督微调(SFT)或强化学习,通过直接在特定领域的代码语料库上更新模型的权重来调整基础LLM [11]、[12]、[13]、[14]。虽然更新模型权重能有效捕捉任务约束,但它仍然计算成本较高。即使使用参数高效的微调(PEFT),这种方法也容易在狭窄的领域分布上过拟合 [15]。

相比之下,提示工程仅通过外部文本输入来调节模型行为,避免了参数更新的大量开销。文本提示作为一个轻量级的接口,用于指导预训练架构中内置的内在逻辑。然而,由于语言模型的固有词汇敏感性和提示的脆弱性 [16]、[17],手动提示设计通常依赖于主观的启发式方法和大量的试错,缺乏一种接近全局最优的原理性机制。为了解决这一瓶颈,自动化提示工程(APE)[18] 利用语言模型自主搜索离散输入空间。虽然文本到文本的合成可以避免人工劳动,但在算法代码生成上执行纯自然语言优化会暴露出深层结构漏洞:在没有梯度引导的情况下,这种黑盒搜索仍然受到模型内部对齐偏差的限制,导致生成的提示不充分。如表1所示,对于ChatGLM3-6B [19],这些提示会起到反面的作用,即使在HumanEval基准测试中的默认基线以下也降低了性能 [20]。此外,如果没有连续的优化来满足代码生成的严格逻辑,离散标记搜索会收敛到局部最小值 [21],从而限制了模型的固有能力。

为了解决无约束离散搜索的局限性,我们引入了Self-Prompt,这是一种用于代码生成的梯度引导提示优化框架。它使用通过冻结的骨干网络计算的任务损失梯度来优化连续的虚拟嵌入层,而不是依赖于对离散标记组合的启发式枚举。Self-Prompt分为两个阶段:(1)使用目标模型本身合成基础提示并过滤掉引入限制性编码偏见的候选提示;(2)对虚拟嵌入层进行伪训练,以从优化后的嵌入位移中提取离散触发词标记。

本工作的贡献有三个方面:
1. 我们提出了一种连续到离散的梯度引导触发词提取方法,该方法将嵌入空间的优化信号投影到离散词汇标记中,而无需修改骨干模型参数。通过在虚拟嵌入层上进行梯度下降,并使用嵌入位移作为提取信号,该方法将连续的优化路径转化为可部署的硬提示标记。
2. 我们设计了一种角色解耦的提示优化架构,该架构将基于APE的语义构建(基础提示)与伪训练驱动的行为调节(额外提示)结合在一个统一的提示优化流程中。该架构冻结了骨干模型参数,并将优化限制在虚拟嵌入层内,明确了连续到离散触发词提取如何整合到整个工作流中。
3. 我们在11个开放权重LLM(3B–30B参数)和四个基准测试(HumanEval、MBPP、HumanEval+和MBPP+)上进行了系统评估。结果表明了显著的实证改进,并提供了跨基准的可迁移性证据,表明提取的触发词捕捉到了可迁移的行为线索,而不仅仅是特定数据集的特有特征(图1)。

代码生成
代码生成通常被视为一个复杂的序列到序列映射任务,其目标是将抽象的人类意图转化为逻辑一致且符合句法的可执行程序结构 [9]。早期的大型语言模型(LLMs)主要通过大规模的代码语料库预训练,随后进行特定领域的监督微调(SFT)来建立代码生成能力。这一范式产生了一系列代表性的开放权重代码模型,包括代码问题表述。

Self-Prompt框架将自动化提示工程视为一个连续优化问题,使用特定角色的双重嵌入参数化,而不是进行离散词汇的启发式搜索。优化后的连续表示随后被投影回离散标记中,从而将特定于任务的信息压缩成可部署的硬提示。在这个框架中,伪训练表示一个参数固定的优化阶段,它利用计算的任务损失来进行优化。

实验设置
所有实验都在统一的优化配置下进行,以便在不同模型规模上一致地评估连续到离散的提取机制。对于3B–10B参数范围内的模型,可使用AdamW优化器 [62] 进行训练嵌入矩阵的优化,不使用权重衰减,学习率固定为。有效批量大小固定为16,通过梯度累积实现,每次梯度累积步长为1(gradient公告编号)。

讨论
Self-Prompt框架的实证有效性来源于一种双重对齐机制,它将人类可读的语义与模型的本机参数化拓扑结构联系起来。最初,依靠目标模型自己生成其上下文框架,强制实现内在的语义对齐。这种自动生成的表述倾向于符合模型特定的输出分布和解码模式,最小化了通常由人类手工设计的分布摩擦。

局限性
虽然连续到离散的优化缓解了启发式提示合成的不稳定性,但该框架的适用性受到几个结构依赖性的限制。首先,它依赖于反向传播的梯度,需要白盒访问目标模型进行梯度计算,这使得该方法无法与只能通过黑盒API端点访问的闭源模型兼容。其次,尽管连续到离散的投影能够产生功能稳定的结果,但它的应用范围受到限制。

结论
我们提出了Self-Prompt,这是一个为大型语言模型在代码生成任务中量身定制的自动化提示优化框架。我们的框架结合了自动生成的自然语言框架和梯度引导的离散触发词,以解决启发式搜索的局限性以及人类直觉与模型分布之间的语义不匹配问题。通过明确地将连续梯度优化投影回离散词汇空间,我们实现了梯度引导的提示生成。

作者贡献声明
Liangdongzheng Zhu:撰写 – 原始草稿、可视化、验证、软件、方法论。Wenxi Zong:软件、数据管理、概念化。Yu Tong:监督、审稿与编辑、概念化。Xiaofeng Mou:资源管理、项目行政。Xiaojun Lu:撰写 – 审稿与编辑、监督。Yi Xu:项目行政、资金获取。

利益冲突声明
作者声明他们没有已知的潜在财务利益或个人关系可能影响本文报告的工作。

Liangdongzheng Zhu目前是中国东北大学理学院的三年级应用统计学硕士生,同时也在美的集团AI研究所进行联合研究培训。他的研究兴趣包括代码生成和翻译、模型微调以及代理上下文和技能的优化。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普

热点排行

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

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号