Logotipo de Zephyrnet

Comience rápidamente con AWS Trainium y AWS Inferentia utilizando AWS Neuron DLAMI y AWS Neuron DLC | Servicios web de Amazon

Fecha:

A partir de la AWS neurona 2.18 liberación, ahora puedes iniciar Neurona DLAMI (AMI de aprendizaje profundo de AWS) y DLC de neuronas (AWS Deep Learning Containers) con los últimos paquetes Neuron lanzados el mismo día del SDK de Neuron liberar. Cuando se lanza un SDK de Neuron, ahora se le notificará sobre la compatibilidad con DLAMI y DLC de Neuron en las notas de la versión del SDK de Neuron, con un enlace a la documentación de AWS que contiene el Notas de versión de DLAMI y DLC. Además, esta versión presenta una serie de características que ayudan a mejorar la experiencia del usuario para los DLAMI y DLC de Neuron. En esta publicación, analizamos algunos de los aspectos más destacados del soporte con Neuron 2.18.

Descripción general y anuncios de Neuron DLC y DLAMI

DLAMI es una AMI preconfigurada que viene con marcos de aprendizaje profundo populares como TensorFlow, PyTorch, Apache MXNet y otros preinstalados. Esto permite a los profesionales del aprendizaje automático (ML) lanzar rápidamente una Nube informática elástica de Amazon (Amazon EC2) con un entorno de aprendizaje profundo listo para usar, sin tener que perder tiempo instalando y configurando manualmente los paquetes necesarios. DLAMI admite varios tipos de instancias, incluidas instancias impulsadas por Neuron Trainium e Inferentia, para entrenamiento e inferencia acelerados.

Los DLC de AWS proporcionan un conjunto de imágenes de Docker que están preinstaladas con marcos de aprendizaje profundo. Los contenedores están optimizados para el rendimiento y están disponibles en Registro de contenedores elásticos de Amazon (Amazon ECR). Los DLC facilitan la implementación de entornos de aprendizaje automático personalizados en forma de contenedores, al tiempo que aprovechan los beneficios de portabilidad y reproducibilidad de los contenedores.

DLAMI multimarco

La DLAMI Neuron Multi-Framework para Ubuntu 22 proporciona entornos virtuales separados para múltiples marcos de ML: PyTorch 2.1, PyTorch 1.13, Transformers NeuronX y TensorFlow 2.10. DLAMI le ofrece la comodidad de tener todos estos marcos populares disponibles en una única AMI, simplificando su configuración y reduciendo la necesidad de múltiples instalaciones.

Esta nueva DLAMI Neuron Multi-Framework es ahora la opción predeterminada al iniciar instancias Neuron para Ubuntu a través de Consola de administración de AWS, lo que hace que sea aún más rápido comenzar a utilizar las capacidades más recientes de Neuron directamente desde la lista AMI de inicio rápido.

Soporte existente de Neuron DLAMI

Las DLAMI de Neuron existentes para PyTorch 1.13 y TensorFlow 2.10 se han actualizado con el último SDK de Neuron 2.18, lo que garantiza que tenga acceso a las últimas optimizaciones de rendimiento y funciones para las distribuciones de Ubuntu 20 y Amazon Linux 2.

Soporte del almacén de parámetros de AWS Systems Manager

Neuron 2.18 también introduce soporte en Tienda de parámetros, una capacidad de Gerente de sistemas de AWS, para Neuron DLAMI, lo que le permite buscar y consultar fácilmente el ID de DLAMI con la última versión de Neuron SDK. Esta característica agiliza el proceso de lanzamiento de nuevas instancias con el SDK de Neuron más actualizado, lo que le permite automatizar sus flujos de trabajo de implementación y asegurarse de utilizar siempre las últimas optimizaciones.

Disponibilidad de imágenes DLC de Neuron en Amazon ECR

Para brindar a los clientes más opciones de implementación, los DLC de Neuron ahora están alojados tanto en el público Repositorio Neuron ECR y como privada imágenes. Las imágenes públicas proporcionan una integración perfecta con los servicios de implementación de AWS ML, como Amazon EC2, Servicio de contenedor elástico de Amazon (Amazon ECS), y Servicio Amazon Elastic Kubernetes (Amazon EKS); Se requieren imágenes privadas cuando se utilizan DLC de Neuron con Amazon SageMaker.

Ubicaciones de Dockerfile actualizadas

Antes de este lanzamiento, los DLC Dockerfiles para Neuron se encontraban dentro del AWS/Contenedores de aprendizaje profundo repositorio. En el futuro, los contenedores de Neuron se pueden encontrar en el AWS-Neuron/Contenedores de aprendizaje profundo repositorio.

Documentación mejorada

Las secciones de documentación del SDK de Neuron y de documentación de AWS para DLAMI y DLC ahora tienen guías de usuario actualizadas sobre Neuron. La documentación del SDK de Neuron también incluye una sección DLAMI dedicada con guías sobre cómo descubrir, instalar y actualizar DLAMI de Neuron, junto con enlaces a notas de la versión en la documentación de AWS.

Uso de Neuron DLC y DLAMI con instancias Trn e Inf

tren de AWS e Inferencia de AWS son chips de aprendizaje automático personalizados diseñados por AWS para acelerar las cargas de trabajo de aprendizaje profundo en la nube.

Puede elegir la Neuron DLAMI que desee al iniciar instancias Trn e Inf a través de la consola o herramientas de automatización de infraestructura como Interfaz de línea de comandos de AWS (AWS CLI). Después de iniciar una instancia Trn o Inf con la DLAMI seleccionada, puede activar el entorno virtual correspondiente al marco elegido y comenzar a usar Neuron SDK. Si está interesado en utilizar DLC, consulte la sección de documentación de DLC en la documentación de Neuron SDK o la sección de notas de la versión de DLC en la documentación de AWS para encontrar la lista de DLC de Neuron con la última versión de Neuron SDK. Cada DLC de la lista incluye un enlace a la imagen del contenedor correspondiente en el registro del contenedor Neuron. Después de elegir un DLC específico, consulte el tutorial del DLC en la siguiente sección para aprender cómo lanzar cargas de trabajo de inferencia y capacitación escalables utilizando servicios de AWS como Kubernetes (Amazon EKS), Amazon ECS, Amazon EC2 y SageMaker. Las siguientes secciones contienen tutoriales tanto para Neuron DLC como para DLAMI..

Tutorial de contenido descargable

En esta sección, proporcionamos recursos para ayudarle a utilizar contenedores para la aceleración de su modelo de aprendizaje profundo además de instancias habilitadas para AWS Inferentia y Trainium.

La sección está organizada según el entorno de implementación de destino y el caso de uso. En la mayoría de los casos, se recomienda utilizar una configuración preconfigurada. Contenido descargable de AWS. Cada DLC está preconfigurado para tener todos los componentes de Neuron instalados y es específico para el programa elegido. Marco de aprendizaje automático.

Localice la imagen del DLC Neuron

Las imágenes del DLC de PyTorch Neuron se publican en ECR Public Gallery, que es la URL recomendada para la mayoría de los casos. Si está trabajando en SageMaker, utilice la URL de Amazon ECR en lugar de la Galería pública de Amazon ECR. Los DLC de TensorFlow no se actualizan con la última versión. Para versiones anteriores, consulte Contenedores de neuronas. En las siguientes secciones, proporcionamos los pasos recomendados para ejecutar un trabajo de inferencia o entrenamiento en los DLC de Neuron.

Requisitos previos

Prepare su infraestructura (Amazon EKS, Amazon ECS, Amazon EC2 y SageMaker) con instancias de AWS Inferentia o Trainium como nodos trabajadores, asegurándose de que tengan los roles necesarios asociados para el acceso de lectura de Amazon ECR para recuperar imágenes de contenedores de Amazon ECR: arn:aws :iam::aws:policy/AmazonEC2ContainerRegistryReadOnly.

Al configurar hosts para Amazon EC2 y Amazon ECS, utilice AMI de aprendizaje profundo (DLAMI) es recomendado. Se recomienda utilizar una AMI de GPU optimizada para Amazon EKS en Amazon EKS.

También necesita que los scripts de trabajo de ML estén listos con un comando para invocarlos. En los siguientes pasos, utilizamos un único archivo, train.py, como secuencia de comandos del trabajo de ML. El comando para invocarlo es torchrun —nproc_per_node=2 —nnodes=1 train.py.

Ampliar el DLC Neuron

Amplíe el DLC Neuron para incluir sus scripts de trabajo de ML y otra lógica necesaria. Como ejemplo más simple, puede tener el siguiente Dockerfile:

FROM public.ecr.aws/neuron/pytorch-training-neuronx:2.1.2-neuronx-py310-sdk2.18.2-ubuntu20.04

COPY train.py /train.py

Este Dockerfile utiliza el contenedor de entrenamiento Neuron PyTorch como base y agrega su script de entrenamiento. train.py, al contenedor.

Cree y envíe a Amazon ECR

Complete los siguientes pasos:

  1. Construya su imagen de Docker:
    docker build -t <your-repo-name>:<your-image-tag> 

  2. Autentique su cliente Docker en su registro ECR:
    aws ecr get-login-password --region <your-region> | docker login --username AWS --password-stdin <your-aws-account-id>.dkr.ecr.<your-region>.amazonaws.com

  3. Etiqueta tu imagen para que coincida con tu repositorio:
    docker tag <your-repo-name>:<your-image-tag> <your-aws-account-id>.dkr.ecr.<your-region>.amazonaws.com/<your-repo-name>:<your-image-tag>

  4. Envíe esta imagen a Amazon ECR:
    docker push <your-aws-account-id>.dkr.ecr.<your-region>.amazonaws.com/<your-repo-name>:<your-image-tag>

Ahora puede ejecutar el DLC Neuron extendido en diferentes servicios de AWS.

Configuración de Amazon EKS

Para Amazon EKS, cree un archivo YAML de pod simple para utilizar el DLC Neuron extendido. Por ejemplo:

apiVersion: v1
kind: Pod
metadata:
  name: training-pod
spec:
  containers:
  - name: training-container
    image: <your-aws-account-id>.dkr.ecr.<your-region>.amazonaws.com/<your-repo-name>:<your-image-tag>
    command: ["torchrun"]
    args: ["--nproc_per_node=2", "--nnodes=1", "/train.py"]
    resources:
      limits:
        aws.amazon.com/neuron: 1
      requests:
        aws.amazon.com/neuron: 1

Usa kubectl apply -f <pod-file-name>.yaml para implementar este pod en su clúster de Kubernetes.

Configuración de Amazon ECS

Para Amazon ECS, cree una definición de tarea que haga referencia a su imagen de Docker personalizada. A continuación se muestra un ejemplo de definición de tarea JSON:

{
    "family": "training-task",
    "requiresCompatibilities": ["EC2"],
    "containerDefinitions": [
        {
            "command": [
                "torchrun --nproc_per_node=2 --nnodes=1 /train.py"
            ],
            "linuxParameters": {
                "devices": [
                    {
                        "containerPath": "/dev/neuron0",
                        "hostPath": "/dev/neuron0",
                        "permissions": [
                            "read",
                            "write"
                        ]
                    }
                ],
                "capabilities": {
                    "add": [
                        "IPC_LOCK"
                    ]
                }
            },
            "cpu": 0,
            "memoryReservation": 1000,
            "image": "<your-aws-account-id>.dkr.ecr.<your-region>.amazonaws.com/<your-repo-name>:<your-image-tag>",
            "essential": true,
            "name": "training-container",
        }
    ]
}

Esta definición configura una tarea con la configuración necesaria para ejecutar su aplicación en contenedores en Amazon ECS.

Configuración de Amazon EC2

Para Amazon EC2, puede ejecutar directamente su contenedor Docker:

docker run --name training-job --device=/dev/neuron0 <your-aws-account-id>.dkr.ecr.<your-region>.amazonaws.com/<your-repo-name>:<your-image-tag> "torchrun --nproc_per_node=2 --nnodes=1 /train.py"

Configuración de SageMaker

Para SageMaker, cree un modelo con su contenedor y especifique el comando del trabajo de entrenamiento en SageMaker SDK:

import sagemaker
from sagemaker.pytorch import PyTorch
role = sagemaker.get_execution_role()
pytorch_estimator = PyTorch(entry_point='train.py',
                            role=role,
                            image_uri='<your-aws-account-id>.dkr.ecr.<your-region>.amazonaws.com/<your-repo-name>:<your-image-tag>',
                            instance_count=1,
                            instance_type='ml.trn1.2xlarge',
                            framework_version='2.1.2',
                            py_version='py3',
                            hyperparameters={"nproc-per-node": 2, "nnodes": 1},
                            script_mode=True)
pytorch_estimator.fit()

Tutorial de DLAMI

Esta sección explica cómo iniciar una instancia Inf1, Inf2 o Trn1 utilizando la DLAMI de marco múltiple en la lista de AMI de inicio rápido y cómo obtener fácilmente la DLAMI más reciente que admita la versión más reciente del SDK de Neuron.

Neuron DLAMI es un DLAMI de múltiples marcos que admite múltiples marcos y bibliotecas de Neuron. Cada DLAMI viene preinstalado con controladores Neuron y admite todos los tipos de instancias de Neuron. Cada entorno virtual que corresponde a un marco o biblioteca de Neuron específico viene preinstalado con todas las bibliotecas de Neuron, incluido el compilador de Neuron y el tiempo de ejecución de Neuron necesarios para comenzar.

Esta versión presenta una nueva DLAMI multimarco para Ubuntu 22 que puede usar para comenzar rápidamente con el último SDK de Neuron en múltiples marcos compatibles con Neuron, así como soporte de parámetros de Systems Manager (SSM) para DLAMI para automatizar la recuperación de la última versión. DLAMI ID en flujos de automatización en la nube.

Para obtener instrucciones sobre cómo comenzar con DLAMI multi-framework a través de la consola, consulte Comience con Neuron en Ubuntu 22 con Neuron Multi-Framework DLAMI. Si desea utilizar Neuron DLAMI en sus flujos de automatización en la nube, Neuron también admite Parámetros SSM para recuperar el último ID de DLAMI.

Inicie la instancia usando Neuron DLAMI

Complete los siguientes pasos:

  1. En la consola de Amazon EC2, elija la región de AWS que desee y elija Lanzamiento de instancia.
  2. En Empieza pestaña, elegir Ubuntu.
  3. Para los paquetes Imagen de la máquina de Amazon, escoger Neurona AMI de aprendizaje profundo (Ubuntu 22.04).
  4. Especifique la instancia de Neuron que desee.
  5. Configure el tamaño del disco y otros criterios.
  6. Lanza la instancia.

Activar el entorno virtual

Activa tu deseado ambiente virtual, como se muestra en la siguiente captura de pantalla.

Una vez que haya activado el entorno virtual, puede probar uno de los tutoriales enumerados en la sección de inferencia y capacitación del marco o biblioteca correspondiente.

Utilice parámetros SSM para encontrar Neuron DLAMI específicos

Soporte para neuronas DLAMI Parámetros SSM para encontrar rápidamente las ID de Neuron DLAMI. Al momento de escribir este artículo, solo admitimos la búsqueda del ID de DLAMI más reciente que corresponda a la última versión del SDK de Neuron con compatibilidad con parámetros SSM. En versiones futuras, agregaremos soporte para encontrar el ID de DLAMI usando parámetros SSM para una versión específica de Neuron.

Puede encontrar la DLAMI que admita el último SDK de Neuron utilizando el comando get-parameter:

aws ssm get-parameter 
--region us-east-1 
--name <dlami-ssm-parameter-prefix>/latest/image_id 
--query "Parameter.Value" 
--output text

Por ejemplo, para encontrar el ID de DLAMI más reciente para DLAMI multiframework (Ubuntu 22), puede utilizar el siguiente código:

aws ssm get-parameter 
--region us-east-1 
--name /aws/service/neuron/dlami/multi-framework/ubuntu-22.04/latest/image_id 
--query "Parameter.Value" 
--output text

Puede encontrar todos los parámetros disponibles admitidos en Neuron DLAMI utilizando la CLI de AWS:

aws ssm get-parameters-by-path 
--region us-east-1 
--path /aws/service/neuron 
--recursive

También puede ver los parámetros de SSM admitidos en Neuron a través de Parameter Store seleccionando el neurona .

Utilice parámetros de SSM para lanzar una instancia directamente mediante la CLI de AWS

Puede utilizar la CLI de AWS para encontrar el ID de DLAMI más reciente e iniciar la instancia simultáneamente. El siguiente fragmento de código muestra un ejemplo de cómo iniciar una instancia de Inf2 utilizando una DLAMI multimarco:

aws ec2 run-instances 
--region us-east-1 
--image-id resolve:ssm:/aws/service/neuron/dlami/pytorch-1.13/amazon-linux-2/latest/image_id 
--count 1 
--instance-type inf2.48xlarge 
--key-name <my-key-pair> 
--security-groups <my-security-group>

Utilice parámetros de SSM en plantillas de lanzamiento de EC2

También puede utilizar los parámetros de SSM directamente en las plantillas de lanzamiento. Puede actualizar sus grupos de Auto Scaling para usar nuevos ID de AMI sin necesidad de crear nuevas plantillas de lanzamiento o nuevas versiones de plantillas de lanzamiento cada vez que cambia un ID de AMI.

Limpiar

Cuando haya terminado de ejecutar los recursos que implementó como parte de esta publicación, asegúrese de eliminarlos o impedir que se ejecuten y acumulen cargos:

  1. Detenga su instancia EC2.
  2. Elimine su clúster ECS.
  3. Elimine su clúster EKS.
  4. Limpia tus recursos de SageMaker.

Conclusión

En esta publicación, presentamos varias mejoras incorporadas en Neuron 2.18 que mejoran la experiencia del usuario y el tiempo de obtención de valor para los clientes que trabajan con instancias de AWS Inferentia y Trainium. Los DLAMI y DLC de Neuron con el último SDK de Neuron el mismo día del lanzamiento significa que puede beneficiarse inmediatamente de las últimas optimizaciones de rendimiento, características y documentación para instalar y actualizar los DLAMI y DLC de Neuron.

Además, ahora puede utilizar DLAMI de múltiples marcos, que simplifica el proceso de configuración al proporcionar entornos virtuales aislados para múltiples marcos de aprendizaje automático populares. Finalmente, analizamos la compatibilidad con Parameter Store para Neuron DLAMI que agiliza el proceso de lanzamiento de nuevas instancias con el SDK de Neuron más actualizado, lo que le permite automatizar sus flujos de trabajo de implementación con facilidad.

Los DLC de Neuron están disponibles en repositorios ECR públicos y privados para ayudarlo a implementar Neuron en su servicio de AWS preferido. Consulte los siguientes recursos para comenzar:


Acerca de los autores

Niithiyn Vijeaswaran es arquitecto de soluciones en AWS. Su área de enfoque es la IA generativa y los aceleradores de IA de AWS. Tiene una Licenciatura en Informática y Bioinformática. Niithiyn trabaja en estrecha colaboración con el equipo de Generative AI GTM para ayudar a los clientes de AWS en múltiples frentes y acelerar su adopción de la IA generativa. Es un ávido fanático de los Dallas Mavericks y le gusta coleccionar zapatillas.

Armando diaz es arquitecto de soluciones en AWS. Se centra en IA generativa, IA/ML y análisis de datos. En AWS, Armando ayuda a los clientes a integrar capacidades de IA generativa de vanguardia en sus sistemas, fomentando la innovación y la ventaja competitiva. Cuando no está en el trabajo, le gusta pasar tiempo con su esposa y su familia, hacer senderismo y viajar por el mundo.

Sebastián Bustillo es arquitecto de soluciones empresariales en AWS. Se centra en las tecnologías de IA/ML y tiene una profunda pasión por la IA generativa y los aceleradores informáticos. En AWS, ayuda a los clientes a desbloquear valor empresarial a través de la IA generativa, ayudándolos con el proceso general desde la ideación hasta la producción. Cuando no está en el trabajo, le gusta preparar una taza perfecta de café especial y explorar el aire libre con su esposa.

Ziwen Ning es ingeniero de desarrollo de software en AWS. Actualmente se enfoca en mejorar la experiencia de AI/ML a través de la integración de AWS Neuron con entornos en contenedores y Kubernetes. En su tiempo libre le gusta desafiarse al bádminton, la natación y otros deportes diversos, y sumergirse en la música.

anant sharma es ingeniero de software en AWS Annapurna Labs y se especializa en DevOps. Su enfoque principal gira en torno a la creación, automatización y perfeccionamiento del proceso de entrega de software a los clientes de AWS Trainium e Inferentia. Más allá del trabajo, le apasionan los juegos, explorar nuevos destinos y seguir los últimos avances tecnológicos.

Roopnath Grandhi es gerente sénior de productos en AWS. Dirige la inferencia de modelos a gran escala y las experiencias de desarrollo para los aceleradores de IA AWS Trainium e Inferentia. Con más de 15 años de experiencia en la arquitectura y construcción de productos y plataformas basados ​​en IA, posee múltiples patentes y publicaciones en IA y comercio electrónico.

Marco Puño es un arquitecto de soluciones centrado en la estrategia de IA generativa, soluciones de IA aplicada y en la realización de investigaciones para ayudar a los clientes a hiperescalar en AWS. Es un tecnólogo calificado apasionado por el aprendizaje automático, la inteligencia artificial y las fusiones y adquisiciones. Marco reside en Seattle, WA y le gusta escribir, leer, hacer ejercicio y crear aplicaciones en su tiempo libre.

Rohit talluri es especialista en IA generativa GTM (Tech BD) en Amazon Web Services (AWS). Se está asociando con los principales creadores de modelos de IA generativa, clientes estratégicos, socios clave de IA/ML y equipos de servicio de AWS para permitir la próxima generación de inteligencia artificial, aprendizaje automático y computación acelerada en AWS. Anteriormente fue arquitecto de soluciones empresariales y líder de soluciones globales para el asesoramiento sobre fusiones y adquisiciones de AWS.

punto_img

Información más reciente

punto_img