Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality

——by the Team with members from UC Berkeley, CMU, Stanford, and UC San Diego

——由来自加州大学伯克利分校、CMU、斯坦福大学和加州大学圣地亚哥分校的成员组成的团队共同完成。

* 根据用GPT-4进行的有趣和非科学的评估。需要进一步严格的评估。

我们介绍了Vicuna-13B,这是一个开源的聊天机器人,通过对从ShareGPT收集的用户共享对话进行微调的LLaMA训练。以GPT-4为评判标准的初步评估显示,Vicuna-13B达到了OpenAI ChatGPT和Google Bard 90%*以上的质量,同时在90%*以上的情况下超过了LLaMA和Stanford Alpaca等其他模型的表现。训练Vicuna-13B的成本约为300美元。训练和服务代码,以及在线演示,都是公开的,可用于非商业用途。

Vicuna有多好?
我们展示了Alpaca和Vicuna对我们基准问题的回答的例子。在用7万个用户共享的ChatGPT对话对Vicuna进行微调后,我们发现,与Alpaca相比,Vicuna能够生成更详细和结构良好的答案(见下面的例子),其质量与ChatGPT相当。

问题:撰写一篇引人入胜的旅行博客文章,介绍最近的夏威夷之旅,重点介绍文化体验和必看景点。

然而,评估聊天机器人从来都不是一件容易的事。随着 GPT-4 的最新进展,我们很好奇它的功能是否已经达到了类似人类的水平,可以为基准生成和性能评估启用自动化评估框架。我们的初步发现表明,在比较聊天机器人的答案时,GPT-4 可以产生高度一致的排名和详细的评估(参见上面的 GPT-4 判断示例)。 基于 GPT-4 的初步评估(如图 1 所示)表明,鬆马实现了 Bard/ChatGPT 的 90% 能力。虽然这个提议的框架显示出自动化聊天机器人评估的潜力,但它还不是一种严格的方法。为聊天机器人建立评估系统仍然是一个悬而未决的问题,需要进一步研究。评估部分提供了更多详细信息。

在线演示

在这里尝试Vicuna-13B 演示!

概述

大型语言模型(LLM)的快速发展彻底改变了聊天机器人系统,产生了前所未有的智能水平,如OpenAI的ChatGPT所示。然而,尽管其性能令人印象深刻,但 ChatGPT 的培训和架构细节仍然不清楚,阻碍了该领域的研究和开源创新。受Meta LLaMA和斯坦福Alpaca项目的启发,我们推出了Vicuna-13B,这是一款开源聊天机器人,由增强的数据集和易于使用的可扩展基础架构提供支持。通过根据从 ShareGPT.com 收集的用户共享对话微调LLaMA基础模型,Vicuna-13B与斯坦福Alpaca等其他开源模型相比,表现出了有竞争力的性能。这篇博文提供了对Vicuna-13B性能的初步评估,并描述了其培训和服务基础设施。我们还邀请社区与我们的在线演示互动,以测试此聊天机器人的功能。

图 2 提供了我们工作的概述。首先,我们从 ShareGPT.com 收集了大约 70K 次对话,这是一个用户可以分享他们的 ChatGPT 对话的网站。接下来,我们增强了 Alpaca 提供的训练脚本,以更好地处理多轮对话和长序列。培训是在一天内在 8 个 A100 GPU 上使用 PyTorch FSDP 完成的。为了提供演示,我们实现了一个轻量级的分布式服务系统。我们通过创建一组 80 个不同的问题并使用 GPT-4 来判断模型输出,对模型质量进行了初步评估。为了比较两个不同的模型,我们将每个模型的输出组合到每个问题的单个提示中。然后将提示发送到 GPT-4,后者评估哪个模型提供更好的响应。LLaMA,Alpaca,ChatGPT和Vicuna的详细比较如下表1所示。

训练

Vicuna是通过使用公共 API 从 ShareGPT.com 收集的大约 70K 个用户共享对话微调 LLaMA 基础模型来创建的。为了确保数据质量,我们将HTML转换回markdown并过滤掉一些不合适或低质量的样本。此外,我们将冗长的对话划分为适合模型最大上下文长度的较小部分。

我们的训练食谱建立在斯坦福大学的Alpaca之上,并进行了以下改进。

  • 内存优化:为了使 Vicuna 能够理解长上下文,我们将Vicuna的最大上下文长度从 512 扩展到 2048,这大大增加了 GPU 内存需求。我们通过利用梯度检查点闪光注意力来解决内存压力。
  • 多轮对话:我们调整训练损失以考虑多轮对话,并仅根据聊天机器人的输出计算微调损失。
  • 通过竞价型实例降低成本:40 倍大的数据集和 4 倍的训练序列长度对训练费用提出了相当大的挑战。我们采用 SkyPilot 托管的 Spot 实例,通过利用具有自动恢复功能的更便宜的 Spot 实例来降低成本,以实现抢占和自动区域切换。该解决方案将训练 7B 模型的成本从 500 美元削减到 140 美元左右,将 13B 模型从大约 1 美元削减到 300 美元。

服务

我们构建了一个服务系统,该系统能够通过分布式工作人员为多种模型提供服务。它支持来自本地集群和云的 GPU 工作线程的灵活插件。通过利用 SkyPilot 中的容错控制器和托管点功能,此服务系统可以很好地与来自多个云的更便宜的点播实例配合使用,以降低服务成本。它目前是一个轻量级的实现,我们正在努力将更多我们的最新研究集成到其中。

如何评估聊天机器人?

评估人工智能聊天机器人是一项具有挑战性的任务,因为它需要检查语言理解、推理和上下文感知。随着人工智能聊天机器人变得越来越先进,目前的开放基准可能不再足够。例如,斯坦福大学(Alpaca)中使用的评估数据集,自我指导,可以由SOTA聊天机器人有效地回答,这使得人类难以辨别性能的差异。更多的限制包括训练/测试数据污染以及创建新基准的潜在高成本。为了解决这些问题,我们提出了一个基于 GPT-4 的评估框架来自动化聊天机器人性能评估。

首先,我们设计了八个问题类别,如费米问题、角色扮演场景和编码/数学任务,以测试聊天机器人性能的各个方面。通过仔细的快速工程,GPT-4 能够生成基线模型难以解决的各种具有挑战性的问题。我们为每个类别选择十个问题,并从五个聊天机器人中收集答案:LLaMA,Alpaca,ChatGPT,Bard和Vicuna。然后,我们要求 GPT-4 根据有用性、相关性、准确性和细节对其答案的质量进行评分。我们发现 GPT-4 不仅可以产生相对一致的分数,还可以详细解释为什么给出这样的分数(详细示例链接)。我们还注意到 GPT-4 不太擅长判断编码/数学任务。

图 3 显示了所有基线和Vicuna之间的比较结果。在超过4%的问题中,GPT-90更喜欢Vicuna而不是最先进的开源模型(LLaMA,Alpaca),并且它实现了与专有模型(ChatGPT,Bard)的竞争性能。在 45% 的问题中,GPT-4 将Vicuna的回答评为优于或等于 ChatGPT,Vicuna的总分达到 ChatGPT 的 92%(见表 2)。尽管取得了进步,但这些聊天机器人仍然面临局限性,例如在基本的数学问题上挣扎或编码能力有限。

虽然这个提议的评估框架展示了评估聊天机器人的潜力,但它还不是一种严格或成熟的方法,因为大型语言模型容易产生幻觉。为聊天机器人开发一个全面、标准化的评估系统仍然是一个悬而未决的问题,需要进一步研究。

局限性

我们注意到,与其他大型语言模型类似,Vicuna也有一定的局限性。例如,它不擅长涉及推理或数学的任务,并且在准确识别自己或确保其输出的事实准确性方面可能存在局限性。此外,它尚未经过充分优化以保证安全性或减轻潜在的毒性或偏差。为了解决安全问题,我们使用 OpenAI 审核 API 在我们的在线演示中过滤掉不适当的用户输入。尽管如此,我们预计Vicuna可以作为未来研究的开放起点,以解决这些限制。

释放

在我们的第一个版本中,我们将共享训练、服务和评估代码。我们计划通过提供基于原始 LLaMA 权重的增量权重版本来发布模型权重,但我们仍在寻找正确的方法。加入我们的 Discord 服务器并关注我们的推特以获取最新更新。

许可证

在线演示是一个研究预览,仅用于非商业用途,受LLaMA的模型许可,OpenAI生成的数据的使用条款以及ShareGPT的隐私惯例的约束。如果您发现任何潜在的违规行为,请与我们联系。
该代码在 Apache 许可证 2.0 下发布。

团队介绍

这是与来自多个机构的合作者共同努力的,包括加州大学伯克利分校、CMU、斯坦福大学、加州大学圣地亚哥分校和MBZUAI。

学生(按英文字母排序):
蒋伟林、李卓涵、子林、盛颖、吴章浩、张浩、郑连民、庄思元、庄永浩

顾问(按字母顺序):
约瑟夫·戈纳兹雷斯、扬·斯托伊卡、埃里克·邢

确认

我们要感谢来自BAIR的耿信阳,刘浩和Eric Wallace;来自斯坦福Alpaca团队的Xuecheng Li和Tianyi Zhang进行了富有洞察力的讨论和反馈。BAIR将很快发布另一篇博客文章,介绍他们的聊天机器人Koala的并行工作。

内容中包含的图片若涉及版权问题,请及时与我们联系删除