大模型多轮对话能力哪家强?开源的自动化评测基准来了!
在日常使用各种大语言模型的过程中,我们常需要与模型进行多轮对话以达到我们的目的。然而,并非所有模型都能够顺利完成这一过程。在使用过程中,我们发现一些大语言模型在多轮对话中存在包括但不限于以下问题:
大语言模型遗忘数轮对话之前的 instruction
大语言模型在数轮对话后,直接无法输出有意义内容(例如重复无意义短语)
大语言模型在数轮对话后,语气与回答长度较前几轮有显著改变
在当前阶段,这种不同模型多轮对话能力的强弱多来自于主观体验,尚未有定量的方法对这类能力的强弱进行描述。在这一背景下,就催生了 BotChat 这一工作。
GitHub:
https://github.com/open-compass/botchat
(欢迎体验,文末点击阅读原文可直达)
BotChat 是什么?
TL;DR BotChat 是一个基于 GPT-4,用以评价大语言模型多轮对话能力的 Benchmark。
能够流畅地与人类进行多轮交谈,是现今的大语言模型 (LLM) 区别于传统语言模型的重要特征。具体来说,LLM 可以使用自然语言对话与用户互动,从用户提供的 prompt 中理解指令、用户意图和上下文,并提供适当的反馈。这种多轮对话能力不仅是一种 LLM 的重要基础能力,同时也有诸如对话生成 (游戏、影视剧等场景)、AI Town 等多种直接下游应用。但同时,如何定量评估这种多轮对话能力仍是一个开放性问题。传统的评测方式,多以直接让用户与 ChatBot 进行多轮对话并给出主观评价为主,这一方式往往需要消耗大量人力。为自动化评估 LLM 的多轮对话能力,我们设计了 BotChat 这一评测基准。
在 BotChat 中,我们设计了一种代理任务,以取代人与 ChatBot 的多轮对话。具体而言,我们首先使用真实的用户对话,并保留其中的前两句作为生成种子。随后,为对某一 LLM 进行评估,我们会启动同一 LLM 的两个实例,并编写 prompt 让两个 LLM 实例基于生成种子继续对话。上图的伪代码描述了对话的整体生成过程。通过这种方式,不需要人工介入即可生成任意轮数的多轮对话。在得到对话后,我们基于 GPT-4 evaluator,对生成对话的质量进行评测。BotChat 选用 MuTual 作为对话蓝本,对 14 个常见的大语言模型进行了评测。
评测结果
对话生成部分
我们首先计算不同大语言模型生成的聊天的长度并提供一些统计数据。对于每个生成的聊天,我们使用 CL100K tokenizer(OpenAI GPT-4 使用)对其进行分词,并计算 token 的数量。上图展示了不同模型生成的聊天的 token 长度分布。大多数大语言模型生成的聊天内容涵盖各种 token 数量,从一到数千。一个例外是 GPT-4,它具有很强的指令遵循能力,并总是能生成长度相对较短的聊天:GPT-4 生成的最长聊天少于 100 个 token。除 gpt-3.5、claude-2 和 llama2-chat 之外,大多数模型平均都会生成相对较短的聊天。
评测方式及评测结论
基于生成的对话,我们提出了三种评测方法,分别是:
直接评估单组生成对话的质量 (UniEval);
比较评估单组生成对话与相关参考人类对话的质量 (GTEval);
比较两组基于同一生成种子,由大语言模型生成的对话 (BotChat Arena)。
在实验中,我们发现不同的评测方式均能得到相似的结论。具体而言,我们有以下主要发现:
GPT-4 具有突出的多轮对话性能,在不同评测方法中的不同赛道上都取得了最好的成绩。在 UniEval N=16 (即模型需要基于给定的两条对话生成后续的 14 条对话),GPT-4 取得了超过 65% 的测试通过率,而第二好的 Vicuna-13B 和第三好的 InternLM-20B 仅达到 55% 和 36%。
开源大语言模型在进行较短轮数对话时也有令人满意的表现:一些开源大语言模型,例如 InternLM、Qwen 和 Baichuan2,在进行短轮数对话时性能出色。然而,随着对话轮数增加到 N = 16,他们的表现迅速恶化,并明显落后于 GPT-4-0613 等最先进的聊天机器人。
多轮聊天能力随模型尺寸增强:并不奇怪,我们发现多轮聊天能力随模型大小而变化,尤其是对于更大的对话轮数。例如,在 N=16 的设定下,InternLM-20B 的 UniEval 成功率高于 InternLM-7B 29%,而 Vicuna-13B 比 Vicuna7B 高出 25%。当 N 较小时,这种差距要小得多。对于 N=4(仅生成 2 句聊天),两个 InternLM 模型的成功率仅相差为 1.5%。
Claude-2 的独特行为:在闭源模型中,Claude-2 展现出了最低的性能。在回复时,Claude-2 强烈倾向于充当人工智能助手,生成内容比较长。因此,它在生成对话时的性能并不令人满意 (这些话语通常较短且结构性不强)。
Failure Case 定性分析
在分析 Failure Case 的过程中,我们将 Failure Case 主要总结为以下 5 种情况:
对话过程中揭示了自己 AI-assitant 的身份
混淆了对话与补全两种场景
重复相同的话语
生成的聊天长度过长
生成的话语语气与正常聊天有明显区别
BotChat 下一步工作
增广语料范围:目前 BotChat 中的对话种子仅来自于英文对话数据集 MuTual,在后续的工作中,BotChat 会进一步引入中文对话语料。同时,BotChat 在下一步中也会进一步丰富生成条件种类,除去以首两句对话作为条件外,也将围绕某一主题的多轮对话或某一特定场景下的多轮对话纳入考察范围。
探索新的评测方式:BotChat 目前基于 GPT-4 展开评测,在前期的尝试中,我们尝试了一些其余大语言模型,但其性能及判断准确率都不令人满意。在后续的研究中,我们会进一步探索新的评测方式,包括进行 prompt 的优化及微调打分模型等尝试。
BotChat 现已加入 OpenCompass 评测平台,欢迎关注 OpenCompass 开源评测体系,更多详细内容可以参考我们的论文和 GitHub。
论文:
https://arxiv.org/pdf/2310.13650.pdf
GitHub:
https://github.com/open-compass/botchat
(欢迎扫码加入 OpenCompass 微信交流群)
2023-10-26
2023-10-25