Supervisión predeterminada del sistema y creación de perfiles de marco personalizada con diferentes opciones de creación de perfiles - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Supervisión predeterminada del sistema y creación de perfiles de marco personalizada con diferentes opciones de creación de perfiles

En esta sección se proporciona información sobre las clases de configuración de creación de perfiles compatibles, así como un ejemplo de configuración. Puede utilizar las siguientes clases de configuración de creación de perfiles para gestionar las opciones de creación de perfiles del marco:

  • DetailedProfilingConfig— Especifique un paso o intervalo de tiempo objetivo para perfilar las operaciones del marco utilizando los generadores de perfiles del marco nativos (generador de perfiles y TensorFlow PyTorch generador de perfiles). Por ejemplo, si se utilizan TensorFlow, los enlaces del depurador permiten al generador de TensorFlow perfiles recopilar métricas específicas del marco. TensorFlow La creación de perfiles detallados le permite crear un perfil de todos los operadores del marco en un paso previo (antes del primer paso), dentro de los pasos y entre los pasos de un trabajo de entrenamiento.

    nota

    La creación de perfiles detallados puede aumentar significativamente el consumo de memoria. GPU No recomendamos activar la creación de perfiles detallados durante más de un par de pasos.

  • DataloaderProfilingConfig— Especifique un paso o intervalo de tiempo objetivo para perfilar los procesos del cargador de datos del marco de aprendizaje profundo. El depurador recopila todos los eventos de carga de datos de los marcos.

    nota

    La creación de perfiles de los cargadores de datos puede reducir el rendimiento del entrenamiento al recopilar información de los cargadores de datos. No recomendamos activar la creación de perfiles del cargador de datos durante más de un par de pasos.

    El depurador está preconfigurado para anotar los procesos del cargador de datos solo para los contenedores de AWS del aprendizaje profundo. El depurador no puede perfilar los procesos del cargador de datos desde ningún otro contenedor de entrenamiento externo o personalizado.

  • PythonProfilingConfig— Especifique un paso o rango de tiempo objetivo para perfilar las funciones de Python. También puede elegir entre dos generadores de perfiles de Python: cProfile y Pyinstrument.

    • cProfile— El generador de perfiles de Python estándar. cProfile recopila información de cada operador de Python llamado durante el entrenamiento. ConcProfile, Debugger ahorra tiempo acumulado y anotaciones para cada llamada a función, proporcionando detalles completos sobre las funciones de Python. En el aprendizaje profundo, por ejemplo, las funciones denominadas con más frecuencia pueden ser los filtros convolucionales y los operadores de paso hacia atrás, y cProfile perfila cada una de ellas. Para cProfile esta opción, también puede seleccionar una opción de temporizador: tiempo total, CPU tiempo y tiempo de inactividad. CPU Si bien puede perfilar en el CPU tiempo todas las llamadas a funciones que se ejecutan en los procesadores (tanto como CPUGPU), también puede identificar los cuellos de botella de E/S o de red con la opción de tiempo de inactividad. CPU El valor predeterminado es el tiempo total y Debugger hace un perfil tanto como CPU el tiempo de inactividad. CPU Con cProfile él, puede desglosar cada una de las funciones al analizar los datos del perfil.

    • Pyinstrument: Pyinstrument es un generador de perfiles de Python de bajo costo que funciona en función del muestreo. Con la opción Pyinstrument, el depurador toma muestras de los eventos de creación de perfiles cada milisegundo. Como Pyinstrument mide el tiempo transcurrido con un reloj de pared en lugar del CPU tiempo, la opción Pyinstrument puede ser una mejor opción que la cProfile opción para reducir el ruido de la creación de perfiles (filtrando las llamadas a funciones irrelevantes que son acumulativamente rápidas) y capturar operadores que realmente requieren un uso intensivo de cómputo (es decir, son lentos desde el punto de vista acumulativo) para entrenar su modelo. Con Pyinstrument, puede ver un árbol de llamadas a funciones y comprender mejor la estructura y la causa raíz de la lentitud.

    nota

    Habilitar la creación de perfiles en Python podría ralentizar el tiempo total de entrenamiento. cProfile perfila los operadores de Python llamados con más frecuencia en cada llamada, por lo que el tiempo de procesamiento de la creación de perfiles aumenta con respecto al número de llamadas. En el caso de Pyinstrument, el tiempo acumulado de creación de perfiles aumenta con respecto al tiempo debido a su mecanismo de muestreo.

El siguiente ejemplo de configuración muestra la estructura completa cuando se utilizan las diferentes opciones de creación de perfiles con valores específicos.

import time from sagemaker.debugger import (ProfilerConfig, FrameworkProfile, DetailedProfilingConfig, DataloaderProfilingConfig, PythonProfilingConfig, PythonProfiler, cProfileTimer) profiler_config=ProfilerConfig( system_monitor_interval_millis=500, framework_profile_params=FrameworkProfile( detailed_profiling_config=DetailedProfilingConfig( start_step=5, num_steps=1 ), dataloader_profiling_config=DataloaderProfilingConfig( start_step=7, num_steps=1 ), python_profiling_config=PythonProfilingConfig( start_step=9, num_steps=1, python_profiler=PythonProfiler.CPROFILE, cprofile_timer=cProfileTimer.TOTAL_TIME ) ) )

Para obtener más información sobre las opciones de creación de perfiles disponibles DetailedProfilingConfig, consulte DataloaderProfilingConfig, y PythonProfilingConfigen Amazon SageMaker Python SDK.