引言

想象一下,你正在与一位新认识的熟人聊天。你提到你喜欢读悬疑小说。一个正常的反应可能是: “噢,我也很喜欢!你最喜欢的作者是谁?”

现在想象一下这位熟人回答道: “我也很喜欢读书!我是一名 35 岁的会计师,住在芝加哥。我有三只猫,分别叫 Mittens、Oreo 和 Luna。我患有焦虑症,每周二下午 6 点去健身房。”

这种回答很不自然,令人感到突兀,坦率地说,这有点“信息量过载” (TMI) 。虽然人类很少这样说话,但被指示采用特定“人设 (persona) ”的大型语言模型 (LLM) 却经常这样。在急于遵循指令并证明自己正在正确“扮演角色”的过程中,它们往往会将无关的个人细节倾倒在对话中,或者在一个回复中塞入过多的属性。

这种现象被韩国高丽大学的研究人员称为过度使用问题 (Overuse Problem) 。 在他们的论文《PANDA: Persona Attributes Navigation for Detecting and Alleviating Overuse Problem in Large Language Models》中,作者提出了一个新的框架来量化、检测和缓解这一问题。

Mistral 模型过度使用人设属性的示例。

如上图所示,当用户提到一个简单的偏好时,模型 (Mistral) 的反应是笨拙地硬塞进它的职业 (“我是一名老师”) 、习惯 (“我喜欢瑜伽”) 和饮食偏好 (“喝咖啡”) ,完全破坏了对话的自然流程。

在这篇文章中,我们将剖析 PANDA 框架,探讨我们如何教导 AI 在保持人设的同时,避免让对话变得怪异。

背景: 基于人设的对话的演变

我们要讨论的任务被称为基于人设的对话 (Persona-Grounded Dialogue, PGD) 。 其目标是创建拥有连贯个性、历史和偏好的聊天机器人,使其适用于从心理健康支持到沉浸式游戏等各种应用场景。

在较小的预训练语言模型 (PLM) 时代,挑战在于让模型记住它是有个性的。研究人员专注于“接地 (grounding) ”——即确保模型实际使用了所提供的人设信息。当时的指标设计是为了奖励那些与人设描述有显著重叠的模型。

大模型带来的新挑战

随着像 GPT-4 和 LLaMA-3 这样的大型模型的出现,问题发生了翻转。这些模型非常擅长遵循指令。当被告知“你是一个喜欢爵士乐的护士”时,它们不会忘记这一点——它们会对其着迷。

现有的评估指标 (如 BLEU、Rouge 或简单的 F1 分数) 侧重于流畅度或文本重叠。它们无法惩罚模型“过于”接地的情况。如果一个模型重复了它的整个传记,F1 分数实际上可能会给它很高的评价,因为它成功回忆起了所有的人设关键词。

定义过度使用

受格赖斯会话准则 (Gricean maxims) 的启发,作者将过度使用问题归类为两个具体标准:

  1. 偏题 (Off-topic) : 模型提到了与当前对话主题无关的人设属性 (例如,在讨论食物时提到你的工作) 。
  2. 数量过剩 (Excess of Quantity) : 模型提到了相关的属性,但一次性使用了太多,造成了不自然的信息堆砌。

PANDA 框架

为了解决这个问题,研究人员引入了 PANDA (用于检测和缓解过度使用问题的人设属性导航) 。这是一个旨在衡量 LLM 使用其人设自然程度的综合框架。

PANDA 框架概览,展示了从标注到测量的流程。

该框架按流水线方式运行:

  1. 分类体系 (Taxonomy) : 定义我们在谈论什么。
  2. 对话标注 (Dialogue Labeling) : 用这些定义标记对话。
  3. 人设-话题映射 (Persona-Topic Mapping) : 将特定的人设句子与话题联系起来。
  4. 过度使用度量 (Overuse Measurement) : 计算一个分数来量化“信息量过载”的程度。

第一步: 细粒度的分类体系

要判断一个回复是否“偏题”,我们首先需要定义个人对话中存在哪些“话题”。现有的数据集通常缺乏这些标签。作者设计了一个包含 14 个对话话题的详细分类体系,大大扩展了以前的工作。

表 1 展示了定义的 14 个对话话题,从爱好到信仰。

这种细粒度的列表允许细微的差别。区分 *经历: 过去/现在 (Experiences:past/present) * 和 *信仰/价值观 (Beliefs/Values) * 对于确定回复是否符合语境至关重要。

第二步: 问题形式化

我们如何将对话转化为数学问题?作者定义了一种将文本映射到话题的方法。

首先,他们利用一个标记函数,表示为 \(TAG_P(x)\)。该函数扫描文本 \(x\) (用户的发言或模型的回复) 并识别其中存在哪些人设属性 \(p_i\)。

公式 1: 人设标记函数。

这一步有效地从原始文本中提取了“个人事实”。一旦提取了属性,就需要将它们转换为话题。例如,属性“我拥有一辆法拉利”需要转换为话题 [Possessions] (财产) 。

这是由话题映射函数 \(TAG_T\) 处理的:

公式 2: 将人设属性映射到话题。

最后,通过将这些加总,框架生成了文本中发现的完整话题集。

公式 3: 聚合话题。

第三步: 测量过度使用分数 (OVS)

这是 PANDA 框架的核心。目标是计算一个单一的分数 OVS , 代表模型过度分享的程度。

该逻辑依赖于比较搭档的话语 (\(u\)) 中的话题与模型的回复 (\(\hat{y}\)) 中的话题。

在自然的对话中,话题应该在很大程度上保持一致。如果搭档谈论 [Preferences:food] (偏好: 食物) ,模型理想情况下也应该回复 [Preferences:food]。如果模型回复了 [Occupations] (职业) 和 [Family] (家庭) ,过度使用分数就会上升。

全局过度使用分数的计算如下:

公式 4: 全局过度使用分数计算。

这个公式看起来很复杂,但它本质上是对话中涉及的每个话题的单独分数 (\(ovs_i\)) 的平均值。\(\sigma\) (Sigmoid) 函数将结果归一化到 0 和 1 之间。

但是,特定话题的单独分数是如何计算的呢?

公式 5: 单个话题过度使用分数。

在这里,分数比较了模型回复中特定话题的计数 (\(|T^{\hat{y}}|\)) 与搭档话语中的计数 (\(|T^u|\))。

至关重要的是,作者引入了一个惩罚权重 \(w_i\) 。 这个权重根据错误的类型 (偏题 vs. 数量过剩) 来决定惩罚模型的严厉程度。

公式 6: 惩罚权重函数。

让我们分解一下 \(w_i\) 的逻辑:

  • 偏题 (Off-topic) : 如果搭档没有提到某个话题 (计数 = 0) ,但模型提到了 (计数 > 0) ,这是一个严重的违规行为。惩罚是指数级的 (\(e^{x+1}\))。
  • 数量过剩 (Excess of Quantity) : 如果搭档提到了一次该话题,但模型提到了五次,这虽然不好,但比偏题要好一些。惩罚是线性的 (\((x+1) \cdot e\))。
  • 其他情况 (Otherwise) : 如果计数是平衡的,则没有惩罚 (\(e\))。

构建资源

为了测试这个框架,作者不能依赖现有的数据集,因为它们缺乏这些详细的标签。他们采用了著名的 PersonaChat 数据集,并使用 14 个话题分类体系对其进行了标注。

他们发现标准人设数据集中的话题分布严重偏向于爱好和习惯。

标注数据集中的话题分布。

如上所示,Preferences:hobby/habit (偏好: 爱好/习惯) 占所有人设属性的近四分之一。这是一个重要的背景信息: 如果模型过度使用人设,它们很可能是在过多地谈论它们的爱好。

实验与验证

研究人员测试了四个主要的大模型: ChatGPTLLaMA-3 (8B)Mistral (7B)Gemma (7B)

他们向这些模型输入包含人设和对话历史的提示词,然后使用 PANDA 分析其回复。

1. 哪些模型过度使用最严重?

结果令人深思。虽然所有模型都在一定程度上存在问题,但某些模型在涉及其人设时比其他模型更“健谈”。

各模型过度使用分数的密度分布。

在上面的密度图中,请看左上角的“OVS” (过度使用分数) 图表。

  • ChatGPTGemma 在 0 附近有更高的峰值 (意味着低过度使用) 。
  • MistralLLaMA-3 显示出向右延伸的“肥尾”,表明高过度使用回复的频率更高。

定量结果证实了这一点:

表 2: 显示 OVS 和其他指标的实验结果。

Mistral 的过度使用分数最高 (最差) ,达到 0.773,紧随其后的是 LLaMA-3 。 有趣的是,虽然这些模型具有很高的流畅度分数 (Rouge-L, chrF++) ,但由于这种“信息量过载”的倾向,它们在保持人设自然对话方面的能力较低。

2. 哪些话题被滥用了?

作者分析了模型究竟在过度分享什么。他们生成了一个“热力图”来可视化相关性。X 轴代表人类搭档提出的话题,Y 轴代表模型回复的话题。

Mistral 的相关性热力图,显示话题触发情况。

在理想情况下,这个热力图应该显示一条强烈的对角线——谈论食物会触发关于食物的回复。 然而,请看上面的 Mistral 热力图。在对角线之外有许多“热点”。

  • 当搭档谈论 Preferences:hobby/habit (爱好/习惯) 时,Mistral 经常提到 Occupations (职业) 或 Characteristics:others (特征: 其他) 。
  • 这完美地可视化了“偏题”的过度使用现象。

3. 对话历史的影响

一个假设是,模型可能会因为缺乏上下文而惊慌失措并倾倒人设信息。为了验证这一点,作者改变了提供给模型的“对话历史”的长度。

图表显示过度使用分数随历史长度增加而降低。

左边的图表非常有趣。随着对话历史长度的增加 (从 4 轮增加到 12 轮) ,所有模型的过度使用分数 (OVS) 都在稳步下降

这表明,当 LLM 有更多的对话上下文可以依附时,它们就会减少对静态人设属性的依赖。它们变得更能够对对话流做出反应,而不是仅仅在广播自己的身份。

4. 提示词工程能解决这个问题吗?

最后,研究人员探讨了“思考型”提示词是否可以缓解这个问题。他们测试了诸如思维链 (CoT)任务分解 (Task Decomposition)自我修正 (Self-Refine) 等方法。

表 10: 推理增强提示词的结果。

结果喜忧参半:

  • ChatGPT: 高级提示词 (特别是任务分解) 显著减少了过度使用。
  • LLaMA-3: “自我修正”方法效果奇佳,将 OVS 从 0.76 降至 0.66。
  • Mistral/Gemma: 令人惊讶的是,这些方法通常会使问题变得更糟或效果微乎其微。这表明,在人设规范方面,较小的或不同的架构可能无法以同样的方式受益于复杂的推理提示词。

结论

PANDA 框架凸显了生成式 AI 发展中的一个关键细微差别。我们已经不再问“模型能说流利的英语吗?”或“模型能记住它在扮演一个角色吗?”

我们现在的阶段是在问: “模型能理解社交暗示吗?”

过度使用问题——当用户只是问“你好吗?”时,生成 500 字关于自己是素食主义宇航员的内容——是创建逼真、富有同理心的聊天机器人的重大障碍。通过将这个问题形式化为可测量的组件 (偏题 vs. 数量过剩) 并创建一个强大的分类体系,PANDA 研究人员为 NLP 社区提供了一个解决此问题的指南针。

关键要点

  1. 流畅度 \(\neq\) 质量: 一个模型可以写出优美的句子,但如果因为过度分享而在社交语用上失败,那它就是失败的。
  2. 上下文为王: 提供更长的对话历史有助于模型冷静下来,停止滥发人设信息。
  3. 一刀切行不通: 像思维链这样的缓解策略对某些模型 (ChatGPT) 有效,但对其他模型 (Mistral) 可能会适得其反。

随着 LLM 作为助手和伴侣继续融入我们的日常生活,像 PANDA 这样的框架将至关重要,它可以确保它们的表现不那么像读剧本的机器人,而更像真诚的对话伙伴。