InstructLab 是一种旨在显著改进生成式 AI 应用程序开发所用 LLM 的 AI 模型训练方法。
Instruct Lab 由 IBM Research 和 RedHat 共同开发,作为开源项目,其依托全球开发者社区(称为 InstructLab 社区)进行构建与维护。
InstructLab 项目旨在解决制约大型语言模型 (LLM) 开发的核心难题:训练与数据收集的成本及复杂性,以及技能与知识注入的困难。
据《福布斯》报道,InstructLab 不仅提升了 LLM 性能,更解决了传统训练中的多项扩展性挑战,使企业无需再构建和维护多个 LLM。这一成果主要得益于 IBM 研发的 LAB LLM 训练法(全称为聊天机器人大规模对齐技术)。
当今最强大的聊天机器人(如 Siri、Alexa 和 ChatGPT)都依赖于经过预训练的大语言模型,这使得它们能在 AI 对齐过程中快速学习任务。但让人工智能达到此水平可能成本高昂且耗时良久,且最终产生的模型往往缺乏应对复杂、微妙、类人情境所需的深度。根据 IBM 商业价值研究院的数据,企业高管预计计算成本平均将攀升近 90%,这主要源于为生成式 AI (gen AI) 应用程序构建大语言模型的需求。
聊天机器人大规模对齐 (LAB) 是一种为组织需要聊天机器人完成的特定任务合成生成数据的方法。与传统训练方法不同,它能使聊天机器人快速吸收新信息并学习新技能,且不会覆盖已掌握的内容。
在 LLM 训练中,分类法是指一种层级化结构,用于对 LLM 目标应用程序所需的核心技能与知识领域进行系统归类。例如,应用于自动驾驶的 LLM 分类法,与用于医学研究的模型分类法存在显著差异,正如赛车手需掌握与医生截然不同的技能体系。
InstructLab 的数据经过结构化处理,使其易于被模型现有技能和知识库所理解。InstructLab 的简洁结构使开发者能直观识别知识缺漏,并针对性地补充技能。这种分类法驱动的数据整理机制,还支持为特定新用例(如科研或特定物联网 (IoT) 应用)定制模型,并赋予相应技能。
为此,InstructLab 方法高度依赖 YAML(“YAML 不是标记语言”或“另一种标记语言”),该标准化数据格式能实现人机皆易解析的数据呈现。YAML 方法为 InstructLab 流程中的下一个关键步骤——大规模合成数据生成——铺平了道路。
当特定模型所需的训练数据整理完成后,模型即可基于训练数据自行生成数据,此过程称为合成数据生成。InstructLab 在 LLM 训练中这一步骤的独特之处在于其执行规模及生成数据的精确性。InstructLab 的方法再次依托聊天机器人大规模对齐 (LAB) 技术,通过引入自动化步骤进一步优化 LLM 生成的答案,确保其准确性。
此步骤中生成的新数据对所有 LLM(不仅限于 InstructLab 的 LLM)的训练至关重要,其依赖于所谓的“教师”模型——这种更庞大的模型可为更精简高效的“学生”模型生成用于学习的标签与数据。
采用 LAB 方法的 InstructLab LLM,实际并不使用教师模型存储的数据,而是通过特定提示词在指数级扩充数据集的同时,确保“学生”模型生成的示例始终与 LLM 的预设目标保持一致。
据 IBM Research 称,该方法“系统化生成对应聊天机器人目标任务的合成数据,使基础模型在吸收新知识与能力时,不会覆盖已掌握的内容”。
在 InstructLab/LAB 流程的最后阶段,LLM 将基于其持续学习的合成数据进行再训练,以此精炼技能并提升回答准确度。该最终步骤分为两个阶段:
采用传统方法训练的大语言模型通常使用检索增强生成 (RAG) 技术,通过更具针对性的领域专项训练来补充知识。对于需要在保留专有数据控制权的前提下,为特定目的向基础模型添加专有数据的企业而言,RAG 是实用工具。
InstructLab/LAB 方法可与传统 RAG 流程实现相同目标,但其并非简单添加现有特定知识,而是更侧重于通过社区终端用户的贡献来构建相关知识体系与技能。企业为特定目标微调 LLM 时,可协同运用 RAG 与 InstructLab/LAB 以获得理想效果。
随着 AI 应用需求日益增长,支撑它们的 LLM 正变得更大更复杂,进而对底层 AI 基础设施提出更严苛的要求。与其他先进模型训练方法相同,InstructLab/LAB 依赖于 GPU 密集型基础设施,该设施需满足性能基准要求,以便根据全球开源社区在 github.com/instructlab 的贡献持续对 AI 模型进行再训练。
值得庆幸的是,IBM 致力于提供所有必要的数据存储、管理、工作流及实践方案,以确保 LLM 项目取得成功。
当今,从生成式 AI 聊天机器人、编程助手到边缘计算、物联网 (IoT) 应用等领域,最令人瞩目的 AI 用例都由 LLM 支撑。这些模型既可以是 OpenAI 和 Claude 等专有模型,也可以是如 Mistral、Llama-2 和 IBM 的 Granite 模型那样在预训练数据层面遵循开源原则的模型。
InstructLab 的卓越之处在于它能使用公开模型达到甚至超越专有模型的性能。专为企业规模化加速 AI 影响力设计的 IBM watsonx AI 与数据平台就广泛采用了该技术。例如,根据 IBM Research 论文显示,近期通过 LAB 训练的 Merlinite-7B 模型在关键指标上超越了多个专有模型。
为满足先进生成式 AI 应用程序的需求,开发人员常基于现有 LLM 进行适配以实现特定业务需求。以保险公司为例:若其欲构建生成式 AI 应用程序来帮助员工从专有客户数据中获取洞察,当前普遍做法是购买现有聊天机器人专用 LLM 并按需修改。但这种方法存在若干重要的局限性:
InstructLab 方法能够使用较少人工生成输入和远低计算资源来训练 LLM。现代 LLM(尤其是支撑强大聊天机器人的模型)的训练方法基础,在于对海量非结构化文本数据集进行广泛预训练。虽然这种训练方式使 LLM 能在对齐阶段较快掌握新技能,但其成本高昂且需要大量人工介入。
IBM Research 开发的 LAB 方法采用分类法引导的合成数据生成技术,以降低成本和人工输入需求。结合 InstructLab 开源、社区驱动的开发模式,该方法有效实现了生成式 AI 应用程序所需 LLM 开发的民主化。
InstructLab 的命令行界面 (CLI)(即开发人员用于管理该工具的指令集)甚至可运行于个人笔记本电脑等广泛使用的设备上,并鼓励开发者通过 Hugging FaceAI 社区贡献新知识与技能。
InstructLab 采用开源、社区驱动的方法为广泛用例微调 LLM。以下是部分最常见的用例。
采用 InstructLab 方法开发的 LLM,可针对医疗行业的多种应用场景训练新技能与知识——从筛查海量临床数据助力科学家取得医学研究突破,到根据病史评估患者风险等。
在银行业,InstructLab 方法可构建侧重贸易分析与模型预测的 LLM,帮助识别趋势并预测交易策略相关风险。它也可用于训练面向个人理财场景的生成式 AI 模型,例如退休规划、预算制定等。
采用 InstructLab 方法训练的 LLM,可驱动精通特定客服领域的智能聊天机器人,例如处理商品退货或产品咨询。此外,LAB 方法能通过微调使 LLM 成为具备综合技能的虚拟助理,如安排会晤、预订行程、税务申报等。
InstructLab 方法可微调支撑营销领域生成式 AI 应用程序的 LLM,实现多元目标。它们能学会分析客户数据以洞察消费行为、产品偏好乃至未来产品设计方向。也能掌握提供个性化产品建议的必要技能,例如鞋服尺码推荐、颜色偏好匹配等。
运用 InstructLab 方法训练 LLM 以改进开发运维生命周期,可通过以下重要方式为开发人员创造价值。采用 InstructLab 方法训练的 LLM 能够生成代码、创建脚本、实现基础设施自动配置(基础设施即代码 (IaC) 应用程序),并优化常规问题解决、故障排除乃至代码分析与评审的流程。