Para implementar Voxtral-Small, utilice el siguiente código:
Abra y ejecute Voxtral-vLLM-BYOC-SageMaker.ipynb para implementar su punto final y probar con texto, audio y capacidades de llamada de funciones.
Configuración del contenedor Docker
El repositorio de GitHub contiene el Dockerfile completo. El siguiente fragmento de código destaca las partes clave:
Este Dockerfile crea un contenedor especializado que amplía el servidor vLLM oficial con capacidades específicas de Voxtral agregando bibliotecas de procesamiento de audio esenciales (mistral_common para tokenización, librosa/soundfile/pydub para manejo de audio) mientras configura las variables de entorno de SageMaker adecuadas para la carga y el almacenamiento en caché del modelo. El enfoque separa la infraestructura de la lógica empresarial al mantener el contenedor genérico y permitir que SageMaker inyecte dinámicamente código específico del modelo (model.py y server.properties) desde Amazon S3 en tiempo de ejecución, lo que permite una implementación flexible de diferentes variantes de Voxtral sin necesidad de reconstruir el contenedor.
Configuraciones del modelo
Las configuraciones completas del modelo se encuentran en el archivo server.properties ubicado en la carpeta de códigos. El siguiente fragmento de código resalta las configuraciones clave:
Este archivo de configuración proporciona optimizaciones específicas de Voxtral que siguen las recomendaciones oficiales de Mistral para la implementación del servidor vLLM, la configuración de modos de tokenización adecuados, parámetros de procesamiento de audio (que admiten hasta ocho archivos de audio por mensaje con capacidad de transcripción de 30 minutos) y el uso de las funciones de rendimiento más recientes de vLLM v0.10.0+, como precarga fragmentada y almacenamiento en caché de prefijos. El diseño modular admite una conmutación perfecta entre Voxtral-Mini y Voxtral-Small simplemente cambiando los parámetros model_id y tensor_parallel_grado, manteniendo al mismo tiempo una utilización óptima de la memoria y habilitando mecanismos de almacenamiento en caché avanzados para mejorar el rendimiento de la inferencia.
Controlador de inferencia personalizado
El código de inferencia personalizado completo se encuentra en el archivo model.py ubicado en la carpeta de códigos. El siguiente fragmento de código resalta las funciones clave:
Este controlador de inferencia personalizado crea un servidor basado en FastAPI que se integra directamente con el servidor vLLM para un rendimiento óptimo de Voxtral. El controlador procesa contenido multimodal, incluido audio codificado en base64 y URL de audio, carga dinámicamente configuraciones de modelo desde el archivo server.properties y admite funciones avanzadas como llamadas a funciones para implementaciones Voxtral-Small.
Código de implementación de SageMaker
El cuaderno Voxtral-vLLM-BYOC-SageMaker.ipynb incluido en la carpeta Voxtral-vllm-byoc organiza todo el proceso de implementación para ambos modelos de Voxtral:
Casos de uso del modelo
Los modelos Voxtral admiten varios casos de uso de texto y de voz a texto, y el modelo Voxtral-Small admite el uso de herramientas con entrada de voz. Consulte el repositorio de GitHub para obtener el código completo. En esta sección, proporcionamos fragmentos de código para diferentes casos de uso que admite el modelo.
Sólo texto
El siguiente código muestra una conversación básica basada en texto con el modelo. El usuario envía una consulta de texto y recibe una respuesta estructurada:
Sólo transcripción
El siguiente ejemplo se centra en la transcripción de voz a texto estableciendo la temperatura en 0 para una salida determinista. El modelo procesa la URL de un archivo de audio o un archivo de audio convertido a código base64 y luego devuelve el texto transcrito sin interpretación adicional:
Comprensión de texto y audio.
El siguiente código combina instrucciones de texto y entrada de audio para el procesamiento multimodal. El modelo puede seguir comandos de texto específicos mientras analiza el archivo de audio proporcionado en una sola pasada de inferencia, lo que permite interacciones más complejas como transcripción guiada o tareas de análisis de audio:
uso de herramientas
El siguiente código muestra capacidades de llamada de funciones, donde el modelo puede interpretar comandos de voz y ejecutar herramientas predefinidas. El ejemplo demuestra consultas meteorológicas a través de entrada de voz, con el modelo llamando automáticamente a la función apropiada y devolviendo resultados estructurados:
Integración de agentes de Strands
El siguiente ejemplo muestra cómo integrar Voxtral con el marco Strands para crear agentes inteligentes capaces de utilizar múltiples herramientas. El agente puede seleccionar y ejecutar automáticamente herramientas apropiadas (como calculadora, operaciones de archivos o comandos de shell de las herramientas prediseñadas de Strands) en función de las consultas de los usuarios, lo que permite flujos de trabajo complejos de varios pasos a través de la interacción del lenguaje natural:
Limpiar
Cuando termine de experimentar con este ejemplo, elimine los puntos finales de SageMaker que creó en el cuaderno para evitar costos innecesarios:
Conclusión
En esta publicación, demostramos cómo autohospedar con éxito los modelos Voxtral de código abierto de Mistral en SageMaker utilizando el enfoque BYOC. Hemos creado un sistema listo para producción que utiliza el último marco vLLM y optimizaciones oficiales de Voxtral para las variantes de modelo Mini y Small. La solución admite todo el espectro de capacidades de Voxtral, incluidas conversaciones de solo texto, transcripción de audio, comprensión multimodal sofisticada y llamadas de funciones directamente desde la entrada de voz. Con esta arquitectura flexible, puede cambiar entre los modelos Voxtral-Mini y Voxtral-Small mediante actualizaciones de configuración simples sin necesidad de reconstruir el contenedor.
Lleve sus aplicaciones de IA multimodal al siguiente nivel probando el código completo del repositorio de GitHub para alojar el modelo Voxtral en SageMaker y comience a crear sus propias aplicaciones habilitadas para voz. Explore todo el potencial de Voxtral visitando el sitio web oficial de Mistral para descubrir capacidades detalladas, puntos de referencia de rendimiento y especificaciones técnicas. Finalmente, explore el marco de Strands Agents para crear sin problemas aplicaciones agentes que puedan ejecutar flujos de trabajo complejos.
Sobre los autores
Ying Hou, PhD, es arquitecta senior de soluciones especializada para GenAI en AWS, donde colabora con proveedores de modelos para incorporar los modelos de IA más recientes y inteligentes en las plataformas de AWS. Con una profunda experiencia en Gen AI, ASR, visión por computadora, PNL y modelos de pronóstico de series temporales, trabaja en estrecha colaboración con los clientes para diseñar y crear aplicaciones ML y GenAI de vanguardia.