TRL 中的视觉语言模型对齐

Hugging Face 已在 TRL 库中引入了对视觉语言模型 (VLMs) 高级对齐技术的全面支持。此次更新使开发者能够超越简单的成对偏好优化,转向更具扩展性和鲁棒性的方法,如混合偏好优化 (MPO)、组相对策略优化 (GRPO) 和组序列策略优化 (GSPO)。

高级多模态对齐方法

TRL 现在集成了几种尖端的对齐算法,旨在从偏好数据中提取更丰富的信号并提高 VLM 在复杂任务上的性能。

混合偏好优化 (MPO)

MPO 解决了推理任务中监督微调 (SFT) 中常见的分布偏移问题,以及直接偏好优化 (DPO) 中经常缺乏连贯逻辑的过程问题。MPO 通过结合三种不同的损失函数来扩展 DPO:

  • Preference loss 来自 DPO (sigmoid)
  • Quality loss 来自 Binary Classifier Optimization (BCO)
  • Generation loss 来自 SFT

根据原始论文,实现这种组合损失可以使 MathVista 基准测试提高 6.2 分。在 TRL 中,这是通过 DPOTrainer 实现的,只需将 loss_type 配置为 ["sigmoid", "bco_pair", "sft"] 并分配相应的权重即可。

多模态组相对策略优化 (GRPO)

GRPO 是一种强化学习对齐方法,它在组(轨迹批次)上而非单个样本上执行策略更新。这种方法使模型对奖励噪声更具鲁棒性,因为噪声会在组内被平均化,从而允许模型学习到更广泛的什么是高质量响应的概念。

要在 TRL 中实现 GRPO,用户需要定义奖励函数——例如一个用于格式验证(例如,检查 <think><answer> 标签)的函数,以及一个用于准确性的函数(验证解法与 ground truth 对比)——并将它们传递给 GRPOTrainer

组序列策略优化 (GSPO)

GSPO 是由 Qwen 开发的 GRPO 的一种变体,旨在提高训练稳定性。它通过在序列级别而非 token 级别计算重要性采样权重来实现这一点,这一优势对于混合专家模型 (MoE) 风格的模型尤为相关。TRL 通过 GRPOConfig 支持 GSPO,允许用户指定 importance_sampling_level="sequence" 以及特定的 epsilon 和 beta 参数。

扩展的 VLM 支持与 SFT

除了主要的全新算法外,TRL 还扩展了对现有对齐和微调工作流的支持。

RLOO 与 Online DPO

TRL 现在支持针对 VLMs 的 Reinforce Leave One Out (RLOO)Online Direct Preference Optimization (Online DPO)。这些方法可以在多模态数据集上进行对齐,并分别通过 RLOOTrainerOnlineDPOTrainer 进行访问。

原生监督微调 (SFT)

随着 transformers API 的标准化,SFTTrainer 现在为 VLMs 提供全原生支持。用户可以使用包含 images 列的 VLM 和数据集进行初始化 trainer。为了防止在训练期间移除图像 token,建议在 SFTConfig 中设置 max_length=None

用于在线对齐的 vLLM 集成

为了支持需要在训练循环中生成样本的在线对齐方法,TRL 集成了 vLLM。这种集成提供了两种主要的运行模式:

  • Colocate mode: 在与训练循环相同的进程中运行 vLLM,在训练和生成之间共享 GPU。
  • Server mode: 将 vLLM 作为单独的进程提供服务,然后由训练脚本进行查询。

此外, TRL 现在支持在 vLLM 中使用 transformers 后端,可以通过 --vllm_model_impl transformers 标志来启用。

Sources

相关

  • Dispatch
  • Dispatch
  • 项目
  • 项目
  • Dispatch