Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Administración de la computación acelerada para cargas de trabajo de IA y ML en Amazon EKS
sugerencia
Regístrese
En esta sección, se explica cómo comprar y aprovisionar instancias de computación acelerada de EC2 para cargas de trabajo de inferencia y entrenamiento de IA y ML con Amazon EKS. Independientemente de si entrena modelos a gran escala, lleva a cabo inferencias en tiempo real o implementa aplicaciones de IA generativa, utilizar la capacidad de GPU de NVIDIA o AWS Trainium adecuada es fundamental para el rendimiento de las cargas de trabajo.
Elección de tipos de instancias de EC2
Consulte las especificaciones de las instancias de computación acelerada de Amazon EC2 para obtener información detallada sobre las instancias de computación acelerada de Amazon EC2 disponibles. Entre ellas se incluyen las instancias de GPU de NVIDIA de las familias P y G, así como los aceleradores diseñados por AWS Trainium e Inferentia.
Descripción de las opciones de compra de EC2
Una vez que conozca las instancias aceleradas que necesita para sus cargas de trabajo, el siguiente paso es comprender las opciones de compra disponibles para adquirir estos tipos de instancias aceleradas. AWS ofrece cuatro opciones de compra de capacidad de computación: instancias bajo demanda, instancias de spot, bloques de capacidad para ML y reservas de capacidad bajo demanda (ODCR). Cada opción responde a diferentes patrones de carga de trabajo, perfiles de costos y requisitos de disponibilidad. En la documentación sobre las opciones de compra de instancias de Amazon EC2, se explica cómo funciona cada opción, su modelo de precios y cuándo utilizarla.
-
Instancias bajo demanda: pague por segundo sin compromiso y con disponibilidad inmediata cuando haya capacidad. Ideal para el desarrollo, la creación de prototipos, el escalado de inferencias impredecible y cualquier carga de trabajo que requiera computación inmediata sin riesgo de interrupción.
-
Instancias de spot: hasta un 90 % de ahorro en comparación con las instancias bajo demanda al utilizar la capacidad sobrante de EC2, con un aviso de interrupción de 2 minutos. Ideal para cargas de trabajo tolerantes a errores que llevan a cabo puntos de control en un almacenamiento duradero: ajuste de hiperparámetros, entrenamiento distribuido con puntos de control periódicos, inferencias por lotes y sin conexión y canalizaciones de preprocesamiento de datos.
-
Bloques de capacidad para ML: reserve instancias de la familia P y Trainium durante un periodo fijo (24 horas, hasta 6 meses) y resérvelas con hasta 8 semanas de antelación. Utilice los bloques de capacidad para sesiones de entrenamiento planificadas a gran escala, experimentos de refinamiento con límite de tiempo y proyectos de investigación con plazos conocidos que necesiten un acceso predecible a un clúster de GPU.
-
Reservas de capacidad bajo demanda (ODCR): reserve capacidad acelerada en una zona de disponibilidad específica sin compromiso a largo plazo, que se factura según las tarifas estándar bajo demanda, tanto si se utiliza la capacidad como si no. Ideal para inferencias de producción, servicios sujetos a SLA y aplicaciones empresariales críticas en las que los retrasos en la programación o la falta de disponibilidad de capacidad son inaceptables. A diferencia de los bloques de capacidad, las ODCR admiten instancias de las familias P y G.
Adaptación de las opciones de compra a los requisitos de la carga de trabajo
Ahora que conoce los tipos de instancias aceleradas y las opciones de compra, el siguiente paso es adaptar la opción de compra adecuada a los requisitos específicos de la carga de trabajo. Las cargas de trabajo con mayor flexibilidad entre tipos de instancias, regiones y plazos son aptas para disponer de más opciones de compra y precios más bajos.
Base su decisión en factores como los siguientes:
-
Importancia estratégica y compromisos con SLA
-
Previsibilidad de la demanda y flexibilidad de programación
-
Disposición a comprometerse con la capacidad reservada por adelantado
-
Flexibilidad entre los tipos de instancias, las regiones y los tiempos
-
Tolerancia a las interrupciones frente al ahorro de costos
En la práctica, los equipos adoptan un enfoque híbrido que combina múltiples opciones de compra para equilibrar el costo, la disponibilidad y la fiabilidad en toda su cartera de cargas de trabajo. El artículo Cómo obtener capacidad de GPU en AWS
Verificación de las Service Quotas de EC2
Antes de implementar cualquier opción de compra de capacidad en su clúster de EKS, verifique que la cuenta de AWS tenga una cuota de vCPU suficiente para las familias de instancias de GPU que planea usar. Sin las cuotas adecuadas, los NodePools de Karpenter, el aprovisionamiento del modo automático de EKS y los grupos de nodos de EKS no podrán lanzar nodos de computación acelerada, independientemente de la opción de compra que seleccione.
AWS aplica cuotas de vCPU independientes por familia de instancias y modelo de compra. Consulte las cuotas por tipo de instancia de Amazon EC2 para conocer las cuotas predeterminadas de las instancias de computación acelerada.
Estas cuotas se basan en el recuento de vCPU, no en el recuento de instancias. Por ejemplo, el lanzamiento de 10 instancias p6-b300.48xlarge requiere 1920 vCPU (10 × 192). Las cuotas de GPU predeterminadas suelen estar establecidas en 0 para las cuentas nuevas, por lo que debe solicitar aumentos antes de intentar implementar instancias.
Si encuentra limitaciones de cuota al crear reservas de bloques de capacidad, lanzar instancias bajo demanda o enviar solicitudes de spot, contacte con AWS Support o con el equipo de cuentas de AWS para analizar los requisitos y explorar las opciones a fin de garantizar la capacidad de computación acelerada que mejor se adapte a sus necesidades.
Uso de las opciones de compra de EC2 con Amazon EKS
Después de seleccionar una opción de compra de computación acelerada de EC2, configure el clúster de Amazon EKS para utilizar la capacidad. Amazon EKS ofrece tres métodos de aprovisionamiento, cada uno con un equilibrio diferente entre control y automatización:
-
Modo automático de Amazon EKS: computación administrada por AWS que aprovisiona, escala y parchea los nodos automáticamente. Utiliza Karpenter integrado para el aprovisionamiento y el sistema operativo Bottlerocket con controladores y complementos para dispositivos de NVIDIA incluidos. Es la mejor opción cuando se busca una infraestructura administrada con unos costos operativos mínimos. Admite el aprovisionamiento de capacidad estática y dinámica.
-
Karpenter (autoadministrado): proyecto ascendente de código abierto que se instala y opera en el clúster de Amazon EKS. Proporciona el mismo modelo de aprovisionamiento que el modo automático de EKS y usted tiene el control total sobre el sistema operativo, las AMI, el ajuste del kernel y el ciclo de vida de los nodos. Ideal para equipos de plataformas con requisitos que el modo automático de EKS no proporciona desde el principio.
-
Grupos de nodos (administrados y autoadministrados): con el respaldo de grupos de escalado automático (ASG) de EC2, la capacidad se define por adelantado mediante una plantilla de lanzamiento de EC2. Ideal para equipos de plataformas con grupos de nodos administrados de EKS o autoadministrados existentes, y para cargas de trabajo de entrenamiento con tamaños predecibles y un espacio de computación acelerada conocida y estática.
En las páginas siguientes, se describe cada opción de aprovisionamiento en detalle.
Estrategia mixta: combinación de las opciones de compra
Es habitual combinar varias opciones de compra de capacidad en un solo clúster de Amazon EKS. Este enfoque optimiza el costo, la disponibilidad y la fiabilidad de manera simultánea al enrutar diferentes cargas de trabajo al origen de capacidad más adecuado. Los clientes implementan esta estrategia híbrida con cualquiera de los tres enfoques de administración de computación de EKS (modo automático de EKS, Karpenter o grupos de nodos) o los combinan en el mismo clúster.
El modo automático de EKS y Karpenter siempre aprovisionan primero la capacidad reservada (ODCR y bloques de capacidad) y, a continuación, spot o bajo demanda. Para combinar esta prioridad de aprovisionamiento de instancias, programe las cargas de trabajo críticas en capacidad reservada y las cargas de trabajo flexibles en instancias bajo demanda o de spot. Controlará el enrutamiento de las cargas de trabajo mediante primitivos de programación nativos de Kubernetes: nodeSelector dirige a un tipo de capacidad específico, las limitaciones y taints aíslan los nodos de GPU de NVIDIA o AWS Trainium, y topologySpreadConstraints distribuye las cargas de trabajo entre las zonas de disponibilidad para lograr una alta disponibilidad.
Un clúster de Amazon EKS bien diseñado organiza los NodePools o grupos de nodos de computación acelerada en dos categorías, Reservada y Ampliación, cada una alineada con los patrones de carga de trabajo más adecuados para la estrategia de capacidad. A continuación, se describe un ejemplo.
-
Capacidad reservada: un grupo de nodos o NodePool
gpu-reservedlleva a cabo inferencias de producción y entrena a gran escala de forma programada en la capacidad reservada (ODCR y bloques de capacidad) para los servicios sujetos a SLA y los trabajos planificadas con uso intensivo de recursos de computación. Este NodePool o grupo de nodos ofrece cargas de trabajo de inferencia y producción: puntos de conexión de inferencia en tiempo real, servicio de modelos de producción y aplicaciones empresariales críticas que requieren disponibilidad de GPU permanente con un rendimiento predecible. También es compatible con trabajos programados con uso intensivo de recursos de computación: entrenamiento distribuido planificado, experimentos de refinamiento a gran escala, proyectos de investigación con límite de tiempo y cualquier carga de trabajo en la que se conozca de antemano la hora de inicio y la duración. -
Capacidad de ampliación: un grupo de nodos o NodePool
gpu-burstgestiona la experimentación, las cargas de trabajo ad hoc y el procesamiento por lotes. Utiliza instancias de spot como tipo de capacidad principal con capacidad bajo demanda como alternativa. Esta combinación maximiza el ahorro de costos para las cargas de trabajo tolerantes a fallos y garantiza la capacidad cuando spot no está disponible. Este NodePool o grupo de nodos ofrece inferencias por lotes sin conexión, canalizaciones de preprocesamiento de datos, trabajos de evaluación del modelo, desarrollo y creación de prototipos, escalado de inferencias impredecible, sesiones de depuración de corta duración y cualquier carga de trabajo que implemente puntos de control y pueda gestionar las interrupciones de spot, o que no justifique una reserva, pero no pueda esperar a los plazos reservadas. Las cargas de trabajo de este NodePool o grupo de nodos implementan puntos de control y un apagado controlado para gestionar la pérdida de nodos dentro del periodo de interrupción de spot de 2 minutos.
Especifique el tipo de capacidad deseado para las cargas de trabajo con nodeSelector: karpenter.sh/capacity-type: [spot, on-demand, reserved]. El aprovisionamiento basado en el peso escala el clúster de manera eficiente en todos los grupos de capacidad. Con esta arquitectura, puede ejecutar diversas cargas de trabajo de IA y ML, desde cuadernos experimentales hasta inferencias de producción, dentro de un solo clúster de Amazon EKS mientras optimiza los costos.