CMU 10423 Generative AI:lec12(指令微调Instruction Fine-tuning、人类反馈强化学习RLHF)

1 概述

这份文件是CMU机器学习课程(10-423/10-623 Generative AI)的第12次讲座,主要内容包括指令微调(Instruction Fine-tuning)和人类反馈强化学习(Reinforcement Learning with Human Feedback,RLHF)两个部分。以下是对文件内容的概述:

1. 指令微调(Instruction Fine-tuning)

  • 基本概念:指令微调是一种将大型语言模型(LLM)调整为遵循特定指令的过程,使其表现出更符合预期的对话行为。通过指令微调,模型不仅能够预测文本的下一步,还可以与用户进行对话并在适当的时候停止。

  • 提示模板:文件中提到像ChatGPT和Llama-2 Chat等模型已经进行了指令微调,通常使用特定的提示模板,分为系统、助手和用户三个部分。

  • 数据集:文件介绍了几个用于指令微调的数据集,包括:

    • InstructGPT:包含13k的提示/响应对,由人工标注者编写指令和示例响应,数据是闭源的。
    • Dolly:这是InstructGPT的开源版本,包含15k个指令微调示例,由DataBricks的员工编写。
    • Flan:是最早的指令微调数据集之一,包含约350万示例。它的特点是将现有NLP任务/数据集转化为指令微调任务。
  • 模型架构:指令微调的模型通常以预训练的基础模型为起点,然后在指令数据集上进行微调。文件中还提到了多模态指令微调(MultiInstruct),将多种任务整合到一个多模态的指令微调数据集中。

2. 人类反馈强化学习(RLHF)

  • 基本概念:RLHF是一种通过人类反馈来微调模型的方法,InstructGPT使用了这种技术。该方法通过让人类标注者对模型生成的多种响应进行排序,训练一个奖励模型来评价模型的输出。

  • 过程

    • 步骤1:进行指令微调,使用13k个训练示例对模型进行调整,使其表现出类似聊天助手的行为。
    • 步骤2:对33k个提示进行采样,生成多个模型响应,由人类标注者对这些响应进行排序,然后训练奖励模型,该模型输出单一的标量值作为奖励。
    • 步骤3:利用强化学习对模型进行训练,使用奖励模型的输出作为“真实”奖励,最终得到经过强化学习微调的模型。
  • 结果:RLHF被证明可以提高模型的帮助性和无害性,同时不会对零样本或少样本任务性能产生负面影响。

  • LIMA的最新进展:文件还提到了一个名为LIMA的最新研究,表明仅使用1000个指令微调示例且不依赖RLHF,模型也能获得出色的效果,提出了RLHF的必要性可能没有想象中那么高。

总结来说,这份文件详细阐述了如何通过指令微调和RLHF来使大型语言模型更加贴近人类用户的期望,并探讨了不同数据集和方法在模型微调中的作用。

以下是lec12中重点内容摘录以及引申问题的个人整理:

2 指令微调:动机、方法、场景、数据集、例子

指令微调(Instruction Fine-tuning)是一种使大型语言模型(LLM)能够遵循特定指令并生成符合人类期望的响应的技术。它的目标是将模型的行为调整为更接近人类对话代理,使其能够更好地完成特定任务、回答问题或执行命令。

这种方法有多种称呼,包括“指令微调(instruction fine-tuning)”、“对话微调(chat fine-tuning)”、“对齐(alignment)”和“行为微调(behavioral fine-tuning)”。

动机、方法、应用场景

  1. 动机:大型语言模型最初是通过大量互联网文本进行训练,目标是降低困惑度(perplexity),即预测下一个词的准确性。这种训练方式虽然使得模型在生成文本方面表现良好,但并不具备与人类对话的能力。因此,需要对模型进行微调,使其能理解并遵循人类指令,进而生成合理且符合任务要求的输出。
  2. 方法:通过提供大量由人类编写的指令-响应对,模型可以学习如何在各种情境下生成符合预期的响应。这一过程通常包括:
  • 构建一个包含不同任务类型的指令-响应对数据集。

  • 使用该数据集对预训练模型进行微调,使模型学习如何根据指令生成合适的响应。

  • 应用场景:指令微调后的模型可以应用于各种对话场景,如问答、内容生成、文本摘要、信息检索等。

数据集

指令微调的质量很大程度上取决于用于微调的数据集。以下是一些常见的数据集示例:

  1. InstructGPT 数据集
  • 内容:包含13,000个指令和对应的响应对。

  • 构建过程:由人工标注者编写指令以及示范性的响应。部分指令来自OpenAI API的早期用户请求,标注者为这些指令提供了期望的回复。

  • 特点:因为是人工编写的指令-响应对,该数据集能够有效捕捉人类对任务的期望,使模型学习到如何生成高质量的对话式回答。

  • Dolly 数据集

    • 内容:由DataBricks员工编写的15,000个指令微调示例,是InstructGPT的开源版本。
    • 示例类型:包含各种类型的指令,如问答、信息提取、分类、创意写作等。

指令微调数据集例子

例子1:问答任务
  • 指令:哪个人获得了最多的奥运会金牌?
  • 响应:迈克尔·菲尔普斯在奥运会历史上赢得了最多的金牌,共获得23枚金牌。

在这个例子中,模型不仅需要识别问题,还要提供准确的信息,指令微调使模型能够给出这种精确的回答。

例子2:信息提取任务
  • 指令:从这段话中提取所有提到的日期,并用{日期}-{描述}格式列出。
  • 上下文:丹尼尔·莱维特于1813年11月16日出生于新罕布什尔州的赖伊。1838年,他在马萨诸塞州西斯普林菲尔德与露丝·珍妮特·鲍尔结婚。
  • 响应
    • 1813年11月16日 - 丹尼尔·莱维特的出生日期
    • 1838年 - 丹尼尔·莱维特与露丝·珍妮特·鲍尔结婚的年份

通过指令微调,模型学会了如何从提供的文本中提取信息并按照指令格式进行组织。

例子3:创意写作任务
  • 指令:写一首关于我对腌黄瓜热爱的俳句。
  • 响应:被甜蜜的盐水包裹,你是如此脆爽。哦,愿你属于我。

这个例子展示了模型在创意任务中的应用。指令微调使模型能够根据提示生成独特且符合要求的作品。

总结

指令微调使大型语言模型能够理解和执行各种任务,提升了模型的实用性和对话能力。通过使用大量高质量的指令-响应对,模型可以被微调为更具交互性、表现力和实用性的对话代理,适用于问答、内容生成、信息提取、分类等多种场景。

3 多模态指令微调

在这里插入图片描述

1. 多模态指令微调的概念

多模态指令微调旨在使大型语言模型不仅能够处理单一文本输入,还可以处理包含多种模态(如图像、文本、音频等)信息的输入。这种微调方式使模型能够更全面地理解和执行涉及多模态信息的任务,例如描述图片、将图像与文本对应、视频问答等。

2. MultiInstruct 数据集

PDF中提到的“MultiInstruct”是一个多模态指令微调数据集,旨在将多种多模态任务整合到一个统一的指令微调框架中。具体来说,MultiInstruct由不同模态的数据源构建,包含来自多个数据集的多模态任务。

  • 来源:MultiInstruct由62个多模态任务组成,来自21个开源数据集。这些任务涵盖了各种类型的多模态任务,包括图像描述、视觉问答、文本生成等。
  • 任务示例:MultiInstruct中包含的任务示例包括:
    • 视觉问答(Visual Question Answering):模型需要根据给定的图片回答相关问题。
    • 图像描述(Image Captioning):模型需要根据图片生成相应的描述性文本。
    • 文本与图像匹配:模型需要判断给定的图像和文本是否匹配。

4 人类反馈强化学习 RLHF

人类反馈强化学习(Reinforcement Learning with Human Feedback,RLHF)是一种通过结合人类反馈对模型进行强化学习的方法,旨在使模型生成的输出更加符合人类期望。这种技术被广泛应用于将大型语言模型(LLM)调整为对话代理或其他任务,以提高模型的帮助性和对话能力。

RLHF的基本概念

RLHF通过让人类评估和指导模型的输出行为,并利用强化学习来优化模型,使其生成的响应更符合人类期望。RLHF通常用于调整已经经过预训练和指令微调的模型,以进一步提升其性能,确保模型的输出更加贴合实际应用需求。

RLHF的主要步骤

RLHF的训练过程通常分为三个主要步骤,分别是指令微调、奖励模型训练和强化学习训练。以下是详细介绍每个步骤:

在这里插入图片描述

步骤1:指令微调(Instruction Fine-Tuning)
  • 目的:将预训练的语言模型微调为能够遵循特定指令的对话代理,使其具备基础的对话能力。
  • 过程:使用指令-响应对数据集对模型进行监督微调,让模型能够根据指令生成预期的输出。在这一步,模型学习了基本的任务执行和对话能力。
步骤2:训练奖励模型(Reward Model Training)

奖励模型是RLHF的核心部分,用于评价模型的输出与人类期望的匹配程度。

  • 生成模型响应:在指令微调的模型基础上,给定一组输入提示,生成多种不同的响应。
  • 人类标注者反馈:将这些生成的响应提供给人类标注者,让他们对这些响应进行排序或评分,通常对每个输入提示生成的多个响应进行排序。
  • 训练奖励模型:奖励模型使用人类标注的数据进行训练,以学习如何对模型的响应进行评分。奖励模型的输出是一个单一的标量值,表示对模型输出的奖励分数。
  • 损失函数:奖励模型的损失函数基于Pairwise Ranking Loss,旨在最大化高排名响应与低排名响应的分数差距。公式为:

在这里插入图片描述

其中:

  • x x x 表示输入提示
  • y w y_w yw y l y_l yl 分别表示高排名和低排名的响应
  • r θ ( x , y ) r_\theta(x, y) rθ(x,y) 是奖励模型对响应 y y y 的预测分数
  • D D D 是数据集,包含了所有人类标注的排名
  • σ \sigma σ 是sigmoid函数,用于将分数差映射到0到1之间
步骤3:强化学习训练(Reinforcement Learning Training)

利用奖励模型指导强化学习过程,进一步优化模型的行为,使其生成的输出更加符合人类期望。

  • 过程

    • 定义强化学习目标:将奖励模型的分数作为强化学习的奖励信号,利用强化学习对模型进行训练,以最大化奖励。
    • 训练算法:通常使用近端策略优化算法(Proximal Policy Optimization,PPO)对模型进行强化学习训练。PPO是一种适用于复杂策略优化问题的强化学习算法。
  • 损失函数:RLHF的优化目标是最大化奖励模型给定的奖励,同时保持与指令微调模型的行为一致性。损失函数通常是一个结合强化学习和监督学习的混合目标,具体公式为:

objective ( ϕ ) = E ( x , y ) ∼ D [ r θ ( x , y ) − β log ⁡ ( π RL ( y ∣ x ) π SFT ( y ∣ x ) ) ] + γ E x ∼ D pretrain [ log ⁡ ( π RL ( x ) ) ] \text{objective}(\phi) = \mathbb{E}_{(x, y) \sim D} \left[r_\theta(x, y) - \beta \log\left(\frac{\pi_{\text{RL}}(y | x)}{\pi_{\text{SFT}}(y | x)}\right)\right] + \gamma \mathbb{E}_{x \sim D_{\text{pretrain}}} \left[\log(\pi_{\text{RL}}(x))\right] objective(ϕ)=E(x,y)D[rθ(x,y)βlog(πSFT(yx)πRL(yx))]+γExDpretrain[log(πRL(x))]

其中:

  • π RL ( y ∣ x ) \pi_{\text{RL}}(y | x) πRL(yx) 表示强化学习模型的策略
  • π SFT ( y ∣ x ) \pi_{\text{SFT}}(y | x) πSFT(yx) 表示指令微调模型的策略
  • r θ ( x , y ) r_\theta(x, y) rθ(x,y) 是奖励模型对响应的打分
  • β \beta β γ \gamma γ 是控制损失函数中不同项权重的超参数

RLHF的效果与优势

  • 提高模型的帮助性和无害性:通过RLHF,模型能够更好地理解并执行人类指令,生成的输出更加有用且无害,特别是在开放式对话任务中表现显著提升。
  • 增强对齐能力:RLHF使得模型更好地对齐人类期望,生成与任务要求和上下文一致的响应。

RLHF的实际案例——InstructGPT

InstructGPT是RLHF的一个经典应用案例。实验结果显示,InstructGPT在许多任务上的输出质量被人类评估为优于GPT-3,即使InstructGPT的参数量只有1.3亿,而GPT-3有175亿参数。这一结果表明,RLHF在提升模型对话能力和生成质量方面非常有效。

总结

RLHF通过将人类反馈引入强化学习过程,使大型语言模型能够更好地理解和执行指令,生成更符合人类期望的输出。它在对话代理任务中展现出显著优势,提高了模型的帮助性和对齐能力,成为当前模型训练中的一种重要方法。

5 Less-is-More for Alignment (LIMA)

https://arxiv.org/abs/2305.11206

关于**Less-is-More for Alignment (LIMA)**的部分讨论了一项名为LIMA的研究,研究结果表明,在模型对齐(alignment)过程中,可能只需要相对较少的指令微调数据,甚至不需要人类反馈强化学习(RLHF),就能够达到与RLHF方法相似的效果。这一研究挑战了之前对RLHF在模型对齐方面至关重要的假设。

LIMA研究的关键内容

  1. 研究目标:LIMA的研究旨在探究究竟需要多少指令微调数据,才能有效地调整大型语言模型的行为,使其与人类期望对齐。在以往的工作中,通常需要大量的指令微调数据和RLHF来提升模型的对齐能力,但LIMA研究希望证明,即使只使用少量的数据,也能实现出色的模型对齐效果。
  2. 训练方法
  • 训练数据量:LIMA仅使用了1000个指令微调示例来对模型进行训练,这与传统需要数万甚至数百万示例的微调方法形成鲜明对比。

  • 不使用RLHF:LIMA在训练过程中完全没有使用RLHF,而是仅依赖这些指令微调示例进行模型的调整。

  • 实验结果

    • 尽管LIMA只使用了1000个训练示例,实验表明,模型在许多任务上的表现与那些经过RLHF训练的大型模型相当。
    • 这说明在对齐任务中,增加大量的微调示例或使用RLHF未必是必需的,在某些情况下,少量高质量的指令微调数据就足够使模型产生符合人类预期的响应。
  • LIMA的结论

    • 数据质量的重要性:LIMA的研究强调,数据的质量比数量更重要。与其使用大量数据进行微调或通过RLHF进行强化训练,使用少量但高质量的指令微调数据可能是更高效的对齐方式。
    • 重新审视RLHF的必要性:研究结果挑战了RLHF在模型对齐中的必要性,表明在一些情况下,RLHF并非唯一有效的对齐手段,甚至可能不是最有效的方式。

LIMA对模型训练的启示

  • 高效训练:LIMA的研究表明,训练语言模型时,并不总是需要大量的数据和复杂的强化学习步骤,使用相对少量的高质量数据也可以实现有效对齐,这为降低模型训练成本和时间提供了新的思路。
  • 对未来模型开发的影响:LIMA的结果提示未来的研究可以更加关注数据的质量,而不仅仅是追求数量或依赖于RLHF等复杂技术。这可能会引导未来的模型训练在成本和效率上取得更大的突破。

总结

LIMA研究表明,在模型对齐过程中,“少即是多”(Less is More),即仅使用少量高质量的指令微调数据就能实现对齐目标,并且在某些情况下可以达到与经过RLHF训练的模型相似的效果。这一发现挑战了传统观点,为大型语言模型的对齐和训练提供了新的方法和思考方向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值