Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

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 lidar com entradas multimodais, como imagens e texto, e de se destacar nas áreas de raciocínio visual, compreensão de imagens e solução de problemas matemáticos. Otimizado com base no modelo Qwen2.5-VL, o R1-Onevision supera modelos semelhantes, 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. Desde o seu lançamento em 24 de fevereiro de 2025, 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 modelos (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:

importar torch
print(torch.cuda.is_available()) # output True significa que a GPU está disponível.

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 inferir.py), digite o seguinte código:
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration
importar torch
from qwen_vl_utils import process_vision_info
# Carregar modelos e processadores
MODEL_ID = "models/R1-Onevision-7B" # Substituir pelo caminho real do modelo
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()
# Imagem e texto de entrada
mensagens = [
{
"função": "usuário",
"conteúdo": [
{"type": "image", "image": "path/to/your/image.jpg"}, # Substituir pelo caminho da imagem local
{"type": "text", "text": "Descreva sobre o que é essa imagem e responda: quantas pessoas estão na imagem?"}
]
}
]
# Processamento de entradas
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 mensagens 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:
A pergunta na figura é: 2x + 3 = 7
Processo de solução:
1. subtrair 3 de ambos os lados: 2x + 3 - 3 = 7 - 3
2. simplificar: 2x = 4
3. Divida ambos os lados por 2: 2x / 2 = 4 / 2
4. E você obtém: x = 2
Resposta final: 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.
CDN1
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

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil