自从 Meta 发布并开源了 LLaMA 系列模型,来自斯坦福大学、UC 伯克利等机构的研究者们纷纷在 LLaMA 的基础上进行「二创」,先后推出了 Alpaca、Vicuna 等多个「羊驼」大模型。
羊驼已然成为开源社区的新晋顶流。由于「二创」过于丰富,生物学羊驼属的英文单词都快不够用了,但是用其他动物的名字给大模型命名也是可以的。
最近,UC 伯克利的伯克利人工智能研究院(BAIR)发布了一个可以在消费级 GPU 上运行的对话模型 Koala(直译为考拉)。Koala 使用从网络收集的对话数据对 LLaMA 模型进行微调。
项目地址:https://bair.berkeley.edu/blog/2023/04/03/koala/
Koala 已经推出线上测试 demo:
- Demo 地址:https://chat.lmsys.org/?model=koala-13b
- 开源地址:https://github.com/young-geng/EasyLM
Koala 概述
与 Vicuna 类似,Koala 也使用从网络收集的对话数据对 LLaMA 模型进行微调,其中重点关注与 ChatGPT 等闭源大模型对话的公开数据。
研究团队表示,Koala 模型在 EasyLM 中使用 JAX/Flax 实现,并在配备 8 个 A100 GPU 的单个 Nvidia DGX 服务器上训练 Koala 模型。完成 2 个 epoch 的训练需要 6 个小时。在公共云计算平台上,进行此类训练的成本通常低于 100 美元。
研究团队将 Koala 与 ChatGPT 和斯坦福大学的 Alpaca 进行了实验比较,结果表明:具有 130 亿参数的 Koala-13B 可以有效地响应各种用户查询,生成的响应通常优于 Alpaca,并且在超过一半的情况下与 ChatGPT 性能相当。
Koala 最重要的意义是它表明:在质量较高的数据集上进行训练,那么小到可以在本地运行的模型也可以获得类似大模型的优秀性能。这意味着开源社区应该更加努力地管理高质量数据集,因为这可能比简单地增加现有系统的规模更能实现安全、真实和强大的模型。从这个角度看,Koala 是 ChatGPT 一种小而精的平替。
不过,Koala 还只是一个研究原型,在内容、安全性和可靠性方面仍然存在重大缺陷,也不应用于研究之外的任何用途。
数据集和训练
构建对话模型的主要障碍是管理训练数据。ChatGPT、Bard、Bing Chat 和 Claude 等大型对话模型都使用带有大量人工注释的专有数据集。为了构建 Koala 的训练数据集,研究团队从网络和公共数据集中收集对话数据并整理,其中包含用户公开分享的与大型语言模型(例如 ChatGPT)对话的数据。
不同于其他模型尽可能多地抓取网络数据来最大化数据集,Koala 是专注于收集小型高质量数据集,包括公共数据集中的问答部分、人类反馈(正面和负面)以及与现有语言模型的对话。具体而言,Koala 的训练数据集包括如下几个部分:
ChatGPT 蒸馏数据:
- 公开可用的与 ChatGPT 对话数据(ShareGPT);
- Human ChatGPT 比较语料库 (HC3),其中同时使用来自 HC3 数据集的人类和 ChatGPT 响应。
开源数据:
- Open Instruction Generalist (OIG);
- 斯坦福 Alpaca 模型使用的数据集;
- Anthropic HH;
- OpenAI WebGPT;
- OpenAI Summarization。
实验与评估
该研究进行了一项人工评估,将 Koala-All 与 Koala-Distill、Alpaca 和 ChatGPT 几个模型的生成结果进行比较,结果如下图所示。其中,使用两个不同的数据集进行测试,一个是斯坦福的 Alpaca 测试集,其中包括 180 个测试查询(Alpaca Test Set),另一个是 Koala Test Set。
总的来说,Koala 模型足以展示 LLM 的许多功能,同时又足够小,方便进行微调或在计算资源有限的情况下使用。研究团队希望 Koala 模型成为未来大型语言模型学术研究的有用平台,潜在的研究应用方向可能包括:
- 安全性和对齐:Koala 允许进一步研究语言模型的安全性并更好地与人类意图保持一致。
- 模型偏差:Koala 使我们能够更好地理解大型语言模型的偏差,深入研究对话数据集的质量问题,最终有助于改进大型语言模型的性能。
- 理解大型语言模型:由于 Koala 模型可以在相对便宜的消费级 GPU 上运行,并且执行多种任务,因此 Koala 使我们能够更好地检查和理解对话语言模型的内部结构,使语言模型更具可解释性。