Hoy nos complace anunciar el avance de Perfilador de Amazon SageMaker, una capacidad de Amazon SageMaker que proporciona una vista detallada de los recursos informáticos de AWS aprovisionados durante el entrenamiento de modelos de aprendizaje profundo en SageMaker. Con SageMaker Profiler, puede realizar un seguimiento de todas las actividades en CPU y GPU, como el uso de CPU y GPU, las ejecuciones del kernel en las GPU, los lanzamientos del kernel en las CPU, las operaciones de sincronización, las operaciones de memoria en las GPU, las latencias entre los lanzamientos del kernel y las ejecuciones correspondientes, y la transferencia de datos. entre CPU y GPU. En esta publicación, le explicamos las capacidades de SageMaker Profiler.
SageMaker Profiler proporciona módulos de Python para anotar scripts de entrenamiento de PyTorch o TensorFlow y activar SageMaker Profiler. También ofrece una interfaz de usuario (UI) que visualiza la perfiles, un resumen estadístico de eventos perfilados y la línea de tiempo de un trabajo de capacitación para rastrear y comprender la relación temporal de los eventos entre GPU y CPU.
La necesidad de perfilar los puestos de trabajo formativos
Con el auge del aprendizaje profundo (DL), el aprendizaje automático (ML) se ha vuelto intensivo en computación y datos, y generalmente requiere clústeres de múltiples nodos y múltiples GPU. A medida que los modelos de última generación crecen en tamaño en el orden de billones de parámetros, su complejidad computacional y su costo también aumentan rápidamente. Los profesionales del aprendizaje automático tienen que enfrentar desafíos comunes de utilización eficiente de recursos al entrenar modelos tan grandes. Esto es particularmente evidente en los modelos de lenguajes grandes (LLM), que normalmente tienen miles de millones de parámetros y, por lo tanto, requieren grandes clústeres de GPU de múltiples nodos para entrenarlos de manera eficiente.
Al entrenar estos modelos en grandes clústeres informáticos, podemos encontrar desafíos de optimización de recursos informáticos, como cuellos de botella de E/S, latencias de inicio del kernel, límites de memoria y baja utilización de recursos. Si la configuración del trabajo de capacitación no está optimizada, estos desafíos pueden resultar en una utilización ineficiente del hardware y tiempos de capacitación más prolongados o ejecuciones de capacitación incompletas, lo que aumenta los costos y plazos generales del proyecto.
Requisitos previos
Los siguientes son los requisitos previos para comenzar a utilizar SageMaker Profiler:
- Un dominio de SageMaker en su cuenta de AWS – Para obtener instrucciones sobre cómo configurar un dominio, consulte Incorpórese al dominio de Amazon SageMaker mediante una configuración rápida. También debe agregar perfiles de usuario de dominio para que usuarios individuales accedan a la aplicación de interfaz de usuario de SageMaker Profiler. Para más información, ver Agregar y eliminar perfiles de usuario del dominio SageMaker.
- Permisos – La siguiente lista es el conjunto mínimo de permisos que se deben asignar a la función de ejecución para usar la aplicación de interfaz de usuario SageMaker Profiler:
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Prepare y ejecute un trabajo de capacitación con SageMaker Profiler
Para comenzar a capturar ejecuciones del kernel en GPU mientras se ejecuta el trabajo de entrenamiento, modifique su script de entrenamiento usando los módulos Python de SageMaker Profiler. Importe la biblioteca y agregue el start_profiling()
y stop_profiling()
métodos para definir el inicio y el final de la elaboración de perfiles. También puede utilizar anotaciones personalizadas opcionales para agregar marcadores en el script de capacitación para visualizar las actividades del hardware durante operaciones particulares en cada paso.
Hay dos enfoques que puede adoptar para crear perfiles de sus guiones de capacitación con SageMaker Profiler. El primer enfoque se basa en crear perfiles de funciones completas; el segundo enfoque se basa en crear perfiles de líneas de código específicas en funciones.
Para perfilar por funciones, utilice el administrador de contexto smppy.annotate
para anotar funciones completas. El siguiente script de ejemplo muestra cómo implementar el administrador de contexto para ajustar el ciclo de entrenamiento y las funciones completas en cada iteración:
También puedes usar smppy.annotation_begin()
y smppy.annotation_end()
para anotar líneas específicas de código en funciones. Para obtener más información, consulte documentación.
Configurar el lanzador de trabajos de formación de SageMaker
Una vez que haya terminado de anotar y configurar los módulos de inicio del generador de perfiles, guarde el script de capacitación y prepare el estimador del marco de SageMaker para la capacitación utilizando el SDK de Python de SageMaker.
- Establece una
profiler_config
objeto usando elProfilerConfig
yProfiler
módulos de la siguiente manera: - Cree un estimador de SageMaker con el
profiler_config
objeto creado en el paso anterior. El siguiente código muestra un ejemplo de cómo crear un estimador de PyTorch:
Si desea crear un estimador de TensorFlow, importe sagemaker.tensorflow.TensorFlow
en su lugar, y especifique una de las versiones de TensorFlow admitidas por SageMaker Profiler. Para obtener más información sobre los marcos admitidos y los tipos de instancias, consulte Marcos compatibles.
- Inicie el trabajo de entrenamiento ejecutando el método fit:
Inicie la interfaz de usuario de SageMaker Profiler
Cuando se completa el trabajo de capacitación, puede iniciar la interfaz de usuario de SageMaker Profiler para visualizar y explorar el perfil del trabajo de capacitación. Puede acceder a la aplicación de interfaz de usuario de SageMaker Profiler a través de la página de inicio de SageMaker Profiler en la consola de SageMaker o mediante el dominio de SageMaker.
Para iniciar la aplicación de interfaz de usuario de SageMaker Profiler en la consola de SageMaker, complete los siguientes pasos:
- En la consola de SageMaker, elija Profiler en el panel de navegación.
- under ¡Empieza aquí!, seleccione el dominio en el que desea iniciar la aplicación de interfaz de usuario de SageMaker Profiler.
Si su perfil de usuario solo pertenece a un dominio, no verá la opción para seleccionar un dominio.
- Seleccione el perfil de usuario para el que desea iniciar la aplicación de interfaz de usuario SageMaker Profiler.
Si no hay ningún perfil de usuario en el dominio, elija Crear perfil de usuario. Para obtener más información sobre cómo crear un nuevo perfil de usuario, consulte Agregar y eliminar perfiles de usuario.
- Elige Abrir perfilador.
También puede Inicie la interfaz de usuario de SageMaker Profiler desde la página de detalles del dominio..
Obtenga información valiosa de SageMaker Profiler
Cuando abre la interfaz de usuario de SageMaker Profiler, el Seleccionar y cargar un perfil Se abre la página, como se muestra en la siguiente captura de pantalla.
Puede ver una lista de todos los trabajos de capacitación que se han enviado a SageMaker Profiler y buscar un trabajo de capacitación en particular por su nombre, hora de creación y estado de ejecución (En curso, Completado, Fallido, Detenido o Deteniéndose). Para cargar un perfil, seleccione el trabajo de formación que desea ver y elija Carga. El nombre del trabajo debe aparecer en el Perfil cargado sección en la parte superior.
Elija el nombre del trabajo para generar el panel y la línea de tiempo. Tenga en cuenta que cuando elige el trabajo, la interfaz de usuario abre automáticamente el panel. Puede cargar y visualizar un perfil a la vez. Para cargar otro perfil, primero debe descargar el perfil cargado anteriormente. Para descargar un perfil, elija el ícono de la papelera en el Perfil cargado .
Para esta publicación, vemos el perfil de un ALBEF Trabajo de entrenamiento en dos instancias ml.p4d.24xlarge.
Después de terminar de cargar y seleccionar el trabajo de capacitación, la interfaz de usuario abre la Panel De Control página, como se muestra en la siguiente captura de pantalla.
Puede ver los gráficos de métricas clave, es decir, el tiempo activo de la GPU, la utilización de la GPU a lo largo del tiempo, el tiempo activo de la CPU y la utilización de la CPU a lo largo del tiempo. El gráfico circular de tiempo activo de la GPU muestra el porcentaje de tiempo activo de la GPU frente al tiempo de inactividad de la GPU, lo que nos permite comprobar si las GPU están más activas que inactivas durante todo el trabajo de entrenamiento.. El gráfico de línea de tiempo de utilización de GPU a lo largo del tiempo muestra la tasa promedio de utilización de GPU a lo largo del tiempo por nodo, agregando todos los nodos en un solo gráfico. Puede verificar si las GPU tienen una carga de trabajo desequilibrada, problemas de subutilización, cuellos de botella o problemas de inactividad durante ciertos intervalos de tiempo.. Para obtener más detalles sobre la interpretación de estas métricas, consulte documentación.
El panel le proporciona gráficos adicionales, incluido el tiempo invertido por todos los núcleos de GPU, el tiempo invertido por los 15 núcleos de GPU principales, los recuentos de lanzamiento de todos los núcleos de GPU y los recuentos de lanzamiento de los 15 núcleos de GPU principales, como se muestra en la siguiente captura de pantalla.
Por último, el panel le permite visualizar métricas adicionales, como la distribución del tiempo de los pasos, que es un histograma que muestra la distribución de la duración de los pasos en las GPU, y el gráfico circular de distribución de precisión del kernel, que muestra el porcentaje de tiempo dedicado a la ejecución de los kernels. en diferentes tipos de datos como FP32, FP16, INT32 e INT8.
También puede obtener un gráfico circular sobre la distribución de la actividad de la GPU que muestra el porcentaje de tiempo dedicado a las actividades de la GPU, como la ejecución de kernels, memoria (memcpy
y memset
) y sincronización (sync
). Puede visualizar el porcentaje de tiempo dedicado a las operaciones de memoria de la GPU en el gráfico circular de distribución de operaciones de memoria de la GPU.
También puede crear sus propios histogramas basados en una métrica personalizada que anotó manualmente como se describió anteriormente en esta publicación. Al agregar una anotación personalizada a un nuevo histograma, seleccione o ingrese el nombre de la anotación que agregó en el script de entrenamiento.
Interfaz de línea de tiempo
La interfaz de usuario de SageMaker Profiler también incluye una interfaz de línea de tiempo, que le proporciona una vista detallada de los recursos informáticos a nivel de operaciones y núcleos programados en las CPU y ejecutados en las GPU. La línea de tiempo está organizada en una estructura de árbol, brindándole información desde el nivel de host hasta el nivel de dispositivo, como se muestra en la siguiente captura de pantalla.
Para cada CPU, puede realizar un seguimiento de los contadores de rendimiento de la CPU, como clk_unhalted_ref.tsc
y itlb_misses.miss_causes_a_walk
. Para cada GPU en la instancia 2x p4d.24xlarge, puede ver una línea de tiempo del host y una línea de tiempo del dispositivo. Los lanzamientos del kernel están en la línea de tiempo del host y las ejecuciones del kernel están en la línea de tiempo del dispositivo.
También puede ampliar los pasos individuales. En la siguiente captura de pantalla, hemos ampliado el paso_41. La franja de línea de tiempo seleccionada en la siguiente captura de pantalla es la AllReduce
operación, un paso esencial de comunicación y sincronización en el entrenamiento distribuido, ejecutado en GPU-0. En la captura de pantalla, observe que el inicio del kernel en el host GPU-0 se conecta al kernel ejecutado en el flujo 0 del dispositivo GPU-1, indicado con la flecha en cian.
Disponibilidad y consideraciones
SageMaker Profiler está disponible en PyTorch (versión 2.0.0 y 1.13.1) y TensorFlow (versión 2.12.0 y 2.11.1). La siguiente tabla proporciona los enlaces a los soportes Contenedores de aprendizaje profundo de AWS para SageMaker.
Marco conceptual | Versión | URI de imagen de DLC de AWS |
PyTorch | 2.0.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:2.0.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
PyTorch | 1.13.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.13.1-gpu-py39-cu117-ubuntu20.04-sagemaker |
TensorFlow | 2.12.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
TensorFlow | 2.11.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.11.1-gpu-py39-cu112-ubuntu20.04-sagemaker |
SageMaker Profiler está disponible actualmente en las siguientes regiones: Este de EE. UU. (Ohio, Virginia del Norte), Oeste de EE. UU. (Oregón) y Europa (Frankfurt, Irlanda).
SageMaker Profiler está disponible en los tipos de instancias de capacitación ml.p4d.24xlarge, ml.p3dn.24xlarge y ml.g4dn.12xlarge.
Para obtener la lista completa de marcos y versiones compatibles, consulte documentación.
SageMaker Profiler genera cargos después de que finaliza la capa gratuita de SageMaker o el período de prueba gratuito de la función. Para más información, ver Precios de Amazon SageMaker.
Rendimiento de SageMaker Profiler
Comparamos la sobrecarga de SageMaker Profiler con varios generadores de perfiles de código abierto. La línea de base utilizada para la comparación se obtuvo al ejecutar el trabajo de capacitación sin un generador de perfiles.
Nuestro hallazgo clave reveló que SageMaker Profiler generalmente resultó en una duración de capacitación facturable más corta porque tenía menos tiempo adicional en las ejecuciones de capacitación de un extremo a otro. También generó menos datos de elaboración de perfiles (hasta 10 veces menos) en comparación con alternativas de código abierto. Los artefactos de creación de perfiles más pequeños generados por SageMaker Profiler requieren menos almacenamiento, lo que también ahorra costos.
Conclusión
SageMaker Profiler le permite obtener información detallada sobre la utilización de los recursos informáticos al entrenar sus modelos de aprendizaje profundo. Esto puede permitirle resolver puntos críticos y cuellos de botella de rendimiento para garantizar una utilización eficiente de los recursos que, en última instancia, reduciría los costos de capacitación y la duración general de la capacitación.
Para comenzar con SageMaker Profiler, consulte documentación.
Acerca de los autores
Roy Alela es un arquitecto sénior de soluciones especialista en IA/ML en AWS con sede en Múnich, Alemania. Roy ayuda a los clientes de AWS, desde pequeñas empresas emergentes hasta grandes empresas, a entrenar e implementar modelos de lenguaje grandes de manera eficiente en AWS. A Roy le apasionan los problemas de optimización computacional y la mejora del rendimiento de las cargas de trabajo de IA.
Sushant Luna es un científico de datos en AWS, India, y se especializa en guiar a los clientes a través de sus esfuerzos de IA/ML. Con una experiencia diversa que abarca los ámbitos minorista, financiero y de seguros, ofrece soluciones innovadoras y personalizadas. Más allá de su vida profesional, Sushant encuentra rejuvenecimiento en la natación y busca inspiración en sus viajes a diversos lugares.
Diksha Sharma es un arquitecto de soluciones especializado en IA/ML en la Organización Mundial de Especialistas. Trabaja con clientes del sector público para ayudarlos a diseñar aplicaciones de aprendizaje automático eficientes, seguras y escalables, incluidas soluciones de inteligencia artificial generativa en AWS. En su tiempo libre, a Diksha le encanta leer, pintar y pasar tiempo con su familia.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Automoción / vehículos eléctricos, Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- ChartPrime. Eleve su juego comercial con ChartPrime. Accede Aquí.
- Desplazamientos de bloque. Modernización de la propiedad de compensaciones ambientales. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/announcing-the-preview-of-amazon-sagemaker-profiler-track-and-visualize-detailed-hardware-performance-data-for-your-model-training-workloads/
- :posee
- :es
- :no
- $ UP
- 1
- 10
- 100
- 11
- 12
- 125
- 13
- 15%
- 17
- 20
- 7
- 9
- a
- Nuestra Empresa
- de la máquina
- a través de
- activación
- lector activo
- actividades
- actividad
- add
- adicional
- la adición de
- Adicionales
- Después
- en contra
- agregando
- AI
- AI / ML
- Todos
- también
- alternativas
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- y
- Anunciar
- Anunciando
- Otra
- cualquier
- Aparecer
- Aplicación
- aplicaciones
- enfoque
- enfoques
- somos
- AS
- asigna
- At
- automáticamente
- Hoy Disponibles
- promedio
- AWS
- fondo
- basado
- Base
- BE
- porque
- a las que has recomendado
- esto
- Comienzo
- pertenece
- entre
- Más allá de
- miles de millones
- BIN
- by
- PUEDEN
- capacidades
- capacidad
- Capturando
- a ciertos
- retos
- cargos
- Tabla
- comprobar
- Elige
- código
- Algunos
- Comunicación
- en comparación con
- comparación
- completar
- Completado
- complejidad
- Calcular
- Configuración
- conecta
- Consola
- Contenedores
- contexto
- Correspondiente
- Cost
- Precio
- contadores
- Para crear
- creado
- Creamos
- creación
- En la actualidad
- personalizado
- Clientes
- cian
- página de información de sus operaciones
- datos
- científico de datos
- profundo
- deep learning
- definir
- entrega
- desplegar
- descrito
- detallado
- detalles
- dispositivo
- una experiencia diferente
- distribuidos
- entrenamiento distribuido
- diverso
- dominio
- dominios
- hecho
- DE INSCRIPCIÓN
- el lado de la transmisión
- duración
- durante
- cada una
- Más temprano
- Este
- eficiente
- eficiente.
- habilitar
- permite
- final
- de extremo a extremo
- esfuerzos
- termina
- garantizar
- Participar
- Todo
- entrada
- época
- épocas
- esencial
- Europa
- Eventos
- evidente
- ejemplo
- ejecución
- explorar
- Fallidos
- familia
- Feature
- financiar
- la búsqueda de
- encuentra
- acabado
- Nombre
- cómodo
- siguiendo
- siguiente
- adelante
- Marco conceptual
- marcos
- Gratis
- prueba gratuita.
- Desde
- ser completados
- funciones
- en general
- generar
- generado
- generativo
- IA generativa
- Alemania
- obtener
- Diezmos y Ofrendas
- GPU
- GPU
- gráfica
- Crecer
- tenido
- Materiales
- Tienen
- he
- ayuda
- ayuda
- aquí
- su
- fortaleza
- Cómo
- Como Hacer
- HTML
- http
- HTTPS
- i
- ICON
- Idle
- if
- imagen
- implementar
- importar
- la mejora de
- in
- incluye
- Incluye
- aumente
- India
- indicado
- INSTRUMENTO individual
- ineficiente
- información
- originales
- entradas
- Insights
- Inspiración
- ejemplo
- Instrucciones
- aseguradora
- Interfaz
- dentro
- Irlanda
- cuestiones
- IT
- iteración
- SUS
- Trabajos
- Empleo
- jpg
- Clave
- Etiquetas
- aterrizaje
- idioma
- large
- lanzamiento
- pone en marcha
- aprendizaje
- menos
- Nivel
- Biblioteca
- Vida
- límites
- líneas
- enlaces
- Lista
- carga
- carga
- por más tiempo
- de
- ama
- Baja
- máquina
- máquina de aprendizaje
- gerente
- a mano
- Salud Cerebral
- Método
- métodos
- métrico
- Métrica
- mínimo
- ML
- modelo
- modelos
- modificar
- Módulos
- más,
- debe
- nombre
- a saber
- Navegación
- ¿ Necesita ayuda
- Nuevo
- no
- nodo
- nodos
- objeto
- obtener
- obtenido
- of
- Ofertas
- Ohio
- on
- ONE
- , solamente
- habiertos
- de código abierto
- abre
- Inteligente
- Operaciones
- optimización
- optimizado
- Optión
- or
- solicite
- Oregón
- organización
- Organizado
- Más de
- total
- EL DESARROLLADOR
- página
- cristal
- parámetros
- particular
- particularmente
- apasionado
- para
- porcentaje
- actuación
- período
- permisos
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- satisfecho
- punto
- Publicación
- Precisión
- Preparar
- requisitos previos
- Vista previa
- anterior
- previamente
- problemas
- Profesional
- Mi Perfil
- Perfiles
- perfiles
- Progreso
- proyecto
- proporciona un
- público
- Python
- piñón
- Búsqueda
- rápidamente
- Rate
- Leer
- reducir
- regiones
- rejuvenecimiento
- relación
- remove
- exigir
- Recurso
- Recursos
- resultado
- el comercio minorista
- Revelado
- Subir
- Función
- roy
- Ejecutar
- correr
- corre
- sabio
- Guardar
- ahorro
- escalable
- programada
- Científico
- guiones
- Sdk
- Buscar
- Segundo
- Sección
- sector
- seguro
- ver
- Busca
- seleccionado
- seleccionar
- mayor
- Servicios
- set
- pólipo
- ella
- tienes
- mostrado
- Shows
- soltero
- Tamaño
- chica
- menores
- Soluciones
- Fuente
- abarcando
- especialista
- especializada
- soluciones y
- pasar
- gastado
- comienzo
- fundó
- Startups
- el estado de la técnica
- estadístico
- Estado
- paso
- pasos
- detenido
- parada
- STORAGE
- stream
- estructura
- Subido
- tal
- RESUMEN
- Soportado
- sincronización
- mesa
- adaptado
- ¡Prepárate!
- tensorflow
- que
- esa
- La
- su
- Les
- Ahí.
- de este modo
- por lo tanto
- Estas
- así
- 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.
- a lo largo de
- nivel
- equipo
- calendario
- líneas de tiempo
- veces
- a
- parte superior
- seguir
- Seguimiento
- Entrenar
- Formación
- transferir
- viajes
- árbol
- juicio
- billones
- dos
- tipos
- típicamente
- ui
- Finalmente, a veces
- comprensión
- us
- utilizan el
- usado
- Usuario
- Interfaz de usuario
- usuarios
- usando
- diversos
- versión
- versiones
- Ver
- Virginia
- vs
- quieres
- fue
- we
- web
- servicios web
- West
- cuando
- que
- mientras
- seguirá
- sin
- funciona
- en todo el mundo
- se
- envolver
- Usted
- tú
- zephyrnet
- Zoom