Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker

Amazon SageMaker es un servicio administrado que facilita la creación, el entrenamiento y la implementación de modelos de aprendizaje automático (ML). Los científicos de datos usan los trabajos de capacitación de SageMaker para entrenar fácilmente los modelos de ML; no tiene que preocuparse por administrar los recursos informáticos y solo paga por el tiempo de capacitación real. La ingestión de datos es una parte integral de cualquier proceso de capacitación, y los trabajos de capacitación de SageMaker admiten una variedad de modos de entrada y almacenamiento de datos para adaptarse a una amplia gama de cargas de trabajo de capacitación.

Esta publicación lo ayuda a elegir la mejor fuente de datos para su caso de uso de capacitación de SageMaker ML. Presentamos las opciones de fuentes de datos que los trabajos de capacitación de SageMaker admiten de forma nativa. Para cada fuente de datos y modo de entrada, describimos su facilidad de uso, características de rendimiento, costo y limitaciones. Para ayudarlo a comenzar rápidamente, proporcionamos el diagrama con un flujo de decisión de muestra que puede seguir en función de las características clave de su carga de trabajo. Por último, realizamos varios puntos de referencia para escenarios de capacitación realistas para demostrar las implicaciones prácticas en el costo y el rendimiento general de la capacitación.

Fuentes de datos nativas de SageMaker y modos de entrada

La lectura de datos de entrenamiento de manera fácil y flexible es una preocupación recurrente común para el entrenamiento de ML. SageMaker simplifica la ingesta de datos con una selección de mecanismos de ingesta de datos eficientes y de alto rendimiento denominados fuentes de datos y sus respectivos modos de entrada. Esto le permite desvincular el código de entrenamiento de la fuente de datos real, montar automáticamente sistemas de archivos, leer con alto rendimiento, activar fácilmente la fragmentación de datos entre GPU e instancias para habilitar el paralelismo de datos y la reproducción aleatoria automática de datos al comienzo de cada época.

El mecanismo de ingesta de capacitación de SageMaker se integra de forma nativa con tres servicios de almacenamiento administrados por AWS:

  • Servicio de almacenamiento simple de Amazon (Amazon S3) es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes en la industria.
  • Amazon FSx para Lustre es un almacenamiento compartido completamente administrado con la escalabilidad y el rendimiento del popular sistema de archivos Lustre. Por lo general, está vinculado a un depósito S3 existente.
  • Sistema de archivos elástico de Amazon (Amazon EFS) es un sistema de archivos compartidos de propósito general, escalable y altamente disponible con múltiples niveles de precios. Amazon EFS no tiene servidor y crece y se reduce automáticamente a medida que agrega y elimina archivos.

El entrenamiento de SageMaker permite que su script de entrenamiento acceda a conjuntos de datos almacenados en Amazon S3, FSx for Lustre o Amazon EFS, como si estuviera disponible en un sistema de archivos local (a través de una interfaz de sistema de archivos compatible con POSIX).

Con Amazon S3 como fuente de datos, puede elegir entre el modo Archivo, el modo FastFile y el modo Canalización:

  • Modo de archivo – SageMaker copia un conjunto de datos de Amazon S3 al almacenamiento de la instancia de ML, que es un archivo adjunto. Tienda de bloques elásticos de Amazon (Amazon EBS) o volumen de SSD NVMe, antes de que comience su secuencia de comandos de entrenamiento.
  • Modo de archivo rápido – SageMaker expone un conjunto de datos que reside en Amazon S3 como un sistema de archivos POSIX en la instancia de capacitación. Los archivos de conjuntos de datos se transmiten desde Amazon S3 a pedido a medida que su script de entrenamiento los lee.
  • Modo de tubería – SageMaker transmite un conjunto de datos que reside en Amazon S3 a la instancia de capacitación de ML como una canalización de Unix, que se transmite desde Amazon S3 a pedido a medida que su script de capacitación lee los datos de la canalización.

Con FSx for Lustre o Amazon EFS como fuente de datos, SageMaker monta el sistema de archivos antes de que comience su script de entrenamiento.

Canales de entrada de entrenamiento

Al iniciar un trabajo de capacitación de SageMaker, puede especificar hasta 20 canales de entrada de entrenamiento. Puede pensar en los canales como una unidad de abstracción para decirle al trabajo de entrenamiento cómo y dónde obtener los datos que están disponibles para que el código del algoritmo los lea desde una ruta del sistema de archivos (por ejemplo, /opt/ml/input/data/input-channel-name) en la instancia de ML. Los canales de capacitación seleccionados se capturan como parte de los metadatos del trabajo de capacitación para permitir un seguimiento completo del linaje del modelo para casos de uso como la reproducibilidad de los trabajos de capacitación o fines de gobernanza del modelo.

Para utilizar Amazon S3 como su fuente de datos, defina un Entrada de entrenamiento para especificar lo siguiente:

Alternativamente, para FSx for Lustre o Amazon EFS, defina un Entrada del sistema de archivos.

El siguiente diagrama muestra cinco trabajos de entrenamiento, cada uno configurado con una fuente de datos diferente y una combinación de modo de entrada:

Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Fuentes de datos y modos de entrada

Las siguientes secciones brindan una inmersión profunda en las diferencias entre Amazon S3 (modo de archivo, modo FastFile y modo Pipe), FSx for Lustre y Amazon EFS como mecanismos de ingesta de SageMaker.

Modo de archivo de Amazon S3

El modo de archivo es el modo de entrada predeterminado (si no especificó uno explícitamente), y es el más sencillo de usar. Cuando usa esta opción de entrada, SageMaker descarga el conjunto de datos de Amazon S3 en el almacenamiento de la instancia de entrenamiento de ML (Amazon EBS o NVMe local según el tipo de instancia) en su nombre antes de iniciar el entrenamiento del modelo, de modo que el script de entrenamiento pueda leer el conjunto de datos desde el sistema de archivos local. En este caso, la instancia debe tener suficiente espacio de almacenamiento para que quepa todo el conjunto de datos.

Configure el conjunto de datos para el modo de archivo proporcionando un prefijo S3, un archivo de manifiesto o un archivo de manifiesto aumentado.

Debe usar un prefijo S3 cuando todos sus archivos de conjunto de datos se encuentran dentro de un prefijo S3 común (las subcarpetas están bien).

El archivo de manifiesto enumera los archivos que componen su conjunto de datos. Por lo general, utiliza un manifiesto cuando un trabajo de preprocesamiento de datos emite un archivo de manifiesto o cuando los archivos de su conjunto de datos se distribuyen en varios prefijos de S3. Un manifiesto aumentado es un archivo de línea JSON, donde cada línea contiene una lista de atributos, como una referencia a un archivo en Amazon S3, junto con atributos adicionales, en su mayoría etiquetas. Sus casos de uso son similares a los de un manifiesto.

El modo de archivo es compatible con Modo local de SageMaker (iniciar un contenedor de capacitación de SageMaker de forma interactiva en segundos). Para el entrenamiento distribuido, puede fragmentar el conjunto de datos en varias instancias con el ShardedByS3Key .

La velocidad de descarga del modo de archivo depende del tamaño del conjunto de datos, el tamaño promedio del archivo y la cantidad de archivos. Por ejemplo, cuanto más grande es el conjunto de datos (o más archivos tiene), más larga es la etapa de descarga, durante la cual el recurso informático de la instancia permanece efectivamente inactivo. Cuando se entrena con instancias de spot, el conjunto de datos se descarga cada vez que se reanuda el trabajo después de una interrupción de spot. Por lo general, la descarga de datos se realiza a aproximadamente 200 MB/s para archivos grandes (por ejemplo, 5 minutos/50 GB). Si esta sobrecarga de inicio es aceptable depende principalmente de la duración total de su trabajo de entrenamiento, porque una fase de entrenamiento más larga significa una fase de descarga proporcionalmente más pequeña.

Modo FastFile de Amazon S3

El modo FastFile expone los objetos S3 a través de una interfaz de sistema de archivos compatible con POSIX, como si los archivos estuvieran disponibles en el disco local de su instancia de capacitación, y transmite su contenido a pedido cuando el script de capacitación consume los datos. Esto significa que su conjunto de datos ya no necesita caber en el espacio de almacenamiento de la instancia de entrenamiento, y no necesita esperar a que el conjunto de datos se descargue en la instancia de entrenamiento antes de que pueda comenzar el entrenamiento.

Para facilitar esto, SageMaker enumera todos los metadatos de objetos almacenados bajo el prefijo S3 especificado antes de que se ejecute el script de entrenamiento. Estos metadatos se utilizan para crear un archivo de solo lectura. FUSE (sistema de archivos en el espacio de usuario) que está disponible para su script de entrenamiento a través de /opt/ml/data/training-channel-name. La lista de objetos de S3 se ejecuta tan rápido como 5,500 objetos por segundo, independientemente de su tamaño. Esto es mucho más rápido que descargar archivos por adelantado, como es el caso del modo Archivo. Mientras se ejecuta su script de entrenamiento, puede enumerar o leer archivos como si estuvieran disponibles localmente. Cada operación de lectura se delega al servicio FUSE, que envía solicitudes GET a Amazon S3 para entregar el contenido real del archivo a la persona que llama. Al igual que un sistema de archivos local, FastFile trata los archivos como bytes, por lo que es independiente de los formatos de archivo. El modo FastFile puede alcanzar un rendimiento de más de un GB/s al leer archivos grandes de forma secuencial con varios trabajadores. Puede usar FastFile para leer archivos pequeños o recuperar rangos de bytes aleatorios, pero debe esperar un rendimiento más bajo para tales patrones de acceso. Puede optimizar su patrón de acceso de lectura al serializar muchos archivos pequeños en contenedores de archivos más grandes y leerlos secuencialmente.

Actualmente, FastFile solo admite prefijos de S3 (no admite manifiesto ni manifiesto aumentado), y el modo FastFile es compatible con el modo local de SageMaker.

Modo de canalización de Amazon S3

El modo Pipe es otro modo de transmisión que se reemplaza en gran medida por el modo FastFile más nuevo y fácil de usar.

Con el modo Pipe, los datos se obtienen previamente de Amazon S3 con una alta simultaneidad y rendimiento, y se transmiten a pipes FIFO con nombre de Unix. Cada tubería solo puede ser leída por un solo proceso. Una extensión específica de SageMaker para TensorFlow convenientemente integra el modo Pipe en el cargador de datos nativo de TensorFlow para transmisión de texto, TFRecords o formatos de archivo RecordIO. El modo Pipe también es compatible con la fragmentación y el barajado administrados de datos.

FSx para brillo

FSx for Lustre puede escalar a cientos de GB/s de rendimiento y millones de IOPS con recuperación de archivos de baja latencia.

Al iniciar un trabajo de capacitación, SageMaker monta el sistema de archivos FSx for Lustre en el sistema de archivos de la instancia de capacitación y luego inicia su script de capacitación. El montaje en sí es una operación relativamente rápida que no depende del tamaño del conjunto de datos almacenado en FSx for Lustre.

En muchos casos, crea un sistema de archivos FSx for Lustre y vincularlo a un depósito S3 y prefijo. Cuando se vincula a un depósito de S3 como fuente, los archivos se cargan de forma diferida en el sistema de archivos a medida que los lee el script de entrenamiento. Esto significa que justo después de la primera época de su primera ejecución de entrenamiento, todo el conjunto de datos se copia de Amazon S3 al FSx para almacenamiento Lustre (suponiendo que una época se define como un barrido completo único según los ejemplos de entrenamiento, y que el FSx asignado para El almacenamiento de brillo es lo suficientemente grande). Esto permite el acceso a archivos de baja latencia para cualquier época posterior y trabajos de entrenamiento con el mismo conjunto de datos.

También puede precargar archivos en el sistema de archivos antes de comenzar el trabajo de entrenamiento, lo que alivia el arranque en frío debido a la carga diferida. También es posible ejecutar varios trabajos de entrenamiento en paralelo que son atendidos por el mismo sistema de archivos FSx for Lustre. Para acceder a FSx for Lustre, su trabajo de capacitación debe conectarse a una VPC (consulte Configuración de VPCConfig), que requiere la configuración y participación de DevOps. Para evitar los costos de transferencia de datos, el sistema de archivos usa una única zona de disponibilidad y debe especificar este ID de zona de disponibilidad al ejecutar el trabajo de capacitación. Debido a que está utilizando Amazon S3 como su almacenamiento de datos a largo plazo, le recomendamos que implemente su FSx for Lustre con almacenamiento Scratch 2, como una opción rentable de almacenamiento a corto plazo para un alto rendimiento, proporcionando una línea de base de 200 MB/s y una ráfaga de hasta 1300 MB/s por TB de almacenamiento aprovisionado.

Con su sistema de archivos FSx for Lustre ejecutándose constantemente, puede iniciar nuevos trabajos de capacitación sin esperar a que se cree un sistema de archivos, y no tiene que preocuparse por el inicio en frío durante la primera época (porque los archivos aún podrían almacenarse en caché en el sistema de archivos FSx for Lustre). La desventaja en este escenario es el costo adicional asociado con mantener el sistema de archivos en funcionamiento. Alternativamente, puede crear y eliminar el sistema de archivos antes y después de cada trabajo de capacitación (probablemente con la ayuda de la automatización con secuencias de comandos), pero lleva tiempo inicializar un sistema de archivos FSx for Lustre, que es proporcional a la cantidad de archivos que contiene (por ejemplo, ejemplo, se tarda aproximadamente una hora en indexar aproximadamente 2 millones de objetos de Amazon S3).

AmazonEFS

Recomendamos usar Amazon EFS si sus datos de entrenamiento ya residen en Amazon EFS debido a casos de uso además del entrenamiento de ML. Para utilizar Amazon EFS como fuente de datos, los datos ya deben residir en Amazon EFS antes de la capacitación. SageMaker monta el sistema de archivos de Amazon EFS especificado en la instancia de entrenamiento y luego inicia su script de entrenamiento. Al configurar el sistema de archivos de Amazon EFS, debe elegir entre el modo de rendimiento de propósito general predeterminado, que está optimizado para la latencia (bueno para archivos pequeños) y el modo de rendimiento Max I/O, que puede escalar a niveles más altos de rendimiento agregado y operaciones por segundo (mejor para trabajos de entrenamiento con muchos trabajadores de E/S). Para obtener más información, consulte Usar el modo de rendimiento correcto.

Además, puede elegir entre dos opciones de rendimiento medido: rendimiento en ráfaga y rendimiento aprovisionado. El rendimiento de ráfagas para un sistema de archivos de 1 TB proporciona una línea de base de 150 MB/s, mientras que puede aumentar a 300 MB/s durante un período de 12 horas al día. Si necesita un rendimiento de línea de base más alto, o si se está quedando sin créditos de ráfaga demasiadas veces, puede aumentar el tamaño del sistema de archivos o cambiar al rendimiento aprovisionado. En el rendimiento aprovisionado, paga por el rendimiento de referencia deseado hasta un máximo de 3072 MB/s de lectura.

Tu trabajo de entrenamiento debe conectarse a una VPC (consulta Configuración de VPCConfig) para acceder a Amazon EFS.

Elegir la mejor fuente de datos

La mejor fuente de datos para su trabajo de entrenamiento depende de las características de la carga de trabajo, como el tamaño del conjunto de datos, el formato del archivo, el tamaño promedio del archivo, la duración del entrenamiento, el patrón de lectura del cargador de datos secuencial o aleatorio y la rapidez con la que su modelo puede consumir los datos de entrenamiento.

El siguiente diagrama de flujo proporciona algunas pautas para ayudarlo a comenzar:
Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cuándo usar Amazon EFS

Si su conjunto de datos se almacena principalmente en Amazon EFS, es posible que tenga una aplicación de preprocesamiento o anotaciones que utilice Amazon EFS para el almacenamiento. Puede ejecutar fácilmente un trabajo de entrenamiento configurado con un canal de datos que apunte al sistema de archivos de Amazon EFS (para obtener más información, consulte Acelere la capacitación en Amazon SageMaker con Amazon FSx para los sistemas de archivos Luster y Amazon EFS). Si el rendimiento no es tan bueno como esperaba, verifique sus opciones de optimización con el Guía de rendimiento de Amazon EFS, o considere otros modos de entrada.

Utilice el modo de archivo para conjuntos de datos pequeños

Si el conjunto de datos se almacena en Amazon S3 y su volumen general es relativamente pequeño (por ejemplo, menos de 50 a 100 GB), intente usar el modo Archivo. La sobrecarga de descargar un conjunto de datos de 50 GB puede variar según la cantidad total de archivos (por ejemplo, aproximadamente 5 minutos si se divide en fragmentos de 100 MB). Si esta sobrecarga de inicio es aceptable depende principalmente de la duración total de su trabajo de entrenamiento, porque una fase de entrenamiento más larga significa una fase de descarga proporcionalmente más pequeña.

Serializar muchos archivos pequeños juntos

Si el tamaño de su conjunto de datos es pequeño (menos de 50 a 100 GB), pero está compuesto por muchos archivos pequeños (menos de 50 MB), la sobrecarga de descarga del modo Archivo aumenta, porque cada archivo debe descargarse individualmente desde Amazon S3 al volumen de la instancia de entrenamiento. Para reducir esta sobrecarga y acelerar el recorrido de datos en general, considere la posibilidad de serializar grupos de archivos más pequeños en menos contenedores de archivos más grandes (como 150 MB por archivo) utilizando formatos de archivo como Registro TF para TensorFlow, Conjunto de datos web para PyTorch, o GrabarIO para MXNet. Estos formatos requieren que su cargador de datos itere a través de ejemplos secuencialmente. Todavía podría mezclar sus datos reordenando aleatoriamente la lista de archivos TFRecord después de cada época y muestreando aleatoriamente los datos de un búfer aleatorio local (vea lo siguiente Ejemplo de TensorFlow).

Cuándo usar el modo FastFile

Para conjuntos de datos más grandes con archivos más grandes (más de 50 MB), la primera opción es probar el modo FastFile, que es más sencillo de usar que FSx for Lustre porque no requiere crear un sistema de archivos ni conectarse a una VPC. El modo FastFile es ideal para contenedores de archivos grandes (más de 150 MB) y también puede funcionar bien con archivos de más de 50 MB. Debido a que el modo FastFile proporciona una interfaz POSIX, admite lecturas aleatorias (lectura de rangos de bytes no secuenciales). Sin embargo, este no es el caso de uso ideal y su rendimiento probablemente sea menor que con las lecturas secuenciales. Sin embargo, si tiene un modelo ML relativamente grande y computacionalmente intensivo, el modo FastFile aún puede saturar el ancho de banda efectivo de la canalización de entrenamiento y no generar un cuello de botella de E/S. Tendrás que experimentar y ver. Afortunadamente, cambiar del modo Archivo a FastFile (y viceversa) es tan fácil como agregar (o eliminar) el input_mode='FastFile' mientras define su canal de entrada usando SageMaker Python SDK:

sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER, input_mode='FastFile') 

No es necesario cambiar ningún otro código o configuración.

Cuándo usar FSx para Lustre

Si su conjunto de datos es demasiado grande para el modo Archivo, o tiene muchos archivos pequeños (que no puede serializar fácilmente), o tiene un patrón de acceso de lectura aleatorio, FSx for Lustre es una buena opción a considerar. Su sistema de archivos escala a cientos de GB/s de rendimiento y millones de IOPS, lo que es ideal cuando tiene muchos archivos pequeños. Sin embargo, como ya se mencionó anteriormente, tenga en cuenta los problemas de arranque en frío debido a la carga diferida y la sobrecarga de configurar e inicializar el sistema de archivos FSx for Lustre.

Consideraciones de costo

Para la mayoría de los trabajos de capacitación de ML, especialmente los trabajos que utilizan GPU o chips de ML especialmente diseñados, la mayor parte del costo de capacitación son los segundos facturables de la instancia de capacitación de ML. Los GB de almacenamiento por mes, las solicitudes de API y el rendimiento aprovisionado son costos adicionales que están directamente asociados con las fuentes de datos que utiliza.

GB de almacenamiento al mes

Los GB de almacenamiento por mes pueden ser significativos para conjuntos de datos más grandes, como videos, datos de sensores LiDAR y registros de ofertas en tiempo real de AdTech. Por ejemplo, almacenar 1 TB en el Nivel de acceso frecuente de nivelación inteligente de Amazon S3 cuesta $23 por mes. Agregar el sistema de archivos FSx for Lustre sobre Amazon S3 genera costos adicionales. Por ejemplo, crear un sistema de archivos de 1.2 TB de tipo Scratch 2 respaldado por SSD con la compresión de datos deshabilitada cuesta $168 adicionales por mes ($140/TB/mes).

Con Amazon S3 y Amazon EFS, solo paga por lo que usa, lo que significa que se le cobra de acuerdo con el tamaño real del conjunto de datos. Con FSx for Lustre, se le cobra por el tamaño del sistema de archivos aprovisionado (1.2 TB como mínimo). Cuando se ejecutan instancias de ML con volúmenes de EBS, Amazon EBS se cobra independientemente de la instancia de ML. Este suele ser un costo mucho más bajo en comparación con el costo de ejecutar la instancia. Por ejemplo, ejecutar una instancia ml.p3.2xlarge con un volumen de EBS de 100 GB durante 1 hora cuesta $3.825 por la instancia y $0.02 por el volumen de EBS.

Solicitudes de API y costo de rendimiento aprovisionado

Mientras su trabajo de entrenamiento analiza el conjunto de datos, enumera y obtiene archivos mediante el envío de solicitudes de la API de Amazon S3. Por ejemplo, cada millón de solicitudes GET tiene un precio de 0.4 USD (con la clase Intelligent-Tiering). No debe esperar ningún costo de transferencia de datos para el ancho de banda dentro y fuera de Amazon S3, porque la capacitación se lleva a cabo en una única zona de disponibilidad.

Cuando usa un FSx for Lustre que está vinculado a un depósito S3, incurre en costos de solicitud de API de Amazon S3 por leer datos que aún no están almacenados en caché en el sistema de archivos, porque FSx For Lustre envía la solicitud a Amazon S3 (y almacena en caché el resultado). ). No hay costes directos de solicitud de FSx for Lustre. Cuando utilice un sistema de archivos FSx for Lustre, evite los costos de la transferencia de datos entre zonas de disponibilidad ejecutando su trabajo de capacitación conectado a la misma zona de disponibilidad en la que aprovisionó el sistema de archivos. Amazon EFS con rendimiento aprovisionado agrega un costo adicional a la consideración más allá GB por mes.

Estudio de caso de rendimiento

Para demostrar las consideraciones de rendimiento del entrenamiento mencionadas anteriormente, realizamos una serie de puntos de referencia para un caso de uso realista en el dominio de la visión artificial. El punto de referencia (y las conclusiones) de esta sección pueden no ser aplicables a todos los escenarios y se ven afectados por varios factores predeterminados que usamos, como DNN. Realizamos pruebas para 12 combinaciones de lo siguiente:

  • Modos de entrada – FSx para Lustre, modo Archivo, modo FastFile
  • Tamaño del conjunto de datos – Conjunto de datos más pequeño (1 GB), conjunto de datos más grande (54 GB)
  • Tamaño del archivo – Archivos más pequeños (JPG, aproximadamente 39 KB), archivos más grandes (TFRecord, aproximadamente 110 MB)

Para este caso de estudio, elegimos los modos de entrada más utilizados y, por lo tanto, omitimos Amazon EFS y el modo Pipe.

Los puntos de referencia del estudio de caso se diseñaron como trabajos de entrenamiento integrales de SageMaker TensorFlow en una instancia ml.p3.2xlarge de una sola GPU. Elegimos el renombrado ResNet-50 como nuestro modelo principal para la tarea de clasificación y Caltech-256 como el conjunto de datos de entrenamiento más pequeño (que replicamos 50 veces para crear su versión de conjunto de datos más grande). Realizamos el entrenamiento para una época, definida como un solo barrido completo a través de los ejemplos de entrenamiento.

Los siguientes gráficos muestran el tiempo total facturable de los trabajos de capacitación de SageMaker para cada escenario de referencia. El tiempo total del trabajo en sí se compone de descarga, capacitación y otras etapas (como el inicio del contenedor y la carga de artefactos de modelos capacitados en Amazon S3). Los tiempos facturables más cortos se traducen en trabajos de capacitación más rápidos y económicos.

Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Primero discutamos Escenario A y Escenario C, que demuestran convenientemente la diferencia de rendimiento entre los modos de entrada cuando el conjunto de datos se compone de muchos archivos pequeños.

Escenario A (archivos más pequeños, conjunto de datos más pequeño) revela que el trabajo de entrenamiento con el sistema de archivos FSx for Lustre tiene el menor tiempo facturable. Tiene la fase de descarga más corta y su etapa de entrenamiento es tan rápida como el modo Archivo, pero más rápida que FastFile. FSx for Lustre es el ganador en esta prueba de época única. Habiendo dicho eso, considere una carga de trabajo similar pero con varias épocas: la sobrecarga relativa del modo Archivo debido a la etapa de descarga disminuye a medida que se agregan más épocas. En este caso, preferimos el modo Archivo por su facilidad de uso. Además, es posible que descubra que usar el modo Archivo y pagar 100 segundos adicionales facturables es una mejor opción que pagar y aprovisionar un sistema de archivos FSx for Lustre.

Escenario C (archivos más pequeños, conjunto de datos más grande) muestra que FSx for Lustre es el modo más rápido, con solo 5,000 segundos de tiempo total facturable. También tiene la etapa de descarga más corta, porque montar el sistema de archivos FSx for Lustre no depende de la cantidad de archivos en el sistema de archivos (1.5 millones de archivos en este caso). La sobrecarga de descarga de FastFile también es pequeña; solo obtiene metadatos de los archivos que residen bajo el prefijo de depósito S3 especificado, mientras que el contenido de los archivos se lee durante la etapa de entrenamiento. El modo de archivo es el modo más lento, tarda 10,000 segundos en descargar todo el conjunto de datos por adelantado antes de comenzar el entrenamiento. Cuando observamos la etapa de entrenamiento, FSx para el modo Lustre y File demuestran un rendimiento excelente similar. En cuanto al modo FastFile, cuando se transmiten archivos más pequeños directamente desde Amazon S3, la sobrecarga para enviar una nueva solicitud GET para cada archivo se vuelve significativa en relación con la duración total de la transferencia de archivos (a pesar de usar un cargador de datos altamente paralelo con búfer de búsqueda previa). Esto da como resultado un rendimiento general más bajo para el modo FastFile, lo que crea un cuello de botella de E/S para el trabajo de entrenamiento. FSx for Lustre es el claro ganador en este escenario.

Escenarios B y D muestre la diferencia de rendimiento entre los modos de entrada cuando el conjunto de datos se compone de menos archivos más grandes. La lectura secuencial con archivos más grandes generalmente da como resultado un mejor rendimiento de E/S porque permite un almacenamiento en búfer efectivo y reduce la cantidad de operaciones de E/S.

Escenario B (archivos más grandes, conjunto de datos más pequeño) muestra un tiempo de etapa de entrenamiento similar para todos los modos (lo que demuestra que el entrenamiento no está vinculado a E/S). En este escenario, preferimos el modo FastFile sobre el modo Archivo debido a que la etapa de descarga es más corta, y preferimos el modo FastFile sobre FSx for Lustre debido a la facilidad de uso del primero.

Escenario D (archivos más grandes, conjunto de datos más grande) muestra tiempos facturables totales relativamente similares para los tres modos. La fase de descarga del modo Archivo es más larga que la de FSx for Lustre y FastFile. El modo de archivo descarga el conjunto de datos completo (54 GB) de Amazon S3 a la instancia de entrenamiento antes de comenzar la etapa de entrenamiento. Los tres modos pasan un tiempo similar en la fase de entrenamiento, porque todos los modos pueden obtener datos lo suficientemente rápido y están vinculados a la GPU. Si usamos instancias de ML con recursos de CPU o GPU adicionales, como ml.p4d.24xlarge, el rendimiento de E/S de datos requerido para saturar los recursos informáticos crece. En estos casos, podemos esperar que FastFile y FSx for Lustre escalen correctamente su rendimiento (sin embargo, el rendimiento de FSx for Lustre depende del tamaño del sistema de archivos aprovisionado). La capacidad del modo Archivo para escalar su rendimiento depende del rendimiento del volumen de disco adjunto a la instancia. Por ejemplo, las instancias respaldadas por Amazon EBS (como ml.p3.2xlarge, ml.p3.8xlarge y ml.p3.16xlarge) están limitadas a un rendimiento máximo de 250 MB/s, mientras que las instancias locales respaldadas por NVMe (como ml. g5.* o ml.p4d.24xlarge) pueden admitir un rendimiento mucho mayor.

Para resumir, creemos que FastFile es el ganador para este escenario porque es más rápido que el modo Archivo y tan rápido como FSx for Lustre, pero más fácil de usar, cuesta menos y puede escalar fácilmente su rendimiento según sea necesario.

Además, si tuviéramos un conjunto de datos mucho más grande (varios TB de tamaño), el modo Archivo pasaría muchas horas descargando el conjunto de datos antes de que pudiera comenzar el entrenamiento, mientras que FastFile podría comenzar a entrenar significativamente más rápido.

Traiga su propia ingestión de datos

La fuente de datos nativa de SageMaker se adapta a la mayoría, pero no a todos los escenarios posibles de capacitación de ML. Las situaciones en las que podría necesitar buscar otras opciones de ingestión de datos podrían incluir la lectura de datos directamente desde un producto de almacenamiento de terceros (suponiendo que no sea posible una exportación fácil y oportuna a Amazon S3), o tener un fuerte requisito para la misma capacitación. secuencia de comandos para ejecutarse sin cambios en SageMaker y Nube informática elástica de Amazon (Amazon EC2) o Servicio Amazon Elastic Kubernetes (Amazon EKS). Puede abordar estos casos implementando su mecanismo de ingestión de datos en el script de entrenamiento. Este mecanismo es responsable de leer conjuntos de datos de fuentes de datos externas en la instancia de entrenamiento. por ejemplo, el TFRecordDataset de TensorFlow tf.data biblioteca puede leer directamente desde el almacenamiento de Amazon S3.

Si su mecanismo de ingesta de datos necesita llamar a cualquier servicio de AWS, como Servicio de base de datos relacional de Amazon (Amazon RDS), asegúrese de que el Gestión de identidades y accesos de AWS (IAM) de su trabajo de capacitación incluye las políticas de IAM relevantes. Si la fuente de datos reside en Nube privada virtual de Amazon (Amazon VPC), debe ejecutar su trabajo de entrenamiento conectado a la misma VPC.

Cuando administra usted mismo la ingestión de conjuntos de datos, el seguimiento de linaje de SageMaker no puede registrar automáticamente los conjuntos de datos utilizados durante el entrenamiento. Por lo tanto, considere mecanismos alternativos, como etiquetas de trabajo de entrenamiento o hiperparámetros, para capturar sus metadatos relevantes.

Conclusión

La elección de la fuente de datos de entrenamiento de SageMaker adecuada podría tener un efecto profundo en la velocidad, la facilidad de uso y el costo de los modelos de aprendizaje automático. Utilice el diagrama de flujo provisto para comenzar rápidamente, observe los resultados y experimente con configuraciones adicionales según sea necesario. Tenga en cuenta los pros, los contras y las limitaciones de cada fuente de datos y qué tan bien se adaptan a los requisitos individuales de su trabajo de capacitación. Comuníquese con un contacto de AWS para obtener más información y asistencia.


Acerca de los autores

Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.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.

Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Dr. Alejandro Arzhanov es un arquitecto de soluciones especializado en AI/ML con sede en Frankfurt, Alemania. Ayuda a los clientes de AWS a diseñar e implementar sus soluciones de ML en la región EMEA. Antes de unirse a AWS, Alexander estaba investigando los orígenes de los elementos pesados ​​en nuestro universo y se apasionó por ML después de usarlo en sus cálculos científicos a gran escala.

Sello de tiempo:

Mas de Aprendizaje automático de AWS