用途
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 进行。