SuperAPI AI 工具集

Vision-LLM-Alignment

Vision-LLM-Alignment 是面向视觉大语言模型(Vision-LLM)的对齐训练代码仓库,涵盖 SFT(监督微调)、奖励模型训练以及 PPO/DPO 等对齐训练流程。项目支持 LLaVA 系列(LLaVA、LLaVA-NeXT/LLaVA-1.6)与 LLaMA-3.2-Vision 等视觉模型,并提供大规模视觉反馈数据集的整合说明。仓库基于 DeepSpeed-VisualChat 代码库构建,同时发布了经过文本偏好数据优化的视觉奖励模型 RoVRM。训练流程在 RLAIF-V、LLaVA-Instruct-150K 等数据上进行验证,并使用 MMHalBench、Object HalBench、AMBER、LLaVA-Benchmark、MMinstruct 等基准进行评估。适合从事多模态大模型对齐研究与实验的开发者参考使用。

访问官网

工具介绍

用途

Vision-LLM-Alignment 旨在实现视觉大语言模型(Vision-LLM)的对齐训练,覆盖监督微调(SFT)、奖励模型(Reward Model)训练以及 PPO/DPO 对齐训练。项目面向基于视觉的大语言模型,包括 LLaVA 系列模型和 LLaMA-3.2-Vision 模型。

主要能力

  • 支持 SFT 训练、奖励模型训练、DPO 训练和 RLHF(PPO)训练。
  • 支持多图指令微调(针对 LLaMA-3.2-Vision),于 2024/10/03 加入。
  • 支持 LLaMA-3.2-Vision 训练:需将 model_architecture 与 template 参数设置为 "llama-3.2-vision",并通过 from_checkpoint 指定 LLaMA-Vision 模型路径(2024/09/28)。
  • 支持 LLaVA-NeXT(LLaVA-1.6)训练:将 model_architecture 设置为 "llava_next",并通过 from_checkpoint 指定模型路径(2024/08/19)。
  • 支持在所有训练阶段(SFT、RM、PPO/DPO)直接加载 LLaVA 模型(2024/07/10);SFT 阶段直接加载 LLaVA 模型的支持更早于 2024/07/07 加入。
  • 发布 RoVRM:一种通过辅助文本偏好数据优化的鲁棒视觉奖励模型,基于本仓库进行训练与应用(2024/08/21)。
  • 提供大规模视觉反馈数据集,位于 wangclnlp/vision-feedback-mix-binarized 与 wangclnlp/vision-feedback-mix-binarized-cleaned(2024/07/18)。

使用方式

可使用 anaconda/miniconda 安装项目所需的依赖包。Vision-LLM 需要视觉编码器与语言模型,其架构见仓库中的架构图;也可直接使用经 SFT 后的视觉 LLM(如 LLaVA-1.5/-NeXT 和 LLaMA-3.2-Vision-Instruction)作为 actor 模型。项目基于 LLaVA 数据集格式实现全部对齐训练,示例样本可在 data 文件夹中查看。训练流程包括:监督微调(SFT)、奖励模型训练、直接偏好优化(DPO)、基于人类反馈的强化学习(RLHF)。仓库给出支持从头训练 Vision-LLM 的模型列表,以及支持奖励模型训练、PPO 训练和 DPO 训练的 Vision-LLM 列表。其他架构相似的 LLM 也受支持;自定义模型架构可通过修改 training/utils/model/build_model.py(加载模型)和 training/utils/data/DST.py(模板)接入。

实验与评估

在系统开发过程中进行了一系列基准测试。偏好数据集选用 RLAIF-V,RLHF 训练的输入指令选用 LLaVA-Instruct-150K。模型评估阶段使用 MMHalBench、Object HalBench、AMBER、LLaVA-Benchmark、MMinstruct 等基准,对比对齐前后视觉 LLM 在可信度与有用性方面的差异。奖励模型训练使用 LLaVA-1.5-7B;对 LLaVA-1.5-7B 与 LLaVA-1.5-13B 两个模型分别执行 Best-of-n 采样与 RLHF 对齐训练,并针对这两个模型开展 DPO 训练,结果见仓库中的图表。

适用场景

适用于视觉大语言模型的对齐研究、SFT/RLHF/DPO 训练实验、奖励模型构建以及多模态模型可信度与有用性评估等场景。

限制与说明

仓库未在提供资料中说明具体的环境版本、硬件要求、训练耗时或成本。自定义模型架构需要修改指定代码文件。更多对齐算法集成或问题反馈可通过提交 issue 进行。