引言

我们都有过这种经历: 你向大语言模型 (LLM) 问一个具体的、细节丰富的问题——比如关于某种疾病或历史事件——得到的回答听起来无比自信。语法完美,语气专业,但内容却……稍微有点偏差。也许它漏掉了一个关键细节,产生了一个错误的日期幻觉,或者论证的顺序令人困惑。

尽管在互联网海量数据上进行了大规模预训练,LLM 在处理知识密集型任务时仍然十分挣扎。它们非常擅长模仿专家的风格,但往往无法检索到复杂查询所需的具体实质内容。这主要导致了三个问题:

  1. 不完整性 (Incompleteness) : 回答缺乏深度。
  2. 非事实性 (Non-factuality) : 模型编造内容 (幻觉) 。
  3. 不合逻辑性 (Illogicality) : 推理不通顺。

核心问题不仅仅在于模型不“知道”这些事实;而在于标准的训练方法并没有迫使模型感知到它所拥有的知识。

在这篇文章中,我们将深入探讨一篇题为 “KnowTuning: Knowledge-aware Fine-tuning for Large Language Models” 的研究论文。研究人员提出了一种新颖的两阶段微调方法,旨在修复这些特定的盲点。读完本文,你将了解“KnowTuning”是如何工作的,它如何迫使模型识别“困难”的事实,以及它如何训练模型区分逻辑与废话。

“朴素”微调的问题

要理解为什么 KnowTuning 是必要的,我们首先需要看看 LLM 通常是如何针对特定任务进行训练的。这个标准过程称为有监督微调 (Supervised Fine-Tuning, SFT) 。

在 SFT 中,模型被赋予一个包含问题和正确答案的数据集。它学习预测答案序列中的下一个单词。从数学上讲,目标是最小化模型预测与实际目标文本之间的差异。

描述标准 SFT 损失的公式。

虽然对一般对话有效,但标准 SFT 对每个单词都一视同仁。它对预测正确单词“the”的关心程度,与预测医学答案中特定化合物的关心程度是一样的。

正因如此,SFT 模型往往缺乏知识感知 (knowledge awareness)

  1. 细粒度感知: 它们无法识别句子中哪些特定的原子事实是困难的或关键的。
  2. 粗粒度感知: 它们难以区分高质量的回答与那些有细微错误或不完整的回答。

图 1: 朴素微调 LLM 缺乏知识感知的示意图。(a) 朴素微调 LLM 难以识别细粒度知识以精确回答特定问题。(b) 朴素微调 LLM 无法有效区分回答中可靠知识和不可靠知识。

如上图 1 所示,一个朴素模型可能会自信地声称苹果是由香蕉树生产的 (图 1b) ,仅仅因为它遵循了定义的语法结构,却未能标记出事实错误。

KnowTuning 解决方案

研究人员提出了 KnowTuning , 这是一种专门针对这些弱点的方法。该方法分为两个明显的阶段:

  1. 细粒度知识增强 (Fine-grained Knowledge Augmentation) : 这在微观层面上起作用。它识别模型觉得困难的具体事实,并强迫模型练习它们。
  2. 粗粒度知识对比 (Coarse-grained Knowledge Comparison) : 这在宏观层面上起作用。它训练模型偏好完整、符合事实且逻辑通顺的回答,而不是损坏的版本。

图 2: KnowTuning 概览。KnowTuning 利用细粒度知识增强和粗粒度知识对比来提高 LLM 的知识感知能力。

图 2 提供了该系统的高级路线图。让我们分解每个阶段的机制。

第一阶段: 细粒度知识增强

第一步是提高模型对具体细节的掌握——论文称之为“原子知识 (Atomic Knowledge) ”。

提取原子知识

复杂问题的答案本质上是一系列小事实的集合。研究人员使用一种提示技术将完整的句子分解为这些原子单元。

提取原子知识的公式。

例如,句子“苹果树在世界范围内种植”可能会被分解为“苹果是一种水果”和“苹果树在全球生长”等原子事实。

识别“困难”知识

并非所有事实对 LLM 来说都是困难的。它可能知道苹果是什么。但生僻的医学术语或历史日期可能就不同了。为了找到“困难”的事实,研究人员计算每个原子事实的 困惑度 (Perplexity, PPL)

困惑度实际上衡量了模型对一连串单词感到多么“惊讶”。如果模型对某个特定事实的困惑度很高,意味着模型对它不确定。

计算原子事实困惑度的公式。

增强数据

一旦识别出“困难”的事实 (那些困惑度高的事实) ,系统不会只是希望模型能学会它们。它会主动重写训练数据。

系统获取原始问题,并将其重写为专门询问那些困难事实的问题。

基于困难事实重写问题的公式。

它还会重写答案,以确保其直接回应这些特定点。

基于困难事实重写答案的公式。

最后,这些新的、有针对性的问答对被添加到训练集中。这有效地迫使模型在它觉得最困惑的主题上“更加努力地学习”。

结合原始数据集和增强数据集的公式。

第二阶段: 粗粒度知识对比

如果说第一阶段帮助模型记忆事实,那么第二阶段则教会它鉴别。目标是训练模型区分“可靠”回答和“不可靠”回答。

为此,研究人员使用了 直接偏好优化 (Direct Preference Optimization, DPO) 。 DPO 是一种训练技术,模型会看到两个答案——一个胜者 (winner) 和一个败者 (loser) ——并进行更新,以增加生成胜者的概率,同时降低生成败者的概率。

KnowTuning 的精妙之处在于它如何生成“败者” (负例) 样本。他们不是随意挑选糟糕的答案,而是系统地通过三种特定方式破坏好的答案: 完整性、事实性和逻辑性。

1. 知识完整性 (“不要遗漏信息”训练)

一个好的回答应该是全面的。为了教导这一点,研究人员构建了一个“不完整”的数据集。他们从一个好的回答中提取全套原子事实,并随机删除其中的一部分。

通过删除事实创建不完整知识集的公式。

然后,他们将剩余的事实连接起来,形成一个不完整的回答 (\(a^c_i\)) 。

将不完整事实连接成回答的公式。

理想情况下,模型应该偏好完整的、重述的回答 (\(a^r_i\)) ,而不是这个支离破碎的版本。

创建完整性对比集的公式。

2. 知识事实性 (“不要撒谎”训练)

为了解决幻觉问题,模型需要识别事实何时是错误的。研究人员获取正确的原子事实,并使用外部模型 (如 GPT-3.5) 显式地将它们修改为错误的陈述 (例如,将“由苹果树生产”改为“由香蕉树生产”) 。

将事实修改为非事实的公式。

这些错误的事实被串联起来,形成一个非事实的回答 (\(a^f_i\)) 。

将非事实性事实连接起来的公式。

这创建了一个对比集,模型在其中学习拒绝事实错误。

创建事实性对比集的公式。

3. 知识逻辑性 (“合乎逻辑”训练)

最后,回答需要逻辑通顺。为了模拟不合逻辑的回答,研究人员获取正确的原子事实,并随机 打乱 (shuffle) 它们的顺序。

打乱原子事实以创建不合逻辑序列的公式。

这导致回答虽然包含真实信息,但呈现方式支离破碎、令人困惑 (\(a^l_i\)) 。

将打乱的事实连接起来的公式。

模型被训练为偏好结构良好的回答,而不是打乱的回答。

创建逻辑性对比集的公式。

最终训练目标

所有三个对比集 (完整性、事实性、逻辑性) 被合并成一个巨大的数据集 (\(\mathcal{D}_{kc}\)) 。

合并所有对比数据集的公式。

然后使用 DPO 损失函数对模型进行训练。如果模型给“坏”回答 (不完整、非事实或不合逻辑) 分配的概率高于“好”回答,该函数会在数学上惩罚模型。

描述 DPO 损失函数的公式。

为了确保模型不会失去基本的对话能力,最终的损失函数将这种对比训练与标准的有监督微调损失结合在一起。

总损失函数的公式。

实验与结果

这个复杂的两阶段过程真的有效吗?研究人员将 KnowTuning 与几个基线进行了对比测试,包括标准 SFT、来自 AI 反馈的强化学习 (RLAIF) 和 FactTune (一种仅关注事实性的竞争方法) 。

他们使用了两个主要数据集:

  1. Dolly: 一个通用的问答数据集。
  2. MedQuAD: 一个专业的医学问答数据集 (高度知识密集型) 。

自动评估

首先,他们使用自动指标 (METEOR 和 BERTScore) 将生成的答案与金标准参考进行比较。

表 1: 通用和医学 QA 上的基于词汇和基于语义的评估。最佳表现以粗体突出显示。

如表 1 所示, KnowTuning 在通用和医学领域均始终获得最高分 , 无论是基于 Llama2-7b 还是 Llama2-13b 模型。

GPT-4 作为裁判

像 BERTScore 这样的指标很有用,但它们无法真正捕捉细微差别。研究人员使用 GPT-4 作为裁判,在正面对决的锦标赛中比较 KnowTuning 的答案与基线。

表 2: 由 GPT-4 评估的通用 QA 和医学 QA 数据集的主要结果。标有 * 的分数意味着 KnowTuning 显著优于基线。

表 2 显示了“胜/平/负”的比率。与 Dolly 数据集上的标准 SFT 相比,KnowTuning 在 完整性 (78.5%)事实性 (37% 胜 vs 16.5% 负)逻辑性 (50.5%) 方面取得了巨大的胜率。

这种差距在医学数据集中更为明显,证明了 KnowTuning 在精确度至关重要的特定领域任务中表现出色。

细粒度事实评估

也许最令人印象深刻的结果来自“细粒度事实评估”。在这里,研究人员提取了模型生成的每一个原子事实并进行了验证。

表 4: 通用和医学 QA 上的细粒度事实评估。最佳表现以粗体突出显示。

表 4 揭示了一个关键见解: KnowTuning 生成了更多的事实总量 (# Total) ,同时也保持了更高的正确率 (% Correct) 。

虽然像 FactTune 这样的其他方法提高了正确事实的百分比,但它们往往通过生成更短、更安全的回答 (较低的 # Total facts) 来实现这一点。KnowTuning 成功做到了既全面又准确。

消融实验: 我们需要所有部分吗?

研究人员移除了系统的不同组件,看看什么最重要。

表 5: 由 GPT-4 在通用 QA 数据集上评估的消融研究。

表 5 显示,移除任何组件都会损害性能。

  • 移除 增强 (-KA) 显著降低了性能,证明关注“困难”事实至关重要。
  • 移除 逻辑性对比 (-KLC) 损害了逻辑得分,证实了打乱事实是教授结构的有效方法。
  • 移除 完整性 (-KCC) 损害了完整性得分。

这证实了分别针对完整性、事实性和逻辑性进行设计的必要性。

结论

大语言模型常被批评为“随机鹦鹉”——只会重复模式而不理解真理。 KnowTuning 论文认为,我们要缓解这一问题,不仅可以通过向模型提供更多数据,还可以通过改变它从这些数据中学习的方式

通过识别模型觉得困难的具体事实 (细粒度增强) 并显式训练它拒绝不完整、错误和混乱的回答 (粗粒度对比) ,KnowTuning 创建了一个更加稳健的模型。

对于 NLP 学生和从业者来说,这篇论文强调了一个重要趋势: 微调的未来不仅仅是“指令遵循”。它在于设计训练目标,迫使模型内化知识本身的结构和有效性。无论是用于医疗建议还是历史分析,像 KnowTuning 这样的方法正在为不仅仅是健谈、更是值得信赖的 AI 铺平道路。