Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

R1-Onevision: um modelo de linguagem visual de código aberto que oferece suporte ao raciocínio multimodal

Introdução geral

O R1-Onevision é um modelo de linguagem grande multimodal de código aberto desenvolvido pela equipe do Fancy-MLLM, que se concentra na combinação profunda de visão e linguagem, capaz de processar entradas multimodais, como imagens e texto, e de se destacar nos campos de raciocínio visual, compreensão de imagens e solução de problemas matemáticos. Com base em Qwen2.5-VL Com a otimização do modelo, o R1-Onevision supera modelos comparáveis, como o Qwen2.5-VL-7B, em vários benchmarks e até desafia os recursos do GPT-4V. O projeto está hospedado no GitHub, fornecendo pesos de modelos, conjuntos de dados e códigos adequados para desenvolvedores, pesquisadores para exploração acadêmica ou aplicações práticas.2025 Desde o seu lançamento em 24 de fevereiro, ele tem recebido muita atenção e tem tido um desempenho especialmente bom em tarefas de raciocínio visual.

R1-Onevision: um modelo de linguagem visual de código aberto que oferece suporte ao raciocínio multimodal-1


 

Lista de funções

  • inferência multimodalSuporte para tarefas de raciocínio complexas que combinam imagens e texto, como resolução de problemas matemáticos e análise de problemas científicos.
  • compreensão gráficaCapacidade de analisar o conteúdo de uma imagem e gerar uma descrição detalhada ou responder a perguntas relevantes.
  • Suporte a conjuntos de dadosR1-Onevision: fornece conjuntos de dados R1-Onevision contendo dados de vários domínios, como cenas naturais, OCR, gráficos e muito mais.
  • treinamento de modelosSuporte ao ajuste fino supervisionado (SFT) de modelo completo usando a estrutura LLama-Factory de código aberto.
  • Avaliação de alto desempenhoDemonstrar melhor raciocínio do que seus colegas em testes como Mathvision, Mathverse, etc.
  • recurso de código abertoPeso: Forneça pesos e códigos de modelo para facilitar o desenvolvimento secundário ou a pesquisa.

 

Usando a Ajuda

Processo de instalação

O R1-Onevision é um projeto de código aberto baseado no GitHub que requer uma determinada base de programação e configuração de ambiente para ser executado. A seguir, um guia detalhado de instalação e uso:

1. preparação ambiental

  • sistema operacionalRecomendamos o uso de Linux (por exemplo, Ubuntu) ou Windows (com WSL).
  • Requisitos de hardwareGPU NVIDIA (pelo menos 16 GB de memória de vídeo, como A100 ou RTX 3090) é recomendada para dar suporte à inferência e ao treinamento do modelo.
  • dependente de software::
    • Python 3.8 ou posterior.
    • PyTorch (recomendamos instalar a versão GPU, consulte o site do PyTorch).
    • Git (para clonar repositórios de código).

2. clonagem de armazéns

Abra um terminal e execute o seguinte comando para obter o código do projeto R1-Onevision:

git clone https://github.com/Fancy-MLLM/R1-Onevision.git
cd R1-Onevision

3. instalação de dependências

O projeto depende de várias bibliotecas Python, que podem ser instaladas com os seguintes comandos:

pip install -r requirements.txt

Se você precisar acelerar o raciocínio, recomendamos a instalação do Flash Attention:

pip install flash-attn --no-build-isolation

4. download dos pesos do modelo

O R1-Onevision fornece modelos pré-treinados que podem ser baixados do Hugging Face:

  • Visite a página do modelo Hugging Face.
  • Faça o download do arquivo do modelo (por exemplo R1-Onevision-7B) e extraia-o para o diretório do projeto no diretório models (precisa ser criada manualmente).

5. ambiente de configuração

Certifique-se de que o CUDA esteja instalado corretamente e seja compatível com o PyTorch, o que pode ser verificado com a execução do código a seguir:

import torch
print(torch.cuda.is_available())  # 输出 True 表示 GPU 可用

Uso

Raciocínio básico: análise de imagens e textos

O R1-Onevision suporta a execução de tarefas de inferência por meio de scripts Python. Abaixo está um exemplo de carregamento de um modelo e processamento de imagens e texto:

  1. Escrever scripts de raciocínio::
    Crie um arquivo no diretório raiz do projeto (por exemplo infer.py), digite o seguinte código:
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration
import torch
from qwen_vl_utils import process_vision_info
# 加载模型和处理器
MODEL_ID = "models/R1-Onevision-7B"  # 替换为模型实际路径
processor = AutoProcessor.from_pretrained(MODEL_ID, trust_remote_code=True)
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
MODEL_ID, trust_remote_code=True, torch_dtype=torch.bfloat16
).to("cuda").eval()
# 输入图像和文本
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": "path/to/your/image.jpg"},  # 替换为本地图像路径
{"type": "text", "text": "请描述这张图片的内容并回答:图中有几个人?"}
]
}
]
# 处理输入
inputs = processor(messages, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=512)
response = processor.decode(outputs[0], skip_special_tokens=True)
print(response)
  1. Executando scripts::
python infer.py

O script produzirá uma descrição da imagem e uma resposta. Por exemplo, se houver duas pessoas na imagem, o modelo poderá retornar: "A imagem mostra uma cena de parque com duas pessoas sentadas em um banco".

Característica: Raciocínio matemático

A R1-Onevision se destaca no raciocínio visual matemático. Supondo que uma imagem contenha um problema matemático (por exemplo, "2x + 3 = 7, encontre x"), as seguintes etapas podem ser seguidas:

  1. modificações messages O texto diz: "Responda à pergunta de matemática desta figura e forneça o cálculo".
  2. Execute o script e o modelo retornará resultados semelhantes aos seguintes:
图片中的题目是:2x + 3 = 7
解题过程:
1. 两边同时减去 3:2x + 3 - 3 = 7 - 3
2. 简化得:2x = 4
3. 两边同时除以 2:2x / 2 = 4 / 2
4. 得出:x = 2
最终答案:x = 2

Uso do conjunto de dados

O R1-Onevision fornece conjuntos de dados dedicados que podem ser usados para ajuste fino ou teste do modelo:

  • Faça o download do conjunto de dados: página do conjunto de dados Hugging Face.
  • Os dados contêm pares de imagens e textos e podem ser usados diretamente para treinamento ou validação após a descompactação.

Modelagem do ajuste fino

Se for necessário um modelo personalizado, o ajuste fino supervisionado pode ser realizado usando o LLama-Factory:

  1. Instale o LLama-Factory:
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -r requirements.txt
  1. Configure os parâmetros de treinamento (consulte a documentação do projeto) e execute:
python train.py --model_name models/R1-Onevision-7B --dataset path/to/dataset

Resumo do processo de operação

  • análise de imagensPreparação do caminho da imagem: Prepare o caminho da imagem, escreva o script e execute-o para obter o resultado.
  • raciocínio matemáticoCarregar uma imagem do tópico, inserir uma pergunta e visualizar a resposta detalhada.
  • Desenvolvimento personalizadoDownload do conjunto de dados e do modelo e ajuste dos parâmetros para treinamento.
    Tenha em mente o uso da memória da GPU; recomenda-se pelo menos 16 GB de memória de vídeo para garantir uma operação tranquila.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " R1-Onevision: um modelo de linguagem visual de código aberto que oferece suporte ao raciocínio multimodal
pt_BRPortuguês do Brasil