AI个人学习
和实操指南
资源推荐1

VLM-R1:通过自然语言定位图像目标的视觉语言模型

综合介绍

VLM-R1 是由 Om AI Lab 开发的一个开源视觉语言模型项目,托管在 GitHub 上。该项目基于 DeepSeek 的 R1 方法,结合 Qwen2.5-VL 模型,通过强化学习(R1)和监督微调(SFT)技术,显著提升了模型在视觉理解任务中的稳定性与泛化能力。VLM-R1 特别擅长处理指代表达理解(REC),例如回答“图中红色的杯子在哪里”这类问题,并能在图像中精确定位目标。项目提供详细的安装脚本、数据集支持以及训练代码,适合开发者、研究人员用于视觉语言任务的探索与开发。截至 2025 年 2 月,该项目在 GitHub 上已获得近 2000 星标,显示出其在多模态 AI 领域的广泛关注。

VLM-R1:擅长视觉理解任务的强化学习视觉语言模型-1

演示地址: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,无论是进行视觉任务研究还是开发实际应用,都能快速上手并发挥其强大功能。

工具下载
未经允许不得转载:首席AI分享圈 » VLM-R1:通过自然语言定位图像目标的视觉语言模型

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文