R1-V 是一个开源项目,专注于通过强化学习(RL)提升视觉语言模型(VLM)的泛化能力,并以极低的成本(不到3美元)实现。项目名称为“Reinforcing Super Generalization Ability in Vision Language Models with Less Than $3”。
用途
R1-V 旨在构建一个通用的 VLM 强化学习框架,特别关注视觉语言智能和视觉/GUI代理。其目标包括算法增强、效率优化、任务多样性和有影响力的开源研究。
主要能力
- 提供强化学习训练代码库,支持多种 VLM 模型(如 Qwen2.5-VL)和任务(如物品计数、几何推理)。
- 发布多个训练数据集,包括 CLEVR-70k-Counting(计数)、CLEVR-70k-Complex(数字推理)、GEOQA-8k(几何推理)以及 R1-Distilled 视觉推理数据集。
- 支持 vLLM 加速训练和推理,提升效率。
- 提供评估脚本,可在 SuperCLEVR 和 GEOQA 等数据集上测试模型性能。
- 支持 SFT(监督微调)代码,可自定义任务。
- 定期更新,修复错误并优化性能(如批量解码错误修复,训练速度提升3倍)。
使用方式
- 环境配置:参考
./src/requirements.txt对齐环境。 - 训练:使用提供的脚本(如
run_grpo_vllm_qwen25vl.sh),注意目前per_device_train_batch_size需设为1以避免已知的批量训练错误。 - 加速:可安装 vLLM(
pip install vllm==0.7.2)以加速训练。 - 评估:使用示例脚本在 SuperCLEVR 和 GEOQA 上评估,支持多 GPU 推理。
- 自定义:可修改脚本和配置以适应自己的数据集和任务。
适用场景
- 研究视觉语言模型的强化学习泛化能力。
- 在计数、几何推理等任务上训练和评估 VLM。
- 探索链式思考(CoT)对模型性能的影响(实验表明对2B模型可能有害)。
限制
- 目前已知批量训练存在错误,需将
per_device_train_batch_size设为1。 - 训练时可能遇到内存不足(OOM)错误,可尝试减少
--num_generations。 - 部分功能(如 vLLM 支持)需要特定版本安装。
- 项目仍在开发中,部分功能可能不完善,建议关注更新。
项目欢迎社区贡献,优先解决标记为“help wanted”的问题。