Introdução geral
O VLM-R1 é um projeto de modelagem de linguagem visual de código aberto desenvolvido pelo Om AI Lab e hospedado no GitHub. Com base na metodologia R1 do DeepSeek, o projeto combina o modelo Qwen2.5-VL com técnicas de aprendizado por reforço (R1) e ajuste fino supervisionado (SFT) para melhorar significativamente a estabilidade do modelo e a capacidade de generalização em tarefas de compreensão visual. O VLM-R1 é particularmente bom em lidar com a compreensão de expressão de referência (REC), por exemplo, respondendo a perguntas como "Onde está a xícara vermelha na imagem? O VLM-R1 é particularmente bom em REC, por exemplo, respondendo a perguntas como "onde está a xícara vermelha na foto" e identificando alvos em imagens. O projeto fornece scripts de instalação detalhados, suporte a conjuntos de dados e código de treinamento para que desenvolvedores e pesquisadores possam explorar e desenvolver tarefas de linguagem visual. Em fevereiro de 2025, o projeto já havia acumulado quase 2.000 hashtags no GitHub, demonstrando seu amplo interesse em IA multimodal.
Endereço de demonstração: https://huggingface.co/spaces/omlab/VLM-R1-Referral-Expression
Lista de funções
- Refere-se à Expressão Representacional de Compreensão (REC)Capacidade de analisar comandos de linguagem natural para localizar alvos específicos em uma imagem.
- Processamento conjunto de imagens e textosSuporte para entrada simultânea de imagem e texto para gerar resultados de análise precisos.
- Otimização do aprendizado aprimoradoR1: Aprimoramento do desempenho do modelo em tarefas visuais complexas por meio de treinamento com o método R1.
- Código de treinamento de código abertoScripts de treinamento completos e arquivos de configuração são fornecidos para facilitar a personalização do modelo.
- Suporte a conjuntos de dadosRecursos integrados de download e processamento de conjuntos de dados COCO e RefCOCO simplificam o processo de desenvolvimento.
- Suporte de inferência de alto desempenhoCompatível com Flash Attention e outras tecnologias para melhorar a eficiência da computação.
Usando a Ajuda
Processo de instalação
O VLM-R1 é um projeto baseado em Python que requer determinadas configurações de ambiente para ser executado. Aqui estão as etapas detalhadas de instalação e uso para ajudar os usuários a começar rapidamente.
1. preparação ambiental
- Instalação do AnacondaRecomendamos que você use o Anaconda para gerenciar seu ambiente Python para garantir a compatibilidade do sistema. Download: site oficial do Anaconda. Após a conclusão da instalação, abra o terminal.
- Criação de um ambiente virtualDigite o seguinte comando no terminal para criar um arquivo chamado
vlm-r1
Ambiente Python 3.10:conda create -n vlm-r1 python=3.10
- ambiente de ativaçãoAtivação: Ative o ambiente que você acabou de criar:
conda activate vlm-r1
2. instalar as dependências do projeto
- projeto de clonagemFaça o download do repositório de código do VLM-R1 localmente. Abra um terminal e digite:
git clone https://github.com/om-ai-lab/VLM-R1.git cd VLM-R1
- Execute o script de instalaçãoO projeto fornece um
setup.sh
Script para instalação automatizada de dependências. Execute-o no terminal:bash setup.sh
Esse script instala as bibliotecas principais, como PyTorch, Transformers, etc., para garantir que o ambiente esteja pronto.
3. preparação de dados
- Download do conjunto de dados COCOVLM-R1: o VLM-R1 foi treinado usando o conjunto de dados de imagem COCO Train2014. Execute o seguinte comando para fazer o download e descompactá-lo:
wget http://images.cocodataset.org/train2014/train2014.zip descompactar train2014.zip -d
Anote o caminho de descompactação
que será necessário nas configurações subsequentes.
- Faça o download do arquivo de rotulagem do RefCOCORefCOCO: O conjunto de dados RefCOCO é usado para se referir a tarefas de representação. O link para download pode ser encontrado na documentação do projeto, descompacte-o e coloque-o no diretório apropriado.
4. modelos de treinamento
- Configuração dos parâmetros de treinamento: Acesso
src/open-r1-multimodal
edite os parâmetros no script de treinamento. Exemplo:cd src/open-r1-multimodal
modificações
grpo_rec.py
ou especificar parâmetros ao executar o comando. A seguir, um exemplo de comando: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 \ ---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
- Descrição do parâmetro:
--nproc_per_node
Número de GPUs: Número de GPUs, a ser ajustado para seu hardware.--image_root
Substitua pelo caminho do conjunto de dados COCO.--output_dir
Caminho para salvar o modelo: O caminho para salvar o modelo.
- Descrição do parâmetro:
5. fluxo de operação funcional
Refere-se à Expressão Representacional de Compreensão (REC)
- Execução de scripts de testeApós a conclusão do treinamento, use o script de teste fornecido para verificar a eficácia do modelo. Digite
src/eval
Catálogo:cd src/eval python test_rec_r1.py --model_path --image_root --annotation_path
- Exemplo de entrada. Carregue uma imagem e digite uma pergunta como "Onde está o carro azul na imagem?". . O modelo retornará as coordenadas ou a descrição do local de destino.
Análise de imagens e textos
- Prepare-se para entrarArquivo de imagem: Coloque o arquivo de imagem e o texto da pergunta no diretório especificado ou especifique o caminho diretamente no script.
- raciocínio de execuçãoUsando o script de teste acima, o modelo gera uma análise do conteúdo da imagem, por exemplo, categoria do objeto, posição etc.
Treinamento personalizado
- Modificar o conjunto de dadosSe você quiser usar seu próprio conjunto de dados, edite o
data_config/rec.yaml
Adicione caminhos de imagem e arquivos rotulados. - Ajuste dos hiperparâmetrosModificado para atender às necessidades do mandato
grpo_rec.py
Parâmetros como taxa de aprendizado, tamanho do lote, etc. no
6. cuidados
- Requisitos de hardwareRecomendamos o uso de uma GPU com pelo menos 8 GB de RAM, ou menos, se os recursos forem limitados.
num_generations
para reduzir o espaço ocupado pela memória. - modo de depuraçãoPode ser definido durante o treinamento
exportar DEBUG_MODE="true"
Visualize o registro detalhado. - Suporte à comunidadeSe tiver problemas, faça perguntas na página de problemas do GitHub e a equipe e a comunidade do Om AI Lab ajudarão.
Seguindo as etapas acima, os usuários podem instalar e usar totalmente o VLM-R1 para começar rapidamente e aproveitar seus recursos avançados, quer estejam realizando pesquisas sobre tarefas de visão ou desenvolvendo aplicações no mundo real.