Optimización de costos de inferencia de voz a texto de AssemblyAI en AWS con Amazon EC2 Spot

La inferencia de voz a texto requiere un uso computacional intensivo. Cada archivo de audio activa una canalización de modelos de aprendizaje profundo (modelos acústicos, modelos de lenguaje y etapas de posprocesamiento) que se ejecutan en las GPU NVIDIA para cumplir con los requisitos de latencia. A escala, esto significa miles de instancias de GPU ejecutándose continuamente.

AssemblyAI necesitaba una manera de ejecutar cargas de trabajo de inferencia con uso intensivo de GPU de manera rentable y a escala, sin sacrificar las garantías de disponibilidad y latencia de las que dependen sus clientes. Ejecutar completamente instancias bajo demanda tendría un costo prohibitivo. Las instancias puntuales ofrecen ahorros significativos, mientras que Amazon Elastic Compute Cloud (Amazon EC2) puede reclamarlas con una advertencia de 2 minutos cuando se necesita capacidad en otro lugar. AssemblyAI necesitaba una arquitectura que absorbiera las interrupciones puntuales con elegancia y al mismo tiempo mantuviera los compromisos del acuerdo de nivel de servicio (SLA). Además, los clientes de sectores regulados, incluidos el sanitario, el financiero y el jurídico, deben mantener los datos de audio dentro de límites geográficos específicos. Implementan configuraciones estrictas de residencia de datos en las regiones europeas de AWS.

Disponible en AWS Marketplace, AssemblyAI proporciona una API para transcripción, detección de oradores, análisis de opiniones, detección de capítulos y redacción de información de identificación personal (PII). Sus modelos transcriben y analizan el habla para cargas de trabajo de gran volumen en industrias como la tecnología, los medios, la atención médica y los servicios financieros.

En esta publicación, le mostramos cómo AssemblyAI ejecuta inferencias de IA con costos optimizados a escala para su plataforma de conversión de voz a texto. La arquitectura utiliza instancias puntuales de Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Compute Cloud (Amazon EC2) y Amazon Simple Queue Service (Amazon SQS). Juntos, estos servicios combinan una flota flexible de GPU NVIDIA, proveedores de capacidad ECS y un mecanismo de reintento basado en cola. El resultado es un importante ahorro de costos al tiempo que se mantienen los compromisos de SLA en todas las regiones europeas de AWS.

Descripción general de la solución

La plataforma de inferencia de AssemblyAI se ejecuta en Amazon ECS con capacidad informática administrada a través de proveedores de capacidad de ECS. La flota combina instancias puntuales e instancias bajo demanda de Amazon EC2 en varias familias de instancias de GPU NVIDIA y ejecuta un único modelo de inferencia por GPU a una escala de miles de instancias. La arquitectura se basa en cuatro pilares que trabajan juntos para ofrecer una inferencia resiliente y optimizada en costos:

Proveedores de capacidad de Amazon ECS que combinan Spot y On-Demand. Diversificación de GPU Spot multifamiliar entre tipos de instancias EC2 (como g4dn.xlarge, g4dn.2xlarge, g5.xlarge, g5.4xlarge y g6.2xlarge). Arquitectura de reintento basada en colas que utiliza Amazon SQS para la recuperación de interrupciones. Implementación regional en el oeste de EE. UU. (Oregón) us-west-2 y Europa (Londres) eu-west-2 para el cumplimiento de la residencia de datos.

El siguiente diagrama ilustra cómo se implementa esta solución:

Figura 1: Arquitectura de inferencia de AssemblyAI en Amazon ECS con instancias de GPU puntuales de Amazon EC2 y un mecanismo de reintento basado en Amazon SQS

Un clúster de Amazon ECS se ejecuta dentro de una nube privada virtual (VPC) en varias zonas de disponibilidad. El clúster alberga tareas ECS respaldadas por GPU (que se muestran como tarea ECS, GPU Spot 1 y ECS Task GPU Spot 2) que sondean la cola y procesan los trabajos de inferencia. Cada tarea recupera archivos de audio de Amazon Simple Storage Service (Amazon S3) y escribe la transcripción completa en un almacén de resultados, que AssemblyAI configura para entregar el resultado al cliente final.

Cuando una instancia de spot recibe un aviso de interrupción, Amazon EventBridge invoca el controlador de interrupciones de spot (una función de AWS Lambda). El controlador devuelve el trabajo en vuelo a la cola SQS del trabajo principal para que otra tarea ECS en buen estado pueda retomarlo. Los clientes configuran su sistema para enrutar los trabajos que agotan los reintentos a una cola SQS de mensajes no entregados para su investigación. Amazon CloudWatch Metrics monitorea el estado de la flota y los eventos de interrupción puntual, brindando observabilidad en todo el sistema.

Proveedores de capacidad de Amazon ECS y diversificación Spot

Para optimizar los costos de inferencia sin comprometer la confiabilidad, AssemblyAI configura múltiples proveedores de capacidad en una única estrategia de proveedor de capacidad dentro de cada clúster de ECS. Un proveedor de capacidad bajo demanda sirve como base siempre activa, y un proveedor de capacidad puntual abarca diferentes familias de instancias de GPU y zonas de disponibilidad para atender picos de demanda. Cada proveedor de capacidad se asocia con un grupo de Amazon EC2 Auto Scaling. El escalado administrado de Amazon ECS automatiza el escalado de instancias de GPU en función de los pesos del proveedor de capacidad y las tareas de inferencia pendientes. Cuando la cola de tareas crece, el proveedor de capacidad Spot solicita instancias adicionales del grupo diversificado. Cuando la demanda cae, las instancias se amplían con gracia.

Una de las mejores prácticas de Spot más efectivas es ser flexible en una amplia gama de tipos de instancias para aumentar las posibilidades de obtener la capacidad informática agregada necesaria. En lugar de depender de una única familia de instancias de GPU, la infraestructura de AssemblyAI abarca tres familias de instancias de GPU de Amazon EC2:

Instancias g4dn: con tecnología de GPU NVIDIA T4, que proporciona una base rentable para modelos estándar de reconocimiento de voz. Instancias g5: equipadas con GPU NVIDIA A10G, que ofrecen un mayor rendimiento para arquitecturas de modelos más exigentes. Instancias g6: con GPU NVIDIA L4, que ofrecen un rendimiento por dólar mejorado para modelos más grandes, incluida la inferencia basada en modelos de lenguaje grande.

Al distribuir la demanda entre familias y tamaños de instancias, AssemblyAI aprovecha un conjunto significativamente mayor de capacidad Spot disponible. Utilizando la estrategia de asignación optimizada de precio-capacidad, Amazon EC2 aprovisiona instancias de los grupos de capacidad Spot con la mayor capacidad disponible al precio más bajo, lo que reduce la probabilidad de interrupciones.

Reintento basado en cola para resistencia a las interrupciones

Mantener la calidad del servicio durante las interrupciones puntuales era un requisito fundamental de diseño. AssemblyAI desacopla el envío de trabajos de la ejecución mediante Amazon SQS. Cuando llega una solicitud de transcripción, se coloca en una cola de Amazon SQS. Las tareas de Amazon ECS que se ejecutan en instancias de GPU sondean la cola, extraen trabajos y ejecutan la canalización de inferencia. Los trabajos individuales suelen tardar entre 15 segundos y varios minutos, según la duración del audio.

Cuando una instancia de spot recibe un aviso de interrupción de 2 minutos, el flujo de reintento funciona de la siguiente manera:

Los trabajos en vuelo que se pueden completar dentro del período de 2 minutos finalizan normalmente. Los trabajos que necesitan más tiempo se devuelven a la cola de Amazon SQS, donde quedan inmediatamente disponibles para otros trabajadores. Otra instancia de GPU en buen estado recoge el mensaje, potencialmente en un tipo de instancia diferente o en una zona de disponibilidad diferente, y completa la inferencia.

Para reducir el tiempo de recuperación, AssemblyAI crea imágenes de máquinas de Amazon (AMI) personalizadas que contienen artefactos de modelo e imágenes de contenedores en aproximadamente 2 minutos. Para los clientes finales, el impacto de una interrupción de Spot es un pequeño aumento en el tiempo de procesamiento, pero la transcripción se completa exitosamente y se entrega como se esperaba.

Implementación regional para residencia de datos

La ejecución en múltiples regiones de AWS permite a AssemblyAI brindar soporte a clientes en industrias reguladas, incluida la atención médica, los servicios financieros y los servicios legales, donde los datos de audio nunca deben salir de límites geográficos específicos. Cada región de AWS ejecuta una copia totalmente independiente de la arquitectura de inferencia: sus propias colas de Amazon SQS, clústeres de Amazon ECS, proveedores de capacidad y flotas de GPU. Hay varias familias de instancias de GPU (g4dn, g5, g6) disponibles en estas regiones europeas con precios spot competitivos. Esta diversidad de instancias respalda un servicio de inferencia confiable basado en Spot y al mismo tiempo cumple con estrictos requisitos de residencia de datos.

Resultados

Al ejecutar instancias puntuales de Amazon EC2 con GPU en producción, AssemblyAI logró un ahorro de costos del 70 por ciento en computación de inferencia en comparación con los precios bajo demanda. A medida que la demanda de computación de la plataforma creció casi 4 veces año tras año, la arquitectura basada en Spot mantuvo la economía unitaria sostenible. Al operar a esta escala, AssemblyAI aprendió que diversificar entre familias y tamaños de instancias es la palanca más efectiva para minimizar las tasas de interrupción Spot. Las familias g4dn, g5 y g6 aprovechan grupos de capacidad independientes, de modo que cuando una familia experimenta presión de capacidad, las demás permanecen disponibles. El diseño de tolerancia a fallas desde el primer día con reintentos basados ​​en colas y un calentamiento rápido convierte las interrupciones puntuales en eventos de rutina mientras se mantienen los compromisos de SLA.

Conclusión

Los equipos que ejecutan cargas de trabajo de IA por lotes o casi en tiempo real con características similares (trabajos de corta duración y recuperables de forma independiente en el procesamiento de GPU) pueden aplicar este patrón. Comience por diversificar las familias de instancias y crear tolerancia a fallas basada en colas para aprovechar la infraestructura Spot rentable sin comprometer la disponibilidad.

Para comenzar con las tareas de GPU en Amazon ECS, consulte Amazon ECS para cargas de trabajo de GPU. Para evaluar la disponibilidad de Spot para su carga de trabajo, explore el uso de puntuaciones de ubicación de Spot para computación acelerada y las mejores prácticas de instancias de spot de Amazon EC2. La API de voz a texto de AssemblyAI está disponible en AWS Marketplace. Para obtener más información sobre su plataforma, visite asambleai.com.

Sobre los autores

Belair Albahagwi

Belair Albahagwi

Belair es gerente técnico de cuentas (ISV) en AWS y se especializa en contenedores y computación sin servidor. Ayuda a los clientes empresariales a optimizar sus cargas de trabajo en Amazon ECS y EKS. En su tiempo libre, Belair disfruta viajar y realizar actividades al aire libre.

Sandeep Kampa

Sandeep Kampa

Sandeep es arquitecto de soluciones (ISV) en AWS, donde trabaja con clientes de ISV de AI/ML para diseñar soluciones escalables y rentables en AWS. Se especializa en ayudar a los clientes a implementar cargas de trabajo de inteligencia artificial generativa y aprendizaje automático a escala. Fuera del trabajo, Sandeep disfruta explorando los últimos avances en la investigación de IA.

Mimi Chiang

Mimi Chiang

Mimi es ingeniera de software en AssemblyAI, donde construye y mantiene la infraestructura que impulsa la inferencia de voz a texto a escala. Se centra en la programación de GPU, la orquestación de contenedores y la optimización de costos. Fuera del trabajo, Mimi disfruta de los fines de semana como es debido.