● 砚数 · 模型评测 · 2024-09-09
砚数批注:为什么读这篇:作者指出聊天机器人缺的根本不是聪明,是「目标感」,并给了可落地的技术修法。
基于 LLM 的聊天机器人,能力每个月都在涨。这些进步主要靠 MMLU、HumanEval、MATH 这类 benchmark 衡量(比如 sonnet 3.5、gpt-4o)。但这些指标越来越饱和,用户体验是不是也跟着分数同比提升?如果我们设想的是人和 AI 协作的未来,而不是 AI 取代人,那现在衡量对话系统的方式可能不够用,因为它们用的是非交互式的测量法。
为什么目标导向的对话重要?
目标导向的对话,指围绕某个目标或意图展开的多轮用户与机器人对话。目标可以很泛,比如「无害且有用」,也可以更具体,比如「旅行规划 agent」「心理治疗师」或「客服 bot」。
旅行规划是个简单好懂的例子。我们的偏好、同行者的偏好,加上现实情况的各种复杂,要把所有信息一次性传完成本太高。但如果允许多次来回交换信息,就只会有选择地交换重要的那部分。谈判理论有个类比:反复议价比「爱要不要」的一次性报价,结果更好。
其实,分享信息只是对话的一个面。用维诺格拉德的话说:「所有语言使用,都可以看作是在听者心里激活某些程序。」我们可以把每句话看成一方为改变另一方世界模型而采取的刻意动作。如果双方都有更复杂、甚至隐藏的目标呢?这样一来,目标导向对话给了我们一种把人机交互表述成协作博弈的方法,机器人的目标就是帮人达成某些目标。
这看起来像是只有学者才操心的、没必要的复杂。但目标导向对话,哪怕对最务实、最产品导向的方向(比如代码生成)也有好处。现有的编程 benchmark 大多测量一次生成的表现;但要让 AI 自动解决普通的 Github issue(像 SWE-bench 那样),靠单步动作基本不可能,AI 得和人类软件工程师来回沟通,确认它理解了正确需求、要缺失的文档和数据,必要时甚至请人来搭把手。这和结对编程类似,能减少代码缺陷,又不用增加工时。
而且,引入回合交替,能解锁很多新可能。互动变长、记忆建起来之后,机器人可以逐步更新用户画像,适应用户偏好。想象一个私人助理(比如 IVA、Siri),通过日常互动学会你的偏好和意图,自动读你的新信息源(twitter、arxiv、Slack、NYT),按你偏好给你做晨间新闻摘要,替你起草邮件,并从你的修改里持续学习改进。
一句话,人和人之间有意义的交互,很少从完全陌生开始、一次就结束。人天然通过多轮对话互动,并在对话中相应调整。可这不正好和预测下一个 token 相反吗?后者正是现代 LLM 的基石。下面我们看看对话系统是怎么搭出来的。
对话系统过去和现在怎么搭的?
回到 1970 年代,Roger Schank 提出「餐厅脚本」作为一种对话系统。这个脚本把典型餐厅体验拆成进门、点单、吃饭、付钱几步,每步有写好的台词。那时每个对话都被仔细规划,让 AI 能模仿真实对话。ELIZA(罗杰斯心理治疗师模拟器)和 PARRY(模拟偏执症患者)是另外两个早期对话系统,直到机器学习登场。
和今天的 LLM 对话系统比,一个靠预测下一个 token 训练的模型到底怎么聊起天来,显得很神秘。所以仔细看看对话系统怎么造出来的,重点看对话格式怎么起作用:
(1)预训练:一个序列模型在海量混合互联网文本上训练预测下一个 token。成分各异,但主要是新闻、书籍、Github 代码,再加少量从 Reddit、Stack Exchange 之类爬来的论坛数据,里面可能含对话式数据。
(2)引入对话格式:因为序列模型只处理字符串,而对话历史最自然的表示是一串结构化的系统提示和过往交互,所以必须引入某种格式做转换。一些 Huggingface tokenizer 提供了 apply_chat_template 方法方便用户。具体格式因模型而异,但通常是用 或 把系统提示框起来,希望预训练模型给它们更多注意力权重。系统提示在把语言模型适配到下游应用、保证安全行为上作用很大。值得注意的是,这一步格式的选择是任意的,预训练语料并不遵循这个格式。
(3)RLHF:这一步,机器人因生成想要或不想要的回答被直接奖励或惩罚。值得注意,这是引入的对话格式第一次出现在训练数据里。RLHF 是「微调」步,不只因为数据量远小于预训练语料,也因为 KL 惩罚和定向权重调优(比如 Lora)。用 LeCun 烤蛋糕的比喻,RLHF 只是顶上那颗小樱桃。
现有对话系统(2024 年)有多稳?
对对话系统最低的要求,是它能待在我们给它的任务上。其实人经常话题乱跳,现在的系统表现如何?
目前「系统提示」是用户控制 LM 行为的主要手段。但有研究者找到证据:在对抗条件下,LLM 遵守指令会很脆。读者大概也从日常用 ChatGPT 或 Claude 时体验过:新开一个对话窗口,模型还能合理跟住你的指令,但几轮之后,它不再「新鲜」,甚至完全不演它的角色了。
怎么把这个感觉量化?单轮指令跟随已有不少 benchmark,比如 MT-Bench、Alpaca-Eval。但用交互方式测模型时,很难预判它会生成什么、提前备好回复。在我和合作者做的一个项目里,我们搭了一个能合成无限长对话的环境,去压力测试 LLM 聊天机器人的指令跟随能力。
为了让时间尺度能无限制拉长,我们让两个带系统提示的 LM agent 互聊很多轮,形成对话主干 [a1, b1, a2, b2, …, a8, b8](假设 8 轮)。到这步,光看这段对话大概就能知道 LLM 多跟得住系统提示,但很多话可能和指令无关,看对话往哪走。于是我们在每轮假设性地分叉,问一个和系统提示直接相关的问题,再用对应的判定函数量化它表现多好。数据集只提供一批(系统提示、探针问题、判定函数)三元组。
把各场景和各对系统提示取平均,我们得到一条跨轮次的指令稳定性曲线。出乎我们意料,LLaMA2-chat-70B 和 gpt-3.5-turbo-16k 的聚合结果都挺吓人。除了给提示工程增加难度,指令不稳还带来安全问题:当机器人漂离规定安全面的系统提示,它更容易被越狱,也更容易产生幻觉。
经验结果也和 LLM 越来越长的上下文形成反差。理论上有些长上下文模型能照顾到 10 万 token 的窗口,但在对话设定里,它们只在 1.6k token 后就分心了(假设每句话 100 token)。我们在论文里进一步从理论上证明,在当前的提示方案下,基于 Transformer 的 LM 聊天机器人出现这种情况不可避免,并提出一个叫split-softmax的简单技术来缓解。
有人会问,至于这么差吗?人跟另一个人聊 8 轮,人格怎么会掉?一种说法是,人的互动基于目的和意图,而且目的先于手段,而不是反过来。LLM 本质上是个流利的英文生成器,人格只是薄薄加在外面的一层。
砚数批注:文中最反直觉的一点:实验显示 LLaMA2-chat 和 GPT-3.5 在仅 1600 token 后就偏离系统提示。长上下文模型在对话里远没 benchmark 标的那么稳。
缺了什么?
预训练?预训练让语言模型能对整个互联网人格的分布、以及每个单个人格的低层语言分布建模。但即便系统提示指定了某个人格(或有限几个人格的混合),现在的方法还是没法把它单独挑出来。
RLHF?RLHF 提供了一剂强药,把这个多人格模型适配成「有用且无害的助手」。但原始 RLHF 方法把奖励最大化表述成一步的强盗问题,一般来说没法在对话的环里用人类反馈训练。(我知道对齐有很多进展,但我想拿原始 RLHF 算法当典型例子。)这种缺多轮规划的问题,可能让模型受困于任务歧义,学的是表面的像人,而不是目标导向的社交互动。
在 RLHF 里加更多对话数据有用吗?我猜会有用,一定程度,但因为缺目标,还是不够。Sergey Levine 在博客里指出,偏好学习和意图有本质区别:「关键区别是,把语言生成看成在顺序过程里选择目标导向的动作,还是看成产出满足用户偏好的输出。」
目标导向对话系统
待在任务上是 LLM 很基本的要求。但即便 LLM 盯住了任务,也不等于它能把目标达成好。
长程规划问题在 LLM 圈引起了些关注。比如有人提出「决策导向对话」作为一大类通用任务,AI 助手和人协作完成复杂决策,比如在一个城市里规划行程、在朋友间协商旅行计划。另一个例子 Sotopia,是个综合社会模拟平台,汇集了协作、谈判、说服等各种目标驱动对话场景。
搭这样的 benchmark,不只提供衡量领域进展的办法,也直接给出新算法可以追的奖励信号(收集贵、定义也麻烦)。但能控制 LM、让它在长程里朝这类目标一致行动的技术,还不多。
为了补这个缺口,我和合作者提了一个轻量算法(Dialogue Action Tokens,DAT),引导 LM 聊天机器人走过多轮目标驱动对话。如下面图所示,每轮对话历史的最后一个 token 嵌入,被用作一个规划器(actor)的输入(状态),它预测几个前缀 token(动作)来控制生成过程。我们用一个相对稳定的 RL 算法 TD3+BC 训练规划器,在 Sotopia 上比基线显著提升,甚至超过 GPT-4 的社交能力分数。
这样,我们给出了一条技术路径,把 LM 从一个只会猜下一个 token 的预测模型,升级成能目标明确地和人对话的模型。可以想见这技术也会被用于有害场景。为此我们也做了「多轮红队」实验,并建议这里多做研究,把多轮对话当作潜在攻击面来理解。
收尾
我回顾了当前 LLM 对话系统的来由,以及它为什么、在哪不够。我猜想缺的是目标,并给出一种用强化学习把它补回去的技术。
我最兴奋的两个研究方向:
(1)用引导(steering)技术更好监测和控制对话系统。比如最近提出的 TalkTurner 给开源 LLM 加了仪表盘,让用户能看到并控制 LLM 怎么看自己。现有 steering 技术的很多弱点暴露出来,呼唤更好的解。比如用激活 steering 同时控制两个属性(年龄和教育水平)被发现很难,还会让语言退化。另一个有趣问题是,怎么区分 LLM 对自己的内部模型和对用户的模型。坊间体验,和 Golden Gate Bridge Claude 聊,发现在 SAE 找到的「金门大桥」特征上做 steering,有时让 Claude 以为自己是那个旧金山地标,有时以为用户是大桥,有时又以为话题本身是大桥。
(2)更好利用离线奖励信号。在 Sotopia 和「决策导向对话」这种设定好的环境里,奖励信号是事先定好的。真实世界里,用户不会留下「我多满意」的数字反馈。但语言里可能有别的线索(「谢谢!」「很有帮助!」),或来自外部资源(推销 AI 时用户买了产品,copilot 用户在短时间切到下一个编程问题)。推断并利用这种隐藏奖励信号,能强化在线聊天机器人的网络效应:好模型 → 更多用户 → 从与用户互动中学 → 更好的模型。
砚数批注:给产品人的建议:目标导向对话(DAT 等技术)才是方向。RLHF 是一步强盗问题,对话是多步规划,架构不改,人格就是薄薄一层皮。争议点:补长对话目标会不会牺牲创造力,尚无定论。
砚数翻译
原文作者:Kenneth Li
原文出处:The Gradient(科技小众博客)
原文网址:https://thegradient.pub/dialog/
原文标题:What's Missing From LLM Chatbots: A Sense of Purpose
栏目:砚数 · 模型评测
砚数 · 模型评测 精选译文
DeepSeek V4:价格打到前沿零头
开源权重把推理成本砍到零头,MIT 许可锁定生态
Gemma 4:字节对字节干翻闭源
2B 小模型原生音频输入,端侧 AI 临界点已到
半官方后门白嫖 GPT-5.5
API 缺失背后,OpenAI 的订阅墙战略浮出水面
GPT-5.5 评测:四个 prompt 产出博士论文
Molrick 实测:模型应用框架三层拧到一起
热门跟贴