多模态大模型(MLLM)- 训练篇

VaquitaAI VaquitaAI 2024年08月22日 11:40
【导读】MLLM 的训练范式大致可以划分为预训练阶段、指令微调阶段和对齐微调阶段1)预训练阶段:通过大量图文对将图片信息对齐到 LLM 的表征空间,即让 LLM 读懂视觉 Token;2)指令微调阶段:通过多样化的各种类型的任务数据提升模型在下游任务上的性能,使模型理解和服从复杂指令;3)对齐微调阶段:用强化学习技术使模型对齐人类价值观或某些特定需求(如更少幻觉)。


本文大纲:

图片


一、MLLM的训练范式

MLLM的三个主要训练阶段:预训练(pre-training)、指令微调(instruction-tuning)、对齐微调(alignment tuning)。

二、MLLM 的三个训练阶段

2.1 预训练(Pre-training)

2.1.1 目的

Pre-training:对齐不同模态,并学习多模态世界知识。如 llava 第一阶段训练的目的是为了将图片信息映射到文本语义空间,让 LLM 能够理解图像内容。

2.1.2 数据

预训练阶段使用大规模文本配对数据,通常为图像、音频或视频的caption数据。代表性的预训练数据集有:CC-3M & CC-12M、SBU Captions、LAION、COYO-700M等。

图片

用于构建image-text-pair数据的简化模板:{<image>}是视觉token的占位符,{caption}是图像的描述

2.1.3 训练

训练:通常冻结预训练模块,如Visual Encoder和 LLM,并训练一个可学习的Adapter,是为了在不丢失预训练知识的情况下对齐不同模态。一些方法也会解冻更多的模块,如解冻 visual encoder ,能够训练更多的参数。

图片

LLaVA 的 Pre-training 阶段

预训练模型将多种模态对齐,可以理解不同模态的基本信息,有时执行简单的问答。但是无法遵循复杂的指令,通常需要针对特定任务进行微调才能执行。

2.2 指令微调(Instruction-tuning)

指令微调旨在教会模型更好地理解用户的指令并完成所要求的任务。通过这种方式的微调,大型语言模型(LLMs)可以通过遵循新的指令来泛化到未见过的任务,从而提升零样本(zero-shot)性能。这个简单而有效的想法激发了后续LLMs的成功,例如ChatGPT、InstructGPT、FLAN、和OPT-IML。

2.2.1 目的

多模态大模型指令微调的目的:为了提高模型在特定任务上的性能和泛化能力,使其能够更好地理解和执行与多模态数据(如图像、文本等)相关的复杂指令。

下图为三种传统学习范式的区别:

  • Pretrain-finetune:需要大量的特定任务数据来训练特定任务的模型

  • Prompting:减少了对大规模数据的依赖,并通过提示工程完成任务。在这种情况下,尽管few-shot的性能有所提高,但zero-shot性能仍然相当一般

  • Instruction tuning:指令调整学习如何泛化到未见过的任务,而不是像另外两种方法那样适应特定任务。此外,指令调整与多任务提示高度相关。

图片

三种传统学习范式

2.2.2 数据

多模态指令微调的样本通常包括一个的指令和一个输入-输出对:图片
多模态指令数据模板:<Instruction>是任务的文本描述。{<image>, <text>}和<output>是数据样本的输入和输出


2.2.3 训练

一个多模态指令样本可以用三元组形式表示,即(I, M, R),其中I、M、R分别代表指令、多模态输入和真实的响应。MLLM根据指令和多模态输入预测一个答案

图片

这里,A表示预测的答案,θ是模型的参数。训练目标通常是用于训练LLMs的原始自回归目标,基于此,MLLM被鼓励预测响应的下一个token。目标可以表示为:

图片

其中N是真实响应的长度。

下图为 LLaVA 指令微调阶段训练阶段,可学习的参数包括 AdapterLLM

图片

图:llava 指令微调阶段

2.3 对齐微调(alignment tuning)

2.3.1 目的

对齐调整目的:用于模型需要与特定人类偏好对齐的场景,例如,响应中包含较少的幻觉。目前,人类反馈强化学习(RLHF)和直接偏好优化(DPO)是两种主要的对齐调整技术。

2.3.2 数据

对齐调整的数据收集要点是收集对模型响应的反馈,即决定哪个响应更好。通常,收集此类数据的成本更高,用于此阶段的数据量通常少于之前阶段使用的数据量。LLaVA-RLHF、RLHF-V、VLFeedback 。

图片

LLaVA-RLHF数据集格式

2.3.3 训练

RLHF技术旨在使用强化学习算法将大型语言模型(LLMs)与人类偏好对齐,训练循环中以人类标注作为监督。正如InstructGPT中的例子所示,RLHF包含三个关键步骤:

  1. 监督微调:这一步旨在微调预训练模型以呈现初步期望的输出行为。RLHF设置中的微调模型称为策略模型。注意,这一步可能会被跳过,因为监督策略模型πSFT可以从指令调整模型初始化。
  2. 奖励建模:训练一个奖励模型,使其能够根据人类偏好对响应进行评分
  3. 强化学习:使用PPO算法优化策略模型,同时通过KL惩罚避免偏离原始策略太远研究人员。


研究人员已经利用RLHF技术在多模态对齐方面取得了进展,例如LLaVARLHF项目通过收集人类偏好数据来减少模型的幻觉。

图片

LLaVA-RLHF: Aligning Large Multimodal Models with Factually Augmented RLHF

三、总结

MLLM 的训练范式大致可以划分为预训练阶段(Pre-training)、指令微调阶段(Instruction-tuning)和对齐微调阶段(Alignment-tuning),它们的作用:

  • 预训练(Pre-training)通过大量图文对将视觉信息对齐到 LLM 的表征空间,即让 LLM 读懂视觉 Token
  • 指令微调(Instruction-tuning)通过多样化的任务数据提高模型在下游任务上的性能和泛化能力,使其能够更好地理解和服从与多模态数据(如图像、文本等)相关的复杂指令
  • 对齐微调(Alignment-tuning)通过人类反馈强化学习(RLHF)或直接偏好优化(DPO)对齐调整技术使模型对齐人类价值观或某些特定需求(如减少幻觉)。