LLM指令调优综述——Instruction Tuning for Large Language Models: A Survey

本文是《Instruction Tuning for Large Language Models: A Survey》的翻译,若有问题请指出!

摘要

本文调查了在快速发展的指导调优(IT)领域中的研究工作,这是增强大型语言模型(LLM)能力和可控性的关键技术。指导调优是指以监督方式在数据集上进一步训练LLMs,该数据集由(指导,输出)对组成,这填补了LLMs的下一个词预测目标和用户要求LLMs遵循人类指导的目标之间的差距。在本工作中,我们对文献进行了系统性的回顾,包括IT的一般方法论、IT数据集的构建、IT模型的训练以及不同模态、领域和应用的应用,以及对影响IT结果的方面的分析(例如,指导输出的生成、指导数据集的大小等)。我们还回顾了IT的潜在缺陷以及对它的批评,以及指出现有策略的当前不足并提出了一些有益研究的途径。

论文地址 https://arxiv.org/pdf/2308.10792.pdf

1 介绍 Instruction

近年来,大型语言模型(LLMs)领域取得了显著的进展。诸如GPT-3、PaLM和LLaMA等LLMs已经在广泛的自然语言任务中展示出令人印象深刻的能力。LLMs的一个主要问题是训练目标与用户目标之间存在不匹配:LLMs通常在大型语料库上训练以最小化上下文词语预测错误,而用户希望模型“有助于并安全地遵循他们的指导”。

为了解决这种不匹配,提出了指导调优(IT)作为一种有效的技术,用于增强大型语言模型的能力和可控性。它涉及使用(指导INSTRUCTION,输出OUTPUT)对进一步训练LLMs,其中指导表示模型的人类指导,而输出表示遵循指导的所期望的输出。IT的好处有三个方面:
(1 )在指导数据集上对LLM进行微调可以填补LLM的下一个词预测目标与用户遵循指导的目标之间的差距;
(2) 与标准LLMs相比,IT允许模型行为更可控和可预测。指导用于约束模型的输出,使其与期望的响应特征或领域知识相一致,为人类介入模型行为提供了渠道;
(3) IT在计算上是高效的,可以帮助LLMs迅速适应特定领域,无需进行广泛的重新训练或架构更改。

尽管IT很有效,但也存在挑战:
(1) 创建高质量的指导,恰当覆盖所需的目标行为,是一项复杂的任务:现有的指导数据集通常在数量、多样性和创造性方面有限;
(2) 越来越多的担忧认为IT只能改善在IT训练数据集中得到很好支持的任务;
(3) 有人强烈批评IT只捕捉表面层面的模式和风格(例如输出格式),而不是理解和学习任务。提高指导的遵循性和处理意料之外的模型响应仍然是开放的研究问题。这些挑战强调了在这一领域进行进一步调查、分析和总结的重要性,以优化微调过程并更好地理解指导微调的LLMs的行为。

对LLMs进行分析和讨论的研究兴趣逐渐增加,包括预训练方法、推理能力、下游应用,但很少涉及LLM指导微调这个主题。本文章整理了关于这个快速发展领域的最新知识。具体来说:
• 第2节介绍了指导微调中采用的一般方法论。
• 第3节概述了常用IT代表性数据集的构建过程。
• 第4节介绍了代表性的指导微调模型。
• 第5节回顾了用于指导调优的多模态技术和数据集,包括图像、语音和视频。
• 第6节回顾了使用IT策略将LLMs适应不同领域和应用的努力。
• 第7节回顾了使指导微调更加高效的探索,减少了适应大型模型所涉及的计算和时间成本。
• 第8节介绍了对IT模型的评估、对其进行分析以及对其的批评。

2 方法论 Methodology

在这里插入图片描述

2.1 指导数据集构建 Instruction Dataset Construction

指导数据集中的每个实例包括三个元素:指导 instruction,这是一个自然语言文本序列,用于指定任务(例如,为XX写一封感谢信,为XX写一篇关于XX主题的博客等);可选的输入,为上下文提供补充信息;以及根据指导和输入生成的预期输出

通常有两种构建指导数据集的方法:
• 从已注释的自然语言数据集中集成数据。在这种方法中,可以使用模板将文本标签对转换为(指导,输出)对,从现有的已注释自然语言数据集中收集(指导,输出)对。像Flan和P3这样的数据集是基于数据集成策略构建的。
• 使用LLMs生成输出:快速收集与给定指导相对应的所期望输出的另一种方法是使用LLMs,如GPT-3.5-Turbo或GPT-4,而不是手动收集输出。指导可以来自两个来源:(1)手动收集;(2)使用LLMs基于少量手工编写的的种子指导进行扩展。接下来,收集的指导被输入LLMs以获取输出。像InstructWild和Self-Instruct这样的数据集是按照这种方法生成的。

对于多轮对话型IT数据集,可以让大型语言模型自我扮演不同的角色(用户和AI助手)以生成对话格式的消息。

2.2 指导微调 Instruction Tuning

基于收集的指导数据集,可以用完全监督(fully-supervised)的方式直接微调预训练模型,其中在给定指导和输入的情况下,模型通过按顺序预测输出中的每个标记来进行训练。

3 数据集 Datasets

本节详细介绍了社区中广泛使用的指导微调数据集。表格1提供了这些数据集的概述。
在这里插入图片描述

3.1 Natural Instructions

Natural Instructions是一个人工制作的英语指导数据集,包括193,000个实例,涵盖了61个不同的NLP任务。该数据集由指导 instructions和实例 instances组成。
instructions中的每个实例都是一个任务描述,如图2a所示。包括7个组成部分:Title标题、Definition定义、Things to avoid要避免的事项、Emphasis&causion强调/警告、Prompt提示、Positive Example正面示例和Negative Example负面示例。
Instances包括(input,output)对,如图2b所示,即输入数据和正确遵循给定指导的文本结果。

数据来自61个任务的现有NLP数据集。作者通过参考数据集的注释指导文件来收集instructions。接下来,作者通过统一所有NLP数据集中的数据实例来构建Instances。

3.2 P3

P3(Public Pool of Prompts)是一个指导微调数据集,通过集成170个英语NLP数据集和2,052个英语提示构建而成。

提示Prompts有时被称为任务模板,它们是将传统NLP任务中的数据实例(例如,问答、文本分类)映射到自然语言输入输出对的函数。P3中的每个实例都有三个组成部分:输入 inputs、答案选项 answer_choices和目标 targets。其中,inputs是一系列自然语言描述任务的文本序列(例如,“如果他喜欢玛丽是真的,那么他也喜欢玛丽的猫是真的吗?”)。answer_choices是适用于给定任务的文本字符串列表(例如,[“是”, “否”, “未确定”])。而targets是给定inputs的正确响应文本字符串(例如,“是”)。作者构建了PromptSource,这是一个用于协作创建高质量提示和开源高质量提示的工具和存档。

P3数据集是通过从PromptSource中的多个提示中随机抽样一个提示,并将每个实例映射为一个(inputs,answer_choices,targets)三元组构建的。

3.3 xP3

xP3(Crosslingual Public Pool of Prompts)是一个多语言指导数据集,包括46种语言中的16个多样化的自然语言任务。数据集中的每个实例都有两个组成部分:输入 input和目标 target。其中,inputs是自然语言中的任务描述,targets是正确遵循“输入”指导的文本结果。

xP3中的原始数据来自三个来源:英语指导数据集P3、P3中的4个英语未见任务(例如,翻译、程序合成)以及30个多语言NLP数据集。作者通过从PromptSource中随机抽取人工编写的任务模板,然后填充模板以将不同的NLP任务转化为统一的形式来构建xP3数据集。例如,自然语言推理任务的任务模板如下所示:“如果前提为真,是否也可以说假设为真?”;与原始任务标签“蕴含(0)”、“中性(1)”和“矛盾(2)”对应的答案是“是”、“可能”、“否”。

3.4 Flan 2021

Flan 2021是一个英语指导数据集,通过将62个广泛使用的NLP基准转化为语言输入输出对而构建。Flan 2021中的每个实例都有输入 input和目标 target两个组成部分。其中,input是一系列文本,通过自然语言指导描述了一个任务(例如,“确定句子’他喜欢猫。'的情感是积极的还是消极的?”)。而target是执行input指导正确的文本结果(例如,“积极”)。

作者将传统的NLP数据集转化为输入-目标对,具体步骤如下:
第1步:手动编写指导和目标模板;
第2步:使用数据集中的数据实例填充模板。

3.5 Unnatural Instructions

Unnatural Instructions是一个包含约240,000个实例的指导数据集,是使用InstructGPT(textdavinci-002)构建的。数据集中的每个实例有四个组成部分:指导 INSTRUCTION、输入 INPUT、约束 CONSTRAINTS、输出 OUTPUT。instruction是自然语言中对指导任务的描述。input是实例化指导任务的自然语言参数。constraints是任务输出空间的限制。output是根据输入参数和约束正确执行指导后生成的一系列文本序列。

首先,作者从手动构建的Super-Natural Instructions数据集中随机抽样了种子instruction。然后使用三个种子指导作为示范,通过提示InstructGPT来获得新的(instruction,input,constraints)三元组。接下来,作者通过随机重新表述instruction或input来扩展数据集。(instruction,input,constraints)三元组被输入InstructGPT以获取输出。

3.6 Self-Instruct

Self-Instruct是一个英语指导数据集,包括由InstructGPT构建的52,000个训练指导和252个评估指导。每个数据实例包括指导 instruction、输入 input和输出 output。instruction是自然语言中的任务定义(例如,“请回答以下问题。”)。input是可选的,用作指导的补充内容(例如,“哪个国家的首都是北京?”),而output是正确执行指导的文本结果(例如,“北京”)。完整的数据集是根据以下步骤生成的:
步骤1:作者从175个种子任务中随机抽样了8个自然语言指导作为示例,并提示InstructGPT生成更多的任务指导。
步骤2:作者确定在步骤1中生成的指导是否是分类任务。如果是,他们要求InstructGPT基于给定的指导生成所有可能的输出选项,并随机选择一个特定的输出类别来提示InstructGPT生成相应的input内容。对于不属于分类任务的指导,应该存在无数个output选项。作者提出使用Input-first策略,首先基于给定的instruction提示InstructGPT生成input,然后根据instruction和input生成output。
步骤3:根据步骤2的结果,作者使用InstructGPT使用Output-firstInput-first策略生成相应指导任务的input和output。
步骤4:作者对生成的任务指导进行后处理(例如,过滤相似的instruction并删除input和output的重复数据),最终得到了52,000个英语指导。

3.7 Evol-Instruct

Evol-Instruct是一个包含52,000个训练指导和218个评估指导的英语指导数据集。作者使用了深度和广度进化策略来促使ChatGPT重新编写指导。深度进化策略包括五种类型的操作,例如添加约束、增加推理步骤、复杂化输入等。广度进化策略将简单的指导升级为更复杂的指导,或直接生成新的指导以增加多样性。作者首先使用52,000个(指导 instruction,响应 response)对作为初始集合。然后,他们随机选择一种进化策略,并要求ChatGPT根据选择的进化策略重新编写初始指导。作者使用ChatGPT和规则来过滤掉未进化的指导对,并使用新生成的进化指导对更新了数据集。在重复上述过程4次之后,作者收集到了250,000个指导对。除了训练集,作者还收集了218个来自真实场景(例如,开源项目、平台和论坛)的人工生成指导,称为Evol-Instruct测试集。

3.8 LIMA

LIMA是一个英语指导数据集,包括一个包含1,000个数据实例的训练集和一个包含300个实例的测试集。训练集包含1,000个(指导instruction,响应response)对。对于训练数据,其中75%是从三个社区问答网站(Stack Exchange、wikiHow和Pushshift Reddit数据集)中抽样的;20%由一组作者手动编写(称为Group A),灵感来自于他们的兴趣;5%来自Super-Natural Instructions数据集的抽样。至于验证集,作者从Group A作者编写的集合中随机抽取了50个实例。测试集包含300个示例,其中76.7%由另一组(Group B)作者编写,23.3%来自Pushshift Reddit数据集,该数据集是Reddit社区内的问题和答案的集合。

3.9 Super-Natural Instructions

Super-Natural Instructions是一个多语言指导集合,包括1,616个NLP任务和5百万个任务实例,涵盖76种不同的任务类型(例如,文本分类、信息提取、文本重写、文本组合等)和55种语言。数据集中的每个任务包括一个指导 instruction和任务实例 task instances。
Instruction有三个组成部分,如图3a所示:一个用自然语言描述任务的定义 Definition;正面示例 Positive Examples,其中包括输入样本和正确的输出,以及每个示例的简要解释;以及负面示例 Negative Examples,其中包括输入样本和不希望的输出,以及每个示例的简要解释。
Task instances是由文本输入和可接受的文本输出列表组成的数据实例,如图3b所示。

Super-Natural Instructions中的原始数据来自三个来源:(1)现有的公共NLP数据集(Eg.CommonsenseQA);(2)通过众包过程生成的适用的中间注释(Eg.在众包的问答数据集中对给定问题进行释义的结果);(3)从符号任务转化并重新表述为几句话的合成任务(Eg.数字比较等代数运算)。

3.10 Dolly

Dolly是一个包含15,000个人工生成的数据实例的英语指导数据集,旨在使LLMs能够与用户进行类似于ChatGPT的互动。该数据集旨在模拟各种人类行为,涵盖了7种具体类型:开放式问答、封闭式问答、从维基百科中提取信息、从维基百科中总结信息、头脑风暴、分类和创意写作。表2给出数据集中每种任务类型的示例。

3.11 OpenAssistant Conversations

OpenAssistant Conversations是一个人工制作的多语言助手风格对话语料库,包括来自35种语言的66,497个对话树中的161,443条消息(91,829个用户提示和69,614个助手回复),以及461,292个人工注释的质量评分。数据集中的每个实例都是一个对话树(Conversation Tree, CT),对话树中的每个节点表示对话中由角色(i.e.,prompter、assistant)生成的消息。CT的根节点表示提示者的初始提示,其他节点表示提示者或助手的回复。从根节点到CT中的任何节点的路径表示提示者和助手之间的有效对话,并被称为一个线程。图4显示了一个包含12条消息的对话树示例,其中有6个线程。
在这里插入图片描述

图4:对话树示例

作者首先基于以下五个步骤的流程收集了对话树:
步骤1. prompting:贡献者扮演提示者的角色并创建初始提示;
步骤2. labeling prompts:贡献者为步骤1中的初始提示评分,作者采用均衡采样策略选择高质量的提示作为根节点;
步骤3. expanding tree nodes:贡献者添加了提示者或助手的回复消息;
步骤4. labeling replies:贡献者为现有节点的回复分配分数;
步骤5. ranking:贡献者根据贡献者指南对助手的回复进行排名。

树状态机在整个对话制作过程中管理和跟踪状态(例如,初始状态、增长状态、结束状态)。随后,通过过滤掉冒犯性和不适当的对话树,构建了OpenAssistant Conversations数据集。

3.12 Baize

Baize是一个包含111.5K个实例的英语多轮聊天语料库,是使用ChatGPT构建的。每个轮次包括用户的提示和助手的回复。Baize v1中的每个实例包含3.4轮对话。
为了创建Baize数据集,作者提出了自我聊天(self-chat)的方法,其中ChatGPT轮流扮演用户和AI助手的角色,并以对话格式生成消息。具体如表3所示,作者首先制定了一个任务模板,定义了ChatGPT的角色和任务。接下来,他们从Quora和Stack Overflow数据集中抽样问题(例如,“如何修复Google Play商店帐户无法工作?”)作为对话的种子(例如,话题)。随后,他们使用模板和抽样的种子提示ChatGPT。ChatGPT会不断为双方生成消息,直到达到自然停止点为止。
在这里插入图片描述

4 指令微调LLMs

4.1 InstructGPT

InstructGPT (176B)初始化为GPT-3(176B),然后在人类指导下进行了微调。微调过程包括以下三个步骤:(1)在人工筛选的指导数据集上进行监督微调(SFT),该数据集是从Playground API的历史记录中收集的;(2)训练一个奖励模型,基于一个带注释的数据集来预测人类的偏好,这个数据集是通过对一个指导抽样多个响应并将它们从最佳到最差进行排名人工构建的;(3)使用步骤(2)中训练的奖励模型和新的指导进一步优化步骤(1)中的模型。参数更新使用近端策略优化(PPO)方法,这是一种策略梯度强化学习方法。步骤(2)和(3)会交替多次,直到模型性能不再显著提高为止。

总的来说,InstructGPT在性能上优于GPT-3。在自动评估方面,InstructGPT在TruthfulQA数据集上在真实性方面优于GPT-3 10%,在RealToxicityPrompts数据集上在毒性方面优于GPT-3 7%。在NLP数据集(例如WSC)上,InstructGPT的性能与GPT-3相当。在人工评估方面,针对四个不同方面,包括遵循正确的指导、遵循明确的约束、减少不良模型行为和生成合适的响应,InstructGPT分别优于GPT-3 +10%,+20%,-20%和+10%。

4.2 BLOOMZ

BLOOMZ (176B)初始化为BLOOM(176B),然后在指导数据集xP3上进行了微调。xP3是一个包含46种语言的人工指导数据集的集合,来自两个来源:(1)P3,这是一个包含(英语指导,英语响应)对的集合;(2)一个(英语指导,多语言响应)集合,通过使用预定义的英语指导填充任务模板,从多语言NLP数据集(例如,中文基准)中转换而来。在自动评估方面,BLOOMZ在zero-shot中在共指解析、句子完成和自然语言推理数据集上分别比BLOOM表现更好,提高了+10.4%、20.5%和9.8%。对于HumanEval基准,BLOOMZ在Pass@100度量方面优于BLOOM 10%。对于生成性任务,与lm-evaluation-harness基准相比,BLOOMZ在BLEU方面获得了+9%的改进。

4.3 Flan-T5

Flan-T5 (11B) 初始化为 T5 (11B),然后在 FLAN 数据集上进行微调。FLAN 数据集是一个由 12 个NLP任务的 62 个数据集构成的集合(例如,自然语言推理、常识推理、释义生成),通过在统一的任务规范下填充各种指导信息而构建的(instruction, pairs)对。

在微调过程中,FLAN-T5 使用了基于 JAX 的 T5X 框架,并在每 2k 步时选择在保留任务上评估后的最佳模型。与 T5 的预训练阶段相比,微调需要0.2%的计算资源(大约 128 个 TPU v4 芯片,持续 37 小时)。在评估方面,FLAN-T5(11B)优于 T5(11B),在少样本情况下取得了与更大模型(包括 PaLM(60B))相媲美的结果。在 MMLU、BBH、TyDiQA、MGSM、开放式生成和 RealToxicityPrompts上,FLANT5分别比T5提高了+18.9%、+12.3%、+4.1%、+5.8%、+2.1%和+8%。在少样本情况下,FLAN-T5 在 BBH 和 TyDiQA 数据集上分别比 PaLM 提高了 +1.4% 和 +1.2%。

4.4 Alpaca

Alpaca(7B)是在由InstructGPT(175B,text-davinci003)生成的构建指令数据集上对LLaMA(7B)进行微调。微调过程在具有混合精度训练和完全共享数据并行性的8卡80GB A100设备上大约需要3小时。

Alpaca(7B)在人类评估方面达到了与InstructGPT相媲美的性能。具体来说,Alpaca在自我指导数据集上表现优于InstructGPT,获得了90次胜利,而InstructGPT获得了89次。

4.5 Vicuna

Vicuna(13B)是在ChatGPT生成的对话数据集上对LLaMA(13B)微调。

作者们从ShareGPT.com收集了用户共享的ChatGPT对话,经过筛选后获得了70,000个对话记录,排除了质量较差的样本。LLaMA(13B)通过使用专为多轮对话定制的修改后的损失函数,在构建的对话数据集上进行微调。为了更好地理解跨多轮对话的长篇背景,作者将最大上下文长度从512扩展到2048。在训练中,作者采用了 gradient checkpointing 和flash attention等技术,以减少GPU内存在微调过程中的成本。微调过程在一个8×80GB A100设备上以完全共享的数据并行方式花费了24小时。

作者们建立了一个专门用于衡量聊天机器人性能的测试集。他们收集的测试集由8个问题类别组成,例如Fermi问题、角色扮演情景、编码/数学任务等,并要求GPT4对模型的回答进行评分,考虑了帮助性、相关性、准确性和详细程度。在构建的测试集上,Vicuna(13B)在90%的测试问题中优于Alpaca(13B)和LLaMA(13B),并在45%的问题中生成与ChatGPT相等或更好的评分回答。

4.6 GPT-4-LLM

GPT-4-LLM(7B)使用LLaMA(7B)为初始模型,对GPT-4生成的指令数据集进行微调。GPT-4-LLM使用LLaMA初始化,然后经过以下两个步骤的微调:(1)在构建的指令数据集上进行监督微调。作者们使用了Alpaca中的指令,然后使用GPT-4收集了回应。LLaMA在由GPT-4生成的数据集上进行微调。微调过程在一个8*80GB A100机器上使用混合精度和完全共享的数据并行方式大约需要三个小时。(2)使用近端策略优化(PPO)方法优化第一步的模型。作者们首先通过收集GPT-4、InstructGPT和OPT-IML对一组指令的回应来构建比较数据集,然后要求GPT-4对每个回应进行评分,评分范围从1到10。使用这些评分,作者们基于OPT训练了一个奖励模型。第一步微调的模型通过使用奖励模型计算策略梯度来进行优化。

在评估方面,GPT-4-LLM(7B)不仅优于基线模型Alpaca(7B),还优于包括Alpaca(13B)和LLAMA(13B)在内的更大模型。对于自动化评估,GPT4-LLM(7B)在User-Oriented-Instructions-252、Vicuna-Instructions和Unnatural Instructions等数据集上分别优于Alpaca 0.2、0.5和0.7。对于人工评估,包括有用性、诚实性和无害性等方面,GPT-4-LLM分别优于Alpaca 11.7、20.9和28.6。

4.7 Claude

[Claude] (https://www.anthropic.com/index/introducing-claude)通过对预训练语言模型进行微调,旨在生成有用且无害的回应。微调过程分为两个阶段:(1) 对指令数据集进行监督微调。作者通过收集 52K 个不同的指令,将其与由 GPT-4 生成的回应配对,创建了一个指令数据集。微调过程在一台 8 卡 80GB A100 机器上进行,大约需要八个小时,采用混合精度和完全共享的数据并行方法。(2) 使用近端策略优化 (PPO) 来优化第一阶段的模型。作者首先通过收集多个大型语言模型(例如 GPT-3)对给定的一组指令生成的回应来构建比较数据集,然后要求 GPT-4 对每个回应进行评分。利用这些评分,训练了一个奖励模型。然后,使用奖励模型和PPO来优化第一阶段的微调模型。

与基础模型相比,Claude 生成了更有用且无害的回应。在自动评估方面,Claude 在有害性方面在 RealToxicityPrompts 数据集上比 GPT-3 高出 7%。在人工评估方面,包括遵循正确的指令、遵循明确的约束、减少不良模型行为和生成适当的回应等四个不同方面,Claude 分别比 GPT-3 +10%、+20%、-20% 和 +10% 更出色。

4.8 WizardLM

WizardLM(7B)通过对 LLaMA(7B)进行微调,使用由 ChatGPT 生成的 Evol-Instruct 指令数据集进行微调(详见第 3.7 节)。它在 Evol-Instruct 的子集上进行微调(共 7 万个样本),以便与 Vicuna进行公平比较。微调过程在基于 8 个 V100 GPU 的 Deepspeed Zero-3技术上进行,共耗时约 70 小时。在推断期间,最大生成长度为 2048。

为了评估大型语言模型在复杂指令上的性能,作者收集了来自真实场景的218个人工生成的指令,称为 Evol-Instruct 测试集。

对 Evol-Instruct 测试集和 Vicuna 测试集进行评估。在人工评估方面,WizardLM 在性能上远远优于 Alpaca(7B)和 Vicuna(7B),并且在与 ChatGPT 相比的 67% 测试样本上生成相等或更好的回应。自动评估通过询问 GPT-4 对大型语言模型的响应进行评分进行。具体来说,WizardLM 在 Evol-Instruct 测试集和 Vicuna 测试集上的性能提升分别为 +6.2% 和 +5.3%,与 Alpaca 相比。在 Evol-Instruct 测试集上,WizardLM 的性能优于 Vicuna +5.8%,在 Vicuna 测试集上优于 +1.7%。

4.9 ChatGLM2

ChatGLM2(6B)通过在包含英语和中文指令的双语数据集上对 GLM(6B)进行微调而训练的。双语指令数据集包含 1.4T 个标记,中英文比例为 1:1。数据集中的指令来自问答和对话补全任务。ChatGLM2 初始化于 GLM,然后通过三步微调策略进行训练,类似于 InstructGPT。为了更好地对多轮对话中的上下文信息建模,作者将最大上下文长度从 1024 扩展到 32K。为了在微调阶段减少 GPU 内存开销,作者采用了多查询注意力multi-query attention和因果掩码策略causal mask strategies。在推断期间,ChatGLM2 需要 13GB GPU 内存并支持长度高达 8K 的对话,使用 INT4 模型量化技术可以在 6GB GPU 内存上运行。

在四个英语和中文基准上评估,包括 MMLU(英语),C-Eval(中文),GSM8K(数学)和 BBH(英语)。ChatGLM2(6B)在所有基准上均优于 GLM(6B)和基线模型 ChatGLM(6B)。具体来说,ChatGLM2 在 MMLU 上优于 GLM +3.1,在 C-Eval 上优于 GLM +5.0,在 GSM8K 上优于 GLM +8.6,在 BBH 上优于 GLM +2.2。ChatGLM2 在 MMLU、C-Eval、GSM8K 和 BBH 上的性能均优于 ChatGLM,分别优于 ChatGLM +2.1、+1.2、+0.4 和 +0.8。

4.10 LIMA

LIMA(65B)在指令数据集上对 LLaMA(65B)进行微调。该指令数据集基于表面对齐假设假设(the proposed superficial alignment hypothesis)构建的。

表面对齐假设是指模型的知识和能力几乎是在预训练阶段获得的,而对齐训练(例如,指令微调)教会模型在用户首选的规范下生成响应。基于表面对齐假设,作者声称大型语言模型可以通过在一小部分指令数据上进行微调来生成满足用户的响应。因此,作者构建了指令训练/验证/测试集来验证这一假设。

评估是在构建的测试集上进行的。对于人工评估,LIMA在性能上优于InstructGPT和Alpaca分别达到了17%和19%。此外,LIMA在性能上与BARD、Claude和GPT-4等模型具有可比性。对于自动评估,通过要求GPT-4对响应进行评分,较高的评分表示性能更好,LIMA在性能上优于InstructGPT和Alpaca分别达到了20%和36%,并取得了与BARD相当的结果,但表现不及Claude和GPT-4。实验结果验证了提出的表面对齐假设。

4.11 其他

5 多模态指令微调 Multi-modality Instruction Fine-tuning

5.1 多模态数据集 Multi-modality Datasets

MUL-TIINSTRUCT是一个多模态指导调整数据集,由62个不同的多模态任务组成,采用统一的序列到序列格式。该数据集涵盖了10个广泛的类别,其任务源自21个现有的开放源数据集。每个任务都配备有5个由专家编写的指导说明。对于现有的任务,作者使用其可用的开源数据集中的输入/输出对来创建实例。而对于每个新任务,作者通过提取现有任务实例的必要信息或重新构思它们来创建5k到5M个实例。MUL-TIINSTRUCT数据集已经证明在增强各种迁移学习技术方面非常有效。例如,使用各种迁移学习策略,如混合指导调整和顺序指导调整,在MUL-TIINSTRUCT上对OFA模型(930M)进行微调,可以提高在所有未见任务上的零样本性能。在常识VQA任务中,经过MUL-TIINSTRUCT微调的OFA在RougeL上达到50.60,准确性为31.17,而原始的OFA在RougeL上只有14.97,准确性为0.40。

PMC-VQA 是一个大规模的医学视觉问答数据集,包括149,000张图像的227,000个图像-问题对,涵盖了各种不同的模态和疾病。该数据集可用于开放式和多项选择任务。生成PMC-VQA数据集的流程包括从PMC-OA数据集中收集图像-标题对,使用ChatGPT生成问题-答案对,并手动验证数据集的子集以确保质量。作者提出了一种基于生成的模型MedVInT,用于医学视觉理解,通过将视觉信息与大型语言模型对齐。在PMC-VQA上预训练的MedVInT实现了最新的性能,在VQA-RAD和SLAKE基准测试中表现优越,VQA-RAD的准确率达到81.6%,SLAKE的准确率达到88.0%。

LAMM 是一个综合的多模态指导调整数据集,用于2D图像和3D点云理解。LAMM包含186,000个语言-图像的指导-响应对,以及10k个点云指导的语言-响应对。作者从公开数据集中收集图像和点云,并使用GPT-API和自指导方法根据这些数据集的原始标签生成指导和响应。LAMM数据集包括了用于常识知识问答的数据对,通过将Bamboo数据集和相应的维基百科描述中的分层知识图标签系统结合在一起。作者还提出了LAMM基准,该基准评估了现有的多模态语言模型(MLLM)在各种计算机视觉任务上的性能。它包括9个常见的图像任务和3个常见的点云任务,以及LAMM框架,这是一个主要的MLLM训练框架,它为不同的模态区分了编码器、投影器和LLM微调块,以避免模态冲突。

5.2 多模态指令微调模型 Multi-modality Instruction Fine-tuning Models

InstructPix2Pix (983M)是一种在Stable Diffusion训练的条件扩散模型,它通过对构建的多模指令数据集进行微调,该数据集包含超过45万个文本编辑指令以及相应的编辑前后图像。作者结合了两个大规模预训练模型的能力,一个是语言模型GPT-3,另一个是文本到图像模型Stable Diffusion,以生成训练数据集。GPT-3根据图像提示生成文本编辑来微调,而Stable Diffusion用于将生成的文本编辑转换为实际的图像编辑。然后,InstructPix2Pix在使用潜在扩散目标的生成数据集上进行训练。图5显示了生成图像编辑数据集并在该数据集上训练扩散模型的过程。作者在质量上将所提出的方法与先前的作品进行了定性比较,如SDEdit和Text2Live,突出了该模型遵循图像编辑指令而不是图像描述的能力。
在这里插入图片描述

图5: InstructPix2Pix的文本编辑指令数据集和扩散模型训练

LLaVA(13B)通过将CLIP(400M)的视觉Encoder与LLaMA(7B)的语言Decoder相连接而开发的。LLaVA经过微调,使用了包含158,000个独特的语言-图像指令跟随样本的生成教学视觉语言数据集。数据收集过程包括创建对话、详细描述和复杂推理提示。在这个数据集中,使用GPT-4将图像文本对转换为适当的指令跟随格式。视觉特征,如图像的标题和边界框,被用来编码图像。LLaVA在合成的多模式指令跟随数据集上相对于GPT-4获得了85.1%的相对分数。当在Science QA上进行微调时,LLaVA和GPT-4的协同作用实现了92.53%的新的最高准确度,达到了最先进水平。

Video-LLaMA增强了大型语言模型对视频中的视觉和听觉内容的理解能力。如图6所示,Video-LLaMA的架构包括两个分支编码器:视觉语言(VL)分支和音频语言(AL)分支,以及一个语言解码器(Vicuna(7B/13B)),LLaMA(7B)。VL分支包括一个冻结的预训练图像编码器(BLIP-2的预训练视觉组件),其中包括ViT-G/14和预训练的Q-former,位置嵌入层,视频Q-former和线性层。AL分支包括一个预训练音频编码器(ImageBind)和一个音频Q-former。VL分支使用Webvid-2M视频字幕数据集进行训练,执行视频到文本生成任务,并在来自MiniGPT-4,LLaVA和VideoChat的指令微调数据上进行微调。AL分支通过训练视频/图像指示数据将ImageBind的输出与语言解码器连接起来。经过微调,Video-LLaMA能够感知和理解视频内容,展示了它整合听觉和视觉信息、理解静态图像、识别常见知识概念以及捕捉视频中时间动态的能力。

在这里插入图片描述

图6: Video-LLaMA 架构

InstructBLIP (1.2B) 是一个视觉语言指令微调框架,其初始化模型是一个预训练的BLIP-2模型,包括一个图像编码器、一个LLM或Vicuna(7B/13B)和一个查询变换器(Q-Former)来连接这两者。如图7所示,Q-Former从冻结图像编码器的输出嵌入中提取具有指令感知能力的视觉特征,并将这些视觉特征作为软提示输入提供给冻结的LLM。作者在各种视觉语言任务上评估了提出的InstructBLIP模型,包括图像分类、图像字幕、图像问题回答和视觉推理。他们使用了26个公开可用的数据集,将它们分成13个用于训练和评估的持有和留出数据集。作者证明了InstructBLIP在广泛的视觉语言任务上实现了最新的零样本性能。与BLIP-2相比,InstructBLIP平均相对改进了15.0%。最小的InstructBLIP(4B)在六个共享评估数据集上都优于Flamingo(80B),平均相对改进率为24.8%。
图7

图7: InstructBLIP架构

Otter通过对OpenFlamingo(9B)进行微调而训练而成,其中语言和视觉编码器被冻结,仅微调感知器重采样模块Perceiver resampler module、交叉注意力层cross-attention layers和输入/输出嵌入层input/output embeddings。作者组织了涵盖11个类别的多模态任务,并构建了包含280万多模态指导响应对的多模态上下文指导微调数据集 MIMIC-IT,其中包括图像指导答案三元组,其中指导答案是根据图像量身定制的。每个数据样本还包括上下文,其中包含一系列与查询三元组在上下文上下文相关的图像-指令-答案三元组。与OpenFlamingo相比,Otter 在更准确地遵循用户指令和提供更详细的图像描述方面展示了更高的能力。

MultiModal-GPT能够遵循多样的指令,生成详细的标题,计数特定对象,并回答一般性查询。MultiModal-GPT对多种使用开放数据集的视觉指导数据对OpenFlamingo(9B)进行微调,包括视觉问题回答(VQA)、图像标题生成、视觉推理、文本光学字符识别(OCR)和视觉对话等。实验展示了MultiModal-GPT在与人类保持连续对话方面的熟练程度。

6 领域特定的指令微调 Domain-specific Instruction Finetuning

本节描述不同领域和应用中的指令微调。

6.1 对话 Dialogue

InstructDial是专为对话设计的指导微调框架。它包含了来自59个对话数据集的一系列48个对话任务,以一致的文本到文本格式创建。每个任务实例包括任务描述、实例输入、约束、指令和输出。为了确保遵循指令,该框架引入了两个元任务:(1)指令选择任务,模型选择与给定的输入-输出对应的指令;(2)指令二元任务,模型预测指令是否导致从输入到输出的结果是“是”还是“否”。两个基础模型T0-3B(T5的3B参数版本)和BART0(基于Bart-large的406M参数版本)在InstructDial的任务上进行微调。InstructDial在未见过的对话数据集和任务上取得了令人印象深刻的结果,包括对话评估和意图检测。此外,当应用于少样本情况时,它的效果甚至更好。

6.2 意图分类和槽位标记 Intent Classification and Slot Tagging

LINGUIST通过在意图分类和槽标记任务的指导数据集上对AlexaTM 5B进行微调,该模型是一个拥有50亿参数的多语言模型。每个指导包含五个部分:
(i)生成输出的语言,
(ii)意图,
(iii)包括在输出中的槽类型和值(例如,[3,snow]中的数字3对应槽类型,snow是该槽的值),
(iv)从槽类型标签到数字的映射,
(v)最多10个示例来指导输出的格式。

LINGUIST在使用SNIPS数据集进行的10-shot新颖意图设置中,相对于最先进的方法显示出显著的改进。在mATIS++数据集的零样本跨语言设置中,LINGUIST在保持意图分类性能的同时,超越了机器翻译与槽对齐的强基准模型,涵盖了6种语言。

6.3 信息提取 Information Extraction

InstructUIE是一个基于指导调整的统一信息抽取(IE)框架,它将IE任务转化为seq2seq格式,并通过在构建的IT数据集上微调11B FlanT5来解决这些任务。图8显示了InstructUIE的总体架构。它引入了IE INSTRUCTIONS,这是一个包含32个不同信息抽取数据集的基准,采用了统一的文本到文本格式,并配有专家编写的指导。每个任务实例由四个属性描述:任务指导Task Instruction、选项Option、文本Text和输出Output。Task Instruction包含要提取的信息类型、输出结构格式以及在提取过程中需要遵守的其他约束或规则等信息。Option是指任务的输出标签约束。Text是指输入句子。Output是通过将样本的原始标签转换为句子获得的(例如,用于NER的“entity tag: entity span”)。在监督任务下,InstructUIE在zero-shot表现出色,与BERT相媲美,并优于最先进的模型以及GPT3.5。
在这里插入图片描述

图8: InstructUIE框架

6.4 基于方面的情感分析 Aspect-based Sentiment Analysis

Varia等人提出了一个统一的指导调整框架,用于解决基于方面的情感分析(ABSA)任务,该框架基于微调的T5(220M)模型。该框架处理涉及ABSA的四个元素的多个因子化子任务,即方面术语、方面类别、意见术语和情感。它将这些子任务视为五个问答(QA)任务的组合,通过使用为每个任务提供的指令模板,将语料库中的每个句子进行转换。例如,其中一个使用的指令模板是:“文本中的方面术语是什么:$TEXT?”。该框架在少样本学习场景中展示了显著的改进(平均8.29的F1值),并在完全微调场景中保持可比性,领先于现有技术。

6.5 写作 Writing

Zhang等人提出了Writing-Alpaca7B,它通过对写作指导数据集微调LLaMa-7B来提供写作辅助。所提出的指导数据集是EDITEVAL基准的扩展,基于教学数据,删除了更新任务并引入了一个语法性任务。指导方案严格遵循了斯坦福Alpaca项目中的方案,包括一个通用前言、一个用于指导任务完成的指令字段、一个提供待编辑文本的输入字段,以及一个要求模型填写的响应字段。Writing-Alpaca-7B在所有写作任务上都提高了LLaMa的性能,并胜过了其他更大的现成LLM模型。

CoEdIT在文本编辑的指导数据集上对FLANT5(770M参数,3B参数和11B参数)进行微调,以提供写作辅助。指导数据集包括约82K的<instruction: source, target>对。如图9所示,该模型接受用户的指令,指定所需文本的特性,例如“使句子更简单”,然后输出编辑后的文本。CoEdIT在几个文本编辑任务上取得了最先进的性能,包括语法错误校正、文本简化、迭代文本编辑,以及三个文体编辑任务:正式文体转换、中性化和改写。此外,它在未在微调过程中见过的新领域任务上也能很好地泛化。

CoPoet是一款协作诗歌创作工具,利用了大型语言模型(例如T5-3B、T5-11B和T0-3B模型),这些模型在诗歌创作的各种指导下进行了训练。指导数据集中的每个样本都包括一个<instruction, poem_line>对。有三种主要类型的指导:继续(Continuation)、词汇约束(Lexical Constraints)和修辞技巧(Rhetorical Techniques)。CoPoet是由用户指令引导的,这些指令指定了诗歌的期望属性,比如写一句关于“爱情”的句子或以“飞翔”结束一句句子。该系统不仅能够与基于指令训练的公开可用的大型语言模型(例如InstructGPT)竞争,而且还能够满足未见过的组合指导。

6.6 医疗 Medical

Radiology-GPT是一个针对放射学领域的Alpaca-7B模型进行微调的模型,它利用广泛的放射学领域知识数据集采用了指令调优方法。放射学报告通常包括两个相应的部分:“Findings”和“Impression”。 Findings部分包含来自放射学图像的详细观察结果,而Impression部分总结了这些观察结果所得出的解释。Radiology-GPT向Findings文本提供简要的指令:“从放射学报告的发现中得出印象”。同一份报告的Impression文本用作目标输出。与通用语言模型(如StableLM、Dolly和LLaMA)相比,Radiology-GPT在放射学诊断、研究和沟通方面表现出了显著的多功能性。

ChatDoctor基于经过微调的LLaMA-7B模型,利用了alpaca指令数据集和HealthCareMagic100k病人-医生对话数据集。在医生-病人对话过程中,还设计了用于检索外部知识数据库(如疾病数据库和维基百科检索)的提示模板,以从模型中获取更准确的输出。ChatDoctor显著提高了模型理解患者需求并提供知情建议的能力。通过为模型提供来自可靠在线和离线来源的自主信息检索,其响应的准确性得到了大幅提高。

ChatGLM-Med是在基于ChatGLM-6B模型的中文医疗指令数据集上进行微调的。该指令数据集包括与医学相关的问题和答案对,是使用GPT3.5 API和医学知识图创建的。该模型提高了ChatGLM在医学领域的问答性能。

6.7 算术 Arithmetic

Goat是一种基于指令进行微调的LLaMA-7B模型,旨在解决算术问题。它通过使用ChatGPT生成数百个指令模板,以自然语言问答的形式表达算术问题,例如“8914/64等于多少?”。该模型应用了各种技术来增强其适应各种问题格式的能力,例如随机删除算术表达式中数字和符号之间的空格,以及将“*”替换为“x”或“times”。Goat模型在BIG-bench算术子任务上实现了最先进的性能。特别是,zero-shot Goat7B的性能与few-shot PaLM-540B的准确性相匹配或超过。

6.8 代码 Code

WizardCoder利用StarCoder 15B作为基础,通过采用复杂的指令微调,将EvolInstruct方法应用于代码领域。训练数据集是通过在Code Alpaca数据集上迭代应用Evol-Instruct技术生成的,该数据集对于每个样本包括以下属性:指令、输入和预期输出。例如,当指令是“修改以下SQL查询以选择不同的元素”时,输入是SQL查询,预期输出是生成的答案。WizardCoder在HumanEval和HumanEval+上优于所有其他开源的Code LLMs,甚至在HumanEval和HumanEval+上超越了最大的LLMs,如Anthropic的Claude和Google的Bard。

7 高效微调技术 Efficient Tuning Techniques

高效的微调技术旨在通过多种方式,即基于添加、基于规范和基于重参数化,来优化LMMs以适应下游任务的一小部分参数。基于添加的方法引入额外的可训练参数或模块,这些参数或模块在原始模型中不存在。代表性的方法包括适配器微调和基于提示的微调。基于规范的方法会明确指定要微调的某些模型参数,同时将其他参数保持不变。例如,BitFit微调了预训练模型的偏差项。重参数化方法会将模型权重转换为更加参数高效的形式,以便进行微调。其核心假设是模型适应性具有低秩特性,因此可以将权重重参数化为低秩因子或低维子空间(例如,LoRA)。内在提示微调会找到一个低维子空间,该子空间可用于跨多种任务微调提示。

7.1 LoRA

Low-Rank Adaptation (LoRA) 利用低秩更新实现了对LLMs的高效适应。LoRA使用DeepSpeed作为训练的基础架构。LoRA的关键在于,适应新任务所需的LLM权重的实际变化位于低维子空间中。具体来说,对于预训练的weight matrix W 0 W_0 W0,作者将adapted weight matrix建模为 W 0 + ∆ W W_0 + ∆W W0+W,其中 ∆ W ∆W W是低秩更新。 ∆ W ∆W W的参数化形式为 ∆ W = B A ∆W = BA W=BA,其中A和B是要小得多的可训练矩阵。 ∆ W ∆W W的秩 r r r被选择为远小于W0的维度。作者不是直接训练所有的 W 0 W_0 W0,而是训练低维的A和B,间接地在对下游任务重要的低秩子空间中训练 W 0 W_0 W0。这导致可训练参数较少,与完全微调相比,对于GPT-3,LoRA将可训练参数数量减少了10,000倍,内存使用减少了3倍。

7.2 HINT

HINT结合了指导微调的泛化优势与高效的按需微调,避免了反复处理冗长的指令。HINT的核心在于超网络,它基于自然语言指令和少量示例生成适用于LLMs适应的参数高效模块。超网络将指令和少量示例转化为编码指令,并使用预训练文本编码器和基于cross-attention的参数生成器生成适配器和前缀参数。然后,生成的适配器和前缀被插入到骨干模型中作为高效的微调模块。在推断时,超网络仅执行一次任务推断以生成适应的模块。其好处在于,HINT可以合并长指令和额外的少量示例,而不会增加计算量,这与常规微调或输入串联方法不同。

7.3 Qlora

QLORA包括最佳量化和内存优化,旨在提供高效且有效的LLMs微调。QLORA包括4位NormalFloat(NF4)量化,这是一种针对LLM权重的典型正态分布进行优化的量化方案。通过根据正态分布的分位数进行量化,NF4比标准的4位整数或浮点量化提供更好的性能。为了进一步减少内存使用,量化常数本身也被量化为8位。这第二级量化平均每个参数节省了额外的0.37位。QLORA利用NVIDIA的统一内存功能,在GPU内存耗尽时将优化器状态分页到CPU RAM,避免了训练过程中的内存不足问题。QLORA能够在单个48GB GPU上训练一个65B参数的LLM,与完全的16位微调相比没有性能下降。QLORA的工作方式是冻结4位量化的基本LLM,然后反向传播到一小组学习的16位低秩适配器权重中。

7.4 LOMO

LOw-Memory Optimization(LOMO)通过梯度计算和更新的融合,使有限的计算资源能够对LLMs进行完全参数微调。其核心是在反向传播期间将梯度计算和参数更新合并为一步,从而避免了存储完整的梯度张量。首先,LOMO提供了理论分析,解释了为什么随机梯度下降(SGD)可以在微调大型预训练模型时表现良好,尽管在较小模型上存在挑战。此外,LOMO在反向传播中计算每个参数张量的梯度后立即更新该参数张量。一次只存储一个参数的梯度,将梯度内存降低到 O ( 1 ) O(1) O(1)。LOMO采用梯度值剪切、分开的梯度范数计算和动态损失缩放来稳定训练。激活检查点和ZeRO优化方法的整合可以节省内存。

7.5 Delta-tuning

Delta-tuning为理论分析提供了优化和最优控制的视角。直观地说,Delta-tuning通过将微调限制在低维流形上来执行子空间优化。微调的参数充当最优控制器,引导模型在下游任务上的行为。

8 评估、分析与批评

8.1 HELM 评估

HELM是对语言模型进行全面评估的方法,旨在提高语言模型的透明度,更全面地了解语言模型的能力、风险和局限性。与其他评估方法不同,HELM认为对语言模型的全面评估应该关注以下三个因素:

(1) 广泛覆盖Broad coverage 在开发过程中,语言模型可以适应各种自然语言处理任务(例如,序列标记和问答),因此,需要在广泛的场景中对语言模型进行评估。为了涵盖所有潜在场景,HELM提出了一种自上而下的分类法,从将一个主要的自然语言处理会议(ACL2022)中的所有现有任务编译成任务空间的形式开始,将每个任务分成场景(例如,语言)和指标(例如,准确性)。然后,在面对特定任务时,分类法将从任务空间中选择一个或多个场景和指标来覆盖它。通过分析每个任务的结构,HELM澄清了评估内容(任务场景和指标),并将语言模型的场景覆盖率从17.9%提高到96.0%。
(2) Multi-metric measurement 多指标测量 为了使人们能够从不同的角度权衡语言模型,HELM提出了多指标测量。HELM涵盖了16种不同的场景和7种指标。为确保密集的多指标测量结果,HELM测量了112种可能的核心场景中的98种(87.5%)。
(3) Standardization标准化 语言模型的规模和训练复杂性的增加严重阻碍了人们对每个语言模型结构的理解。为了建立对现有语言模型的统一理解,HELM对30个知名的语言模型进行了基准测试,涵盖了Google(UL2)、OpenAI(GPT-3)和EleutherAI(GPT-NeoX)等机构。有趣的是,HELM指出,T5和AnthropicLMv4-s3等语言模型在最初的工作中没有直接进行比较,而像GPT-3和YaLM等语言模型在多次评估后仍然与它们的相应报告有所不同。

8.2 低资源指导微调

Gupta等人尝试估计指导调整模型所需的最小下游训练数据,以匹配各种任务上的SOTA模型。他们在来自“超自然指导”(Super Natural Instructions,SuperNI)的119项任务上进行了实验,包括单任务学习(STL)和多任务学习(MTL)设置。结果表明,在STL设置中,只有下游训练数据的25%的指导调整模型就能在这些任务上胜过SOTA模型,而在MTL设置中,只需下游训练数据的6%就能让指导调整模型达到SOTA性能。这些发现表明,指导调整可以有效地帮助模型在有限数据情况下快速学习任务。

然而,由于资源限制,他们没有对LLMs(如T5-11B)进行实验。因此,为了更全面地了解指导调整模型,需要进一步使用更大型的语言模型和数据集进行研究。

8.3 较小的指导数据集

指导调整(IT)需要大量专门的指导数据来进行训练。周等人提出了一个假设,即预训练的大型语言模型(LLM)只需要学习与用户互动的样式或格式,然后提出了LIMA( Less Is More for Alignment),通过仅使用1,000个精选的训练示例对LLM进行微调,取得了出色的性能。具体而言,LIMA首先手动策划了1,000个高质量提示和响应的演示示例。然后,这1,000个演示示例用于微调预训练的65B参数LLLaMa。与此相比,在300多个具有挑战性的任务中,LIMA的性能超过了GPT-davinci003,后者是通过人类反馈调整使用5,200个示例进行微调的。此外,仅使用一半数量的演示示例,LIMA的结果与GPT-4、Claude和Bard相当。总之,LIMA证明了LLMs的强大知识和能力可以通过精心策划的少量指导来展示给用户。

8.4 评估指导微调数据集

IT模型的性能高度依赖于IT数据集。然而,这些IT数据集缺乏从开放性和主观性角度进行的评估。
为了解决这个问题,王等人通过在各种开放式IT数据集上对LLaMa模型进行微调,并通过自动评估和人工评估来测量不同的微调模型,进行了数据集评估。另外,还训练了一个模型来结合IT数据集。关于结果,王等人表明,并没有一个单一的最佳IT数据集适用于所有任务,而通过手动组合数据集,可以实现最佳的整体性能。此外,他们指出,虽然IT对所有大小的LLM都带来了巨大的好处,但较小的模型和基础质量较高的模型受益最大。对于人工评估,较大的模型更有可能获得更高的可接受性评分。

8.5 是否 IT 只是学会了模式复制?

为了解决有关模型通过指导调优获得的具体知识的不明确问题,Kung和Peng深入分析了模型在进行指导调优期间如何使用指导,通过比较在提供修改后的指导与原始指导时的调优情况。

具体而言,他们创建了简化的任务定义,删除了所有语义组成部分,仅保留了输出信息。此外,他们还引入了包含不正确的输入输出映射的虚假示例。令人惊讶的是,实验证明,在这些简化的任务定义或虚假示例上训练的模型可以达到与在原始指导和示例上训练的模型相当的性能。此外,该论文还介绍了zero-shot分类任务的基准,该任务在资源有限的情况下实现了与指导调优类似的性能。

总之,他们认为当前指导调优模型中观察到的显着性能改进可能归因于它们能够捕捉表面层次的模式,例如学习输出格式和进行猜测,而不是理解和学习特定任务。

8.6 专有 LLMs 模仿

LLMs模仿是一种方法,它收集来自更强大模型(例如ChatGPT等专有系统)的输出,然后使用这些输出来微调开源LLM。通过这种方式,开源LLM可以获得与任何专有模型相竞争的能力。

Gudibande等人进行了多项实验,对模型模仿的效果进行了深入分析。具体来说,首先从广泛任务的ChatGPT输出中收集了数据集,然后他们使用这些数据集来微调一系列模型,包括规模从15亿到130亿参数的各种模型,基础模型GPT-2和LLaMA,以及数据量从300万个标记到1.5亿个标记不等。

在评估方面,他们证明在具有支持数据集的任务上,模仿模型的性能比以前好得多,其输出看起来与ChatGPT的输出相似。然而,在没有模仿数据集的任务上,模仿模型没有改善,甚至准确性下降。

因此,改论文指出,模仿模型擅长模仿ChatGPT的风格(例如,流利、自信和结构化的回答)这一现象使研究人员产生了对模仿模型总体能力的错觉。他们建议,与其模仿专有模型,研究人员最好将注意力集中在提高基础模型和指导示例的质量上。

9. 结论

这项工作调查了指导调整领域的最新进展,这个领域正在快速增长。我们对文献进行了系统性的回顾,包括指导调整的一般方法论,指导调整数据集的构建,指导调整模型的训练,以及指导调整在不同形式、领域和应用中的应用。我们还回顾了对指导调整模型的分析,以发现它们的优势和潜在问题。我们希望这项工作将作为激励进一步努力解决当前指导调整模型不足之处的动力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值