综合介绍
VLM-R1 是由 Om AI Lab 开发的一个开源视觉语言模型项目,托管在 GitHub 上。该项目基于 DeepSeek 的 R1 方法,结合 Qwen2.5-VL 模型,通过强化学习(R1)和监督微调(SFT)技术,显著提升了模型在视觉理解任务中的稳定性与泛化能力。VLM-R1 特别擅长处理指代表达理解(REC),例如回答“图中红色的杯子在哪里”这类问题,并能在图像中精确定位目标。项目提供详细的安装脚本、数据集支持以及训练代码,适合开发者、研究人员用于视觉语言任务的探索与开发。截至 2025 年 2 月,该项目在 GitHub 上已获得近 2000 星标,显示出其在多模态 AI 领域的广泛关注。
演示地址:https://huggingface.co/spaces/omlab/VLM-R1-Referral-Expression
功能列表
- 指代表达理解(REC):能够解析自然语言指令,定位图像中的特定目标。
- 图像与文本联合处理:支持同时输入图像和文字,生成准确的分析结果。
- 强化学习优化:通过 R1 方法训练,提升模型在复杂视觉任务中的表现。
- 开源训练代码:提供完整的训练脚本和配置文件,方便用户自定义模型。
- 数据集支持:内置 COCO 和 RefCOCO 数据集下载与处理功能,简化开发流程。
- 高性能推理支持:兼容 Flash Attention 等技术,提升计算效率。
使用帮助
安装流程
VLM-R1 是一个基于 Python 的项目,需要一定的环境配置才能运行。以下是详细的安装与使用步骤,帮助用户快速上手。
1. 环境准备
- 安装 Anaconda:建议使用 Anaconda 管理 Python 环境,确保系统兼容性。下载地址:Anaconda 官网。安装完成后,打开终端。
- 创建虚拟环境:在终端输入以下命令,创建一个名为
vlm-r1
的 Python 3.10 环境:conda create -n vlm-r1 python=3.10
- 激活环境:激活刚刚创建的环境:
conda activate vlm-r1
2. 安装项目依赖
- 克隆项目:将 VLM-R1 的代码仓库下载到本地。打开终端,输入:
git clone https://github.com/om-ai-lab/VLM-R1.git cd VLM-R1
- 运行安装脚本:项目提供了一个
setup.sh
脚本,用于自动安装依赖。在终端中运行:bash setup.sh
该脚本会安装 PyTorch、Transformers 等核心库,确保环境就绪。
3. 数据准备
- 下载 COCO 数据集:VLM-R1 使用 COCO Train2014 图像数据集进行训练。运行以下命令下载并解压:
wget http://images.cocodataset.org/train2014/train2014.zip unzip train2014.zip -d <your_image_root>
记下解压路径
<your_image_root>
,后续配置中需要用到。 - 下载 RefCOCO 标注文件:RefCOCO 数据集用于指代表达任务。下载链接可在项目文档中找到,解压后放置在合适目录。
4. 训练模型
- 配置训练参数:进入
src/open-r1-multimodal
目录,编辑训练脚本中的参数。例如:cd src/open-r1-multimodal
修改
grpo_rec.py
或运行命令时指定参数。以下是一个示例命令:torchrun --nproc_per_node=8 --nnodes=1 --node_rank=0 --master_addr="127.0.0.1" --master_port="12346" \ src/open_r1/grpo_rec.py \ --deepspeed local_scripts/zero3.json \ --output_dir output/my_model \ --model_name_or_path Qwen/Qwen2.5-VL-3B-Instruct \ --dataset_name data_config/rec.yaml \ --image_root <your_image_root> \ --max_prompt_length 1024 \ --num_generations 8 \ --per_device_train_batch_size 1 \ --gradient_accumulation_steps 2 \ --logging_steps 1 \ --bf16 \ --torch_dtype bfloat16 \ --num_train_epochs 2 \ --save_steps 100
- 参数说明:
--nproc_per_node
:GPU 数量,需根据你的硬件调整。--image_root
:替换为你的 COCO 数据集路径。--output_dir
:模型保存路径。
- 参数说明:
5. 功能操作流程
指代表达理解(REC)
- 运行测试脚本:训练完成后,使用提供的测试脚本验证模型效果。进入
src/eval
目录:cd src/eval python test_rec_r1.py --model_path <your_trained_model> --image_root <your_image_root> --annotation_path <refcoco_annotation>
- 输入示例:上传一张图片并输入问题,例如“图中的蓝色汽车在哪里?”。模型会返回目标位置的坐标或描述。
图像与文本分析
- 准备输入:将图像文件和问题文本放入指定目录,或直接在脚本中指定路径。
- 运行推理:使用上述测试脚本,模型会输出对图像内容的分析结果,例如物体类别、位置等。
自定义训练
- 修改数据集:若需使用自己的数据集,编辑
data_config/rec.yaml
,添加图片路径和标注文件。 - 调整超参数:根据任务需求修改
grpo_rec.py
中的学习率、批次大小等参数。
6. 注意事项
- 硬件要求:建议使用至少 8GB 显存的 GPU,若资源有限,可减少
num_generations
参数以降低内存占用。 - 调试模式:在训练时可设置
export DEBUG_MODE="true"
,查看详细日志。 - 社区支持:如遇到问题,可在 GitHub Issues 页面提问,Om AI Lab 团队和社区会提供帮助。
通过以上步骤,用户可以完整安装并使用 VLM-R1,无论是进行视觉任务研究还是开发实际应用,都能快速上手并发挥其强大功能。