Introdução geral
O Qwen2.5-Omni é um modelo de IA multimodal de código aberto desenvolvido pela equipe do Alibaba Cloud Qwen. Ele pode processar várias entradas, como texto, imagens, áudio e vídeo, e gerar respostas em texto ou fala natural em tempo real. O modelo foi lançado em 26 de março de 2025, e o código e os arquivos do modelo estão hospedados no GitHub e podem ser baixados e usados gratuitamente por todos. Ele usa a arquitetura Thinker-Talker e a tecnologia TMRoPE para garantir o processamento eficiente de dados multimodais. O Qwen2.5-Omni tem bom desempenho em tarefas como reconhecimento de fala, compreensão de imagem e análise de vídeo, e é adequado para cenários como assistentes inteligentes e processamento de multimídia.
Lista de funções
- Suporta entradas multimodais: pode processar texto, imagens, áudio e vídeo simultaneamente.
- Resposta de streaming em tempo real: o feedback de texto ou voz é gerado imediatamente após a entrada.
- Síntese de fala natural: gera uma fala clara e natural, com suporte a vários tons.
- Compreensão de imagens e vídeos: identificar o conteúdo da imagem ou analisar clipes de vídeo.
- Acompanhamento de comandos de ponta a ponta: conclua tarefas diretamente com base em comandos de voz ou texto.
- Código aberto e gratuito: código completo e modelos são fornecidos para dar suporte à personalização do usuário.
Realizamos uma avaliação abrangente do Qwen2.5-Omni. Os resultados mostram que ele tem um desempenho excelente em todas as modalidades, o que lhe dá uma vantagem sobre modelos de modalidade única de tamanho igual, bem como sobre modelos de código fechado, como o Qwen2.5-VL-7B, o Qwen2-Audio e o Gemini-1.5-Pro. Em tarefas que exigem a integração de várias modalidades, como o OmniBench, o Qwen2.5-Omni atinge o desempenho mais avançado. Além disso, em tarefas de modalidade única, ele se destaca nas áreas de reconhecimento de fala (Common Voice), tradução (CoVoST2), compreensão de áudio (MMAU), raciocínio de imagem (MMMU, MMStar), compreensão de vídeo (MVBench) e geração de fala (Seed-tts-eval e Subjective Naturalness).
Usando a Ajuda
O uso do Qwen 2.5-Omni requer um certo nível de conhecimento técnico. Abaixo está um guia detalhado de instalação e operação para ajudar os usuários a começar rapidamente.
Processo de instalação
- Preparação do ambiente
- Certifique-se de que o Python 3.10 ou posterior esteja instalado.
- O Git é necessário para fazer o download do código.
- Recomendado para sistemas Linux, sistemas não Linux podem exigir configuração adicional.
- Código de download
- Clone seu repositório do GitHub digitando o comando no terminal:
git clone https://github.com/QwenLM/Qwen2.5-Omni.git
- Vá para o catálogo de projetos:
cd Qwen2.5-Omni
- Clone seu repositório do GitHub digitando o comando no terminal:
- Instalação de dependências
- Como o código não foi totalmente incorporado à ramificação principal do Hugging Face, é necessário instalar uma versão específica do Transformers:
pip uninstall transformers pip install git+https://github.com/huggingface/transformers@3a1ead0aabed473eafe527915eea8c197d424356 pip install accelerate
- Instale a ferramenta de processamento multimodal:
pip install qwen-omni-utils[decord]
- Observação: É necessário fazer a pré-instalação
ffmpeg
Os usuários do Linux podem executarsudo apt install ffmpeg
. - Usuários que não são do Linux e não conseguem instalar
decord
, pode ser substituído por:pip install qwen-omni-utils
- Observação: É necessário fazer a pré-instalação
- Como o código não foi totalmente incorporado à ramificação principal do Hugging Face, é necessário instalar uma versão específica do Transformers:
- Modelos para download
- Faça o download do modelo Qwen2.5-Omni-7B da Hugging Face (https://huggingface.co/Qwen/Qwen2.5-Omni-7B), salve-o localmente.
- Verificar a instalação
- Execute o seguinte comando para verificar o ambiente:
python -c "from transformers import Qwen2_5OmniModel; print('安装成功')"
- Execute o seguinte comando para verificar o ambiente:
Função Fluxo de operação
1. processamento de entradas de texto
- procedimento::
- Carregue modelos e processadores:
from transformers import Qwen2_5OmniModel, Qwen2_5OmniProcessor model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto") processor = Qwen2_5OmniProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")
- Insira o texto e gere uma resposta:
text = "今天天气怎么样?" inputs = processor(text=text, return_tensors="pt") outputs = model.generate(**inputs) print(processor.batch_decode(outputs, skip_special_tokens=True))
- Carregue modelos e processadores:
- no finalResposta de texto: retorne respostas de texto como "It's a sunny day with a nice temperature" (É um dia ensolarado com uma temperatura agradável).
2. processamento de entradas de imagem
- procedimento::
- Prepare o arquivo de imagem (por exemplo
image.jpg
). - Modifique o script para incluir imagens:
images = ["image.jpg"] text = "图片里有什么?" inputs = processor(text=text, images=images, return_tensors="pt") outputs = model.generate(**inputs) print(processor.batch_decode(outputs, skip_special_tokens=True))
- Prepare o arquivo de imagem (por exemplo
- no finalDescrição da imagem: Descreva o conteúdo da imagem, por exemplo, "A imagem mostra um cachorro correndo na grama".
3. processamento de entradas de áudio
- procedimento::
- Prepare o arquivo de áudio (por exemplo
audio.wav
). - Modifique o script para incluir áudio:
audios = ["audio.wav"] text = "音频里说了什么?" inputs = processor(text=text, audios=audios, return_tensors="pt") outputs = model.generate(**inputs) print(processor.batch_decode(outputs, skip_special_tokens=True))
- Prepare o arquivo de áudio (por exemplo
- no finalTranscrever o conteúdo do áudio, por exemplo, "O áudio diz 'It's going to rain tomorrow'".
4. processamento de entradas de vídeo
- procedimento::
- Prepare o arquivo de vídeo (por exemplo
video.mp4
). - Modifique o script para incluir o vídeo:
videos = ["video.mp4"] text = "视频里发生了什么?" inputs = processor(text=text, videos=videos, return_tensors="pt") outputs = model.generate(**inputs) print(processor.batch_decode(outputs, skip_special_tokens=True))
- Prepare o arquivo de vídeo (por exemplo
- no finalDescreva o conteúdo do vídeo, por exemplo, "Alguém no vídeo está desenhando".
5. geração de saída de fala
- procedimento::
- Configure os prompts do sistema e ative a voz:
conversation = [ {"role": "system", "content": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech."}, {"role": "user", "content": "请用语音回答:今天天气如何?"} ] text = processor.apply_chat_template(conversation, tokenize=False, add_generation_prompt=True) inputs = processor(text=text, return_tensors="pt") text_ids, audio = model.generate(**inputs, use_audio_in_video=True) import soundfile as sf sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
- Configure os prompts do sistema e ative a voz:
- no final: Gerar
output.wav
com o conteúdo da resposta de voz.
6. ajuste de tons de voz
- procedimento::
- Especifique o tom (por exemplo, Chelsie ou Ethan) no momento da geração:
text_ids, audio = model.generate(**inputs, spk="Ethan") sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
- Especifique o tom (por exemplo, Chelsie ou Ethan) no momento da geração:
- no finalTimbre: Gera um arquivo de voz com o timbre especificado.
7. aceleração com o FlashAttention-2
- procedimento::
- Instale o FlashAttention-2:
pip install -U flash-attn --no-build-isolation
- Ativado ao carregar um modelo:
model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto", attn_implementation="flash_attention_2")
- Instale o FlashAttention-2:
- no finalGeração mais rápida e menor uso de memória.
advertência
- Requisitos de hardwareGPUs: são recomendadas, com pelo menos 16 GB de memória de vídeo.
- requisito de redeA rede precisa ser estabilizada ao fazer o download de modelos e dependências.
- Suporte à depuraçãoConsulte o GitHub para obter mais informações.
README.md
ou discussão comunitária.
cenário do aplicativo
- Assistente de voz em tempo real
Os usuários fazem perguntas por voz e o modelo gera respostas de voz em tempo real, adequadas para atendimento ao cliente ou assistentes pessoais. - Análise de conteúdo de vídeo
Insira o vídeo e o modelo extrairá as principais informações para ajudar o usuário a organizar a filmagem ou gerar um relatório. - Suporte educacional
Os alunos fazem upload de áudio ou vídeo do curso, e os modelos respondem a perguntas ou extraem pontos-chave para aprimorar o aprendizado.
QA
- Quais são os idiomas suportados?
Ele é compatível principalmente com chinês e inglês e oferece Chelsie, Ethan e outros tons para síntese de fala. - Quanto espaço de armazenamento é necessário?
O modelo Qwen2.5-Omni-7B tem aproximadamente 14 GB e é recomendável reservar mais de 20 GB. - Ele está disponível comercialmente?
Sim, com base na licença Apache 2.0, livre para uso comercial sujeito a termos.