引言

如果你曾花时间使用过像 GPT-4、Llama 或 Mistral 这样的大型语言模型 (LLM) ,你一定对“提示词工程 (prompt engineering) ”的挣扎深有体会。当你有一个任务——比如总结文档或分类情感——你会花费数小时调整措辞: “重写这段话”、“扮演专家角色”、“逐步思考”。

LLM 的表现很大程度上依赖于这些手工制作的提示词。但寻找最佳提示词往往是一个试错的过程,与其说是一门科学,不如说是一门艺术。

这引出了一个引人深思的研究问题: 我们能利用 AI 来自动化创建这些提示词吗?

虽然研究人员已经探索了“自动提示词微调 (Automatic Prompt Tuning) ”,但现有的方法存在明显的缺陷。一些方法,如“软提示词微调 (Soft Prompt Tuning) ”,优化的是人类无法阅读的连续嵌入 (embeddings) 。其他方法使用强化学习 (RL) 来生成文本提示词,但这些方法极其不稳定——经常遭遇模式崩溃 (mode collapse) 或需要巨大的计算资源。

在这篇文章中,我们将深入探讨一篇名为 “StablePrompt: Automatic Prompt Tuning using Reinforcement Learning for Large Language Models” 的论文。研究人员提出了一个新的框架,该框架稳定了强化学习过程,使得较小的模型能够生成高性能的提示词,且效果往往优于人类设计的提示词。

背景: 离散提示词微调的难点

在看解决方案之前,我们需要先理解问题所在。我们关注的是 离散提示词微调 (Discrete Prompt Tuning) 。 与调整模型内部数值的软提示 (soft prompting) 不同,离散微调寻找的是输入给模型的、实际可理解的单词。

目前主要有两种自动化方法:

  1. 基于生成的方法: 你要求一个 LLM (如 GPT-4) “生成一个更好的提示词”。这受限于生成器预训练的能力。如果模型不能很好地理解任务,它就写不出好的提示词。
  2. 基于 RL 的方法: 你将提示词生成视为一个游戏。一个“代理 (Agent) ”写出提示词,一个“目标 (Target) ”模型尝试回答它,如果回答正确,代理就会获得奖励。

RL 方法在理论上更强大,因为它能从反馈中学习。然而,将 RL 应用于语言生成是非常困难的。“动作空间” (语言中的整个词汇表) 是巨大的。像 PPO (近端策略优化) 这样的标准 RL 算法在这里经常失败;它们要么偏离连贯的语言模型太远 (产生乱码) ,要么过于坚持初始状态而学不到任何新东西。

StablePrompt 框架

研究人员介绍了 StablePrompt , 这是一个旨在平衡训练稳定性与寻找创造性提示词所需灵活性的框架。

高层架构

该架构涉及两个主要的 LLM:

  1. 代理模型 (Agent Model, \(M_a\)) : 该模型负责生成提示词。
  2. 目标模型 (Target Model, \(M_T\)) : 这是我们想要改进的模型 (例如 Llama-3-8B) 。它接收生成的提示词和输入数据来产生答案。

StablePrompt 概览,显示代理为目标模型生成提示词。

如图 1 所示,该过程在一个循环中工作。代理接收一个任务 (如“分类这段文本”) 。它生成一个候选提示词。目标模型使用该提示词来处理数据。最后,系统检查目标模型是否得出了正确答案,并将“奖励 (Reward) ”信号发送回代理。

元提示词 (Meta-Prompt)

代理最初如何知道该做什么?研究人员使用了 元提示词 (Meta-Prompt) 。 这是一个任务无关的模板,为代理构建了问题框架。

StablePrompt 和 TTE-StablePrompt 中使用的元提示词详细模板。

如上图 6 所示,元提示词向代理展示了一些输入/输出对的示例,并要求它生成连接这些示例的指令。这利用了代理预训练的“归纳”能力——即从示例中推断规则。

数学公式化

目标是找到一个离散提示词 \(\mathbf{z}\),使得奖励 \(R\) 最大化。

描述最大化提示词 z 的奖励的方程。

这里,代理 (\(M_a\)) 以自回归方式生成提示词 token。优化的目的是最大化目标模型 (\(M_T\)) 使用这些提示词时的预期奖励。

核心创新: 自适应 PPO (APPO)

这篇论文真正的突破在于他们如何训练代理。他们修改了一种流行的强化学习算法 PPO。

标准 PPO 的问题

在标准 PPO 中,当我们更新模型时,我们使用一个惩罚项 (KL 散度) 来确保模型不会偏离 上一步 太远。

  • *问题: * 如果你从起点走出一小步一小步的距离,最终可能会漂移到“坏区域”,导致模型输出垃圾文本 (模式崩溃) ,即使奖励最初看起来很高。

在 RLHF (基于人类反馈的强化学习) 中,研究人员通常限制模型保持在 初始预训练模型 附近。

  • *问题: * 这对于提示词微调来说限制性太强了。我们 希望 模型探索原始模型通常不会说出的新的、创造性的措辞。

锚点模型解决方案

StablePrompt 引入了 自适应 PPO (Adaptive PPO, APPO) 。 他们没有将模型限制在上一步或最开始,而是引入了一个 锚点模型 (Anchor Model)

锚点模型是在特定时间点保存的代理快照。它充当一个参考点。

  1. 如果代理有显著改进,锚点会更新以匹配代理 (保存进度) 。
  2. 如果代理表现变差,我们可以回滚到锚点。
  3. KL 惩罚 (约束条件) 是基于与这个 锚点模型 的距离计算的,而不是上一步。

对比 APPO 与原始 PPO 的插图。

图 3 极好地说明了这一点。

  • 原始 PPO (左) : 模型一步步更新。误差累积,轨迹可能会偏离最佳提示词,进入不稳定区域。
  • APPO (右) : “锚点” (红点) 充当大本营。模型在锚点周围探索。当它找到更好的位置时,它会移动大本营。这允许在不迷路的情况下进行广泛探索。

数学上的变化微小但有力。惩罚项 \(P\) 变为:

使用锚点模型的 APPO 中 KL 散度惩罚方程。

这一项确保当前策略 \(\theta_t\) 不会偏离锚点策略 \(\theta_{anchor}\) 太远。

奖励函数

我们如何为提示词打分?对于文本生成,F1 分数效果很好。但对于分类 (例如情感分析) ,仅仅使用准确率 (Accuracy,1 或 0) 会产生稀疏的信号——许多提示词可能得到相同的准确率,使得难以对它们进行排名。

StablePrompt 使用了一个复合奖励函数:

结合准确率和 Softmax 差值的奖励函数方程。

它结合了 准确率Softmax 差值 (\(D\)) 。 Softmax 差值测量正确类别的概率与最高错误类别的概率之间的差距。这不仅奖励模型答对问题,还奖励模型对正确答案的 自信

训练工作流

完整的训练框架如下图所示。系统计算代理与锚点之间的 KL 散度以保持训练稳定,同时奖励信号驱动代理生成更好的提示词。

StablePrompt 的训练框架,显示代理、锚点和目标模型之间的交互。

为了验证稳定性,研究人员绘制了随时间变化的平均奖励和价值损失 (下图 7) 。与许多 RL 实验中图表剧烈波动不同,StablePrompt 显示出奖励稳步增加 (绿色) 和损失收敛 (蓝色) ,证明了该方法的稳定性。

按步骤显示的平均奖励和价值损失的训练曲线。

方法扩展: 测试时编辑 (Test-Time Editing)

有时,单个提示词不足以应对整个数据集。有些输入比其他输入更难。研究人员提出了 TTE-StablePrompt (测试时编辑) 。

在这个变体中,代理会看到 特定的输入查询 以及元提示词。它仅针对该特定输入生成独特的指令。这允许系统逐个案例地调整策略,本质上是在执行动态提示词工程。

实验与结果

研究人员在各种任务上测试了 StablePrompt,包括 GLUE (分类) 、MMLU (问答) 和 BigBench (推理) 。

1. 跨模型的鲁棒性

最令人印象深刻的结果之一是,无论模型大小组合如何,StablePrompt 都能有效工作。他们测试了从 20 亿参数 (Gemma-2B) 到 110 亿参数 (Falcon-11B) 的代理和目标模型。

不同目标-代理对上的少样本分类任务热图。

上面的热图 (图 4) 显示了准确率。深橙色表示更高的性能。

  • 关键发现: 一个小的代理 (如 Gemma-2B) 可以成功地为较大的目标 (如 Llama-3-8B) 微调提示词。
  • 关键发现: StablePrompt 始终优于人工提示词 (“MP”列与热图单元格对比) 。

2. 战胜巨头

它与其他自动化方法相比如何?研究人员将 StablePrompt (使用 7B 模型) 与 APE (使用高达 175B 的模型) 进行了比较。

指令归纳任务的结果,显示 StablePrompt 击败了更大的模型。

在指令归纳任务 (表 2) 中,StablePrompt 取得了 92.8 的平均分,击败了 InstructGPT-3.5 (89.3) 和巨大的 OPT-175B (68.6) 。这表明对于此任务,智能的训练算法 (APPO) 比原始模型大小更重要。

3. 问答任务 (MMLU)

在测试 STEM、人文学科等多领域常识的 MMLU 基准测试中,StablePrompt 及其 TTE 变体再次显示出优势。

MMLU QA 数据集的完整结果。

表 13 显示, TTE-StablePrompt (测试时编辑) 在几乎所有类别中始终取得最高分。这证实了允许代理为每个特定问题定制提示词可以产生最佳的推理结果。

结论

StablePrompt 代表了自动化与 LLM 交互的重要一步。通过将提示词微调公式化为强化学习问题——并通过 锚点模型 策略解决稳定性问题——作者创造了一种工具,即使是小型开源模型也能有效地优化提示词。

关键要点:

  • RL 对于提示词微调是可行的: 有了正确的约束 (APPO) ,我们可以防止通常困扰基于文本的 RL 的不稳定性。
  • 小模型可以指导大模型: 你不需要 GPT-4 来为 GPT-4 写提示词。经过微调的 7B 模型可以为更大的模型生成高效的提示词。
  • 动态提示词有效: 针对每个特定输入调整提示词 (测试时编辑) 相比静态提示词提供了显著的性能提升。

随着 LLM 继续融入更复杂的工作流,像 StablePrompt 这样的工具可能会成为标准配置,推动我们从手工的“提示词工程”走向算法化的“提示词优化”。