大模型的微调技术(指令微调理论篇)

背景

上一篇文章介绍参数高效微调,核心目的是解决资源受限条件下的微调。区别于参数高效微调,指令微调的目标是提升模型的任务泛化能力,使其无需任务特定训练即可通过自然语言指令解决新任务(零样本/少样本学习)。本文列出的是指令微调中比较经典的方法/例子,其中包含有另一些如CoT/强化学习等知识点,将在以后的文章中再研究。

file

指令微调(Instruction Tuning)

  • 核心思想:通过指令-输出对训练模型遵循人类意图
  • 关键要素
    • 高质量指令数据构造
    • 多样化任务覆盖
    • 对抗性指令鲁棒性训练
  • 应用场景:对话系统、任务型助手

Flan-T5

Flan-T5 是首次系统化研究指令微调的文章,基于T5模型,通过大规模多任务训练和指令模板优化,显著提升模型在零样本、少样本和推理任务中的表现。

1. 多任务指令微调
  • 任务混合:Flan-T5 在 1,836 个任务上进行微调,涵盖分类、问答、翻译、生成、推理(CoT)等任务。
  • 指令模板:每个任务使用多样化模板(含示例或无示例),增强模型对指令的理解。
2. 指令模板设计
  • 模板多样性:同一任务设计多个指令模板,例如:

    • 零样本模板:直接给出任务描述。

      text

      "将以下英文翻译成中文:{input}"
      
    • 少样本模板:包含示例输入-输出对。

      text

      "示例:
      输入:Hello, how are you?
      输出:你好,你好吗?
      
      现在翻译:{input}"
      
    • CoT 模板:要求模型生成推理步骤。

      text

      "解决以下数学问题,并给出步骤:
      问题:小明有5个苹果,吃了2个,又买了3个,现在有多少个苹果?
      解答:首先,小明吃掉2个苹果,剩下5-2=3个;然后买了3个,总数是3+3=6。答案是6。
      
      问题:{input}"
      
3. 模型训练策略
  • 混合任务训练:将所有任务的指令模板混合,随机采样训练。
  • 优化目标:基于 T5 的文本生成目标,输入为指令+问题,输出为答案或推理过程。
  • 计算效率:仅用预训练计算量的 0.2%-1.6%(例如 Flan-T5-XXL 仅需 7.6E19 FLOPs)。
优势总结
  1. 任务泛化性:通过指令模板适应未知任务,无需额外训练。
  2. 推理能力:CoT 数据使模型具备分步推理能力。
  3. 多语言支持:在 TyDiQA 等任务中支持 8 种低资源语言。
  4. 效率与性能平衡:小规模模型(如 Flan-T5-XXL)性能接近甚至超越更大模型(如 PaLM-62B)。

InstructGPT

InstructGPT通过**监督微调(SFT) + 强化学习人类反馈(RLHF)**对齐语言模型与人类意图,分为三阶段:

1. 监督微调(Supervised Fine-Tuning, SFT)
  • 目标:用高质量指令-回答对微调预训练模型,初步对齐人类意图。

  • 数据构建:人工编写多样化的指令(如问答、创作、推理),并提供标准回答。

    示例指令-回答对

    text

    指令:解释量子纠缠的概念。
    回答:量子纠缠是量子力学中的现象,两个或多个粒子在相互作用后,其量子状态无法单独描述,即使相隔遥远,测量一个粒子会瞬间影响另一个的状态。
    
  • 训练方式:基于GPT-3架构,用交叉熵损失函数微调模型,使其生成符合示例的回答。

2. 奖励模型训练(Reward Model, RM)
  • 目标:训练一个能评判回答质量的奖励模型,代替人工标注。

  • 数据构建:对同一指令生成多个回答,人工对回答质量排序。

    示例排序数据

    text

    指令:写一首关于秋天的诗。
    回答1:秋天来了,树叶黄了。(质量低:过于简单)
    回答2:金风拂面叶纷飞,霜染层林似画帷。孤雁南翔声渐远,斜阳影里故人归。(质量高:语言优美)
    

    标注员将回答2排序高于回答1。

  • 训练方式:用排序数据训练奖励模型(基于SFT后的模型),输出回答的分数差异(如回答2得分>回答1)。

3. 强化学习微调(Reinforcement Learning, RL)
  • 目标:用奖励模型引导模型生成更符合人类偏好的回答。

  • 训练方式

    • 策略(Policy):SFT后的模型。
    • 奖励信号:来自RM模型的评分。
    • 优化方法:近端策略优化(PPO),最大化奖励并控制模型偏离原始分布。

    优化示例

    • 初始生成回答:“量子纠缠是粒子间的关联。”
    • 经过RL优化后生成:“量子纠缠是指两个粒子共享量子态,即使相隔遥远,测量一个会立即决定另一个的状态,爱因斯坦称其为‘鬼魅般的超距作用’。”
    • 奖励模型会对更详细、准确的回答给出更高分,驱动模型改进。

Self-Instruct

Self-Instruct通过迭代生成-过滤-微调的闭环过程,从少量种子任务出发,逐步扩展数据。流程分为四阶段:

1. 指令生成(Instruction Generation)

目标:利用现有任务池生成新指令。

方法

  • 种子任务:初始任务池包含175个人工编写的任务(如“写一首关于春天的诗”)。
  • 提示模板:用8个示例(6个种子任务+2个生成任务)作为上下文,引导模型生成新指令。

案例

  • 输入示例(模型看到的上下文):

    任务1:写一篇关于人工智能的短文  
    任务2:将以下句子翻译成法语  
    任务3:生成10个科幻故事标题  
    ...  
    
  • 模型生成:可能输出新指令如“设计一个健康饮食的周计划”。


2. 分类任务识别(Classification Task Detection)

目标:区分指令是否为分类任务(需多标签输出)。

方法

  • 用31个示例(12分类+19非分类)作为上下文,提示模型判断。
  • 例如,模型看到“判断这句话的情感是积极还是消极”后,能识别为分类任务。

案例

  • 生成指令“判断以下动物是否为哺乳类” → 分类任务
  • 生成指令“写一封辞职信” → 非分类任务

3. 实例生成(Instance Generation)

方法:根据任务类型选择生成策略。

A. 非分类任务:输入优先方法(Input-First Approach)

步骤:先生成输入,再生成对应输出。
案例

  • 指令:设计一个健康饮食的周计划
  • 输入生成:模型生成“用户需求:素食、低卡路里”
  • 输出生成:模型输出一份7天素食菜谱,包含早中晚餐。
B. 分类任务:输出优先方法(Output-First Approach)

步骤:先定义分类标签,再生成对应输入。
案例

  • 指令:判断以下动物是否为哺乳类
  • 输出生成:模型先确定标签(是/否)
  • 输入生成
    • 标签“是” → 输入“鲸鱼”
    • 标签“否” → 输入“企鹅”

4. 过滤与后处理(Filtering)

目标:去除低质量或重复数据。
方法

  • 去重:ROUGE-L相似度<0.7(如“写诗”和“创作诗歌”视为重复)。
  • 格式过滤:排除包含“图像”“图表”等模型无法处理的指令。
  • 逻辑过滤:输入与输出矛盾的实例(如输入“猫”,输出“哺乳类:否”)。

案例

  • 保留:指令“生成Python代码计算斐波那契数列”+输入“n=5”→输出正确代码。
  • 过滤:指令“画一个柱状图”→因涉及图像被排除。

迭代过程
  1. 初始任务池:175种子任务 → 生成新任务 → 过滤后加入池中。
  2. 每轮迭代:用更新后的任务池生成更多指令。
  3. 最终生成:52K指令、82K实例(含35%无输入指令,如直接要求写诗)。

核心特点对比

维度Flan-T5InstructGPTSelf-Instruct
提出背景Google基于T5的指令微调模型OpenAI基于GPT-3的对齐模型华盛顿大学提出的指令数据生成方法
核心方法多任务指令微调(含CoT数据)监督微调(SFT)+ 强化学习(RLHF)自生成指令-输出对,无需人工标注
训练数据1.8K人工标注任务,覆盖对话、推理、代码等人工标注的指令数据 + 人类偏好排序数据模型自动生成的指令数据
模型架构编码器-解码器(T5系列)仅解码器(GPT系列)通用方法,可适配任意模型架构
计算成本较低(微调成本为预训练的0.2%-1.6%)高(依赖大规模预训练和RLHF)低(仅需生成数据并微调)
模型最佳适用场景推荐场景举例
Flan-T5需要高效推理、跨任务泛化的场景数学解题、多语言问答、代码生成
InstructGPT高安全要求、自然对话和创作场景客服对话、内容创作、教育辅导
Self-Instruct数据稀缺或需快速生成指令数据的场景冷启动任务适配、学术研究、低成本微调实验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值