博客链接:https://bair.berkeley.edu/blog/2023/04/03/koala/数据预处理代码:https://github.com/young-geng/koala_data_pipeline评估测试集:https://github.com/arnav-gudibande/koala-test-set模型下载:https://drive.google.com/drive/folders/10f7wrlAFoPIy-TECHsx9DKIvbQYunCfl
在发布的博客文章中,研究人员描述了模型的数据集管理和训练过程,同时也展示了用户研究的结果,将该模型与ChatGPT和斯坦福大学的Alpaca模型进行了比较。研究结果表明,Koala可以有效地回答各种用户的查询,生成的回答往往比Alpaca更受欢迎,至少在一半的情况下与ChatGPT的效果不相上下。研究人员希望这次实验的结果可以进一步推动围绕大型闭源模型相对于小型公共模型的相对性能的讨论,特别是结果表明,对于那些能在本地运行的小模型,如果认真地收集训练数据,也可以取得大模型的性能。
这可能意味着,社区应该投入更多的精力来管理高质量的数据集,可能比简单地增加现有系统的规模来说更有助于建立更安全、更实际、更有能力的模型。需要强调的是,Koala只是一个研究原型,虽然研究人员希望模型的发布可以提供一个有价值的社区资源,但它仍然在内容安全性和可靠性方面存在重大缺陷,不应该在研究之外的领域使用。Koala系统概览
大型语言模型发布后,虚拟助手和聊天机器人的能力也越来越强,不仅能闲聊,还能写代码、写诗、故事创作,堪称无所不能。不过能力最强的那一批语言模型通常都需要海量的计算资源对模型进行训练,并且还需要大规模的专用数据集,普通人基本上没办法自己训练模型。换句话说,语言模型在未来将由少数有实力的组织控制,用户和研究人员采用付费的方式与模型进行交互,无法直接访问模型内部来修改或改进。另一方面,最近几个月也有一些组织发布了功能比较强大的免费或部分开源模型,比如Meta的LLaMA,这些模型的能力没办法和那些封闭模型(比如ChatGPT)相比,但它们的能力在社区的帮助下一直在迅速提高。
压力来到开源社区这边:未来是否可以看到越来越多围绕少数闭源代码模型的整合?或者是更多使用更小模型架构的开放模型?相同架构模型的性能是否能接近规模更大的闭源模型?
虽然开放模型不太可能与闭源模型的规模相匹配,但使用精心挑选的训练数据或许可以使它们接近没有微调过的ChatGPT的表现。
事实上,在此之前斯坦福大学发布的Alpaca模型,根据OpenAI的GPT模型对LLaMA的数据进行微调的实验结果已经表明,正确的数据可以显著改善规模更小的开源模型,这也是伯克利的研究人员开发和发布Koala模型的初衷,为这个讨论结果再提供了一个实验证明。
Koala 对从网上获取的免费交互数据进行了微调,并且特别关注包括与ChatGPT 等高性能闭源模型交互的数据。
研究人员根据从网络和公共数据集中提取的对话数据对 LLaMA 基础模型进行微调,其中包括对来自其他大型语言模型的用户查询的高质量响应,以及问答数据集和人类反馈数据集,由此训练得到的Koala-13B模型展现出了与现有模型相差无几的性能。
研究结果表明,从高质量的数据集中学习可以减轻小模型的一些缺点,甚至可能在未来与大型闭源模型相匹敌的能力,也就意味着,社区应该投入更多的精力来管理高质量的数据集,相比简单地增加现有模型的尺寸规模来说,更有助于建立更安全、更实际、更有能力的模型。
通过鼓励研究人员参与Koala模型的系统演示,研究人员希望发现一些意料之外的特点或缺陷,有助于在未来评估模型。
数据集和训练
建立对话模型的一个主要障碍是训练数据的管理,包括ChatGPT、Bard、Bing Chat和Claude在内的所有聊天模型都使用了大量人工标注构建的专用数据集。
为了构建Koala,研究人员通过从网络和公共数据集中收集对话数据来组织训练集,数据集中的一部分包括用户在线发布的大型语言模型(如 ChatGPT)的对话。
研究人员并没有追求尽可能多的抓取网络数据来最大化数据量,而是专注于收集一个小型的高质量数据集,使用公共数据集来回答问题、人类反馈(评分为正面和负面)以及与现有语言模型的对话。
ChatGPT蒸馏数据
与ChatGPT的公共用户共享对话(ShareGPT):使用公共API收集了大约六万条用户在ShareGPT上分享的对话。
网址链接:https://sharegpt.com/
为了保证数据质量,研究人员删除了重复的user query,并删除了所有非英语会话,最后留下了大约三万条样本。
人类ChatGPT比较语料(HC3):使用来自 HC3英语数据集的人类和 ChatGPT 回复结果,其中包含约六万条人类答案和约2.4万个问题的2.7万个ChatGPT 答案,总共得到约8.7万条问答样本。
开源数据
Open Instruction Generalist(OIG):使用从 LAION 策划的开放指令通用数据集中手动选择的组件子集,包括小学数学指导、诗歌到歌曲以及情节-剧本-书籍-对话数据集,总共得到大约3万个样本。
Stanford Alpaca:包括用于训练斯坦福Alpaca模型的数据集。
该数据集包含大约5.2万个样本,由 OpenAI 的 text-davinci-003按照self-instruct过程生成的。
值得注意的是,HC3、 OIG 和 Alpaca 数据集是单轮问答,而 ShareGPT 数据集是多轮对话。
Anthropic HH:包含人类对模型输出的有害性和有益性的评级。
该数据集包含约16万条人类评估的示例,其中每个示例由一对来自聊天机器人的回复组成,其中一个是人类偏好的,该数据集为模型提供了功能和额外的安全保护。
OpenAI WebGPT:该数据集包括总共约2万条的对比,其中每个示例包括一个问题、一对模型答案和元数据,答案由人类根据自己的偏好进行打分。
OpenAI Summarization:包含约9.3万条样例,包含来自人类的关于模型生成摘要的反馈,人类评估者从两个选项中选择了更好的摘要结果。
当使用开源数据集时,一些数据集可能会提供两个回复,对应于评定为好或坏(AnthropicHH、WebGPT、OpenAI摘要)。
之前的研究结果证明了条件语言模型对人类偏好标记(有用/无用)的有效性以提高性能,研究人员根据偏好标签将模型置于正标记或负标记上,如果没有人类反馈的话,对数据集使用正标记。在评估阶段,编写的prompt中包括正标记。
Koala 基于开源框架EasyLM(预训练、微调、服务和评估各种大型语言模型),使用JAX/Flax实现;训练设备为一台 Nvidia DGX 服务器与8个A100 GPU,需要6个小时训练完成2个epochs。
在公共云计算平台上,预期训练成本不超过100美元。
初步评估
在实验中,研究人员评估了两个模型:Koala-Distill,只使用蒸馏数据;Koala-All使用所有的数据,包括蒸馏和开源数据。
实验的目的是比较模型的性能,并评估蒸馏和开源数据集对最终模型性能的影响;对Koala模型进行人类评估,并将Koala-All与Koala-Distill, Alpaca和ChatGPT进行对比。
实验的测试集由斯坦福的Alpaca Test Set和Koala Test Set组成,包括180个测试query
Alpaca测试集由从self-isntruct数据集中抽样的user prompt组成,并表示 Alpaca 模型的分布式数据;为了提供更实际的评估协议,Koala测试集包含180个在线发布的真实用户query,跨越不同的主题,通常是会话式的,更能代表基于聊天系统的实际用例,并且为了减少可能的测试集泄漏,最终从训练集中筛选出 BLEU 得分大于20% 的查询。
此外,由于研究团队都更擅长英语,所以研究人员删除了非英语和编码相关的提示以提供更可靠的标注结果,最后在亚马逊众包平台上对大约100名标注员进行一次盲测,在评分界面为每个评分者提供一个输入提示和两个模型的输出,然后要求使用与回复质量和正确性相关的标准来判断哪个输出更好(允许同样好)。
在 Alpaca 测试集中,Koala-All的表现与 Alpaca 相当。
在Koala测试集(包含真实的user query)中,Koala-All所有在将近一半的样本中比 Alpaca 更好,70% 的案例中超过或与Alpaca同样好,其中肯定有Koala训练集合测试集相似度更高的原因,所以这个结果并不是特别意外。
但是只要这些提示更像这些模型的下游用例,也就意味着Koala在类似助手的应用中会表现得更好,表明使用网络上发布的样例与语言模型进行交互,是赋予这些模型有效的指令执行能力的有效策略。
比较让人以外的是,研究人员发现除了蒸馏数据(Koala-All)之外,对开源数据的训练比仅对 ChatGPT 蒸馏数据(Koala-Distill)的训练表现稍差。
虽然这种差异可能并不显著,但这一结果表明,ChatGPT对话的质量非常高,以至于即使包含两倍的开源数据也不会获得显著的改进。
最初的假设是,Koala-All应该表现得更好一些,因此在所有的评估中都使用Koala-All作为主要的评估模型,最终可以发现,有效的指令和辅助模型可以从大型语言模型中获得,只要这些prompts能够代表用户在测试阶段的多样性即可。
所以,建立强有力的对话模式的关键可能更多地在于管理高质量的对话数据,这些数据在用户查询方面各不相同,并不能简单地将现有数据集重新格式化为问题和答案。
限制与安全
和其他语言模型一样,Koala同样也有局限性,如果被误用的话,可能会对用户造成伤害。
研究人员观察到,Koala会产生幻觉,并以非常自信的口吻作出非事实性的反应,可能是对话微调的结果,换句话说,就是较小的模型继承了较大语言模型的自信风格,并没有继承同等水平的事实,在未来需要重点改进。
当被误用时,Koala的幻觉回复可能会促进错误信息、垃圾邮件和其他内容的传播。
考拉能够以一种自信和令人信服的语调幻想不准确的信息,除了幻觉,考拉还有其他聊天机器人语言模型的不足之处。其中包括:
- 偏见和刻板印象: 模型继承了带有偏见的训练对话数据,包括刻板印象、歧视和其他伤害。
- 缺乏常识: 虽然大型语言模型可以生成看似连贯和语法正确的文本,但它们往往缺乏人们认为理所当然的常识知识,这可能导致荒谬或不适当的反应。
- 有限理解: 大型语言模型可能难以理解对话的上下文和细微差别,也很难识别讽刺或反讽,可能会导致误解。
为了解决Koala的安全隐患,研究人员在 ShareGPT 和 AnthropicHH 的数据集中包含了对抗性提示,以使模型更加健壮和无害。
为了进一步减少潜在的滥用,还在演示中部署了 OpenAI 的内容审核过滤器来标记和删除不安全的内容。
未来工作
研究人员希望Koala模型能够成为未来大型语言模型学术研究的一个有用的平台:该模型足以展示现代语言模型的诸多功能,同时又足够小,可以用更少的计算量进行微调或使用,未来的研究方向可能包括:
- 安全性和一致性: 进一步研究语言模型的安全性和更好的与人类意图的一致性。
- 模型偏见:更好地理解大型语言模型的偏见、对话数据集中虚假相关性和质量问题的存在,以及减轻这种偏差的方法。
- 理解大型语言模型:因为Koala的推理可以在相对廉价的 GPU 上执行,可以更好地检查和理解对话语言模型的内部,使黑盒语言模型更容易理解。