Más información sobre la inferencia de generación de voz de IA con TorchServe en GPU NVIDIA
Puede diseñar un servicio de texto a voz para que se ejecute en Oracle Cloud Infrastructure Kubernetes Engine mediante TorchServe en GPU de NVIDIA. Esta técnica también se puede aplicar a otras cargas de trabajo de inferencia, como la clasificación de imágenes, la detección de objetos, el procesamiento del lenguaje natural y los sistemas de recomendación.
Un servidor de inferencias es un sistema especializado que aloja modelos de aprendizaje automático entrenados y sirve sus predicciones (inferencias) mediante API. Maneja los desafíos críticos de producción de escalado, procesamiento por lotes y monitoreo: transformar un modelo estático en un servicio web confiable y de alto rendimiento.
TorchServe es el marco oficial de servicio de modelos para PyTorch.
Su trabajo consiste en tomar el archivo .mar
entrenado (un archivo de modelo empaquetado) y ponerlo a disposición desde los puntos finales de API o gRPC RESTful. En lugar de escribir lógicas y servidores web personalizados, empaqueta el modelo y lo entrega a TorchServe. Al instante le proporciona:
- Escalabilidad: gestiona automáticamente a los trabajadores para gestionar el tráfico de gran volumen.
- Rendimiento de baja latencia: utiliza funciones avanzadas como el procesamiento por lotes de varios modelos para agrupar solicitudes para un procesamiento eficaz.
- Gestión de modelos: permite registrar, versionar y revertir modelos sin tiempo de inactividad.
- Supervisión incorporada: realiza un seguimiento de métricas como la latencia de inferencia y las solicitudes por segundo listas para usar.
Básicamente, TorchServe salva la brecha entre la experimentación con PyTorch y el despliegue de producción, convirtiendo sus potentes modelos en un sólido servicio de predicción con un esfuerzo mínimo. Es la herramienta esencial para llevar PyTorch desde el laboratorio de investigación al mundo real.
Note:
TorchServe está actualmente en modo de mantenimiento limitado. Si bien sigue siendo gratuito y sigue siendo empleado por algunos clientes existentes para casos de uso específicos o conveniencia de prueba, recomendamos evaluar su idoneidad a largo plazo para implementaciones de producción. Consulte la documentación oficial de PyTorch TorchServe en https://docs.pytorch.org/serve/ para conocer el estado actual y las consideraciones.Estos son algunos de los servidores de inferencia en el mercado:
Servidor | Desarrollador | Funciones clave | Mejor para | Soporte de marco |
---|---|---|---|---|
NVIDIA Triton | NVIDIA |
|
Despliegues de varios modelos de alto rendimiento | PyTorch, TF, ONNX, TensorRT |
TorchServe | PyTorch (anteriormente Meta) |
|
Despliegues centrados en PyTorch | Solo PyTorch |
TensorFlow Porción |
|
TensorFlow ecosistemas | TensorFlow |
Arquitectura
Esta arquitectura muestra un ejemplo de un despliegue de inferencia de generación de voz de IA.
transperfect-oke-arch-oracle.zip
Un modelo de voz entrenado y personalizado, ajustado a partir de un modelo básico de Hugging Face, se implementa en TorchServe para inferencia. TorchServe actúa como capa de servicio, alojando el modelo y gestionando las solicitudes de los usuarios entrantes de forma eficiente.
Cuando un usuario envía una entrada de texto, TorchServe procesa la solicitud, llama al modelo y presenta la salida como una voz sintética de alta calidad.
Para los segmentos de texto a voz, cada documento puede contener varios bloques y cada bloque está formado por segmentos. Por ejemplo:
Document (chapter)
└── Block (paragraph)
└── Segment (sentence)
Esta arquitectura admite los siguientes componentes:
- Región OCI
Una región de OCI es un área geográfica localizada que contiene uno o más centros, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones y pueden haber grandes distancias que las separan (entre países o incluso continentes).
- Red virtual en la nube y subred de OCI
Una red virtual en la nube (VCN) es una red personalizable y definida por software que se configura en una región de OCI. Al igual que las Redes de los Centros de Datos Tradicionales, las Redes Virtuales le proporcionan el control sobre su entorno de red. Una VCN puede tener varios bloques de CIDR no superpuestos que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, las cuales se pueden acotar a una región o a un dominio de disponibilidad. Cada subred está formada por un rango contiguo de direcciones que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.
- OCI Registry
Oracle Cloud Infrastructure Registry es un servicio gestionado por Oracle que permite simplificar el flujo de trabajo del desarrollo a la producción. Registry facilita su almacenamiento, uso compartido y gestión de artefactos de desarrollo, como imágenes de Docker.
- OCI Object Storage
OCI Object Storage proporciona acceso a grandes cantidades de datos estructurados y no estructurados de cualquier tipo de contenido, incluidas copias de seguridad en bases de datos, datos analíticos y contenido enriquecido como imágenes y vídeos. Puede almacenar datos de forma segura directamente desde las aplicaciones o desde la plataforma en la nube. Puedes ampliar el almacenamiento sin experimentar ninguna degradación del rendimiento o la fiabilidad del servicio.
Utilice el almacenamiento estandar para el almacenamiento "caliente" al que debe acceder de forma rápida, inmediata y frecuente. Utilice este tipo de almacenamiento para el almacenamiento "frío" que conserva durante largos períodos de tiempo y a los a los que rara vez accede.
- OCI File Storage
Oracle Cloud Infrastructure File Storage ofrece un sistema de archivos de red duradero, escalable, seguro y empresarial. Puede conectarse a OCI File Storage desde cualquier instancia con hardware dedicado, de máquina virtual o de contenedor de una VCN. También puede acceder a OCI File Storage desde fuera de la VCN mediante Oracle Cloud Infrastructure FastConnect y la VPN IPSec.
- Volúmenes en bloque de OCI
Con Oracle Cloud Infrastructure Block Volumes, puede crear, asociar, conectar y mover volúmenes de almacenamiento, y cambiar el rendimiento de los volúmenes para que se ajusten a sus requisitos de almacenamiento, rendimiento y aplicación. Después de asociar y conectar un volumen a una instancia, puede utilizar el volumen como si se tratara de una unidad de disco duro normal. También puede desconectar un volumen y asociarlo a otra instancia sin tener que perder datos.
- Equilibrador de carga
Oracle Cloud Infrastructure Load Balancing proporciona la distribución automatizada de tráfico desde un único punto a varios servidores.
- OCI Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine o OKE) es un servicio totalmente gestionado, escalable y de alta Disponibilidad que puede utilizar para desplegar aplicaciones de contenedores en la nube. Especifique los recursos informáticos que necesitan sus aplicaciones y OKE los aprovisiona en OCI en un arrendamiento existente. OKE utiliza Kubernetes para automatizar el despliegue, la ampliación y la gestión de aplicaciones en contenedores en clusters de hosts.
- Gateway de servicio
Un gateway de servicios proporciona acceso desde una VCN a otros servicios, como Oracle Cloud Infrastructure Object Storage. El tráfico desde la VCN al servicio Oracle recorre el tejido de red de la Oracle y no atraviesa Internet.
- Gateway de Internet
Un gateway de Internet permite el tráfico entre las subredes públicas de una VCN y la red pública de Internet.
- Registro de OCIOracle Cloud Infrastructure Logging es un servicio altamente escalable y totalmente gestionado que proporciona acceso a los siguientes tipos de logs de sus recursos en la nube:
- Logs de auditoría: logs relacionados con eventos producidos por OCI Audit.
- Logs de servicio: logs publicados por servicios individuales como OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancing, OCI Object Storage y logs de flujo de VCN.
- Logs personalizados: logs que contienen información de diagnóstico a partir de aplicaciones personalizadas, otros proveedores de nube o un entorno local.
- Supervisión de OCI
Oracle Cloud Infrastructure Monitoring supervisa de forma activa y pasiva los recursos en la nube, y utiliza alarmas para notificarle cuando las métricas cumplen los disparadores especificados.
- Política
Una política de Oracle Cloud Infrastructure Identity and Access Management especifica quién puede acceder a qué recursos y cómo. El acceso se otorga en los niveles de grupo y compartimento, lo que significa, que puede escribir una política que proporcione un tipo específico de acceso a un grupo en un compartimento específico o en el arrendamiento.
- OCI Vault
Oracle Cloud Infrastructure Vault permite crear y gestionar de forma centralizada las claves de cifrado que protegen los datos y las credenciales secretas que utiliza para proteger el acceso a los recursos en la nube. La gestión de claves por defecto son las claves gestionadas por Oracle. También puede utilizar claves gestionadas por el cliente que utilizan OCI Vault. OCI Vault ofrece un juego enriquecido de API de REST para gestionar almacenes y claves.
- Hugging Face
Hugging Face es una plataforma y un centro de colaboración para el aprendizaje automático que proporciona modelos de IA preentrenados, herramientas de desarrollo e infraestructura de alojamiento para aplicaciones de IA, lo que hace que el aprendizaje automático avanzado sea accesible para desarrolladores de todo el mundo.
Acerca del flujo de trabajo de diseño de soluciones
Esta solución de generación de voz implementa el siguiente flujo de trabajo de diseño.
- El usuario inicia una conversión de proyecto.
- La aplicación agrega un mensaje a la cola RabbitMQ para cada tarea de conversión dentro del proyecto.
- Cada trabajador recupera un mensaje de la cola.
- El trabajador procesa el mensaje y envía una solicitud a TorchServe.
- TorchServe realiza inferencia y devuelve los resultados al trabajador.
- El trabajador procesa los resultados y vuelve a colocar un mensaje en la cola.
- La aplicación recupera el mensaje de resultados de la cola y lo almacena en la base de datos.
- Se notifica al usuario los resultados en la interfaz de usuario.
Note:
Para los modelos sencillos, un trabajador envía la solicitud de inferencia a los nodos de CPU.