我的 IBM 登录 订阅

什么是指令调整?

2024 年 4 月 5 日

作者

Dave Bergmann

Senior Writer, AI Models

IBM

什么是指令调整?

指令调整 是一种在标记的指令提示和相应输出数据集上对大型语言模型 (LLM) 进行微调的技术。它不仅能提高模型在特定任务中的性能,还能提高模型在一般情况下遵循指令的性能,从而帮助调整预训练模型,使其适合实际使用。

指令调整是更广泛的微调技术的一个子集,用于调整预训练的基础模型以适应下游任务。可以出于各种目的对基础模型进行微调,从风格定制到补充预训练模型的核心知识和词汇,再到优化特定用例的性能。尽管微调并非任何特定领域或人工智能模型架构所独有,但它已成为 LLM 生命周期不可或缺的一部分。例如,Meta 的 Llama 2 模型系列 (多种尺寸)有基本模型、对话微调模型(Llama-2-chat) 和编码微调模型(Code Llama)。

指令调整与其他微调技术并不相互排斥。例如,聊天模型通常会同时进行指令调整和来自人类反馈的强化学习 (RLHF),这是一种旨在提高乐于助人和诚实等抽象品质的微调技术;针对编码进行微调的模型通常会同时进行指令调整(以广泛优化对指令遵循的响应)和对特定于编程的数据的额外微调(增强模型对编码语法和词汇的了解)。

虽然 LLM 的起源可以追溯到 2017 年的“Attention is All You Need”论文,该论文将大规模转换器模型引入自然语言处理 (NLP) 任务中,而在谷歌(2021 年)1和 OpenAI(2022 年)2的有影响力的论文的推动下, 指令调整和 RLHF 的融入产生了现代 LLM,随着 ChatGPT 的推出,开启了当前的生成式 AI 时代。

小球在轨道上滚动的三维设计

最新的 AI 新闻 + 洞察分析

在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。 

为什么要对 LLM 进行指令调整?

与大多数微调技术一样,指令调整的作用在于,预训练的 LLM 并没有针对对话或指令遵循进行优化。从字面意义上讲,LLM 并不回答提示:它们只是将文本添加到提示中。指令调整有助于使附加文本更加有用。

自回归语言模型(用于生成文本的 LLM,例如 Meta 的 Llama 2 、OpenAI 的 GPT、Google 的 Gemini 或 IBM 的 Granite)的预训练过程对这些 LLM 进行优化,使其只需预测给定序列中的下一个单词,直到完成为止。

LLM 是通过对大量书面内容语料库的自我监督学习进行预训练的。在预训练中,自回归模型提供文本样本的开头,并重复预测序列中的下一个单词,直到摘录结束。对于每个预测,原始样本句子的实际下一个单词都是“标准答案”。通过梯度下降等优化算法迭代调整模型参数(应用于 Neural Networks 中每个节点上发生的数学运算的不同权重和偏差),使模型的预测更接近原文,模型“学习”训练数据中的语言模式(进而学习这些语言模式中传递的“知识”)。

尽管这种预训练过程能够生成语言连贯的文本,但它并不一定能使模型性能与人类用户的实际需求相一致。如果不进行微调,基础模型可能会对“教我如何烤面包”的提示做出“用家用烤箱”响应。从语法角度看,这样完成句子是合理的,但却不是用户想要的。

然而,出于任何特定目的(例如遵循指令)预先训练 LLM 是不切实际的。“大型语言模型”中的“大型”是指这些模型通常拥有数十亿个参数:从头开始训练这些庞大的模型需要大量的精力、时间、计算资源和训练数据。相反,对已经训练过的 LLM 进行微调所需的数据要少得多,尤其是在使用部分微调或低秩自适应 (LoRA) 等参数高效微调 (PEFT) 方法时所需的计算量只是其中的一小部分。

尽管微调几乎可以通过任何机器学习范式实现,包括强化学习、半监督学习 或其他自监督学习,但指令调整需要对标记的(输入、输出)对进行监督学习。指令调整与其他形式的监督微调 (SFT) 不同之处在于,指令数据集中的输入样本完全由类似于用户可能在提示中提出的请求的任务组成;输出则展示了对这些请求的理想响应。在调整模型权重以使 LLM 的输出与指令数据集中的示例相似时,LLM 通过添加包含实际烤面包建议的文本,“学会”对“教我如何烤面包”这样的提示做出回应。

因此,指令调整有助于缩小模型的基本目标(下一个单词预测)与用户让模型遵循指令并执行特定任务的目标之间的差距。这使得模型行为更有用、更可预测。

专家荟萃 | 播客

解码 AI:每周新闻摘要

加入我们的世界级专家团队,包括工程师、研究人员、产品负责人等,他们将穿透 AI 的喧嚣,为您带来最新的 AI 新闻和见解。

指令调整是如何进行的?

在各种指令遵循任务的标记数据集上对 LLM 进行微调,通常可提高遵循指令的能力,减少有效提示所需的上下文信息量。指令数据集可以是人为制作的,也可以是由其他 LLM 生成的。

正如 Google Research 在 2022 年发表的一篇颇具影响力的论文《微调语言模型是零样本学习学习者》中所阐述的那样,指令调整的目的是提高 LLM 响应 NLP 指令的能力。为此,指令调整“结合了预训练 - 微调和提示范式的吸引人之处”。从本质上讲,通过将提示工程的原则有机地融入监督微调中,指令调整减少了提示工程的数量,也减少了从微调模型中得出有用、准确的响应所需的少量示例。1

指令数据集中的每个训练样本都由三个元素组成:

  • 指令:指定任务的自然语言文本输入。例如,“将这句话从英语翻译成西班牙语”。
  • 其他信息:可选的补充信息,提供与当前任务相关的语境信息。例如,阅读理解任务的输入可能包括一个简短的段落(然后指示模型回答有关该段落的给定问题)。
  • 预期输出:根据所提供的说明和语境,针对给定提示的目标输出——响应。这将成为评估和优化模型预测的基本事实。

谷歌的论文指出,他们的 LaMDA-PT 模型的最终指令调整变体,被称为 FLAN(Fintuned Language Net 的缩写),该变体在翻译、问答、阅读理解和自然语言推理 (NLI) 等以指令形式自然表达的任务上取得了最大的改进,自然语言推理是指确定给定“假设”是否符合给定“前提”的逻辑。

为了解释这一点,FLAN 论文指出了 Brown 等人在 2020 年发布的原始 GPT-3 模型研究论文中提出的一个观点:为什么预训练的 LLM(没有额外的微调)在处理 NLI 等任务时会遇到困难,原因之一是在用于自监督预训练的未标记数据语料库中,不太可能自然出现类似典型 NLI 任务的段落。3相反,对于与预训练的直接语言建模目标更接近的任务,例如最终要求模型正确完成一个句子的常识推理任务,指令在很大程度上是多余的(因此指令调整带来的益处较少)。

也许最重要的是,该论文证明,在指令调整数据集中添加额外任务,甚至在指令数据集中没有体现的新任务上,也能提高指令调整模型的性能。这就是指令调整的根本好处:全面提高模型遵循指令的能力。

指令调整与多任务微调

FLAN 论文还包括一项消融研究,深入了解了指令微调的明显优势是指令本身造成的,还是仅仅归因于在多个 NLP 任务中对模型进行了微调。为了研究指令在微调中的作用,消融研究在三个不同的设置上对基础模型进行了微调:

  • 无模板:模型仅提供输入和输出。例如, 翻译任务的输入是“the dog runs”,目标输出是“le Chien Court”
  • 数据集名称:每次输入前都有任务和数据集的名称。在我们的翻译示例中,从 WMT 2014 4 数据集集中提取的输入为“[翻译:WMT 14 到法语] The dog runs”。
  • FLAN 指令:输入遵循指令调整原则。在这个翻译示例中,输入的内容是“请将这个句子翻译成法语:The dog runs”。

然后,消融研究测量了每个微调语言模型在一系列零样本学习指令遵循任务中的结果。经过指令调整的模型比“无模板”模型的准确率高出 18%,比“数据集名称”模型的准确率高出 8%。这表明,指令本身的训练对于提高未见任务的零样本学习性能至关重要。

思维链 (CoT) 微调

思维链 (CoT) 提示要求 LLM 不仅要回答问题,还要就如何得出答案提出理由。要做到这一点,可以通过少量的顺序推理示例进行提示,或者在提示语末尾简单地加上“逐步思考”。研究表明,CoT 提示可显着增强了大型模型在各种算术、符号推理和其他逻辑推理任务中的零样本学习能力。5 Wei 等人发现,如果指令数据集中不包括 CoT 任务,进行指令调整会显着降低模型在 CoT 评估中的性能,但添加 CoT 数据集后,模型在所有评估中的性能都会提高。6

此外,他们的研究还发现,在 CoT 任务中对指令进行微调(无论是使用还是不使用少样本学习的示例)都能提高模型在零样本学习环境中进行 CoT 推理的能力。对这一好处的直观理解是,通过对模型进行微调,使其能够按逻辑步骤解决问题,而不是匆忙得出一个在语言上看似连贯的答案,从而学会更好地产生和应用自己的推理技能。

指令调整数据集

有许多数据集可用于指导调整 LLM,其中很多都是开源资源。这些数据集可以包含直接编写(或收集)的自然语言对(指令、输出),也可以使用模板将现有的带注释数据集转换为指令,甚至使用其他 LLM 生成示例。

人为创建的数据集

直接编写(指令、输出)对虽然简单明了,但却是一个劳动密集型过程,最终会耗费大量的时间和成本。已经提出了各种将自然语言数据集转化为指令的方法,通常是通过应用模板。多个开源人工制作数据集的发布有助于降低对自然数据进行微调的成本。

人工制作的著名开源教学数据集包括:

  • Flan:Flan 数据集最初用于对谷歌的 LaMDA-PT 模型进行微调,产生了最初的 FLAN 模型。在 Flan 上进行微调的主要型号包括 FLAN-T5、Flan-UL2 和 Flan-PaLM 540B(也称为 FLAN-T5-XXL)。
  • OpenAssistant:OpenAssistant Conversations 是由人工制作的多语言对话语料库,侧重助理式对话交流。它包括 91,829 条用户提示和 69,614 条助手回复,这些提示和回复来自由 35 种不同语言构建的 66,497 个对话树。
  • Dolly:Dolly 是由 15,000 个人工生成的对话实例组成的英语数据集,旨在让 LLM 以类似于 ChatGPT 的对话驱动模式与用户进行交互。它涵盖广泛的任务和人类行为,包括总结、信息提取、头脑风暴、创意写作、分类和问题解答。

LLM 生成的数据集

由于手动生成指令和目标输出所需的成本和人力过高,许多指令数据集都使用大型 LLM 的响应来生成提示、输出或两者兼而有之。使用 LLM 生成的数据集往往会产生额外的效果,即教会较小的模型模仿较大模型的行为,有时是在一种有意的教师/学习者动态中进行的。

  • Self-Instruct:Self-Instruct 使用 InstructGPT 构建,而 InstructGPT 本身就是 GPT-3 的指令调整版本。作者提供了自然语言“种子任务”,并提示 InstructGPT 生成更多示例,最终生成了 52,000 条训练指令。斯坦福大学的研究人员采用一种经过改进的 Self-Instruct 方法,为 LLaMA 的第一个指令调整变体 Alpaca 生成训练数据。值得注意的是,Alpaca 在 Self-Instruct 数据集上的表现略优于 InstructGPT 的基准。7
  • Evol-Instruct:顾名思义,Evol-Instruct 是对 Self-Instruct 方法的进化,它采用深入浅出的策略重写指令。前者通过增加限制条件、增加推理步骤和使输入复杂化等措施来提高指令的复杂性。后者“改变”先前的指令,以增加数据集的多样性和主题覆盖面。WizardLM 的研究论文中介绍了 Evol-Instruct,其中详细说明了如何使用 Evol-Instruct 对 LLaMA 进行微调。8
  • ShareGPT:ShareGPT.com 包含用户生成的信息库,记录了其与 ChatGPT 的交流内容。Vicuna 是对 LLaMA 进行的一次显著微调,其背后的研究人员使用了 ShareGPT 中的 70,000 条对话记录,并为多轮对话量身定制了选项。9
  • OpenOrca:OpenOrca 是经过强化的 Flan Collection(链接位于 ibm.com 站外)数据集。其目的是复制 Microsoft 用于训练 Orca 的数据集,该数据集探索了明确侧重于优化大模型的使用以通过模仿学习来优化小型 LLM 的方法。10

随着 LLM 功能的增强,LLM 生成的指令调整数据集的效用也同样得到了提高。2023 年的一篇论文重现了 Alpaca 微调范式,即在 InstructGPT 生成的指令基础上对 LLaMA 进行微调,同时使用 GPT-4 生成指令以并行方式重复该过程。他们将由此产生的模型命名为 LLaMA-GPT4,其“实用性”得分大大超过了 Alpaca 等同模型,在“实用性”、“诚实”和“无公害”方面也接近于 GPT-4 模型本身。11

指令调整的挑战和局限性

虽然指令调整技术在 LLM 方面取得了重要进展,但仍需努力使指令调整数据集多样化,并充分阐明其优势。

指令调整所面临的主要挑战是创建用于微调的高质量指令。制作一个适当大型的指令数据集所需的资源,使指令集中于少数几个开源数据集,这可能会降低模型的多样性。虽然使用较大的专有 LLM 来生成指令有助于降低成本,但这也有潜在的弊端,即在所有开源 LLM 中强化了这些专有 LLM 的偏见和缺点。为了规避人类研究人员的固有偏见,专有模型往往被用来评估较小模型的性能,这使得问题更加复杂。

在技术层面上,一些研究人员担心,使用较大的模型来改进较小的模型,可能有助于最小的模型模仿较大的模型的风格,但无法模仿较大的模型的实际功能。2023 年的一项实证研究表明,通过指令调整获得的许多令人印象深刻的成绩提高可能来自于对表面模式的拾取,而不是逻辑推理方面更多真正的改进。12

同样,其他研究人员也认为,报告中提到的一些改进可能在某种程度上依赖于在与指令训练数据集过于密切相关的任务上评估指令调整模型的性能。Gudibande 等人总结说,“通过对以这种方式调整的模型进行更有针对性的测试,改进开源代码模型的最高杠杆作用是应对开发更好的基础 [语言模型] 这一艰巨挑战,而不是走模仿专有系统的捷径”。13

相关解决方案

相关解决方案

IBM watsonx.ai

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解 AI 解决方案
人工智能服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

一站式访问跨越 AI 开发生命周期的功能。利用用户友好型界面、工作流并访问行业标准 API 和 SDK,生成功能强大的 AI 解决方案。

深入了解 watsonx.ai 预约实时演示
脚注

注:所有链接均位于 ibm.com 站外。
1
《微调语言模型是零样本学习者》,谷歌(通过 arXiv 发布),2021 年 9 月 3 日(最后修订日期:2022 年 2 月 8 日)。
2《调整语言模型以遵循指令》,OpenAI,2022 年 1 月 27 日。
3《语言模型是少样本学习者》,arXiv,2020 年 7 月 22 日。
4《WMT 2014》,Papers With Code,2014 年 6 月 27 日。
5《语言模型是零样本学习推理器》,arXiv,2022 年 5 月 24 日(最后修订于 2023 年 1 月 29 日)。
6《扩展指令微调语言模型》,谷歌(通过 arXiv),2022 年 12 月 6 日。
7《Alpaca:一个强大的、可复制的指令遵循模型》,斯坦福大学基础模型研究中心,2023 年 3 月 13 日。
8《WizardLM:增强大型语言模型遵循复杂指令的能力》,arXiv,2023 年 6 月 10 日。
9《Vicuna:一个开源聊天机器人以 90%* 的 ChatGPT 质量给 GPT-4 留下深刻印象》,LMSYS Org,2023 年 3 月 30 日。
10《Orca:从 GPT-4 的复杂解释痕迹中逐步学习》,Microsoft,2023 年 6 月。
11《使用 GPT-4 进行指令调整》,arXiv,2023 年 4 月 6 日。
12《模型真的学会遵循指令吗?指令调整的实证研究》,arXiv,2023 年 5 月 19 日。
13《模仿专有 LLM 的虚假承诺》,arXiv,2023 年 5 月 25 日。