OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  R1-V — 面向视觉推理场景的开源多模态项目

R1-V — 面向视觉推理场景的开源多模态项目

 
  river ·  2026-04-09 11:00:39 · 3 次点击  · 0 条评论  

R1-V:以低于3美元的成本增强视觉语言模型的超级泛化能力

新闻:我们发布了新的VLM-RL环境、训练代码库和研究论文 G1:通过强化学习引导视觉语言模型的感知与推理能力,欢迎查看!

image

GitHub release

R1-V 路线图

我们正在为VLM中的RLVR构建一个通用框架。我们相信 深耕长期主义 的力量。

我们的兴趣:通用视觉语言智能 & 视觉/GUI智能体

我们的目标:🔄 算法增强 ⚡ 效率优化 🎯 任务多样性 🌲 有影响力的开源研究。

欢迎提出想法与贡献。敬请关注!

博客文章:

🎯 视觉语言模型中的RLVR:发现、问题与方向

资源:

🤗 R1V 训练数据集:CLEVR-70k-Counting

🤗 R1V 训练数据集:CLEVR-70k-Complex

🤗 R1V 训练数据集:GEOQA-8k

🤗 R1-蒸馏视觉推理数据集

R1-V 团队:

Liang Chen · Lei Li · Haozhe Zhao · Yifan Song · Vinci · Zihao Yue

贡献者:




更新日志

  • 2025-02-27:vLLM训练器现已支持Qwen2.5-VL,请参考 ./src/scripts/run_grpo_vllm_qwen25vl.sh 获取脚本和环境更新。
  • 2025-02-21:我们撰写了一篇博客文章,总结了我们在视觉RLVR实验中的主要发现和问题,欢迎查看!
  • 2025-02-12:我们修复了批处理解码错误。原始RL训练脚本现在速度提升了3倍。
  • 2025-02-12:R1-V 现在支持使用 vLLM 来加速训练(使用前请 pip install vllm==0.7.2)和SFT。
  • 2025-02-11:R1-V 现在支持 Qwen2.5-VL 和 GEOQA 任务。
  • 2025-02-06:我们上传了评估脚本并优化了README。我们正在撰写一篇博客文章,总结统计数据、发现和尚未充分探索的问题。
  • 2025-02-03:我们上传了训练代码库。
  • 2025-02-03:我们整理并上传了一些经过验证的Deepseek-R1视觉推理轨迹,其中包含一些特殊技巧(见 R1-V/src/distill_r1/)。当前的训练代码不依赖于此,欢迎探索。
  • 2025-02-03:我们发布了R1-V仓库。

致贡献者

  • 我们的最高开发优先级是解决标记为 help wanted 标签的问题,欢迎社区提供想法/PR来帮助解决它们。

Image

Image
注:在我们后续的实验中,我们发现让2B基础模型直接输出结果,而不是遵循 <think></think><answer></answer> 格式,会在SuperClevr上获得更高的分数(86%)。这表明强制进行思维链推理可能不仅不必要,甚至可能损害2B模型的性能。

image

环境设置

conda create -n r1-v python=3.11
conda activate r1-v

bash setup.sh

[!NOTE]
如果运行脚本时遇到错误,请首先尝试使用 ./src/requirements.txt 对齐您的环境。

支持的模型

  1. Qwen2-VL
  2. Qwen2.5-VL

支持的训练数据集

  1. 🤗 R1V 训练数据集:CLEVR-70k-Counting:物品计数问题

  2. 🤗 R1V 训练数据集:CLEVR-70k-Complex:数字相关推理

  3. 🤗 R1V 训练数据集:GEOQA-8k:几何推理

支持的评估任务

  1. SuperClevr-200:物品计数问题
  2. GeoQA-Test-Direct-Answer-735:几何推理

训练

GRPO

cd src/r1-v

export DEBUG_MODE="true" # 如果想在RL过程中查看模型的rollout,请启用Debug模式
export LOG_PATH="./debug_log_2b.txt"

torchrun --nproc_per_node="8" \
    --nnodes="1" \
    --node_rank="0" \
    --master_addr="127.0.0.1" \
    --master_port="12345" \
    src/open_r1/grpo.py \
    --output_dir <OUTPUT_DIR> \
    --model_name_or_path <PATH-TO-Qwen2-VL-2B-Instruct> \
    --dataset_name leonardPKU/clevr_cogen_a_train \
    --deepspeed local_scripts/zero3.json \
    --max_prompt_length 512 \
    --max_completion_length 512 \
    --per_device_train_batch_size 1 \
    --gradient_accumulation_steps 2 \
    --logging_steps 1 \
    --bf16 \
    --report_to wandb \
    --gradient_checkpointing false \
    --attn_implementation flash_attention_2 \
    --max_pixels 401408 \
    --num_train_epochs 2 \
    --run_name Qwen2-VL-2B-GRPO-CLEVR-70k \
    --save_steps 100 \
    --save_only_model true \
    --num_generations 8   # GRPO中的输出数量G,减少它会加快训练速度并降低内存消耗,但会增加方差

[!NOTE]
1. 要复现结果,请暂时将 per_device_train_batch_size 保持为1,因为目前存在一个关于批处理训练的已知bug。请查看此处的复现报告。我们意识到这对效率很重要,并正在与社区合作解决它。
2. 如果遇到 OOM 错误,可以尝试减少 --num_generations
3. 要使用vLLM加速,请参考此脚本

SFT

我们也提供了SFT代码,请按照脚本操作并编辑配置以自定义SFT任务。

accelerate launch --config_file src/r1-v/configs/zero2.yaml src/r1-v/src/open_r1/sft.py --config src/r1-v/configs/qwen2vl_sft_config.yaml

评估

SuperCLEVR

image

我们提供了示例脚本,可在1分钟内评估模型在SuperCLEVR子集上的OOD计数性能。您也可以修改脚本和数据集,在您自己的数据集上进行测试。

cd ./src/eval
wget https://www.cs.jhu.edu/~zhuowan/zhuowan/SuperCLEVR/to_be_released/images.zip
unzip images.zip

# 在脚本中更改模型路径
python test_qwen2vl_counting_superclevr.py

# 测试得分:
# Qwen2VL-2B-Instruct: 48.0%
# Qwen2VL-2B-Instruct-GRPO-100step: 82.5%

GEOQA

截屏2025-02-11 13 38 50
截屏2025-02-11 14 54 16

我们提供了示例脚本,用于在GEOQA测试集(直接答案形式)上进行评估。

# 准备测试图像
cd ./src/eval
git lfs install
git clone https://huggingface.co/datasets/Luckyjhg/Geo170K
cd Geo170K
unzip images.zip

# 评估脚本
python test_qwen2vl_geoqa.py

# 测试得分:
# Qwen2VL-7B-Instruct: 30.63%
# Qwen2VL-7B-Instruct-GRPO-2epochs: 38.72%

# Qwen2.5VL-3B-Instruct: 35.41%
# Qwen2.5VL-3B-Instruct-GRPO-1epochs: 47.48%

要使用多个GPU实现更快的推理,您也可以使用 R1-V/src/scripts/test_grpo_geoqa_multigpu.sh 中的脚本。

bash src/scripts/test_grpo_geoqa_multigpu.sh

致谢

我们衷心感谢 DeepSeekOpen-R1QwenVLOpen-R1-Multimodal(我们的初始代码库)、CLEVRSuperCLEVRG-LLAVA 提供开源资源并构建本项目。特别感谢 KimibAInance Labs 提供计算资源支持,以及 Yuxin WuXinyu ZhouBaobao Chang 提供的宝贵建议。

Star History Chart

引用

@misc{chen2025r1v,
  author       = {Chen, Liang and Li, Lei and Zhao, Haozhe and Song, Yifan and Vinci},
  title        = {R1-V: Reinforcing Super Generalization Ability in Vision-Language Models with Less Than \$3},
  howpublished = {\url{https://github.com/Deep-Agent/R1-V}},
  note         = {Accessed: 2025-02-02},
  year         = {2025}
}
3 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 32 ms
Developed with Cursor