InstructLab 是一个社区驱动的项目,旨在通过合成数据生成来简化增强大语言模型(LLM)和为其作出贡献的过程。该计划致力于解决开发人员面临的多项挑战,例如:向 LLM 做出贡献的复杂性、分叉模型导致的模型蔓延问题,以及缺乏直接的社区治理机制。在红帽和 IBM 研究院的支持下,InstructLab 利用新颖的基于合成数据的对齐调优方法来提高模型性能和可访问性。在此,我们将讨论以传统方式微调模型时遇到的当前问题和技术挑战,以及 InstructLab 为解决这些问题所采取的方法。

挑战:数据质量不佳及计算资源利用率低下

随着 LLM 领域竞争加剧,主要解决方法似乎是构建日益庞大的模型,并通过从公共互联网获取的海量信息来训练模型。但是,互联网中的大部分内容都包含冗余信息或非自然语言数据,这些内容对模型核心功能的提升并无助益。

例如,用于训练 LLM GPT-3(后续版本均以此为基础构建)的词元中,有 80% 的词元来自 Common Crawl,该数据集包含大量网页。众所周知,该数据集包含高质量文本、低质量文本、脚本和其他非自然语言数据。据估计,其中很大一部分数据可能都是无用或低质量内容。 (Common Crawl 分析)

使用这些未经筛选的海量数据训练模型,将会导致计算资源利用率低下,不仅推高了模型训练成本(这些增加的成本最终会转嫁至下游消费者),还为在本地环境中部署这些模型带来了挑战。

我们注意到,越来越多的模型具有较少的参数,且数据质量和相关性比纯粹的数据量更为重要。采用更精准的定向数据管理方式的模型,能够实现更优性能、降低计算资源需求,并提供更高质量的输出结果。

InstructLab 的解决方案:优化合成数据生成

InstructLab 的独特之处在于,一开始仅需一个较小的种子数据集,就能生成用于训练的大量数据。它利用聊天机器人大规模对齐(LAB)方法,以极少的人工生成数据和计算开销来增强 LLM。这为个人提供了一种便捷的方式来贡献相关数据,然后通过合成数据生成功能来增强数据,且在整个生成过程中有模型辅助确保质量。

High-level overview of InstructLab’s structure and synthetic data generation process

 

InstructLab 方法的主要特点:

分类驱动的数据管理

整个过程从创建分类开始,这是一种用于组织整理各种技能和知识领域的层次化结构。此分类法可作为管理初始人工生成示例的路线图,这些示例将充当合成数据生成过程的种子数据。这些数据采用结构化组织方式,便于用户探索模型的现有知识体系并快速识别可以贡献的领域,从而有效减少冗余无序信息。同时,该方法仅需使用易于格式化的问答对格式 YAML 文件,即可针对特定用例或特定需求对模型进行精准调优。

Usage of a taxonomy structure for identifying model gaps & mapping contributions

合成数据生成过程

在数据生成过程中,InstructLab 利用教师模型基于基础种子数据生成新的示例。需要注意的是,此过程未使用教师模型存储的知识,而是使用特定的提示模板来显著扩展数据集,同时确保新示例保持原始人工整理数据的结构和意图。LAB 方法使用两个特定的合成数据生成器:

  • 技能合成数据生成器(技能-SDG):使用提示模板进行指令生成、评估、回答生成及最终配对评估
  • 知识-SDG:针对教师模型未覆盖的领域生成指令数据,并利用外部知识源为生成数据提供事实依据

幸运的是,这大幅降低了对大量手动标注数据的需求。以人类生成的小型、独特示例为参考,可以筛选数百、数千甚至数百万个问答对,以影响模型的权重和偏差。

Expanded data set with consistent structure and intent

自动优化

LAB 方法采用自动优化流程,以提高通过合成方式生成的训练数据的质量和可靠性。此方法以分层分类法为指导,将模型用作生成器和评估器。该流程包括生成指令、过滤内容、生成回答以及基于三分制评分系统的配对评估。对于基于知识的任务,生成的内容基于可靠的源文件,解决了专业领域中潜在的准确性问题。

Verification of data quality and adherence to guidelines

多阶段调优框架

​​InstructLab 实施多阶段训练过程,以逐步提高模型的性能。这种分阶段方法有助于保持训练稳定性,并且数据重播缓冲区这一设置能有效防止灾难性遗忘,从而使模型能够持续学习并不断改进。生成的合成数据用于两阶段调优过程:

  • 知识调优:整合新的事实信息,具体分为两个阶段:先进行简短回答训练,随后进行长回答训练和基础技能训练
  • 技能调优:增强模型在各种任务和情境中应用知识的能力,重点关注组合技能
Applying knowledge across various tasks and contexts

该框架采用较小的学习率、较长的预热期和较大的有效批量大小,以确保稳定性。

迭代改进周期

合成数据生成过程采用迭代式设计。当分类体系获得新的贡献时,这些新的贡献内容可用于生成额外的合成数据,从而进一步增强模型性能。这种持续改进的循环机制有助于确保模型保持最新状态并具有相关性。

InstructLab 结果和意义

InstructLab 的重要性在于它能够使用公开可用的教师模型(而不是依赖于专有模型)来实现最先进的性能。在基准测试中,InstructLab 方法已展现出令人欣喜的成效。例如,当应用于 Llama-2-13b(生成 Labradorite-13b)和 Mistral-7B(生成 Merlinite-7B)时,经 LAB 训练的模型在 MT-Bench 得分方面,超越了基于各自基础模型微调的现有最佳模型。这些模型在其他指标上也保持出色的表现,包括 MMLU(测试多任务语言理解能力)、ARC(评估推理能力)和 HellaSwag(评估常识推理能力)等。

Various benchmarks newly-created models using the LAB technique in comparison to their base models

基于社区的协作和可访问性

InstructLab 的一个显著优势在于其开源特性,以及将所有人聚集到一起,共同塑造模型的未来,从而实现生成式 AI 大众化的目标。命令行界面(CLI)设计为在常见硬件(如个人笔记本电脑)上运行,降低了开发人员和贡献者的使用门槛。此外,InstructLab 项目鼓励社区参与,允许成员向定期构建并在 Hugging Face 上发布的主要模型贡献新的知识或技能。欢迎随时点击此处查看最新模型。

How the InstructLab project integrates and triages community-created enhancements

InstructLab 的合成数据生成过程基于 LAB 方法构建,代表了生成式 AI 领域的重大进步。通过利用新的功能和知识领域高效增强 LLM,InstructLab 为更具协作性和高效的 AI 开发方法铺平了道路。如果您想了解有关该项目的更多信息,我们建议您访问 instructlab.ai 或查看这份入门指南,以便在您的计算机上试用 InstructLab!


关于作者

Cedric Clyburn (@cedricclyburn), Senior Developer Advocate at Red Hat, is an enthusiastic software technologist with a background in Kubernetes, DevOps, and container tools. He has experience speaking and organizing conferences including DevNexus, WeAreDevelopers, The Linux Foundation, KCD NYC, and more. Cedric loves all things open-source, and works to make developer's lives easier! Based out of New York.

Legare Kerrison is a Technical Marketing Manager and Developer Advocate working on Red Hat's Artificial Intelligence offerings. She is passionate about open source AI and making technical knowledge accessible to all. She is based out of Boston, MA.

UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Virtualization icon

虚拟化

适用于您的本地或跨云工作负载的企业虚拟化的未来