Qwen2.5-Omni: un modelo de medición final para entrada multimodal e interacción verbal en tiempo real

Introducción general

Qwen2.5-Omni es un modelo de IA multimodal de código abierto desarrollado por el equipo Qwen de Alibaba Cloud. Puede procesar múltiples entradas, como texto, imágenes, audio y vídeo, y generar respuestas de texto o voz natural en tiempo real. El modelo se publicó el 26 de marzo de 2025, y el código y los archivos del modelo están alojados en GitHub y son de libre descarga y uso. Utiliza la arquitectura Thinker-Talker y la tecnología TMRoPE para garantizar un procesamiento eficiente de los datos multimodales.Qwen2.5-Omni obtiene buenos resultados en tareas como el reconocimiento del habla, la comprensión de imágenes y el análisis de vídeo, y es adecuado para escenarios como los asistentes inteligentes y el procesamiento multimedia.

Qwen2.5-Omni:多模态输入和实时语音交互的端测模型

 

Lista de funciones

  • Admite entradas multimodales: puede procesar texto, imágenes, audio y vídeo simultáneamente.
  • Respuesta en tiempo real: la respuesta de texto o voz se genera inmediatamente después de la entrada.
  • Síntesis de voz natural: Genera voz clara y natural, admite varios tonos.
  • Comprensión de imágenes y vídeos: identificar el contenido de imágenes o analizar videoclips.
  • Seguimiento de comandos de extremo a extremo: complete tareas directamente a partir de comandos de voz o texto.
  • Código abierto y gratuito: se proporcionan el código y los modelos completos para facilitar la personalización por parte del usuario.

 

Hemos llevado a cabo una evaluación exhaustiva de Qwen2.5-Omni. Los resultados muestran que su rendimiento es excelente en todas las modalidades, lo que le da ventaja sobre modelos de una sola modalidad de igual tamaño y sobre modelos de código cerrado como Qwen2.5-VL-7B, Qwen2-Audio y Gemini-1.5-Pro. En tareas que requieren la integración de múltiples modalidades, como OmniBench, Qwen2.5-Omni alcanza un rendimiento puntero. Además, en tareas monomodales, destaca en las áreas de reconocimiento de voz (Common Voice), traducción (CoVoST2), comprensión de audio (MMAU), razonamiento de imágenes (MMMU, MMStar), comprensión de vídeo (MVBench) y generación de voz (Seed-tts-eval y Subjective Naturalness).

Qwen2.5-Omni:多模态输入和实时语音交互的端测模型

 

Utilizar la ayuda

El uso de Qwen 2.5-Omni requiere un cierto nivel de conocimientos técnicos. A continuación se ofrece una guía detallada de instalación y funcionamiento para ayudar a los usuarios a empezar a utilizarlo rápidamente.

Proceso de instalación

  1. Preparar el entorno
    • Asegúrese de que Python 3.10 o posterior está instalado.
    • Se requiere Git para descargar el código.
    • Recomendado para sistemas Linux, los sistemas no Linux pueden requerir una configuración adicional.
  2. Descargar código
    • Clona tu repositorio de GitHub escribiendo el comando en el terminal:
      git clone https://github.com/QwenLM/Qwen2.5-Omni.git
      
    • Vaya al catálogo de proyectos:
      cd Qwen2.5-Omni
      
  3. Instalación de dependencias
    • Debido a que el código no se ha fusionado completamente en la rama maestra Hugging Face, es necesario instalar una versión específica de Transformers:
      pip uninstall transformers
      pip install git+https://github.com/huggingface/transformers@3a1ead0aabed473eafe527915eea8c197d424356
      pip install accelerate
      
    • Instale la herramienta de tratamiento multimodal:
      pip install qwen-omni-utils[decord]
      
      • Nota: Se requiere preinstalación ffmpegLos usuarios de Linux pueden ejecutar sudo apt install ffmpeg.
      • Los usuarios no Linux que no puedan instalar decordpuede ser sustituido por:
        pip install qwen-omni-utils
        
  4. Descargar modelos
  5. Verificar la instalación
    • Ejecute el siguiente comando para comprobar el entorno:
      python -c "from transformers import Qwen2_5OmniModel; print('安装成功')"
      

Función Flujo de operaciones

1. Tratamiento de entradas de texto

  • procedimiento::
    • Modelos de carga y procesadores:
      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")
      
    • Introduzca texto y genere una respuesta:
      text = "今天天气怎么样?"
      inputs = processor(text=text, return_tensors="pt")
      outputs = model.generate(**inputs)
      print(processor.batch_decode(outputs, skip_special_tokens=True))
      
  • al final: Devuelve respuestas de texto como "Hace un día soleado con una temperatura agradable".

2. Tratamiento de las entradas de imágenes

  • procedimiento::
    • Prepare el archivo de imagen (por ejemplo image.jpg).
    • Modifica el script para incluir imágenes:
      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))
      
  • al finalDescribe el contenido de la imagen, por ejemplo: "La imagen muestra un perro corriendo sobre la hierba".

3. Tratamiento de las entradas de audio

  • procedimiento::
    • Prepare el archivo de audio (por ejemplo audio.wav).
    • Modifica el guión para incluir audio:
      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))
      
  • al finalTranscribe el contenido del audio, por ejemplo: "El audio dice 'Va a llover mañana'".

4. Tratamiento de las entradas de vídeo

  • procedimiento::
    • Prepare el archivo de vídeo (por ejemplo video.mp4).
    • Modifica el guión para incluir 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))
      
  • al finalDescribe el contenido del vídeo, por ejemplo: "Alguien en el vídeo está dibujando".

5. Generación de voz

  • procedimiento::
    • Configurar los avisos del sistema y activar la 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)
      
  • al final: Generar output.wav que contiene las respuestas vocales.

6. Ajuste de los tonos de voz

  • procedimiento::
    • Especifique el tono (por ejemplo, Chelsie o Ethan) en el momento de la generación:
      text_ids, audio = model.generate(**inputs, spk="Ethan")
      sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)
      
  • al final: Genera un archivo de voz con el timbre especificado.

7. Aceleración con FlashAttention-2

  • procedimiento::
    • Instale FlashAttention-2:
      pip install -U flash-attn --no-build-isolation
      
    • Se activa al cargar el modelo:
      model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", device_map="auto", attn_implementation="flash_attention_2")
      
  • al finalGeneración más rápida y menor consumo de memoria.

advertencia

  • requisitos de hardwareGPU recomendadas, con al menos 16 GB de memoria de vídeo.
  • requisitos de la red: Es necesario estabilizar la red al descargar modelos y dependencias.
  • Soporte de depuraciónConsulte GitHub para obtener más información. README.md o debate comunitario.

 

escenario de aplicación

  1. Asistente de voz en tiempo real
    Los usuarios formulan preguntas por voz y el modelo genera respuestas vocales en tiempo real, idóneas para servicios de atención al cliente o asistentes personales.
  2. Análisis del contenido de los vídeos
    Introduce el vídeo y el modelo extrae información clave para ayudar al usuario a organizar las secuencias o generar un informe.
  3. Apoyo educativo
    Los estudiantes suben audio o vídeo del curso, y los modelos responden a preguntas o extraen puntos clave para mejorar el aprendizaje.

 

CONTROL DE CALIDAD

  1. ¿Qué idiomas se admiten?
    Soporta principalmente chino e inglés, y ofrece Chelsie, Ethan y otros tonos para la síntesis de voz.
  2. ¿Cuánto espacio de almacenamiento se necesita?
    El modelo Qwen2.5-Omni-7B tiene aproximadamente 14 GB y se recomienda reservar más de 20 GB.
  3. ¿Está disponible en el mercado?
    Sí, basado en la licencia Apache 2.0, libre para uso comercial sujeto a condiciones.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...