# 2023 Zhu et al.

MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language Models

使用 GPT-4 进行指令微调 Baolin Peng , Chunyuan Li , Pengcheng He , Michel Galley, Jianfeng Gao 微软研究院 {bapeng, chunyl, penhe, mgalley, jfgao}@microsoft.com 摘要 先前的工作表明,使用机器生成的指令遵循数据对大型语言模型(LLMs)...

精粹译文

使用 GPT-4 进行指令微调

Baolin Peng*, Chunyuan Li*, Pengcheng He*, Michel Galley, Jianfeng Gao 微软研究院 {bapeng, chunyl, penhe, mgalley, jfgao}@microsoft.com

摘要

先前的工作表明,使用机器生成的指令遵循数据对大型语言模型(LLMs)进行微调,能够使这些模型在无需人工编写指令的情况下,在新的任务上实现显著的零样本(zero-shot)能力。在本文中,我们首次尝试使用 GPT-4 生成用于 LLM 微调的指令遵循数据。我们在指令微调的 LLaMA 模型上的初步实验表明,由 GPT-4 生成的 52K 条中英文指令遵循数据,在新的任务上表现出了优于先前最先进模型所生成数据的零样本性能。我们还收集了来自 GPT-4 的反馈和比较数据,以实现全面的评估和奖励模型训练。我们将使用 GPT-4 生成的数据以及我们的代码库公开。


1 引言

大型语言模型(LLMs)已经展现出令人印象深刻的泛化能力,例如上下文学习(Brown 等人,2020)和思维链推理(Wei 等人,2022)。为了使 LLMs 能够遵循自然语言指令并完成现实世界的任务,研究人员一直在探索 LLMs 的指令微调方法。这通常通过以下两种方式实现:一是在广泛的任务上使用人工标注的提示和反馈对模型进行微调(Ouyang 等人,2022);二是在公共基准测试和数据集上使用手动或自动生成的指令进行监督微调(Wang 等人,2022b)。在这些方法中,Self-Instruct 微调(Wang 等人,2022a)是一种简单且有效的方法,通过学习由最先进的指令微调教师 LLMs 生成的指令遵循数据,使 LLMs 与人类意图对齐。

事实证明,这条指令微调的研究路线已经产生了提高 LLMs 零样本和少样本泛化能力的有效手段。ChatGPT(OpenAI,2023a)和 GPT-4(OpenAI,2023b)的近期成功,为利用指令微调改进开源 LLMs 提供了巨大的机会。LLaMA(Touvron 等人,2023)是一系列开源 LLMs,其性能可与 GPT-3 等专有 LLMs 相媲美。为了教会 LLaMA 遵循指令,Self-Instruct 微调因其卓越的性能和低成本而被迅速采用。例如,Stanford Alpaca(Taori 等人,2023)使用了由 GPT-3.5 生成的 52K 条指令遵循样本,而 Vicuna(Vicuna,2023)使用了由用户与 ChatGPT 对话共享(ShareGPT,2023)生成的约 700K 条指令遵循样本(70K 次对话)。

为了推动 LLMs 指令微调的最先进水平,我们首次提出使用 GPT-4 作为 Self-Instruct 微调的教师。本文的贡献如下:

  • GPT-4 数据:我们发布了由 GPT-4 生成的数据,包括 52K 条中英文指令遵循数据集,以及用于评估三个指令微调模型输出的 GPT-4 生成的反馈数据。
  • 模型与评估:基于 GPT-4 生成的数据,我们开发了指令微调的 LLaMA 模型和奖励模型。为了评估指令微调 LLMs 的质量,我们在测试样本(即未见过的指令)上使用了三种指标:基于三个对齐标准的评估、使用 GPT-4 反馈的自动评估,以及在非自然指令(Honovich 等人,2022)上的 ROUGE-L 指标。

算法 1:数据生成中提示工程、GPT-4 调用和超参数的伪代码。每个指令实例都用作提示模板中的变量,数据流以蓝色高亮显示。

python
1 PROMPT_DICT{ 2 prompt_input: ( 3 "Below is an instruction that describes a task, paired with an input that provides further context." 4 "Write a response that appropriately completes the request.\n\n" 5 "### Instruction: \n {instruction} \n\n ### Input: {input} \n\n ### Response:" 6 ), 7 prompt_no_input: ( 8 "Below is an instruction that describes a task. " 9 "Write a response that appropriately completes the request.\n \n" 10 "### Instruction: \n {instruction} \n\n ### Response:" ) 11 } 12 output = openai.ChatCompletion.create( 13 model="gpt-4", 14 messages=[{"role": "user", "content": prompt}], 15 temperature = 1.0, 16 top_p=1.0, # nucleus sampling over entire vocabulary 17 max_tokens=512 # the max number of generated tokens 18 )

我们的实证研究验证了使用 GPT-4 生成的数据进行 LLM 指令微调的有效性,并为构建由 LLMs 驱动的通用指令遵循代理提供了实用建议。

2 数据集

数据收集。我们重用了 Alpaca 数据集(Taori 等人,2023)中收集的 52K 条唯一指令。每条指令都描述了模型应该执行的任务。我们遵循相同的提示策略来考虑有输入和无输入的情况,其中输入是任务的可选上下文或输入。输出是使用 LLMs 对指令实例的回答。在 Alpaca 数据集中,输出是使用 GPT-3.5 (text-davinci-003) 生成的,但我们改用 GPT-4 (gpt-4) 进行数据生成。具体来说,我们使用 GPT-4 生成了以下四个数据集:

(1) 英文指令遵循数据:对于 Alpaca(Taori 等人,2023)中收集的 52K 条指令,每条指令提供一个英文 GPT-4 回答。详细信息如算法 1 所示。我们将其留作未来工作,以遵循迭代过程,使用 GPT-4 和 Self-Instruct(Wang 等人,2022a)构建我们自己的指令集。

(2) 中文指令遵循数据:我们使用 ChatGPT 将 52K 条指令翻译成中文,并要求 GPT-4 用中文回答它们。这使我们能够构建一个基于 LLaMA 的中文指令遵循模型,并研究指令微调的跨语言泛化能力。

(3) 比较数据:我们要求 GPT-4 对其自身的回答进行 1 到 10 分的评分。此外,我们要求 GPT-4 比较并评价来自三个模型的回答,包括 GPT-4、GPT-3.5 和 OPT-IML(Iyer 等人,2022)。这用于训练奖励模型。

(4) 非自然指令上的回答:GPT-4 的回答是在 68K 条指令-输入-输出三元组的核心数据集(Honovich 等人,2022)上解码得到的。该子集用于量化 GPT-4 与我们的指令微调模型在规模上的差距。

数据统计。我们在图 1 中比较了 GPT-4 和 GPT-3.5 的英文输出响应集。对于每个输出,提取根动词和直接宾语名词;计算每个输出集上唯一动词-名词对的频率。频率高于 10 的动词-名词对显示在图 1(a) 和 (b) 中,两个集合中最频繁的 25 对进行了比较,如图 1(c) 所示。序列长度的频率分布在图 1(d) 中进行了比较。GPT-4 倾向于生成比 GPT-3.5 更长的序列。Alpaca 中的 GPT-3.5 数据表现出比我们 GPT-4 生成的输出分布更长的尾部,这可能是因为 Alpaca 数据集涉及一个迭代数据收集过程,在每次迭代中移除相似的指令实例,而我们当前的一次性数据生成中不存在此过程。尽管过程简单,但 GPT-4 生成的指令遵循数据表现出了更优的对齐性能,如后续实验所示。

图 1:GPT-4 和 GPT-3 生成响应的比较

3 指令微调语言模型

3.1 Self-Instruct 微调

我们使用 LLaMA 7B 检查点通过监督微调训练了两个模型:(i) LLaMA-GPT4,在 GPT-4 生成的 52K 条英文指令遵循数据上进行训练,其分布如图 1 所示。(ii) LLaMA-GPT4-CN,在来自 GPT-4 的 52K 条中文指令遵循数据上进行训练。我们遵循(Taori 等人,2023)中的训练计划以进行公平比较。这些模型用于研究 GPT-4 的数据质量以及在一种语言中进行指令微调时的跨语言泛化特性。

3.2 奖励模型

人类反馈强化学习(RLHF)旨在使 LLM 行为与人类偏好对齐,以使其更有用。RLHF 的一个关键组成部分是奖励建模,其中问题被表述为一个回归任务,即给定提示和响应来预测标量奖励(Askell 等人,2021;Ouyang 等人,2022)。这种方法通常需要大规模的比较数据,其中对同一提示的两个模型响应进行比较(Ouyang 等人,2022)。现有的开源工作如 Alpaca、Vicuna 和 Dolly(Databricks,2023)由于标记比较数据的成本高昂,不涉及 RLHF。同时,最近的研究表明,GPT-4 有能力识别并修复其自身的错误,并准确判断响应的质量(Peng 等人,2023;Bai 等人,2022;Madaan 等人,2023;Kim 等人,2023)。因此,为了促进 RLHF 的研究,我们创建了如第 2 节所述的 GPT-4 比较数据。

图 2:比较数据的分布

为了评估数据质量,我们训练了一个基于 OPT 1.3B(Iyer 等人,2022)的奖励模型来对不同的响应进行评分。对于涉及一个提示 xxKK 个响应的比较数据的每个实例,GPT-4 为每个响应分配一个分数 s[1,10]s \in [1, 10]。从该实例中构建了 C2KC_2^K 个唯一对,每对为 (yl,yh)(y_l, y_h),其对应的分数满足 sl<shs_l < s_h。参数化为 θ\theta 的奖励模型 rθr_\theta 使用以下目标进行训练: minlog(σ(rθ(x,yh)rθ(x,yl)))\min \log(\sigma(r_\theta(x, y_h) - r_\theta(x, y_l))) 其中 σ\sigma 是 Sigmoid 函数。比较数据的分布如图 2 所示。

4 实验结果

4.1 基准测试

众所周知,LLM 评估仍然是一个重大挑战。我们的目标是在未见过的指令上评估 GPT-4 数据上的 Self-Instruct 微调模型,以研究它们遵循任意任务指令的能力。具体来说,我们在研究中使用了三个已建立的数据集:

  • User-Oriented-Instructions-252 (Wang 等人,2022a):这是一个手动策划的集合,涉及 252 条指令,受 71 个面向用户的应用程序(如 Grammarly、StackOverflow、Overleaf)启发,而不是研究充分的 NLP 任务。
  • Vicuna-Instructions-80 (Vicuna,2023):这是一个由 gpt-4 合成的数据集,包含 80 个基线模型认为具有挑战性的问题。除了通用指令外,还有 8 个类别,包括知识、数学、费米问题、反事实、角色扮演、通用、编码、写作、常识。
  • Unnatural Instructions (Honovich 等人,2022):这是一个包含 68,478 个样本的数据集,由 text-davinci-002 使用来自 15 个手动构建示例的 3-shot 上下文学习合成。

图 3:人类评估

4.2 基于对齐标准的人类评估

为了评估我们指令微调 LLMs 的对齐质量,我们遵循 Anthropic Askell 等人(2021)的对齐标准:如果一个助手是有帮助的(Helpful)、诚实的(Honest)和无害的(Harmless,HHH),则它是对齐的。这些标准用于评估 AI 系统与人类价值观的对齐程度。

  • 有帮助性(Helpfulness):它是否帮助人类实现目标。能够准确回答问题的模型是有帮助的。
  • 诚实性(Honesty):它是否提供真实信息,并在必要时表达其不确定性以避免误导人类用户。提供虚假信息的模型是不诚实的。
  • 无害性(Harmlessness):它是否不对人类造成伤害。生成仇恨言论或宣扬暴力的模型不是无害的。

基于 HHH 对齐标准,我们使用 Amazon Mechanical Turk 对模型生成结果进行了人类评估。请在附录 A.1 节中查看界面。遵循(Wang 等人,2022a;Taori 等人,2023),我们考虑了 252 条面向用户的指令进行评估。我们在图 3 的饼图中显示了人类评估结果。

首先,我们比较了两个指令微调 LLaMA 模型的生成响应质量,它们分别在 GPT-4 和 GPT-3 生成的数据上进行了微调。注意,将 LLaMA 与 GPT-3 对齐对应于 Stanford Alpaca 模型。从图 3(a) 中,我们观察到:(i) 对于“有帮助性”标准,GPT-4 是明显的赢家,获得了 54.12% 的投票。GPT-3 仅赢得了 19.74% 的情况。(ii) 对于“诚实性”和“无害性”标准,大部分投票属于平局类别,这显著高于获胜类别,但 GPT-3(Alpaca)略胜一筹。

其次,我们在图 3(b) 中将 GPT-4 指令微调的 LLaMA 模型与教师模型 GPT-4 进行了比较。在三个标准上的观察结果非常一致:GPT-4 指令微调的 LLaMA 的表现与原始 GPT-4 相似。我们得出结论,学习 GPT-4 生成的数据可以在未见过的指令任务上实现与原始 GPT-4 非常可比的性能,这为开发最先进的指令遵循 LLMs 指明了一个有希望的方向。

图 4:GPT-4 评估的性能比较

4.3 使用自动评估与 SOTA 的比较

使用 GPT-4 进行自动评估。遵循(Vicuna,2023),我们采用 GPT-4 来自动评估不同模型在(Vicuna,2023)中 80 个未见问题上的生成响应。我们首先收集了两个聊天机器人的答案,包括 LLaMA-GPT-4 (7B) 和 GPT-4,并使用了(Vicuna,2023)中其他聊天机器人的发布答案,包括 LLaMA (13B)、Alpaca (13B)、Vicuna (13B)、Bard (Google,2023) 和 ChatGPT。对于每次评估,我们要求 GPT-4 对两个模型之间的响应质量进行 1 到 10 分的评分。我们将所有模型与 ChatGPT 和 GPT-4 等强竞争模型进行了比较。结果如图 4 所示。

对于使用 GPT-4 进行指令微调的 LLaMA,我们提供了两组解码结果:(i) 每个问题一个响应,这被视为基线解码结果。(ii) 每个问题五个响应。对于后者,奖励模型用于对响应进行排序,然后将其分为从 Top 1 到 Top 5 排序的五个子集。我们将五个排序组与基线进行了比较,并在图 4 (a,b) 中显示了相对分数。ChatGPT 和 GPT-4 的评估与我们的奖励模型建议的顺序一致,这证明了反馈数据的价值和奖励模型的有效性。

我们比较了图 4(c,d) 中的所有聊天机器人。使用 GPT-4 对 LLaMA 进行指令微调通常比使用 text-davinci-003(即 Alpaca)进行微调和不进行微调(即 LLaMA)实现更高的性能:7B LLaMA-GPT4 的表现优于 13B Alpaca 和 LLaMA。然而,与 GPT-4 等大型商业聊天机器人相比,仍然存在差距。

图 5:GPT-4 评估的中文指令遵循性能比较

我们进一步研究了图 5 中所有聊天机器人在中文方面的表现。我们首先使用 GPT-4 将聊天机器人的英文响应翻译成中文。我们还将英文问题翻译成中文,以获得 GPT-4 的答案。针对 GPT-4 翻译和生成的中文响应的比较分别显示在图 5 (a) 和 (b) 中。有两个有趣的观察结果:(i) 我们发现 GPT-4 评估(Vicuna,2023)的相对分数指标非常一致,无论是在不同的对手模型(即 ChatGPT 或 GPT-4)还是语言(即英语或中文)方面。(ii) 仅就 GPT-4 的结果而言,翻译后的响应在中文方面表现出优于生成的响应的性能,这可能是因为 GPT-4 在比中文更丰富的英文语料库上进行了训练,从而导致了更强的英文指令遵循能力。在图 5 (c) 中,我们展示了所有被要求用中文回答的模型的结果。

我们比较了图 6 中 LLaMA-GPT4 与 GPT-4 和 Alpaca 非自然指令的结果。就平均 ROUGE-L 分数而言,Alpaca 优于其他两个模型。我们注意到,当真实响应长度增加时,LLaMA-GPT4 和 GPT-4 的表现逐渐变好,最终在长度大于 4 时表现出更高的性能。这意味着当场景更具创造性时,它们能更好地遵循指令。在不同的子集中,LLaMA-GPT4 可以紧密遵循 GPT-4 的行为。当序列长度较短时,LLaMA-GPT4 和 GPT-4 都能生成包含简单真实答案的响应,但会添加额外的词使响应更像聊天,这可能导致较低的 ROUGE-L 分数。

图 6:在 9K 个样本上评估的非自然指令上的 ROUGE-L

5 相关工作

指令微调。LLMs 的指令微调是 NLP 中一个日益流行的研究方向(Zhong 等人,2021;Ouyang 等人,2022;Wei 等人,2021)。现有工作旨在提高开发流水线中三个因素的质量和规模,包括指令遵循数据、基础语言模型和评估基准。每个小组通常维护自己的流水线。例如,缩放指令微调语言模型(Chung 等人,2022)是建立在 FLAN(Wei 等人,2021)之上的。PromptSource 包含一个不断增长的提示集合(也称为 P3:Public Pool of Prompts)(Bach 等人,2022)。T0 是一系列通过多任务提示训练在 P3 上训练的模型(Sanh 等人,2021)。OPT 模型的指令微调在(Iyer 等人,2022)中进行了考虑,其中采用了更大、更全面的基准 OPT-IML Bench,涵盖了 FLAN(Wei 等人,2021)、Super-NaturalInstructions(Wang 等人,2022b)和 UnifiedSKG(Xie 等人,2022)。

开源努力。鉴于 ChatGPT 展示的 LLMs 的广泛能力,开源模型引起了极大的兴趣,并推动了朝着与人类价值观对齐的开放、通用、基于文本的助手方向的工作。基础 LLMs 的早期尝试包括 BLOOM(Scao 等人,2022)、GPT-J(Wang & Komatsuzaki,2021)、GPT-NEO(Black 等人,2021)、OPT(Zhang 等人,2022)和 LLaMA(Zhang 等人,2023)。为了使 LLMs 与基于聊天的助手对齐,Open-Assistant(LAION-AI,2023)是建立在 GPT-J 之上的,而 Alpaca/Vicuna 是建立在 LLaMA 之上的。此外,OpenFlamingo(Awadalla 等人,2023)和 LLaMA-Adapter(Zhang 等人,2023)将 LLaMA 与图像输入连接起来,为构建开源多模态 LLMs 铺平了道路。

6 结论

本文证明了使用 GPT-4 进行指令微调的有效性。我们发布了使用 GPT-4 生成的 52K 条中英文指令遵循实例以及从 LLaMA 微调的模型检查点。我们希望我们的实证观察和资源将有利于开源和通用 LLMs 的开发,这些模型可以更好地与人类价值观对齐以完成任务。

这代表了正在进行的工作,可以探索几个方向:(i) 数据和模型规模。GPT-4 数据大小为 52K,基础 LLaMA 模型大小为 7B。Vicuna 收集了约 700K 个对话轮次(从多轮 ShareGPT 数据近似),并使用了 13B LLaMA 模型。因此,继续收集更多的 GPT-4 指令遵循数据,结合 ShareGPT 数据,并训练更大的 LLaMA 模型以获得更高的性能将是有希望的。(ii) RLHF。奖励模型仅用于解码阶段,这表明比较数据有望为 LLM 训练提供有用的反馈。继续使用奖励模型训练 LLMs 是很自然的,例如使用机器生成的反馈进行强化学习。


致谢

我们感谢 Guoyin Wang、Haotian Liu 和 Hao Cheng 在指令微调语言模型方面的宝贵讨论和深刻的经验分享。我们感谢 LLaMA 团队让我们访问他们的模型。


附录 A 实现细节

A.1 人类评估

我们实现了 HHH 对齐标准(Askell 等人,2021),并使用 Amazon Mechanical Turk 来评估模型生成的响应,界面截图如图 7 所示。

图 7:基于 HHH 对齐标准进行人类评估的表格。提供了五个选项,我们在分析中合并了前两个和后两个选项,以便于说明。

硬核测试

正确率:0 / 5
1

根据论文内容,本文在指令微调领域的主要贡献是什么?

2

在数据收集部分,作者是如何构建中文指令遵循数据集的?

3

关于奖励模型(Reward Model)的训练,本文采用了什么样的数据?

4

在人类评估中,基于 HHH 对齐标准,GPT-4 指令微调的 LLaMA 模型表现如何?

5

根据论文的实验结果,关于 LLaMA-GPT4 模型在非自然指令(Unnatural Instructions)上的 ROUGE-L 分数,下列说法正确的是?