Introdução geral
O Qwen2.5-VL é um grande modelo multimodal de código aberto desenvolvido pela equipe do Qwen na Alibaba Cloud. Ele pode processar simultaneamente texto, imagens, vídeos e documentos, e é uma versão atualizada do Qwen2-VL, desenvolvido com base no modelo de linguagem Qwen2.5. Oficialmente, ele foi bastante aprimorado nas funções de análise de documentos, compreensão de vídeo e agente inteligente, e suporta quatro escalas de parâmetros, 3B, 7B, 32B e 72B, para atender a uma variedade de necessidades, de computadores pessoais a servidores. O projeto está hospedado no GitHub sob a licença Apache 2.0 e é gratuito e de código aberto. O qwen2.5-VL tem um bom desempenho em vários testes, com algumas métricas superando o modelo de código fechado, o que o torna adequado para que os desenvolvedores criem ferramentas inteligentes, como um extrator de documentos, um analisador de vídeo ou um assistente de operação de dispositivo.
Lista de funções
- Reconheça objetos, textos e layouts em imagens, com suporte para cenas naturais e vários idiomas.
- Entenda vídeos muito longos (mais de uma hora) e localize clipes de eventos de segundos.
- Analisa documentos complexos e extrai texto manuscrito, tabelas, gráficos e fórmulas químicas.
- Controle um computador ou telefone celular por meio de comandos visuais e textuais para executar tarefas de agente inteligente.
- Emite dados estruturados, como coordenadas ou informações de atributos no formato JSON.
- Suporta resolução dinâmica e ajuste da taxa de quadros para otimizar a eficiência do processamento de vídeo.
Usando a Ajuda
Processo de instalação
Para executar o Qwen2.5-VL localmente, você precisa preparar o ambiente do software. A seguir estão as etapas detalhadas:
- Inspeção do ambiente básico
É necessário ter Python 3.8+ e Git. Verifique o terminal digitando o seguinte comando:
python --version
git --version
Se você não o tiver instalado, poderá baixá-lo nos sites do Python e do Git.
- Código de download
Execute o seguinte comando em um terminal para clonar seu repositório do GitHub:
git clone https://github.com/QwenLM/Qwen2.5-VL.git
cd Qwen2.5-VL
- Instalação de dependências
O projeto requer bibliotecas Python específicas, que são instaladas com a execução do seguinte comando:
pip install git+https://github.com/huggingface/transformers@f3f6c86582611976e72be054675e2bf0abb5f775
pip install accelerate
pip install qwen-vl-utils[decord]
pip install 'vllm>0.7.2'
Se você tiver uma GPU, instale o PyTorch com suporte a CUDA:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
Observações:decord
Para o carregamento acelerado do vídeo, os usuários que não são do Linux podem fazer o download do vídeo no site decord GitHub Instalação do código-fonte.
- modelo de priming
Faça o download e execute o modelo, por exemplo, a versão 7B:
vllm serve Qwen/Qwen2.5-VL-7B-Instruct --port 8000 --host 0.0.0.0 --dtype bfloat16
Os modelos são baixados automaticamente do Hugging Face e os serviços locais são iniciados.
Como usar os principais recursos
Após a instalação, o Qwen2.5-VL pode ser operado a partir do código ou da interface da Web.
reconhecimento de imagens
Deseja que o modelo descreva a imagem? Crie um novo image_test.py
Digite o seguinte código:
from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
from qwen_vl_utils import process_vision_info
from PIL import Image
model = Qwen2VLForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct", torch_dtype="auto", device_map="auto")
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")
messages = [{"role": "user", "content": [{"type": "image", "image": "图片路径或URL"}, {"type": "text", "text": "描述这张图片"}]}]
text = processor.apply_chat_template(messages, tokenize=False)
inputs = processor(text=[text], images=[Image.open("图片路径或URL")], padding=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
output = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)
Quando executado, o modelo gera uma descrição, por exemplo, "A imagem mostra um gato sentado no parapeito de uma janela".
Compreensão de vídeo
Os arquivos locais precisam ser preparados para a análise do vídeo (por exemplo video.mp4
). Use o código a seguir:
messages = [{"role": "user", "content": [{"type": "video", "video": "video.mp4"}, {"type": "text", "text": "总结视频内容"}]}]
text = processor.apply_chat_template(messages, tokenize=False)
inputs = processor(text=[text], videos=[processor.process_video("video.mp4")], padding=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
output = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)
O resultado pode ser: "O vídeo mostra uma competição culinária em que os participantes fazem pizzas".
resolução de documentos
Carregue um PDF ou uma imagem, use um código semelhante ao reconhecimento de imagem, altere o prompt para "Extract table data" (Extrair dados da tabela) e o modelo retornará resultados estruturados, como:
[{"列1": "值1", "列2": "值2"}]
Agentes inteligentes
Deseja controlar um dispositivo? Use cookbooks/computer_use.ipynb
Exemplo. Depois de executá-lo, digite "Open Notepad and type 'Hello'" e o modelo simulará a operação e retornará o resultado.
Uso da interface da Web
estar em movimento web_demo_mm.py
Inicie a interface da Web:
python web_demo_mm.py
acesso ao navegador http://127.0.0.1:7860
Se você não tiver certeza se deve carregar um arquivo ou inserir um comando, o modelo o processará diretamente.
otimizar o desempenho
- Flash Attention 2Raciocínio acelerado, usado após a instalação:
pip install -U flash-attn --no-build-isolation python web_demo_mm.py --flash-attn2
- Ajuste de resolução: Configurações
min_pixels
responder cantandomax_pixels
Controle o tamanho da imagem, como o intervalo de 256 a 1280, para equilibrar velocidade e memória.
cenário do aplicativo
- pesquisa acadêmica
Os alunos carregam imagens de seus trabalhos e o modelo extrai fórmulas e dados para gerar uma análise. - clipe de vídeo
O criador insere um vídeo longo e o modelo extrai os principais clipes para gerar um resumo. - Gerenciamento de documentos corporativos
O funcionário faz o upload de uma cópia digitalizada do contrato, o modelo extrai as cláusulas e gera o formulário. - assistente inteligente
O usuário usa imagens e comandos de voz para fazer com que o modelo procure informações de voo em seu telefone celular.
QA
- Quais são os idiomas suportados?
Oferece suporte a chinês, inglês e vários idiomas (por exemplo, francês, alemão), reconhece texto multilíngue e conteúdo manuscrito. - Quais são os requisitos de hardware?
O modelo 3B requer 8 GB de memória de vídeo, o 7B requer 16 GB e os dispositivos profissionais com mais de 24 GB de memória de vídeo são recomendados para o 32B e o 72B. - Como lidar com vídeos muito longos?
Os modelos são amostrados com taxas de quadros dinâmicas e são capazes de compreender horas de vídeo e identificar eventos de segundo nível.