Esta publicación está coescrita con Zhanghao Wu, cocreador de Skypilot.
El rápido avance de los modelos generativos de IA y Foundation (FMS) ha aumentado significativamente los requisitos de trabajo de capital computacionales para las cargas de trabajo de enseñanza mecánico (ML). Las tuberías ML modernas requieren sistemas eficientes para distribuir cargas de trabajo a través de capital de enumeración acelerados, al tiempo que se asegura de que la productividad del desarrollador siga siendo ingreso. Las organizaciones necesitan soluciones de infraestructura que no solo sean poderosas sino incluso flexibles, resistentes y directas de regir.
Skypilot es un entorno de código extenso que simplifica la ejecución de cargas de trabajo ML al proporcionar una capa de generalización unificada que ayuda a los ingenieros de ML a ejecutar sus cargas de trabajo en diferentes capital de calculación sin regir complejidades de infraestructura subyacentes. Ofrece una interfaz simple de detención nivel para aprovisionar capital, programar trabajos y regir la capacitación distribuida en múltiples nodos.
Amazon Sagemaker Hyperpod es una infraestructura especialmente diseñada para desarrollar e implementar FMS a gran escalera. Sagemaker HyperPod no solo proporciona la flexibilidad para crear y usar su propia pila de software, sino que incluso proporciona un rendimiento inmejorable a través de la misma colocación de instancias de la columna, así como la resistor incorporada. La combinación de la resistor del Hyperpod de Sagemaker y la eficiencia de Skypilot proporciona un entorno poderoso para ampliar sus cargas de trabajo generativas de IA.
En esta publicación, compartimos cómo Sagemaker HyperPod, en colaboración con Skypilot, está racionalización de los flujos de trabajo de mejora de IA. Esta integración hace que nuestra infraestructura de GPU vanguardia sea más accesible para los ingenieros de ML, mejorando la productividad y la utilización de capital.
Desafíos de organizar cargas de trabajo de enseñanza mecánico
Kubernetes se ha vuelto popular para las cargas de trabajo de ML correcto a su escalabilidad y sus ricas herramientas de código extenso. Sagemaker Hyperpod orquestado en Servicio de Kubernetes de Amazon Elastic (Amazon EKS) combina la potencia de Kubernetes con el entorno resistente de Sagemaker Hyperpod diseñado para capacitar a grandes modelos. El apoyo de Amazon EKS en Sagemaker HyperPod fortalece la resiliencia a través de controles de lozanía profunda, recuperación automatizada de nodos y capacidades de trabajo mecánico de trabajo, proporcionando capacitación ininterrumpida para trabajos a gran escalera y de larga duración.
Los ingenieros de ML hacen la transición de los entornos tradicionales de VM o locales a menudo enfrentan una curva de enseñanza empinada. La complejidad de Kubernetes manifiesta y la encargo del clúster puede programar desafíos significativos, potencialmente ralentizando los ciclos de mejora y la utilización de capital.
Por otra parte, los equipos de infraestructura de IA enfrentaron el desafío de equilibrar la obligación de herramientas de encargo avanzadas con el deseo de proporcionar una experiencia sencillo de usar para sus ingenieros de ML. Requerían una decisión que pudiera ofrecer control de detención nivel y facilidad de uso para las operaciones diarias.
Sagemaker Hyperpod con Skypilot
Para topar estos desafíos, nos asociamos con Skypilot para mostrar una decisión que utiliza las fortalezas de ambas plataformas. Sagemaker Hyperpod sobresale en la encargo de los capital e instancias de enumeración subyacentes, proporcionando la infraestructura robusta necesaria para exigir cargas de trabajo de IA. Skypilot complementa esto ofreciendo una capa intuitiva para la encargo de empleo, el mejora interactivo y la coordinación del equipo.
A través de esta asociación, podemos ofrecer a nuestros clientes lo mejor de los dos mundos: la infraestructura potente y escalable de Sagemaker Hyperpod, combinada con una interfaz sencillo de usar que reduce significativamente la curva de enseñanza para los ingenieros de ML. Para los equipos de infraestructura de IA, esta integración proporciona capacidades de encargo avanzadas al tiempo que simplifica la experiencia para sus ingenieros de ML, creando una situación de ganar-ganar para todos los interesados.
Skypilot ayuda a los equipos de IA a ejecutar sus cargas de trabajo en diferentes infraestructuras con una interfaz unificada de detención nivel y una encargo poderosa de capital y trabajos. Un ingeniero de IA puede traer su entorno de IA y especificar los requisitos de capital para el trabajo; Skypilot programará de forma inteligente las cargas de trabajo en la mejor infraestructura: encuentre las GPU disponibles, aprovisione la GPU, ejecute el trabajo y administre su ciclo de vida.
Descripción genérico de la decisión
La implementación de esta decisión es sencilla, ya sea que esté trabajando con los clústeres existentes de Sagemaker HyperPod o configurando una nueva implementación. Para los grupos existentes, puede conectarse usando Interfaz de término de comandos de AWS (AWS CLI) comandos para renovar su kubeconfig y probar la configuración. Para nuevas implementaciones, lo guiamos a través de la configuración del servidor API, la creación de grupos y la configuración de opciones de red de detención rendimiento como Elastic Fabric Adapter (EFA).
El sucesivo diagrama ilustra la construcción de la decisión.
En las siguientes secciones, mostramos cómo ejecutar trabajos de Skypilot para capacitación distribuida de múltiples nodos en Sagemaker HyperPod. Revisamos el proceso de crear un clúster de Sagemaker HyperPod, instalar Skypilot, crear un clúster de Skypilot e implementar un trabajo de capacitación Skypilot.
Requisitos previos
Debes tener los siguientes requisitos previos:
- Un clúster HyperPod de Sagemaker existente con Amazon EKS (para crear uno, consulte Implemente su clúster HyperPod). Debe aprovisionar una sola instancia de ml.p5.48xLarge para las muestras de código en las siguientes secciones.
- Golpe a la CLI de AWS y
kubectl
Herramientas de término de comando. - Un entorno de Python para instalar Skypilot.
Crea un clúster Hyperpod de Sagemaker
Puedes crear un clúster de EKS con un solo AWS CloudFormation pila siguiendo las instrucciones en Uso de CloudFormationconfigurado con una montón privada supuesto (VPC) y capital de almacenamiento.
Para crear y regir clústeres de Sagemaker HyperPod, puede usar el Consola de encargo de AWS o AWS Cli. Si usa la CLI de AWS, especifique la configuración del clúster en un archivo JSON y elija el clúster EKS creado desde la pila CloudFormation como el orquestador del clúster Sagemaker HyperPod. Luego crea los nodos de los trabajadores de clúster con NodeRecovery
nacer a Automatic
para habilitar la recuperación de nodo mecánico y para OnStartDeepHealthChecks
añadir InstanceStress
y InstanceConnectivity
para habilitar los controles de lozanía profundas. Vea el sucesivo código:
Puedes añadir Instancestorageconfigs para aprovisionar y contar adicionales Tienda de bloques elástica de Amazon (Amazon EBS) volúmenes en Sagemaker Hyperpod Nodos.
Para crear el clúster usando el API SAGEMAKER HYPERPODejecute el sucesivo comando AWS CLI:
Ahora está inteligente para configurar Skypilot en su clúster HyperPod de Sagemaker.
Conéctese a su clúster EKS HyperPod EKS de Sagemaker
Desde su entorno AWS CLI, ejecute el AWS EKS Update-KubeConfig comandar para renovar su archivo de configuración de Kube tópico (emplazado en ~/.kube/config
) con las credenciales y la configuración necesarias para conectarse a su clúster EKS utilizando el kubectl
Comando (proporcione su nombre específico de clúster EKS):
aws eks update-kubeconfig --name $EKS_CLUSTER_NAME
Puede probar que está conectado al clúster EKS ejecutando el sucesivo comando:
kubectl config current-context
Instale Skypilot con soporte de Kubernetes
Use el sucesivo código para instalar Skypilot con Kubernetes Soporte usando PIP:
pip install skypilot(kubernetes)
Esto instala la última compilación de Skypilot, que incluye las integraciones necesarias de Kubernetes.
Revisar la conexión de Skypilot con el clúster EKS
Compruebe si Skypilot puede conectarse a su clúster Kubernetes:
sky check k8s
La salida debe parecer similar al sucesivo código:
Si esta es la primera vez que usa Skypilot con este clúster Kubernetes, puede ver un aviso para crear etiquetas GPU para sus nodos. Siga las instrucciones ejecutando el sucesivo código:
python -m sky.utils.kubernetes.gpu_labeler --context
Este script ayuda a Skypilot a identificar qué capital de GPU están disponibles en cada nodo en su clúster. El Trabajo de etiquetado de GPU Puede tomar unos minutos dependiendo de la cantidad de capital de GPU en su clúster.
Descubra las GPU disponibles en el clúster
Para ver qué capital de GPU están disponibles en su clúster HyperPod de Sagemaker, use el sucesivo código:
sky show-gpus --cloud k8s
Esto enumerará los tipos de GPU disponibles y sus recuentos. Tenemos dos instancias P5.48xLarge, cada una equipada con 8 GPU H100 NVIDIA:
Divulgar un entorno de mejora interactivo
Con Skypilot, puede difundir un clúster Skypilot para el mejora interactivo:
sky launch -c dev --gpus H100
Este comando crea un entorno de mejora interactivo (IDE) con una única GPU H100 y sincronizará el directorio de trabajo tópico con el clúster. Skypilot maneja la creación de POD, la asignación de capital y la configuración del IDE.
Posteriormente de que se inicie, puede conectarse a su IDE:
ssh dev
Esto le brinda una carcasa interactiva en su IDE, donde puede ejecutar su código, instalar paquetes y realizar experimentos ML.
Trabajos de capacitación para ejecutar
Con Skypilot, puede ejecutar trabajos de capacitación distribuidos en su clúster Sagemaker HyperPod. El sucesivo es un ejemplo de difundir un trabajo de capacitación distribuido utilizando un archivo de configuración YAML.
Primero, cree un archivo llamado train.yaml
Con la configuración de su trabajo de capacitación:
Luego, acontecimiento su trabajo de capacitación:
sky launch -c train train.yaml
Esto crea un trabajo de capacitación en un solo nodos P5.48xLarge, equipado con 8 GPU H100 NVIDIA. Puede monitorear la salida con el sucesivo comando:
sky logs train
Ejecución de trabajos de capacitación de múltiples nodos con EFA
El adaptador de tela elástico (EFA) es una interfaz de red para Nubarrón de enumeración elástica de Amazon (Amazon EC2) instancias que le permiten ejecutar aplicaciones que requieren altos niveles de comunicaciones entre nodos a escalera en AWS a través de su interfaz de hardware de derivación del sistema operante personalizado. Esto permite que las aplicaciones se comuniquen directamente con el hardware de la red al tiempo que evita el núcleo del sistema operante, reduciendo significativamente la latencia y la sobrecarga de la CPU. Este paso directo al hardware es particularmente favorecedor para las cargas de trabajo ML distribuidas donde la comunicación frecuente entre nodos durante la sincronización de gradiente puede convertirse en un cuello de botella. Mediante el uso de instancias habilitadas para la EFA, como P5.48xLarge o P6-B200.48xLarge, los científicos de datos pueden progresar sus trabajos de capacitación en múltiples nodos mientras mantienen la comunicación de pérdida latencia y detención nivel de orondo de facción para la capacitación distribuida efectivo, reduciendo el tiempo de capacitación y la perfeccionamiento de la utilización de capital para los trabajos de IA a gran escalera.
El sucesivo fragmento de código muestra cómo incorporar esto en su trabajo de Skypilot:
Fregar
Para eliminar su clúster Skypilot, ejecute el sucesivo comando:
sky down
Para eliminar el clúster HyperPod creado en esta publicación, puede usar la consola AI Sagemaker o el sucesivo comando AWS CLI:
aws sagemaker delete-cluster --cluster-name
La asesinato del clúster tomará unos minutos. Puede confirmar la asesinato exitosa a posteriori de no ver grupos en la consola AI Sagemaker.
Si usó la pila CloudFormation para crear capital, puede eliminarlo utilizando el sucesivo comando:
aws cloudformation delete-stack --stack-name
Conclusión
Al combinar las sólidas capacidades de infraestructura de Sagemaker HyperPod con la interfaz sencillo de usar Skypilot, hemos mostrado una decisión que ayuda a los equipos a centrarse en la innovación en sitio de la complejidad de la infraestructura. Este enfoque no solo simplifica las operaciones, sino que incluso perfeccionamiento la productividad y la utilización de capital en todas las organizaciones de todos los tamaños. Para comenzar, consulte Skypilot en el Soporte de Amazon EKS en Amazon Sagemaker HyperPod Workshop.
Sobre los autores
Roy alela es un arquitecto senior de soluciones especializadas de IA/ML en AWS. Ayuda a los clientes de AWS, desde pequeñas nuevas empresas hasta grandes empresas, a deslizar y implementar modelos de almohadilla de forma efectivo en AWS. Le apasiona los problemas de optimización computacional y perfeccionamiento el rendimiento de las cargas de trabajo de IA.
Zhanghao wu es co-creador del Tesina de Código Hendido de Skypilot y posee un doctorado en Ciencias de la Computación de UC Berkeley. Trabaja en Skypilot Core, Cimentación de cliente cliente, trabajos administrados y mejorando la experiencia de IA en diversas infraestructura en la montón en genérico.
Ankit anand es entendido en el mercado de la Fundación Senior Modelos (GTM) en AWS. Se asocia con los principales constructores de modelos de IA generativos, clientes estratégicos y equipos de servicio de AWS para habilitar la próxima engendramiento de cargas de trabajo AI/ML en AWS. La experiencia de ANKIT incluye experiencia en encargo de productos interiormente de la industria de servicios financieros para el comercio de ingreso frecuencia y de pérdida latencia y mejora de negocios para Amazon Alexa.