En todas las industrias, los modelos de aprendizaje automático (ML) son cada vez más profundos, los flujos de trabajo se vuelven más complejos y las cargas de trabajo operan a escalas más grandes. Se dedican esfuerzos y recursos significativos para hacer que estos modelos sean más precisos, ya que esta inversión da como resultado directamente mejores productos y experiencias. Por otro lado, hacer que estos modelos funcionen de manera eficiente en producción es una tarea no trivial que a menudo se pasa por alto, a pesar de ser clave para lograr los objetivos de rendimiento y presupuesto. En esta publicación, cubrimos cómo Exafunction y Inferencia de AWS trabajen juntos para desbloquear una implementación fácil y rentable de modelos ML en producción.
exfuncion es una empresa emergente enfocada en permitir que las empresas realicen ML a escala de la manera más eficiente posible. Uno de sus productos es ExaDeploy, una solución SaaS fácil de usar para servir cargas de trabajo de ML a escala. ExaDeploy organiza de manera eficiente sus cargas de trabajo de ML en recursos mixtos (CPU y aceleradores de hardware) para maximizar la utilización de los recursos. También se ocupa del escalado automático, la colocación de cómputo, los problemas de red, la tolerancia a fallas y más, para garantizar una implementación eficiente y confiable. Basado en inferencia de AWS Instancias de Amazon EC2 Inf1 están diseñados específicamente para ofrecer el costo por inferencia más bajo en la nube. ExaDeploy ahora admite instancias Inf1, lo que permite a los usuarios obtener tanto los ahorros basados en hardware de los aceleradores como los ahorros basados en software de la orquestación y virtualización de recursos optimizados a escala.
Resumen de la solución
Cómo resuelve ExaDeploy la eficiencia de la implementación
Para garantizar la utilización eficiente de los recursos informáticos, debe tener en cuenta la asignación adecuada de recursos, el escalado automático, la coubicación informática, la gestión de la latencia y los costes de la red, la tolerancia a fallos, el control de versiones y la reproducibilidad, y mucho más. A escala, cualquier ineficiencia afecta sustancialmente los costos y la latencia, y muchas grandes empresas han abordado estas ineficiencias creando equipos internos y experiencia. Sin embargo, no es práctico para la mayoría de las empresas asumir esta sobrecarga financiera y organizativa de crear software generalizable que no es la competencia central deseada de la empresa.
ExaDeploy está diseñado para resolver estos puntos débiles de eficiencia de implementación, incluidos los que se observan en algunas de las cargas de trabajo más complejas, como las de vehículos autónomos y aplicaciones de procesamiento de lenguaje natural (NLP). En algunas cargas de trabajo de AA de lotes grandes, ExaDeploy ha reducido los costos en más del 85 % sin sacrificar la latencia o la precisión, con un tiempo de integración tan bajo como un día de ingeniero. Se ha demostrado que ExaDeploy escala automáticamente y administra miles de instancias de recursos de acelerador de hardware simultáneas sin degradación del sistema.
Las características clave de ExaDeploy incluyen:
- Corre en tu nube: Ninguno de sus modelos, entradas o salidas sale nunca de su red privada. Continúe utilizando los descuentos de su proveedor de nube.
- Recursos de aceleradores compartidos: ExaDeploy optimiza los aceleradores utilizados al permitir que varios modelos o cargas de trabajo compartan recursos de aceleradores. También puede identificar si varias cargas de trabajo están implementando el mismo modelo y luego compartir el modelo entre esas cargas de trabajo, optimizando así el acelerador utilizado. Sus capacidades automáticas de reequilibrio y vaciado de nodos maximizan la utilización y minimizan los costos.
- Modelo escalable de implementación sin servidor: ExaDeploy escala automáticamente en función de la saturación de recursos del acelerador. Escale dinámicamente hasta 0 o hasta miles de recursos.
- Soporte para una variedad de tipos de cómputo: puede descargar modelos de aprendizaje profundo de todos los principales marcos de ML, así como código arbitrario de C++, núcleos CUDA, operaciones personalizadas y funciones de Python.
- Registro y control de versiones de modelos dinámicos: Los nuevos modelos o versiones de modelos se pueden registrar y ejecutar sin tener que reconstruir o volver a implementar el sistema.
- Ejecución punto a punto: los clientes se conectan directamente a los recursos del acelerador remoto, lo que permite una baja latencia y un alto rendimiento. Incluso pueden almacenar el estado de forma remota.
- Ejecución asincrónica: ExaDeploy admite la ejecución asincrónica de modelos, lo que permite a los clientes paralelizar el cómputo local con el trabajo de recursos del acelerador remoto.
- Canalizaciones remotas tolerantes a fallas: ExaDeploy permite a los clientes componer dinámicamente cálculos remotos (modelos, preprocesamiento, etc.) en canalizaciones con garantía de tolerancia a fallas. El sistema ExaDeploy maneja las fallas de pod o nodo con recuperación y reproducción automáticas, de modo que los desarrolladores nunca tengan que pensar en garantizar la tolerancia a fallas.
- Monitoreo listo para usar: ExaDeploy proporciona métricas de Prometheus y paneles de Grafana para visualizar el uso de recursos del acelerador y otras métricas del sistema.
ExaDeploy es compatible con AWS Inferentia
Las instancias Inf2 de Amazon EC1 basadas en AWS Inferentia están diseñadas para cargas de trabajo de inferencia específicas de aprendizaje profundo. Estas instancias brindan un rendimiento de hasta 2.3 veces y un ahorro de costos de hasta un 70 % en comparación con la generación actual de instancias de inferencia de GPU.
ExaDeploy ahora es compatible con AWS Inferentia y juntos desbloquean el mayor rendimiento y los ahorros de costos logrados a través de la aceleración de hardware especialmente diseñada y la orquestación optimizada de recursos a escala. Veamos los beneficios combinados de ExaDeploy y AWS Inferentia al considerar una carga de trabajo de ML moderna muy común: cargas de trabajo de cómputo mixto por lotes.
Características hipotéticas de la carga de trabajo:
- 15 ms de procesamiento previo/posterior solo de CPU
- Inferencia de modelo (15 ms en GPU, 5 ms en AWS Inferentia)
- 10 clientes, cada uno hace una solicitud cada 20 ms
- El costo relativo aproximado de CPU:Inferentia:GPU es 1:2:4 (basado en los precios bajo demanda de Amazon EC2 para c5.xlarge, inf1.xlarge y g4dn.xlarge)
La siguiente tabla muestra cómo se perfila cada una de las opciones:
Preparar | Recursos necesitados | Cost | Estado latente |
GPU sin ExaDeploy | 2 CPU, 2 GPU por cliente (total 20 CPU, 20 GPU) | 100 | 30 ms |
GPU con ExaDeploy | 8 GPU compartidas en 10 clientes, 1 CPU por cliente | 42 | 30 ms |
AWS Inferentia sin ExaDeploy | 1 CPU, 1 AWS Inferentia por cliente (total 10 CPU, 10 Inferentia) | 30 | 20 ms |
Inferencia de AWS con ExaDeploy | 3 AWS Inferentia compartidos entre 10 clientes, 1 CPU por cliente | 16 | 20 ms |
Ejemplo de ExaDeploy en AWS Inferentia
En esta sección, repasamos los pasos para configurar ExaDeploy a través de un ejemplo con nodos inf1 en un modelo BERT PyTorch. Vimos un rendimiento promedio de 1140 muestras/seg para el modelo bert-base, lo que demuestra que ExaDeploy introdujo poca o ninguna sobrecarga para este modelo único, escenario de carga de trabajo única.
Paso 1: configurar un Servicio Amazon Elastic Kubernetes (Amazon EKS) clúster
Se puede abrir un clúster de Amazon EKS con nuestro Módulo AWS Terraform. Para nuestro ejemplo, usamos un inf1.xlarge
para AWS Inferencia.
Paso 2: Configurar ExaDepoy
El segundo paso es configurar ExaDeploy. En general, la implementación de ExaDeploy en instancias inf1 es sencilla. La configuración sigue principalmente el mismo procedimiento que en las instancias de la unidad de procesamiento de gráficos (GPU). La principal diferencia es cambiar la etiqueta del modelo de GPU a AWS Inferentia y volver a compilar el modelo. Por ejemplo, pasar de instancias g4dn a inf1 utilizando las interfaces de programación de aplicaciones (API) de ExaDeploy requirió solo aproximadamente 10 líneas de código para cambiar.
- Un método simple es usar Exafunction Módulo Terraform AWS Kubernetes or Gráfico de timón. Estos implementan los componentes principales de ExaDeploy para que se ejecuten en el clúster de Amazon EKS.
- Compile el modelo en un formato serializado (p. ej., TorchScript, modelos guardados en TF, ONNX, etc.). Para AWS Inferentia, seguimos este tutorial.
- Registre el modelo compilado en el repositorio de módulos de ExaDeploy.
- Prepare los datos para el modelo (es decir, no
ExaDeploy-specific
).
- Ejecute el modelo de forma remota desde el cliente.
ExaDeploy y AWS Inferentia: Mejor juntos
AWS Inferentia está ampliando los límites del rendimiento para la inferencia de modelos y ofrece el costo por inferencia más bajo en la nube. Dicho esto, las empresas necesitan la orquestación adecuada para disfrutar de los beneficios de precio-rendimiento de Inf1 a escala. El servicio de ML es un problema complejo que, si se aborda internamente, requiere experiencia que se aleja de los objetivos de la empresa y, a menudo, retrasa los plazos de los productos. ExaDeploy, que es la solución de software de implementación de ML de Exafunction, se ha convertido en el líder de la industria. Atiende incluso las cargas de trabajo de ML más complejas, a la vez que brinda experiencias de integración fluidas y soporte de un equipo de clase mundial. Juntos, ExaDeploy y AWS Inferentia desbloquean un mayor rendimiento y ahorros de costos para las cargas de trabajo de inferencia a escala.
Conclusión
En esta publicación, le mostramos cómo Exafunction es compatible con AWS Inferentia para el aprendizaje automático de rendimiento. Para obtener más información sobre la creación de aplicaciones con Exafunction, visite exfuncion. Para conocer las prácticas recomendadas sobre la creación de cargas de trabajo de aprendizaje profundo en Inf1, visite Instancias Amazon EC2 Inf1.
Acerca de los autores
Nicholas Jiang, ingeniero de software, Exafunción
Jonathan Ma, ingeniero de software, Exafunción
Prem Nair, ingeniero de software, Exafunción
Anshul Ramachandran, ingeniero de software, Exafunción
Shruti Koparkar, gerente sénior de marketing de productos, AWS
- AI
- arte ai
- generador de arte ai
- robot ai
- inteligencia artificial
- certificación de inteligencia artificial
- inteligencia artificial en banca
- robots de inteligencia artificial
- robots de inteligencia artificial
- software de inteligencia artificial
- Inferencia de AWS
- Aprendizaje automático de AWS
- blockchain
- conferencia blockchain ai
- Coingenius
- inteligencia artificial conversacional
- criptoconferencia ai
- Soluciones para clientes
- de dall
- deep learning
- google ai
- máquina de aprendizaje
- Platón
- platón ai
- Inteligencia de datos de Platón
- Juego de Platón
- PlatónDatos
- juego de platos
- escala ia
- sintaxis
- zephyrnet