多模态偏好数据集生成与混合偏好优化(MPO)方法
本文主要看下MPO的多模态偏好数据生成方法及MPO优化方法核心思想,多模态输入的链式思维方法感兴趣看原文,供参考。
多模态偏好数据集生成
1、数据引擎
定义:每个数据样本包括一张图像 I I I、一条指令 x x x、一个被选中的响应 y c y_c yc 和一个被拒绝的响应 y r y_r yr。其中, y c y_c yc 被认为是比 y r y_r yr 更好的响应。
数据收集:
- 图像集 I \mathcal{I} I 和指令集 X \mathcal{X} X 来自现有的数据集。
- 对于有明确答案的指令,模型被提示先提供推理过程,然后给出最终答案,格式为“Final Answer: ***”。
- 匹配正确答案的响应构成正样本集 Y p \mathcal{Y}_p Yp,不匹配的构成负样本集 Y n \mathcal{Y}_n Yn。
生成方法:
- 有明确答案的指令:通过选择正样本和负样本来构建偏好对。
- 没有明确答案的指令:使用 Dropout Next-Token Prediction (DropoutNTP) 方法。具体来说,所有生成的响应被视为正样本,通过截断响应的后半部分来生成负样本。
效率比较:与 RLAIF-V 提出的更复杂的方法相比,DropoutNTP 方法在生成数据时更高效,成本更低。
2、多模态偏好数据集
数据统计:使用上述方法,构建了一个包含约 750K 个无明确答案的样本和 2.5M 个有明确答案的样本的数据集。
- 无明确答案的样本中,每条指令平均 25.0 个token,被选中和被拒绝的响应分别平均 211.4 和 171.2 个token。
- 有明确答案的样本中,指令平均长度为 79.5 个token,被选中和被拒绝的响应分别平均 300.0 和 350.5 个token。
数据来源:
MPO(混合偏好优化)方法
这是文章的核心,基于多模态数据构建偏好数据集 MMPR,使模型学习不同模态信息下响应的优劣偏好。提出背景是在使用直接偏好优化(DPO)训练MLLMs时,模型可能会生成不合理的理由并产生重复的响应。这导致模型在生成长篇理由(Chain-of-Thought, CoT)时的表现不佳。
为了解决这个问题,提出了MPO。目的是学习响应之间的相对偏好、单个响应的绝对质量以及生成偏好响应的过程。
训练目标:MPO结合了偏好损失 L p \mathcal{L}_{p} Lp、质量损失 L q \mathcal{L}_{q} Lq 和生成损失 L g \mathcal{L}_{g} Lg,公式如下:
L = w p L p + w q L q + w g L g \mathcal{L}=w_{p}\mathcal{L}_{p}+w_{q}\mathcal{L}_{q}+w_{g}\mathcal{L}_{g} L=wpLp+wqLq+wgLg
其中, w ∗ w_{*} w∗ 表示每个损失组件的权重。
偏好损失:使用DPO作为偏好损失,使模型学习被选中和被拒绝响应之间的相对偏好。
其中:
- L p \mathcal{L}_{p} Lp 是偏好损失。
- σ \sigma σ 是sigmoid函数。
- β \beta β 是KL惩罚系数,控制模型输出的分布与参考分布之间的差异。
- π θ \pi_{\theta} πθ 是策略模型,表示当前正在训练的模型。
- π 0 \pi_{0} π0 是初始模型或参考模型。
- x x x 是用户查询或指令。
- y c y_{c} yc 是被选中的响应。
- y r y_{r} yr 是被拒绝的响应。
质量损失:使用BCO(Binary Classifier Optimization)作为质量损失,帮助模型理解单个响应的绝对质量(二分类器)。
生成损失:使用SFT损失,帮助模型学习生成偏好响应的过程。
实验
参考文献:Enhancing the Reasoning Ability of Multimodal Large Language Models via Mixed Preference Optimization,https://arxiv.org/pdf/2411.10442