Los modelos de lenguaje son métodos estadísticos que predicen la sucesión de tokens en secuencias, usando texto natural. Los modelos de lenguaje grande (LLM) son modelos de lenguaje basados en redes neuronales con cientos de millones (BERTI) a más de un billón de parámetros (micrófonos), y cuyo tamaño hace que el entrenamiento con una sola GPU no sea práctico. Las habilidades generativas de los LLM los hacen populares para la síntesis de textos, resúmenes, traducción automática y más.
El tamaño de un LLM y sus datos de entrenamiento es un arma de doble filo: brinda calidad de modelado, pero implica desafíos de infraestructura. El modelo en sí es a menudo demasiado grande para caber en la memoria de un solo dispositivo de GPU o en los múltiples dispositivos de una instancia de múltiples GPU. Estos factores requieren entrenar un LLM sobre grandes grupos de instancias de aprendizaje automático (ML) acelerado. En los últimos años, numerosos clientes han estado utilizando la nube de AWS para la capacitación LLM.
En esta publicación, nos sumergimos en consejos y mejores prácticas para una capacitación exitosa de LLM en Capacitación de Amazon SageMaker. SageMaker Training es un servicio de cómputo ML por lotes administrado que reduce el tiempo y el costo para entrenar y ajustar modelos a escala sin la necesidad de administrar la infraestructura. Dentro de un comando de lanzamiento, Amazon SageMaker lanza un clúster de cómputo efímero completamente funcional que ejecuta la tarea de su elección y con características mejoradas de ML como metastore, E/S administrada y distribución. La publicación cubre todas las fases de una carga de trabajo de capacitación LLM y describe las características de infraestructura asociadas y las mejores prácticas. Algunas de las mejores prácticas en esta publicación se refieren específicamente a las instancias ml.p4d.24xlarge, pero la mayoría son aplicables a cualquier tipo de instancia. Estas mejores prácticas le permiten capacitar a los LLM en SageMaker en una escala de decenas a cientos de millones de parámetros.
Con respecto al alcance de esta publicación, tenga en cuenta lo siguiente:
- No cubrimos el diseño científico de redes neuronales y las optimizaciones asociadas. Amazon.Ciencia presenta numerosas publicaciones científicas, que incluyen y no se limitan a LLM.
- Si bien esta publicación se enfoca en los LLM, la mayoría de sus mejores prácticas son relevantes para cualquier tipo de capacitación de modelos grandes, incluida la visión por computadora y los modelos multimodales, como Stable Diffusion.
Mejores prácticas
Discutimos las siguientes mejores prácticas en esta publicación:
- Calcular – SageMaker Training es una excelente API para iniciar trabajos de preparación de conjuntos de datos de CPU y trabajos de GPU de escala mil.
- Almacenamiento – Vemos que la carga de datos y los puntos de control se realizan de dos maneras, según las habilidades y preferencias: con un Brillo de Amazon FSx sistema de archivos, o Servicio de almacenamiento simple de Amazon (Amazon S3) solamente.
- Paralelismo – Su elección de biblioteca de formación distribuida es crucial para el uso adecuado de las GPU. Recomendamos usar una biblioteca optimizada para la nube, como el paralelismo de datos fragmentados de SageMaker, pero las bibliotecas autogestionadas y de código abierto también pueden funcionar.
- Networking – Asegúrese de que EFA y NVIDIA GPUDirectRDMA estén habilitados para una comunicación rápida entre máquinas.
- La Resiliencia – A escala, pueden ocurrir fallas de hardware. Recomendamos hacer checkpoints regularmente. Cada pocas horas es común.
Selección de región
El tipo de instancia y la capacidad deseada es un factor determinante para la selección de la región. Para las regiones admitidas por SageMaker y el Nube informática elástica de Amazon (Amazon EC2) tipos de instancia que están disponibles en cada región, consulte Precios de Amazon SageMaker. En esta publicación, asumimos que el tipo de instancia de capacitación es un ml.p4d.24xlarge administrado por SageMaker.
Recomendamos trabajar con su equipo de cuenta de AWS o contactar Ventas de AWS para determinar la región apropiada para su carga de trabajo LLM.
Preparación de datos
Los desarrolladores de LLM entrenan sus modelos en grandes conjuntos de datos de texto natural. Los ejemplos populares de tales fuentes de datos incluyen Rastreo común y La pila. El texto natural puede contener sesgos, inexactitudes, errores gramaticales y variaciones sintácticas. La calidad eventual de un LLM depende significativamente de la selección y conservación de los datos de entrenamiento. La preparación de datos de capacitación LLM es un área activa de investigación e innovación en la industria LLM. La preparación de un conjunto de datos de procesamiento de lenguaje natural (NLP) abunda en oportunidades de paralelismo sin compartir. En otras palabras, hay pasos que se pueden aplicar a unidades de obras (archivos fuente, párrafos, oraciones, palabras) sin necesidad de sincronización entre trabajadores.
Las API de trabajos de SageMaker, a saber, SageMaker Training y SageMaker Processing, sobresalen para este tipo de tareas. Permiten a los desarrolladores ejecutar un contenedor Docker arbitrario en una flota de varias máquinas. En el caso de la API de capacitación de SageMaker, la flota informática se puede heterogéneo. Se han utilizado numerosos marcos informáticos distribuidos en SageMaker, incluidos Tablero, Ray, y también PySpark, que tienen un dedicado Contenedor administrado por AWS y SDK en el procesamiento de SageMaker.
Cuando inicia un trabajo con varias máquinas, SageMaker Training and Processing ejecuta su código una vez por máquina. No es necesario utilizar un marco informático distribuido en particular para escribir una aplicación distribuida: puede escribir el código de su elección, que se ejecutará una vez por máquina, para realizar el paralelismo de no compartir nada. También puede escribir o instalar la lógica de comunicación entre nodos de su elección.
Carga de datos
Hay varias formas de almacenar los datos de entrenamiento y moverlos desde su almacenamiento a los nodos de computación acelerados. En esta sección, discutimos las opciones y las mejores prácticas para la carga de datos.
Opciones de carga y almacenamiento de SageMaker
El tamaño típico de un conjunto de datos LLM es de cientos de millones de tokens de texto, lo que representa unos pocos cientos de gigabytes. Los clústeres administrados por SageMaker de instancias ml.p4d.24xlarge proponen varias opciones para el almacenamiento y la carga de conjuntos de datos:
- SSD NVMe en el nodo – Las instancias ml.P4d.24xlarge están equipadas con NVMe de 8 TB, disponible bajo
/opt/ml/input/data/<channel>
si usas Modo de archivo de SageMakerY en/tmp
. Si busca la simplicidad y el rendimiento de una lectura local, puede copiar sus datos a la SSD NVMe. La copia se puede realizar mediante el modo de archivo de SageMaker o mediante su propio código, por ejemplo, mediante el uso de archivos multiprocesados. boto3 or S5cmd. - FSx para brillo – Los SSD NVMe en el nodo tienen un tamaño limitado y requieren la ingesta de Amazon S3 en cada trabajo o creación de clúster en caliente. Si está buscando escalar a conjuntos de datos más grandes mientras mantiene un acceso aleatorio de baja latencia, puede usar FSx para Lustre. Amazon FSx es un sistema de archivos paralelos de código abierto, popular en la informática de alto rendimiento (HPC). FSx para usos Lustre almacenamiento de archivos distribuido (eliminar) y separa físicamente los metadatos del archivo del contenido del archivo para lograr lecturas/escrituras de alto rendimiento.
- Modo de archivo rápido de SageMaker – Modo de archivo rápido (FFM) es una característica exclusiva de SageMaker que presenta objetos S3 remotos en instancias informáticas administradas por SageMaker en una interfaz compatible con POSIX y los transmite solo al leerlos mediante FUSE. FFM lee los resultados en llamadas S3 que transmiten archivos remotos bloque por bloque. Como práctica recomendada para evitar errores relacionados con el tráfico de Amazon S3, los desarrolladores de FFM deben tratar de mantener razonable la cantidad subyacente de llamadas de S3, por ejemplo, leyendo archivos secuencialmente y con una cantidad controlada de paralelismo.
- Carga de datos autogestionada – Por supuesto, también puede decidir implementar su propia lógica de carga de datos totalmente personalizada, utilizando código propietario o de fuente abierta. Algunas razones para usar la carga de datos autoadministrada son para facilitar una migración mediante la reutilización de código ya desarrollado, para implementar una lógica de manejo de errores personalizada o para tener más control sobre el rendimiento subyacente y la fragmentación. Los ejemplos de bibliotecas que puede usar para la carga de datos autogestionada incluyen torchdata.tubos de datos (previamente Complemento AWS PyTorch S3) y conjunto de datos web. El SDK de Python de AWS boto3 también se puede combinar con Conjunto de datos de antorcha clases para crear un código de carga de datos personalizado. Las clases de carga de datos personalizadas también permiten el uso creativo de los clústeres heterogéneos de SageMaker Training, para adaptar con precisión el equilibrio de CPU y GPU a una carga de trabajo determinada.
Para obtener más información sobre esas opciones y cómo elegirlas, consulte Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker.
Mejores prácticas para la interacción a gran escala con Amazon S3
Amazon S3 es capaz de manejar cargas de trabajo de LLM, tanto para lectura de datos como para puntos de control. Es compatible con un tasa de solicitud de 3,500 solicitudes PUT/COPY/POST/DELETE o 5,500 GET/HEAD por segundo por prefijo en un depósito. Sin embargo, esta tarifa no está necesariamente disponible por defecto. En su lugar, a medida que crece la tasa de solicitudes de un prefijo, Amazon S3 se escala automáticamente para manejar el aumento de la tasa. Para obtener más información, consulte ¿Por qué recibo errores de desaceleración 503 de Amazon S3 cuando las solicitudes se encuentran dentro de la tasa de solicitud admitida por prefijo?.
Si espera una interacción de Amazon S3 de alta frecuencia, le recomendamos las siguientes prácticas recomendadas:
- Intente leer y escribir desde varios cubos S3 y prefijos. Por ejemplo, puede dividir los datos de entrenamiento y los puntos de control en diferentes prefijos.
- Compruebe las métricas de Amazon S3 en Reloj en la nube de Amazon para realizar un seguimiento de las tasas de solicitud.
- Intente minimizar la cantidad de PUT/GET simultáneos:
- Tenga menos procesos usando Amazon S3 al mismo tiempo. Por ejemplo, si ocho procesos por nodo necesitan realizar un punto de control en Amazon S3, puede reducir el tráfico PUT en un factor de 8 mediante el punto de control jerárquico: primero dentro del nodo, luego desde el nodo a Amazon S3.
- Lea varios registros de capacitación desde un solo archivo o S3 GET, en lugar de usar S3 GET para cada registro de capacitación.
- Si usa Amazon S3 a través de SageMaker FFM, SageMaker FFM realiza llamadas S3 para obtener archivos fragmento por fragmento. Para limitar el tráfico de Amazon S3 generado por FFM, le recomendamos que lea los archivos de forma secuencial y limite la cantidad de archivos abiertos en paralelo.
Si usted tiene una Plan de soporte para desarrolladores, empresas o empresas, puede abrir un caso de asistencia técnica sobre los errores de ralentización del S3 503. Pero primero asegúrese de haber seguido las mejores prácticas y obtener los ID de solicitud por las solicitudes fallidas.
Paralelismo de entrenamiento
Los LLM suelen tener de docenas a cientos de miles de millones de parámetros, lo que los hace demasiado grandes para caber en una sola tarjeta NVIDIA GPU. Los profesionales de LLM han desarrollado varias bibliotecas de código abierto que facilitan el cómputo distribuido de la capacitación de LLM, que incluyen FSDP, velocidadprofunda y Megatron. Puede ejecutar esas bibliotecas en la capacitación de SageMaker, pero también puede usar las bibliotecas de capacitación distribuidas de SageMaker, que se optimizaron para la nube de AWS y brindan una experiencia de desarrollador más simple. Los desarrolladores tienen dos opciones para la formación distribuida de su LLM en SageMaker: bibliotecas distribuidas o autogestionadas.
Bibliotecas distribuidas de SageMaker
Para brindarle un mejor rendimiento y usabilidad de capacitación distribuida, SageMaker Training propone varias extensiones patentadas para escalar el código de capacitación de TensorFlow y PyTorch. La capacitación LLM a menudo se lleva a cabo en forma de paralelismo 3D:
- Paralelismo de datos divide y alimenta los minilotes de entrenamiento a múltiples réplicas idénticas del modelo, para aumentar la velocidad de procesamiento
- Paralelismo de oleoductos atribuye varias capas del modelo a diferentes GPU o incluso instancias, para escalar el tamaño del modelo más allá de una sola GPU y un solo servidor
- paralelismo tensorial divide una sola capa en múltiples GPU, generalmente dentro del mismo servidor, para escalar capas individuales a tamaños que superan una sola GPU
En el siguiente ejemplo, se entrena un modelo de 6 capas en un clúster de k*3 servidores con 8*k*3 GPU (8 GPU por servidor). El grado de paralelismo de datos es k, el paralelismo de canalización 6 y el paralelismo de tensor 4. Cada GPU en el clúster contiene una cuarta parte de una capa de modelo y un modelo completo se divide en tres servidores (24 GPU en total).
Los siguientes son específicamente relevantes para los LLM:
- Modelo distribuido de SageMaker paralelo – Esta biblioteca utiliza particiones de gráficos para producir particiones de modelos inteligentes optimizadas para la velocidad o la memoria. El modelo paralelo distribuido de SageMaker expone la última y mejor optimización de entrenamiento de modelos grandes, incluido el paralelismo de datos, el paralelismo de canalización, el paralelismo de tensores, la fragmentación del estado del optimizador, los puntos de control de activación y la descarga. Con la biblioteca paralela de modelos distribuidos de SageMaker, documentamos un entrenamiento de modelos de 175 mil millones de parámetros en 920 GPU NVIDIA A100. Para obtener más información, consulte Entrene más de 175 XNUMX millones de modelos de NLP con parámetros con adiciones paralelas de modelos y Hugging Face en Amazon SageMaker.
- Datos fragmentados de SageMaker en paralelo - En MiCS: escalado casi lineal para entrenar un modelo gigante en la nube pública, Zhang et al. Introducir una estrategia paralela de modelo de baja comunicación que divida los modelos solo en un grupo paralelo de datos, en lugar de todo el clúster. Con MiCS, los científicos de AWS pudieron lograr 176 teraflops por GPU (56.4 % del pico teórico) para entrenar un modelo de 210 capas y 1.06 billones de parámetros en instancias EC2 P4de. MiCS ahora está disponible para los clientes de SageMaker Training como Datos fragmentados de SageMaker en paralelo.
Las bibliotecas de formación distribuidas de SageMaker proporcionan un alto rendimiento y una experiencia de desarrollador más sencilla. En particular, los desarrolladores no necesitan escribir y mantener un lanzador de procesos paralelos personalizado o usar una herramienta de lanzamiento específica del marco, porque el lanzador paralelo está integrado en el SDK de lanzamiento de trabajos.
Autogestionado
Con SageMaker Training, tiene la libertad de usar el marco y el paradigma científico de su elección. En particular, si desea administrar usted mismo la capacitación distribuida, tiene dos opciones para escribir su código personalizado:
- Utilice un contenedor de aprendizaje profundo (DLC) de AWS – AWS desarrolla y mantiene DLCs, que proporciona entornos basados en Docker optimizados para AWS para los mejores marcos de aprendizaje automático de código abierto. SageMaker Training tiene una integración única que le permite extraer y ejecutar DLC de AWS con un punto de entrada externo definido por el usuario. Para la capacitación de LLM en particular, los DLC de AWS para TensorFlow, PyTorch, Hugging Face y MXNet son particularmente relevantes. El uso de un marco DLC le permite usar el paralelismo nativo del marco, como PyTorch Distributed, sin tener que desarrollar y administrar sus propias imágenes de Docker. Además, nuestros DLC cuentan con un Integración MPI, que le permite lanzar código paralelo fácilmente.
- Escribir una imagen de Docker compatible con SageMaker personalizada – Puede traer su propia imagen (BYO) (ver Utilice sus propios algoritmos de entrenamiento y Contenedores de formación personalizados de Amazon SageMaker), ya sea comenzando desde cero o ampliando una imagen DLC existente. Al usar una imagen personalizada para la capacitación de LLM en SageMaker, es particularmente importante verificar lo siguiente:
- Su imagen contiene EFA con la configuración adecuada (discutido más adelante en esta publicación)
- Su imagen contiene una biblioteca de comunicación NVIDIA NCCL, habilitada con GPUDirectRDMA
Los clientes han podido utilizar una serie de bibliotecas de formación distribuidas autogestionadas, incluida DeepSpeed.
Comunicaciónes
Dada la naturaleza distribuida de un trabajo de capacitación LLM, la comunicación entre máquinas es fundamental para la viabilidad, el rendimiento y los costos de la carga de trabajo. En esta sección, presentamos características clave para la comunicación entre máquinas y concluimos con consejos para la instalación y el ajuste.
Adaptador de tela elástica
Para acelerar las aplicaciones de ML y mejorar el rendimiento al lograr la flexibilidad, la escalabilidad y la elasticidad proporcionadas por la nube, puede aprovechar Adaptador de tela elástica (EFA) con SageMaker. Según nuestra experiencia, el uso de EFA es un requisito para obtener un rendimiento de capacitación LLM multinodo satisfactorio.
Un dispositivo EFA es una interfaz de red conectada a instancias EC2 administradas por SageMaker durante la ejecución de los trabajos de capacitación. EFA está disponible en familias específicas de instancias, incluido el P4d. Las redes EFA son capaces de lograr varios cientos de Gbps de rendimiento.
Asociado a EFA, AWS ha presentado el Datagrama confiable escalable (SRD), un transporte basado en ethernet inspirado en el Datagrama Confiable InfiniBand, evolucionó con una restricción de ordenación de paquetes relajada. Para obtener más información sobre EFA y SRD, consulte En la búsqueda de rendimiento, hay más de una forma de construir una red, el video Cómo funciona EFA y por qué no usamos infiniband en la nubey el trabajo de investigación Un protocolo de transporte optimizado para la nube para HPC elástico y escalable de Shalev et al.
Puede agregar la integración de EFA en instancias compatibles con los contenedores Docker existentes de SageMaker o contenedores personalizados que se pueden usar para entrenar modelos de aprendizaje automático mediante trabajos de SageMaker. Para obtener más información, consulte Ejecute el entrenamiento con EFA. EFA se expone a través de la fuente abierta libfabric paquete de comunicación. Sin embargo, los desarrolladores de LLM rara vez lo programan directamente con Libfabric y, por lo general, confían en NVIDIA Collective Communications Library (NCCL).
Complemento AWS-OFI-NCCL
En ML distribuido, EFA se usa con mayor frecuencia con NVIDIA Collective Communications Library (NCCL). NCCL es una biblioteca de código abierto desarrollada por NVIDIA que implementa algoritmos de comunicación entre GPU. La comunicación entre GPU es una piedra angular de la capacitación LLM que cataliza la escalabilidad y el rendimiento. Es tan importante para la capacitación de DL que el NCCL a menudo se integra directamente como un backend de comunicación en las bibliotecas de capacitación de aprendizaje profundo, de modo que los desarrolladores de LLM lo usan, a veces sin darse cuenta, desde su marco de desarrollo de Python DL preferido. Para usar el NCCL en EFA, los desarrolladores de LLM usan el desarrollado por AWS Complemento AWS OFI NCCL, que asigna llamadas NCCL a la interfaz Libfabric utilizada por EFA. Recomendamos utilizar la última versión de AWS OFI NCCL para beneficiarse de las mejoras recientes.
Para verificar que el NCCL usa EFA, debe configurar la variable de entorno NCCL_DEBUG
a INFO
y verifique en los registros que el NCCL carga EFA:
Para obtener más información sobre la configuración de NCCL y EFA, consulte Pruebe su configuración de EFA y NCCL. Puede personalizar aún más el NCCL con varios Variables de entorno. Tenga en cuenta que, a partir de NCCL 2.12 y superior, AWS contribuyó con una lógica de selección de algoritmo de comunicación automatizada para redes EFA (NCCL_ALGO
se puede dejar sin configurar).
NVIDIA GPUDirect RDMA sobre EFA
Con el tipo de instancia P4d, Introducido GPUDirect RDMA (GDR) sobre tejido EFA. Permite que las tarjetas de interfaz de red (NIC) accedan directamente a la memoria de la GPU, lo que hace que la comunicación remota de GPU a GPU a través de instancias EC2 basadas en NVIDIA GPU sea más rápida, lo que reduce la sobrecarga de orquestación en las CPU y las aplicaciones de usuario. La NCCL utiliza GDR bajo el capó, cuando es factible.
El uso de GDR aparece en la comunicación entre GPU cuando el nivel de registro se establece en INFO, como en el siguiente código:
Uso de EFA en contenedores de aprendizaje profundo de AWS
AWS mantiene contenedores de aprendizaje profundo (DLC), muchos de los cuales vienen con Dockerfiles administrados por AWS y creados con EFA, AWS OFI NCCL y NCCL. Los siguientes repositorios de GitHub ofrecen ejemplos con PyTorch y TensorFlow. No necesita instalar esas bibliotecas usted mismo.
Uso de EFA en su propio contenedor de capacitación de SageMaker
Si crea su propio contenedor de capacitación de SageMaker y desea utilizar NCCL sobre EFA para acelerar la comunicación entre nodos, debe instalar EFA, NCCL y AWS OFI NCCL. Para obtener más información, consulte Ejecute el entrenamiento con EFA. Además, debe configurar las siguientes variables de entorno en su contenedor o en su código de punto de entrada:
FI_PROVIDER="efa"
especifica el proveedor de la interfaz de tejidoNCCL_PROTO=simple
indica al NCCL que use un protocolo simple para la comunicación (actualmente, el proveedor de EFA no es compatible con los protocolos LL; habilitarlos podría provocar la corrupción de datos)FI_EFA_USE_DEVICE_RDMA=1
utiliza la funcionalidad RDMA del dispositivo para la transferencia de uno y dos ladosNCCL_LAUNCH_MODE="PARALLEL"
NCCL_NET_SHARED_COMMS="0"
Orquestación
Administrar el ciclo de vida y la carga de trabajo de docenas a cientos de instancias informáticas requiere un software de orquestación. En esta sección, ofrecemos las mejores prácticas para la orquestación de LLM
Orquestación dentro del trabajo
Los desarrolladores deben escribir tanto el código de entrenamiento del lado del servidor como el código de inicio del lado del cliente en la mayoría de los marcos distribuidos. El código de entrenamiento se ejecuta en máquinas de entrenamiento, mientras que el código de inicio del lado del cliente lanza la carga de trabajo distribuida desde una máquina cliente. Hay poca estandarización hoy en día, por ejemplo:
- En PyTorch, los desarrolladores pueden iniciar tareas en varias máquinas usando
torchrun
,torchx
,torch.distributed.launch
(ruta de obsolescencia), otorch.multiprocessing.spawn
- DeepSpeed propone su propio lanzador CLI de alta velocidad y también es compatible con el lanzamiento de MPI
- MPI es un marco de computación paralela popular que tiene la ventaja de ser independiente de ML y tener una titularidad razonable y, por lo tanto, estable y documentado, y se ve cada vez más en cargas de trabajo de ML distribuidas.
En un clúster de capacitación de SageMaker, el contenedor de capacitación se inicia una vez en cada máquina. En consecuencia, tienes tres opciones:
- Lanzador nativo – Puede usar como punto de entrada el iniciador nativo de un marco DL en particular, por ejemplo, un
torchrun
call, que a su vez generará múltiples procesos locales y establecerá comunicaciones entre instancias. - Integración SageMaker MPI – Puede usar la integración de SageMaker MPI, disponible en nuestro DLC de AWS, o autoinstalable a través de kit de herramientas de entrenamiento de sagemaker, para ejecutar directamente su código de punto de entrada N veces por máquina. Esto tiene la ventaja de evitar el uso de secuencias de comandos de inicio intermedias y específicas del marco en su propio código.
- Bibliotecas distribuidas de SageMaker – Si usa las bibliotecas distribuidas de SageMaker, puede concentrarse en el código de capacitación y no tiene que escribir ningún código de inicio. El código de inicio distribuido de SageMaker está integrado en el SDK de SageMaker.
Orquestación entre puestos de trabajo
Los proyectos LLM a menudo consisten en múltiples trabajos: búsqueda de parámetros, experimentos de escalado, recuperación de errores y más. Para iniciar, detener y paralelizar tareas de capacitación, es importante usar un orquestador de tareas. SageMaker Training es un orquestador de trabajos de aprendizaje automático sin servidor que aprovisiona instancias informáticas transitorias de inmediato cuando se solicitan. Solo paga por lo que usa, y los clústeres se dan de baja tan pronto como finaliza su código. Con Piscinas templadas de entrenamiento de SageMaker, tiene la opción de definir un tiempo de vida en los clústeres de capacitación para reutilizar la misma infraestructura en todos los trabajos. Esto reduce el tiempo de iteración y la variabilidad de ubicación entre trabajos. Los trabajos de SageMaker se pueden iniciar desde una variedad de lenguajes de programación, incluidos Python y CLI.
Existe un SDK de Python específico de SageMaker denominado SDK de SageMaker Python e implementado a través de la sabio Biblioteca de Python, pero su uso es opcional.
Cuotas crecientes para trabajos de capacitación con un grupo de capacitación grande y prolongado
SageMaker tiene cuotas predeterminadas para los recursos, diseñadas para evitar el uso y los costos no intencionales. Para entrenar un LLM usando un gran grupo de instancias de alto nivel que se ejecutan durante mucho tiempo, es probable que deba aumentar las cuotas en la siguiente tabla.
Nombre de la cuota | Valor por defecto |
Tiempo de ejecución más largo para un trabajo de entrenamiento | 432,000 segundos |
Número de instancias en todos los trabajos de entrenamiento | 4 |
Número máximo de instancias por trabajo de entrenamiento | 20 |
ml.p4d.24xlarge para el uso del trabajo de entrenamiento | 0 |
ml.p4d.24xlarge para entrenar el uso de piscinas calientes | 0 |
See Cuotas de servicio de AWS cómo ver los valores de su cuota y solicitar un aumento de cuota. Las cuotas de grupos tibios de entrenamiento, instancias de spot y bajo demanda se rastrean y modifican por separado.
Si decide mantener SageMaker Profiler activado, tenga en cuenta que cada trabajo de capacitación inicia un trabajo de procesamiento de SageMaker, cada uno de los cuales consume una instancia ml.m5.2xlarge. Confirme que sus cuotas de procesamiento de SageMaker son lo suficientemente altas para adaptarse a la simultaneidad de trabajos de capacitación esperada. Por ejemplo, si desea iniciar 50 trabajos de capacitación habilitados para Profiler que se ejecutan simultáneamente, deberá aumentar el límite de uso de ml.m5.2xlarge para el procesamiento de trabajos a 50.
Además, para iniciar un trabajo de larga duración, deberá establecer explícitamente el Estimador max_run
parámetro a la duración máxima deseada para el trabajo de entrenamiento en segundos, hasta el valor de cuota del tiempo de ejecución más largo para un trabajo de entrenamiento.
Supervisión y resiliencia
La falla de hardware es extremadamente rara a la escala de una sola instancia y se vuelve cada vez más frecuente a medida que aumenta la cantidad de instancias utilizadas simultáneamente. En la escala típica de LLM (de cientos a miles de GPU utilizadas las 24 horas del día, los 7 días de la semana durante semanas o meses), es casi seguro que ocurran fallas de hardware. Por lo tanto, una carga de trabajo de LLM debe implementar mecanismos de resiliencia y supervisión adecuados. En primer lugar, es importante monitorear de cerca la infraestructura LLM para limitar el impacto de las fallas y optimizar el uso de los recursos informáticos. SageMaker Training propone varias características para este propósito:
- Los registros se envían automáticamente a CloudWatch Logs. Los registros incluyen su guión de entrenamiento
stdout
ystderr
. En el entrenamiento distribuido basado en MPI, todos los trabajadores de MPI envían sus registros al proceso líder. - Las métricas de uso de los recursos del sistema, como la memoria, el uso de la CPU y el uso de la GPU, se envían automáticamente a CloudWatch.
- solicite definir métricas de entrenamiento personalizadas que se enviará a CloudWatch. Las métricas se capturan de los registros en función de las expresiones regulares que establezca. Paquetes de experimentos de terceros como el Socio de AWS que ofrece Pesos y sesgos se puede usar con SageMaker Training (para ver un ejemplo, consulte Optimización de hiperparámetros CIFAR-10 con W&B y SageMaker).
- Perfilador de SageMaker le permite inspeccionar el uso de la infraestructura y obtener recomendaciones de optimización.
- Puente de eventos de Amazon y AWS Lambda le permite crear una lógica de cliente automatizada que reaccione ante eventos como fallas en el trabajo, éxitos, cargas de archivos S3 y más.
- Ayudante SSH de SageMaker es una biblioteca de código abierto mantenida por la comunidad que le permite conectarse a hosts de trabajo de capacitación a través de SSH. Puede ser útil para inspeccionar y solucionar problemas de ejecución de código en nodos específicos.
Además de la supervisión, SageMaker también ofrece equipos para la resiliencia laboral:
- Comprobaciones de estado del clúster – Antes de que comience su trabajo, SageMaker ejecuta verificaciones de estado de GPU y verifica la comunicación NCCL en las instancias de GPU, reemplazando las instancias defectuosas si es necesario para garantizar que su script de capacitación comience a ejecutarse en un clúster de instancias en buen estado. Actualmente, las comprobaciones de estado están habilitadas para los tipos de instancias basadas en GPU P y G.
- Actualización de clúster y reintentos integrados – Puede configurar SageMaker para que automáticamente rever trabajos de entrenamiento que fallan con un error de servidor interno (ISE) de SageMaker. Como parte de volver a intentar un trabajo, SageMaker reemplazará cualquier instancia que haya encontrado errores de GPU irrecuperables con instancias nuevas, reiniciará todas las instancias en buen estado y comenzará el trabajo nuevamente. Esto da como resultado reinicios más rápidos y finalización de la carga de trabajo. La actualización del clúster está actualmente habilitada para los tipos de instancias basadas en GPU P y G. Puedes agregar tu propio mecanismo de reintento aplicativo alrededor del código de cliente que envía el trabajo, para manejar otros tipos de errores de lanzamiento, como exceder la cuota de su cuenta.
- Confirmación de Viaje punto de control para Amazon S3: esto lo ayuda control su progreso y recargar un estado pasado en nuevos trabajos.
Para beneficiarse del reemplazo a nivel de nodo, su código debe tener un error. Los colectivos pueden bloquearse, en lugar de generar errores, cuando falla un nodo. Por lo tanto, para tener una solución rápida, establezca correctamente un tiempo de espera en sus colectivos y haga que el código arroje un error cuando se alcance.
Algunos clientes configuran un cliente de monitoreo para monitorear y actuar en caso de que el trabajo se cuelgue o se detenga la convergencia de aplicaciones, al monitorear registros y métricas de CloudWatch en busca de patrones anormales, como ningún registro escrito o 0% de uso de GPU para sugerir un bloqueo, detención de convergencia y auto detener/volver a intentar el trabajo.
Inmersión profunda en puntos de control
La Punto de control de SageMaker la función copia todo lo que escribes /opt/ml/checkpoints
volver a Amazon S3 como el URI especificado en el checkpoint_s3_uri
parámetro SDK. Cuando un trabajo se inicia o se reinicia, todo lo escrito en ese URI se envía de vuelta a todas las máquinas, en /opt/ml/checkpoints
. Esto es conveniente si desea que todos los nodos tengan acceso a todos los puntos de control, pero a escala: cuando tiene muchas máquinas o muchos puntos de control históricos, puede generar tiempos de descarga prolongados y un tráfico demasiado alto en Amazon S3. Además, en el paralelismo de tensor y tubería, los trabajadores solo necesitan una fracción del modelo con puntos de control, no todo. Si se enfrenta a esas limitaciones, le recomendamos las siguientes opciones:
- Puntos de control a FSx para Lustre – Gracias a la E/S aleatoria de alto rendimiento, puede definir el esquema de atribución de archivos y fragmentación de su elección
- Puntos de control de Amazon S3 autogestionados – Para ver ejemplos de funciones de Python que se pueden usar para guardar y leer puntos de control sin bloqueo, consulte Guardar puntos de control
Recomendamos enfáticamente revisar su modelo cada pocas horas, por ejemplo, de 1 a 3 horas, según los gastos generales y los costos asociados.
Gestión de front-end y usuarios
La gestión de usuarios es un punto fuerte de usabilidad clave de SageMaker en comparación con la infraestructura de HPC compartida heredada. Los permisos de capacitación de SageMaker se rigen por varios Gestión de identidades y accesos de AWS (IAM) abstracciones:
- Los principales (usuarios y sistemas) reciben permiso para iniciar recursos
- Los trabajos de capacitación tienen roles en sí mismos, lo que les permite tener sus propios permisos, por ejemplo, con respecto al acceso a datos y la invocación de servicios.
Además, en 2022 agregamos Administrador de funciones de SageMaker para facilitar la creación de permisos basados en personas.
Conclusión
Con SageMaker Training, puede reducir costos y aumentar la velocidad de iteración en su carga de trabajo de entrenamiento de modelos grandes. Hemos documentado historias de éxito en numerosas publicaciones y estudios de casos, que incluyen:
Si está buscando mejorar el tiempo de comercialización de su LLM mientras reduce sus costos, eche un vistazo a la API de capacitación de SageMaker y háganos saber lo que crea.
Un agradecimiento especial a Amr Ragab, Rashika Kheria, Zmnako Awrahman, Arun Nagarajan, Gal Oshri por sus útiles revisiones y enseñanzas.
Acerca de los autores
Anastasia Tzeveleka es un arquitecto de soluciones especializado en inteligencia artificial y aprendizaje automático en AWS. Trabaja con clientes en EMEA y los ayuda a diseñar soluciones de aprendizaje automático a escala utilizando los servicios de AWS. Ha trabajado en proyectos en diferentes dominios, incluidas las herramientas de procesamiento de lenguaje natural (NLP), MLOps y Low Code No Code.
gili nachum es un arquitecto sénior de soluciones especializado en inteligencia artificial y aprendizaje automático que trabaja como parte del equipo de Amazon Machine Learning de EMEA. A Gili le apasionan los desafíos de entrenar modelos de aprendizaje profundo y cómo el aprendizaje automático está cambiando el mundo tal como lo conocemos. En su tiempo libre, a Gili le gusta jugar al tenis de mesa.
olivier cruchant es Arquitecto Principal de Soluciones Especializado en Aprendizaje Automático en AWS, con sede en Francia. Olivier ayuda a los clientes de AWS, desde pequeñas empresas emergentes hasta grandes empresas, a desarrollar e implementar aplicaciones de aprendizaje automático de nivel de producción. En su tiempo libre, disfruta leer trabajos de investigación y explorar la naturaleza con amigos y familiares.
Bruno Pistón es un arquitecto de soluciones especializado en IA/ML para AWS con sede en Milán. Trabaja con clientes de cualquier tamaño para ayudarlos a comprender profundamente sus necesidades técnicas y diseñar soluciones de IA y aprendizaje automático que aprovechen al máximo la nube de AWS y la pila de aprendizaje automático de Amazon. Su campo de especialización es el aprendizaje automático de extremo a extremo, la industrialización del aprendizaje automático y MLOps. Le gusta pasar tiempo con sus amigos y explorar nuevos lugares, así como viajar a nuevos destinos.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- Platoblockchain. Inteligencia del Metaverso Web3. Conocimiento amplificado. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/training-large-language-models-on-amazon-sagemaker-best-practices/
- :es
- ][pag
- $ UP
- 000
- 1
- 100
- 2022
- 7
- 8
- a
- <del>
- Poder
- Nuestra Empresa
- arriba
- acelerar
- acelerado
- de la máquina
- acomodar
- Mi Cuenta
- Lograr
- el logro de
- a través de
- Actúe
- Activación
- lector activo
- adaptar
- adicional
- adición
- Adicionalmente
- Adiciones
- Ventaja
- AI
- AI / ML
- AL
- algoritmo
- algoritmos
- Todos
- Permitir
- permite
- Amazon
- Amazon EC2
- Amazonas FSx
- Aprendizaje automático de Amazon
- Amazon SageMaker
- cantidad
- y
- abejas
- API
- aplicable
- Aplicación
- aplicaciones
- aplicada
- adecuado
- somos
- Reservada
- en torno a
- AS
- asociado
- At
- atributos
- auto
- Confirmación de Viaje
- automáticamente
- Hoy Disponibles
- evitar
- AWS
- Atrás
- Backend
- Balance
- basado
- BE
- porque
- se convierte en
- antes
- "Ser"
- es el beneficio
- MEJOR
- y las mejores prácticas
- Más allá de
- Big
- mil millones
- miles de millones
- Bloquear
- llevar
- Trae
- build
- construido
- by
- llamar al
- , que son
- Calls
- PUEDEN
- capaz
- Capacidad
- tarjeta
- Tarjetas
- llevar
- case
- Casos de Estudio
- cataliza
- retos
- cambio
- Channel
- comprobar
- Cheques
- manera?
- opciones
- Elige
- privadas
- cliente
- de cerca
- Soluciones
- Médico
- código
- Colectivo
- combinado
- cómo
- Algunos
- comúnmente
- Comunicación
- Comunicaciónes
- en comparación con
- compatible
- terminación
- cálculo
- Calcular
- computadora
- Visión por computador
- informática
- concluye
- llevado a cabo
- Configuración
- Confirmar
- Contacto
- En consecuencia
- que no contengo
- Envase
- Contenedores
- contiene
- contenido
- contribuido
- control
- controlado
- Conveniente
- Convergencia
- Corrupción
- Cost
- Precio
- podría
- Curso
- Protectora
- Cubiertas
- Para crear
- creación
- Estudio
- crítico
- crucial
- curaduría
- En la actualidad
- personalizado
- Clientes
- personalizan
- datos
- acceso a los datos
- Preparación de datos
- conjuntos de datos
- decidir
- a dedicados
- profundo
- deep learning
- Predeterminado
- Grado
- Dependiente
- depende
- desplegar
- Diseño
- diseñado
- deseado
- destinos
- Determinar
- determinar
- desarrollar
- desarrollado
- Developer
- desarrolladores
- Desarrollo
- desarrolla el
- dispositivo
- Dispositivos
- una experiencia diferente
- Difusión
- directamente
- discutir
- discutido
- distribuidos
- Computación distribuída
- entrenamiento distribuido
- Docker
- No
- dominios
- No
- DE INSCRIPCIÓN
- descargar
- decenas
- durante
- cada una
- pasan fácilmente
- Eficaz
- ya sea
- EMEA
- habilitar
- facilita
- permite
- permitiendo
- fomentar
- termina
- mejorado
- disfrutando
- suficientes
- garantizar
- Empresa
- empresas
- entrada
- Entorno
- ambientes
- equipo
- equipado
- error
- Errores
- establecer
- Incluso
- Eventos
- eventual
- Cada
- todo
- evolucionado
- ejemplo
- ejemplos
- Excel
- existente
- esperar
- esperado
- experience
- experimento
- Explorar
- expuesto
- expresiones
- extensión
- extensiones
- externo
- extremadamente
- material
- Cara
- facilitar
- facilitando
- factores importantes
- Fallidos
- falla
- Fracaso
- familias
- familia
- Moda
- RÁPIDO
- más rápida
- defectuoso
- factible
- Feature
- Caracteristicas
- pocos
- campo
- Archive
- archivos
- Nombre
- cómodo
- FLOTA
- Flexibilidad
- Focus
- se centra
- seguido
- siguiendo
- fracción
- Marco conceptual
- marcos
- Francia
- Freedom
- frecuente
- fresco
- amigos
- Desde
- ser completados
- completamente
- funcional
- a la fatiga
- funciones
- promover
- GAL
- generado
- generativo
- obtener
- conseguir
- GitHub
- dado
- GPU
- GPU
- gráfica
- maravillosa
- mayores
- Grupo procesos
- crece
- encargarse de
- Manejo
- Colgar
- suceder
- Materiales
- Tienen
- es
- Salud
- saludable
- serviciales
- ayudando
- ayuda
- Alta
- Alta frecuencia
- Alto rendimiento
- histórico
- capucha
- anfitriones
- HORAS
- Cómo
- Como Hacer
- Sin embargo
- HPC
- HTML
- http
- HTTPS
- Cientos
- cientos de millones
- i
- idéntico
- Identidad
- imagen
- imágenes
- inmediatamente
- Impacto
- implementar
- implementado
- implementación
- importante
- mejorar
- mejorado
- mejoras
- in
- En otra
- incluir
- Incluye
- aumente
- aumentado
- Los aumentos
- cada vez más
- INSTRUMENTO individual
- energético
- info
- información
- EN LA MINA
- Innovation
- inspirado
- instalar
- ejemplo
- COMPLETAMENTE
- integración
- De Operación
- interacción
- Interfaz
- intermediario
- interno
- introducir
- Introducido
- IT
- iteración
- SUS
- sí mismo
- Trabajos
- Empleo
- jpg
- Guardar
- Clave
- Tipo
- Saber
- idioma
- Idiomas
- large
- Gran escala
- mayores
- más reciente
- lanzamiento
- lanzado
- pone en marcha
- .
- ponedoras
- Lead
- líder
- aprendizaje
- Legado
- Nivel
- bibliotecas
- Biblioteca
- ciclo de vida
- como
- que otros
- LIMITE LAS
- limitaciones
- Limitada
- pequeño
- LLM
- carga
- local
- Largo
- largo tiempo
- Mira
- mirando
- Baja
- máquina
- máquina de aprendizaje
- Máquinas
- mantener
- Mantener los
- mantiene
- para lograr
- HACE
- Realizar
- gestionan
- gestionado
- Management
- muchos
- Mapas
- máximas
- Salud Cerebral
- metadatos
- métodos
- Métrica
- migración
- MILAN
- millones
- ML
- MLOps
- Moda
- modelo
- modelos
- modificado
- Monitorear
- monitoreo
- más,
- MEJOR DE TU
- movimiento
- múltiples
- a saber
- nativo
- Natural
- Procesamiento natural del lenguaje
- Naturaleza
- necesariamente
- necesario
- ¿ Necesita ayuda
- del sistema,
- basado en la red
- telecomunicaciones
- red neural
- Nuevo
- nlp
- nodo
- nodos
- número
- numeroso
- Nvidia
- objetos
- of
- LANZAMIENTO
- que ofrece
- oliva
- on
- On-Demand
- ONE
- habiertos
- de código abierto
- código de fuente abierta
- abierto
- Del Mañana
- optimización
- Optimización
- optimizado
- Optión
- Opciones
- orquestación
- solicite
- Otro
- EL DESARROLLADOR
- paquete
- paquetes
- Papel
- papeles
- paradigma
- Paralelo
- parámetro
- parámetros
- parte
- particular
- particularmente
- apasionado
- pasado
- camino
- .
- Pagar
- (PDF)
- En pleno
- actuación
- actuaciones
- permiso
- permisos
- Físicamente
- industrial
- Lugares
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- jugando
- punto
- alberca
- Albercas
- Popular
- Publicación
- Artículos
- prácticas
- predecir
- preferencias
- preferido
- presente
- regalos
- evitar
- previamente
- Director de la escuela
- en costes
- tratamiento
- producir
- Programa
- Programación
- lenguajes de programación
- Progreso
- proyecta
- correctamente
- ofrece
- propone
- propietario
- protocolo
- protocolos
- proporcionar
- previsto
- proveedor
- proporcionando
- público
- publicaciones
- propósito
- poner
- Python
- piñón
- calidad
- aumento
- azar
- RARO
- Rate
- Tarifas
- alcanzado
- Leer
- Reading
- darse cuenta de
- mejor
- razones
- recepción
- reciente
- recomiendan
- recomendaciones
- grabar
- archivos
- recuperación
- reducir
- reduce
- la reducción de
- con respecto a
- región
- regiones
- regular
- regularmente
- relacionado
- confianza
- sanaciones
- reemplazar
- que representa
- solicita
- solicitudes
- exigir
- requisito
- requiere
- la investigación
- investigación e innovación
- Recurso
- Recursos
- Resultados
- Reseñas
- Función
- También soy miembro del cuerpo docente de World Extreme Medicine (WEM) y embajadora europea de igualdad para The Transformational Travel Council (TTC). En mi tiempo libre, soy una incansable aventurera, escaladora, patrona de día, buceadora y defensora de la igualdad de género en el deporte y la aventura. En XNUMX, fundé Almas Libres, una ONG nacida para involucrar, educar y empoderar a mujeres y niñas a través del deporte urbano, la cultura y la tecnología.
- Ejecutar
- correr
- sabio
- mismo
- Guardar
- Escalabilidad
- escalable
- Escala
- escamas
- la ampliación
- esquema
- científico
- los científicos
- alcance
- guiones
- Sdk
- Buscar
- Segundo
- segundos
- Sección
- la búsqueda de
- seleccionado
- selección
- mayor
- Sin servidor
- Servidores
- de coches
- Servicios
- set
- ajustes
- Varios
- fragmentado
- sharding
- compartido
- tienes
- significativamente
- sencillos
- sencillez
- simultáneamente
- soltero
- Tamaño
- tamaños
- habilidades
- lento
- chica
- So
- Software
- Soluciones
- algo
- Fuente
- Fuentes
- especialista
- soluciones y
- específicamente
- especificado
- velocidad
- Gastos
- escisiones
- Spot
- estable
- montón
- comienzo
- Comience a
- comienza
- Startups
- Estado
- estadístico
- pasos
- Detener
- parada
- STORAGE
- tienda
- Historias
- Estrategia
- stream
- corrientes
- fuerza
- pelar
- se mostró plenamente
- estudios
- comercial
- Casos de éxito
- exitosos
- tal
- SOPORTE
- Soportado
- soportes
- sincronización
- sintaxis
- te
- mesa
- ¡Prepárate!
- Tarea
- tareas
- equipo
- Técnico
- tensorflow
- Muchas Gracias
- esa
- La
- el mundo
- su
- Les
- sí mismos
- teorético
- por lo tanto
- Estas
- terceros.
- miles
- Tres
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- rendimiento
- equipo
- veces
- recomendaciones
- a
- hoy
- Tokens
- demasiado
- del IRS
- parte superior
- Total
- seguir
- tráfico
- Entrenar
- entrenado
- Formación
- Traducción
- transporte
- Trillones
- tipos
- principiante
- bajo
- subyacente
- entender
- único
- unidades que
- Actualizar
- us
- usabilidad
- Uso
- utilizan el
- Usuario
- generalmente
- propuesta de
- Valores
- variedad
- diversos
- verificar
- versión
- vía
- Video
- Ver
- visión
- caliente
- Camino..
- formas
- Semanas
- WELL
- ¿
- que
- mientras
- QUIENES
- todo
- seguirá
- dentro de
- sin
- palabras
- Actividades:
- trabajado
- los trabajadores.
- trabajando
- funciona
- mundo
- escribir
- escrito
- años
- Usted
- tú
- a ti mismo
- Youtube
- zephyrnet