引言

在自然语言处理 (NLP) 快速发展的格局中,像 GPT-4 这样的大型语言模型 (LLM) 已经展示出了“涌现能力” (emergent abilities) ——即只有当模型达到巨大规模时才会出现的技能。其中最重要的一项就是推理能力。通过要求模型“一步步思考”或提供推理示例 (思维链提示,Chain-of-Thought prompting) ,我们可以大幅提高其在数学、符号逻辑或讽刺检测等复杂任务上的准确性。

然而,这里面有个问题。生成这些高质量的推理步骤通常需要人工标注 (这很昂贵) 或使用辅助的“代理”模型来为主模型生成解释。此外,随着行业对效率的追求,人们对小型语言模型 (SLMs) ——参数量少于 140 亿且可在消费级硬件上运行的模型——的兴趣日益增长。

SLM 是否有能力在不依赖人类或巨型教师模型的情况下提高自己的推理能力?

这正是论文 《Self-AMPLIFY: 利用自我事后解释改进小型语言模型》 (Self-AMPLIFY: Improving Small Language Models with Self Post Hoc Explanations) 所探讨的问题。研究人员提出了一个框架,让小型语言模型审视自己的预测,解释为什么正确答案是正确的 (使用事后解释方法) ,并利用这些自生成的解释来解决未来的问题。

图 1: 使用不同提示策略对 Snarks 数据集中的一个问题作出的四种回答示例。

如图 1 所示,传统的提示方法往往在检测讽刺等细微任务上表现不佳。然而,通过使用 Self-AMPLIFY , 模型在回答之前识别出了关键的理据 token (如“1000 economists”) ,从而得出了正确的预测。

在这篇文章中,我们将详细拆解 Self-AMPLIFY 的工作原理、“自我解释”背后的技术,以及为什么这对高效 AI 的未来至关重要。

背景: 上下文与理据

要理解 Self-AMPLIFY,我们首先需要了解上下文学习 (In-Context Learning, ICL) 的概念。ICL 是指语言模型仅通过在提示中看到几个示例就能学习一项任务的能力,而无需对其权重进行任何更新 (微调) 。

标准的 ICL 通常遵循输入-输出 (IO) 格式:

  • *输入: * 问题 A -> *输出: * 回答 A
  • *输入: * 问题 B -> *输出: * 回答 B
  • *输入: * 目标问题 -> *输出: * ?

然而,研究人员发现,包含理据 (rationale) ——即“为什么”——可以显著提高性能。这通常被称为思维链 (Chain-of-Thought, CoT) 。

  • *输入: * 问题 A -> *理据: * 解释 A -> *输出: * 回答 A

现有方法的问题

现有的自动生成这些理据的方法通常依赖外部支持:

  1. Auto-CoT: 要求模型“一步步思考”来生成理据。然而,如果模型很小或任务很难,它可能会产生幻觉,给出错误的推理。
  2. AMPLIFY: 这是一个先前的框架,它使用一个独立的、经过微调的“代理”模型 (如 BERT 模型) 来生成解释,然后再将解释提供给主 LLM。

对外部模型或人类数据的依赖限制了 SLM 的自主性。这就引出了事后解释 (Post Hoc Explanations)

事后解释

“Post hoc”意为“事后”。在机器学习中,事后解释方法是在模型做出预测之后对其进行分析,以确定输入的哪些部分对输出最重要。

常见的方法包括:

  • DeepLiftIntegrated Gradients (积分梯度) : 这些方法查看神经网络内部的梯度 (数学导数) ,以了解哪些输入词对输出贡献最大。
  • KernelSHAP: 一种扰动方法,通过稍微改变输入 (添加/删除词语) 来观察输出如何变化,从而确定特征的重要性。

Self-AMPLIFY 的作者意识到,现在的 SLM 能力已经足够强,可以将这些繁重的数学解释方法直接应用于 SLM 本身,使其成为自己的老师。

Self-AMPLIFY 框架

Self-AMPLIFY 的核心创新是一个全自动的、三步循环,允许 SLM 利用其内部信号来提高性能。它不再需要任何辅助模型。

图 2: Self-AMPLIFY 概览。一个包含样本选择、理据生成和提示设计的三步方法。

如图 2 所示,该过程流程如下:

步骤 1: \(n\)-shot 样本选择

系统需要决定在提示中包含哪些示例来教导模型。研究人员提出了两种完全基于模型自身预测的策略:

  1. 成功策略 (Success Strategy) : 选择模型 (在给出提示时) 已经能正确回答的示例。其逻辑是,如果模型对某个答案很确定,那么它对该答案的内部解释很可能也是高质量的。
  2. 错误策略 (Error Strategy) : 选择模型最初回答错误的示例。这里的目标是迫使模型通过为正确答案 (真实标签) 生成解释来分析其错误,希望这种纠正能防止测试阶段出现类似的错误。

步骤 2: 理据生成

一旦选择了样本,系统就会为它们生成理据。这是论文中技术含量最高的部分。由于系统知道训练样本的真实标签 (\(y\)) ,它会问: “输入的哪些部分解释了这个标签?”

论文实现了三种不同类型的自生成理据:

A. 基于归因的理据 (DeepLift / KernelSHAP)

这些方法将模型视为一个数学函数。它们计算输入句子中每个词相对于正确答案的重要性得分。

图 3: 使用事后归因方法的 Self-AMPLIFY 理据生成步骤。

如图 3 所示,如果正确答案是“D” (飓风) ,该方法会从输出“D”反向传播,以找到最相关的输入词: “which”、“type”、“weather”和“map”。

然后,系统将这些数学得分转换为自然语言句子:

*“The 4 keywords ‘which’, ’type’, ‘weather’ and ‘map’ are hints to predict that the answer is D.” (这 4 个关键词‘which’、‘type’、‘weather’和‘map’是预测答案为 D 的线索。) *

B. Self-TopK

这是一种更简单的方法,直接通过提示询问模型: *“Choose the right answer with the top-k most important keywords used to answer.” (选择正确答案,并给出用于回答的前 k 个最重要的关键词。) *

C. 事后思维链 (Ph-CoT)

在这里,系统提示模型在给定正确答案的情况下生成自由文本解释。模板如下: *“The answer is (A). Generate a concise 3-step explanation.” (答案是 (A)。生成一个简明的 3 步解释。) *

这与标准的 CoT 不同,标准 CoT 是在得出答案之前生成推理,而这里是在知道答案之后生成推理,实际上是在为真理寻找理由。

步骤 3: 提示设计

最后,系统构建用于对新的、未见过的数据进行推理的提示。它获取输入文本 (\(x\)) 、生成的理据 (\(r\)) 和正确标签 (\(y\)) ,创建 \((x, r, y)\) 三元组。

当模型面对一个新的测试问题时,它会看到这些“问题 -> 解释 -> 回答”的示例,并尝试模仿这种行为,执行本质上的上下文学习

实验与结果

研究人员在几个小型语言模型上评估了 Self-AMPLIFY,具体包括 Mistral-7BZephyr-7BGemma (2B 和 7B 版本) 。他们在需要强推理能力的数据集上进行了测试,例如识别讽刺 (Snarks) 、常识推理 (CommonsenseQA) 和因果推断 (Causal Judgment) 。

Self-AMPLIFY 有效吗?

结果令人信服。Self-AMPLIFY 始终优于标准的输入-输出 (IO) 提示,并且经常击败竞争对手 Auto-CoT 和 AMPLIFY。

表 1: Self-AMPLIFY 及其竞争对手在五个测试集和两个 70 亿参数模型上的准确率 (%)。

观察表 1 , 我们可以看到几个关键趋势:

  • 战胜竞争对手: 在使用 Mistral-7B 的 ARC Challenge 任务上,Self-AMPLIFY 的 Ph-CoT 版本达到了 75.2% 的准确率 , 而 Auto-CoT 为 71.8%,标准提示为 72.8%。
  • 多功能性: 无论是使用数学归因 (DeepLift) 还是自然语言生成 (Ph-CoT) ,Self-AMPLIFY 都显示出了改进。Ph-CoT 通常表现最好,这可能是因为自由文本解释对语言模型来说比关键词列表包含更多信息。
  • 独立性: 记住,AMPLIFY (竞争对手) 使用单独的 BERT 模型来辅助。Self-AMPLIFY 使用 SLM 本身就击败了它。

模型规模的影响

在比较不同模型大小时,出现了一个有趣的发现。研究人员在 Gemma-7B 和微小的 Gemma-2B 上测试了该框架。

图 4: Gemma-2B 与 Gemma-7B 的 Self-AMPLIFY 准确率对比。

图 4 所示:

  • Gemma-7B (右) : 显示了预期的行为——Self-AMPLIFY (蓝色柱) 通常击败竞争对手 (红色柱) 。
  • Gemma-2B (左) : 结果噪音大得多。在许多情况下,该方法并没有显著优于基线。

这表明存在一个“推理阈值”。极小的模型 (20 亿参数) 可能难以生成高质量的事后解释,或者无法像 70 亿参数的同类模型那样有效地从上下文学习中受益。

成功策略 vs. 错误策略

研究人员还调查了是向模型展示其成功的示例更好,还是展示其失败 (经纠正) 的示例更好。

  • 成功策略 (加强模型已知的知识) 表现持续良好。
  • 错误策略 (纠正错误) 对于 Snarks 和 Causal Judgment 等复杂任务非常有效。这意味着对于困难任务,向模型展示如何解决它之前感到困惑的问题,能提供强有力的学习信号。

讨论与启示

Self-AMPLIFY 论文为小型语言模型的自主性迈出了重要一步。通过闭环——允许模型分析自己的输出并将该分析反馈到自己的输入中——我们创建了一个无需大规模外部教师模型开销的自我改进系统。

关键要点

  1. 无需代理: SLM 现在已经足够强大,可以在自身上运行复杂的事后解释算法 (如 DeepLift) 。
  2. 归因即理据: 我们可以将数学上的“特征重要性”向量转换为自然语言提示,以提高模型的推理能力。
  3. 纠正性反馈: 使用“错误策略”允许模型专门从其直觉最初失败的“困难”示例中学习。

局限性

尽管前景广阔,但这种方法并非没有代价。像 KernelSHAP 和 DeepLift 这样的方法计算成本很高,因为它们需要通过网络进行多次前向和后向传播。虽然对于 7B 模型来说是可行的,但它们比简单的文本生成要慢得多。此外,正如在 Gemma-2B 上所见,模型规模存在下限;极小的模型可能不具备忠实解释其预测所需的“自我意识”。

结论

Self-AMPLIFY 证明了小型语言模型拥有潜在的推理能力,可以通过自我解释来解锁。随着我们迈向更高效的边缘 AI,允许这些紧凑模型从其内部动态中学习——而不是依赖基于云的巨型模型——的技术将变得至关重要。这项研究证实,即使是小型模型也能从“思考它们的思考”中受益。