大型语言模型(LLM)已成为全球流行的技术应用之一,其中一个重要领域是聊天机器人,在问答、客服和其他领域都有广泛应用。但聊天机器人一直以来都难以评价,尚不清楚在哪些情况下最适用。因此,LLM的评估至关重要。
前不久,一位名叫Marco Tulio Ribeiro的Medium博主对Vicuna-13B、MPT-7b-Chat和ChatGPT 3.5等模型进行了复杂任务测试。测试结果表明,Vicuna在许多任务中是可替代chatgpt (3.5) 的,而MPT还没有准备好在现实世界中使用。
最近,CMU副教授Graham Neubig对七种聊天机器人进行了详细评估,并开发了一个自动比较工具,最终发布了评估报告。
在这份报告中,测评者展示了一些聊天机器人的初步评估、比较结果,目的是让人们更容易地了解最近出现的所有开源模型以及基于 API 的模型现状。具体来说,测评者创建了一个新的开源工具包 ——Zeno Build,用于评估 LLM。该工具包结合了:(1)通过 Hugging Face 或在线 API 使用开源 LLM 的统一界面;(2)使用 Zeno 浏览和分析结果的在线界面,以及(3)使用 Critique 对文本进行 SOTA 评估的指标。具体结果参加:https://zeno-ml-chatbot-report.hf.space/
- 测评者评估了 7 种语言模型:GPT-2、LLaMa、Alpaca、Vicuna、MPT-Chat、Cohere Command 和 ChatGPT (gpt-3.5-turbo);
- 这些模型是根据它们在客户服务数据集上创建类似人类的响应的能力进行评估的;
- ChatGPT 拔得头筹,但开源模型 Vicuna 也很有竞争力;
- 测评者发现,使用具有较长上下文窗口的 chat-tuned 模型非常重要;
- 在对话的前几个回合,Prompt 工程对于提升模型对话的表现非常有用,但在有更多上下文的后期回合中,效果就不那么明显了;
- 即使是像 ChatGPT 这样强大的模型也存在很多明显的问题,比如出现幻觉、未能探求更多信息、给出重复内容等。
测评者使用的是 DSTC11 客户服务数据集。DSTC11 是一个对话系统技术挑战赛的数据集,旨在支持更具信息性和吸引力的任务导向对话,通过利用评论帖子中的主观知识来实现。DSTC11 数据集包含多个子任务,如多轮对话、多领域对话等等。例如,其中一个子任务是基于电影评论的多轮对话,其中用户和系统之间的对话旨在帮助用户找到适合他们口味的电影。
- GPT-2:2019 年的一个经典语言模型。测评者把它作为一个基线加入,看看最近语言建模方面的进展对建立更好的聊天模型有多大影响。
- LLaMa:一个最初由 Meta AI 训练的语言模型,使用的是直接的语言建模目标。测试中使用的是 7B 版本的模型,以下开源模型采用的也是同等规模版本;
- Alpaca:一个基于 LLaMa 的模型,但进行了指令调优;
- Vicuna:一个基于 LLaMa 的模型,为基于聊天机器人的应用做了进一步的明确调整;
- MPT-Chat:一个以类似于 Vicuna 的方式从头开始训练的模型,它有一个更商业化的许可;
- Cohere Command:Cohere 推出的一个基于 API 的模型,进行了指令遵循方面的微调;
- ChatGPT(gpt-3.5-turbo):标准的基于 API 的聊天模型,由 OpenAI 研发。
对于所有的模型,测评者使用了默认的参数设置。其中包括温度(temperature)为 0.3,上下文窗口(context window)为 4 个先前的对话轮次,以及一个标准的 prompt:「You are a chatbot tasked with making small-talk with people」。测评者根据这些模型的输出与人类客服反应的相似程度来评估这些模型。这是用 Critique 工具箱提供的指标完成的:
- BERTScore:衡量两个语篇之间嵌入的重叠程度;
- UniEval Coherence:预测输出与前一个聊天回合的连贯性如何。
他们还测量了长度比,用输出的长度除以黄金标准的人类回复的长度,以此衡量聊天机器人是否啰嗦。为了更深入地挖掘结果,测评者使用了 Zeno 的分析界面,特别是使用了它的报告生成器,根据对话中的位置(开始、早期、中期和后期)和人类回应的黄金标准长度(短、中、长)对例子进行细分,使用其探索界面来查看自动评分不佳的例子,并更好地了解每个模型的失败之处。根据所有这些指标,gpt-3.5-turbo 是明显的赢家;Vicuna 是开源的赢家;GPT-2 和 LLaMa 不是很好,表明了直接在聊天中训练的重要性。这些排名也与 lmsys chat arena 的排名大致相符,lmsys chat arena 使用人类 A/B 测试来比较模型,但 Zeno Build 的结果是在没有任何人类评分的情况下获得的。关于输出长度,GPT3.5-turbo 比其他模型的输出要冗长得多,而且看起来,在聊天方向进行调优的模型一般都会给出冗长的输出。接下来,测评者使用 Zeno report UI 进行深入挖掘。首先,他们按照人类回复的长度将准确性分别进行了测量。他们将回复分为短(≤35 个字符)、中等(36-70 个字符)和长(≥71 个字符)三个类别,并对它们的准确性进行了单独的评估。gpt-3.5-turbo 和 Vicuna 即使在更长的对话轮次中也能保持准确性,而其他模型的准确性则有所下降。接下来的问题是上下文窗口大小有多重要?测评者用 Vicuna 进行了实验,上下文窗口的范围是 1-4 个之前的语篇。当他们增加上下文窗口时,模型性能上升,表明更大的上下文窗口很重要。测评结果显示,较长的上下文在对话的中间和后期尤其重要,因为这些位置的回复没有那么多的模板,更多的是依赖于之前所说的内容。当试图生成黄金标准较短的输出时(可能是因为有更多的歧义),更多的上下文尤为重要。测评者尝试了 5 个不同的 prompt,其中 4 个是通用的,另外一个是专门为保险领域的客服聊天任务量身定制的:
- 友好的:「你是一个善良、友好的聊天机器人,你的任务是用一种让人感到愉快的方式与人闲聊。」
- 有礼貌的:「你是一个非常有礼貌的聊天机器人,说话非常正式,尽量避免在回答中犯任何错误。」
- 愤世嫉俗的:「你是一个愤世嫉俗的聊天机器人,对世界有着非常黑暗的看法,通常喜欢指出任何可能存在的问题。」
- 保险行业专用的:「你是 Rivertown 保险服务台的工作人员,主要帮助解决保险索赔问题。」
总的来说,利用这些 prompt,测评者并没有测出不同 prompt 导致的显著差异,但「愤世嫉俗」的聊天机器人稍微差一点,而量身定制的「保险」聊天机器人总体上稍微好一点。在对话的第一个回合中,不同 prompt 带来的差异尤其明显,这表明当没有什么其他上下文可以利用时,prompt 是最重要的。最后,测评者使用 Zeno 的 expLoration UI ,试图通过 gpt-3.5-turbo 找到可能的错误。具体来说,他们查看了所有 chrf 较低(<0.1)的例子,并手动查看了这些例子以发现趋势。有时模型无法在实际需要时 Probe(探测)更多信息,例如模型在处理号码这一事件中尚未完善(电话号码必须是 11 位数字,模型给出的数字长度与答案不匹配)。这时可以通过修改 prompt 来缓解,以提醒模型某些信息所需的长度。有时,同样的内容会重复多次,比如聊天机器人在这里说了两次「谢谢」。以上就是评测结果。最后,测评者希望这份报告对研究者有所帮助!如果你继续想尝试其他模型、数据集、prompt 或其他超参数设置,可以跳转到 zeno-build 存储库上的聊天机器人示例进行尝试。 原文地址:https://GitHub.com/zeno-ml/zeno-build/tree/main/tasks/chatbot/report