Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos en función del uso, Parte 3: Trabajos de Procesamiento y Data Wrangler | Servicios web de Amazon

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos en función del uso, Parte 3: Trabajos de Procesamiento y Data Wrangler | Servicios web de Amazon

En 2021, lanzamos Servicios proactivos de AWS Support como parte de la Soporte empresarial de AWS plan. Desde su presentación, hemos ayudado a cientos de clientes a optimizar sus cargas de trabajo, establecer barreras y mejorar la visibilidad del costo y el uso de sus cargas de trabajo de aprendizaje automático (ML).

En esta serie de publicaciones, compartimos lecciones aprendidas sobre la optimización de costos en Amazon SageMaker. En esta publicación, nos enfocamos en el preprocesamiento de datos usando Procesamiento de Amazon SageMaker y Wrangler de datos de Amazon SageMaker puestos de trabajo.

El preprocesamiento de datos tiene un papel fundamental en un enfoque de IA centrado en datos. Sin embargo, preparar datos sin procesar para la capacitación y evaluación de ML suele ser una tarea tediosa y exigente en términos de recursos informáticos, tiempo y esfuerzo humano. La preparación de datos comúnmente debe integrarse desde diferentes fuentes y tratar con valores perdidos o ruidosos, valores atípicos, etc.

Además, además de las tareas comunes de extracción, transformación y carga (ETL), los equipos de ML ocasionalmente requieren capacidades más avanzadas, como la creación de modelos rápidos para evaluar datos y producir puntajes de importancia de características o la evaluación del modelo posterior al entrenamiento como parte de una canalización de MLOps.

SageMaker ofrece dos funciones diseñadas específicamente para ayudar con esos problemas: SageMaker Processing y Data Wrangler. SageMaker Processing le permite ejecutar fácilmente el preprocesamiento, el posprocesamiento y la evaluación de modelos en una infraestructura completamente administrada. Data Wrangler reduce el tiempo que se tarda en agregar y preparar datos al simplificar el proceso de integración de fuentes de datos y la ingeniería de características utilizando una única interfaz visual y un entorno de procesamiento de datos completamente distribuido.

Ambas características de SageMaker brindan una gran flexibilidad con varias opciones de E/S, almacenamiento y computación. Sin embargo, configurar esas opciones incorrectamente puede generar costos innecesarios, especialmente cuando se trata de grandes conjuntos de datos.

En esta publicación, analizamos los factores de precios y brindamos orientación para la optimización de costos para los trabajos de SageMaker Processing y Data Wrangler.

Procesamiento SageMaker

SageMaker Processing es una solución administrada para ejecutar cargas de trabajo de procesamiento de datos y evaluación de modelos. Puede usarlo en pasos de procesamiento de datos, como ingeniería de características, validación de datos, evaluación de modelos e interpretación de modelos en flujos de trabajo de ML. Con el procesamiento de SageMaker, puede traer sus propios scripts de procesamiento personalizados y elegir crear un contenedor personalizado o usar un contenedor administrado de SageMaker con marcos comunes como scikit-learn, Lime, Spark y más.

SageMaker Processing le cobra por el tipo de instancia que elija, según la duración del uso y el almacenamiento aprovisionado que se adjunta a esa instancia. En la Parte 1, mostramos cómo comenzar a usar Explorador de costos de AWS para identificar oportunidades de optimización de costos en SageMaker.

Puede filtrar los costos de procesamiento aplicando un filtro en el tipo de uso. Los nombres de estos tipos de uso son los siguientes:

  • REGION-Processing:instanceType (por ejemplo, USE1-Processing:ml.m5.large)
  • REGION-Processing:VolumeUsage.gp2 (por ejemplo, USE1-Processing:VolumeUsage.gp2)

Para revisar su costo de procesamiento de SageMaker en Cost Explorer, comience filtrando con SageMaker por Service, Y para Tipo de uso, puede seleccionar todas las instancias de procesamiento en horas de ejecución ingresando el processing:ml prefijo y seleccionando la lista en el menú.

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Evite el costo en el procesamiento y el desarrollo de tuberías

Antes de dimensionar correctamente y optimizar la duración de la ejecución de un trabajo de procesamiento de SageMaker, verificamos las métricas de alto nivel sobre las ejecuciones históricas de trabajos. Puede elegir entre dos métodos para hacer esto.

En primer lugar, puede acceder a la Procesamiento página en la consola de SageMaker.

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Alternativamente, puede utilizar la lista_procesamiento_trabajos API.

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Un estado de trabajo Procesando puede ser InProgress, Completed, Failed, Stoppingo Stopped.

Una gran cantidad de trabajos fallidos es común cuando se desarrollan nuevas canalizaciones de MLOps. Sin embargo, siempre debe probar y hacer todo lo posible para validar los trabajos antes de iniciarlos en SageMaker porque hay cargos por los recursos utilizados. Para ello, puede utilizar SageMaker Processing en modo local. El modo local es una característica del SDK de SageMaker que le permite crear estimadores, procesadores y canalizaciones, e implementarlos en su entorno de desarrollo local. Esta es una excelente manera de probar sus scripts antes de ejecutarlos en un entorno administrado por SageMaker. El modo local es compatible con los contenedores administrados de SageMaker y los que usted mismo proporciona. Para obtener más información sobre cómo usar el modo local con Canalizaciones de Amazon SageMaker, Referirse a Modo local.

Optimizar el costo relacionado con E/S

Los trabajos de procesamiento de SageMaker ofrecen acceso a tres fuentes de datos como parte del entrada de procesamiento: Servicio de almacenamiento simple de Amazon (Amazon S3), Atenea amazónicay Desplazamiento al rojo de Amazon. Para obtener más información, consulte ProcesamientoS3Entrada, AthenaDatasetDefinicióny RedshiftDatasetDefinición, respectivamente.

Antes de analizar la optimización, es importante tener en cuenta que, aunque los trabajos de procesamiento de SageMaker admiten estas fuentes de datos, no son obligatorios. En su código de procesamiento, puede implementar cualquier método para descargar los datos de acceso desde cualquier fuente (siempre que la instancia de procesamiento pueda acceder a ellos).

Para obtener mejores conocimientos sobre el rendimiento del procesamiento y la detección de oportunidades de optimización, recomendamos seguir mejores prácticas de registro en su script de procesamiento. SageMaker publica sus registros de procesamiento en Reloj en la nube de Amazon.

En el siguiente registro de trabajo de ejemplo, vemos que el procesamiento del script tomó 15 minutos (entre Start custom script y End custom script).

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Sin embargo, en la consola de SageMaker, vemos que el trabajo tomó 4 minutos adicionales (casi el 25 % del tiempo de ejecución total del trabajo).

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Esto se debe al hecho de que, además del tiempo que tomó nuestra secuencia de comandos de procesamiento, la descarga y carga de datos administrados por SageMaker también tomó tiempo (4 minutos). Si esto resulta ser una gran parte del costo, considere formas alternativas de acelerar el tiempo de descarga, como usar la API de Boto3 con multiprocesamiento para descargar archivos al mismo tiempo, o usar bibliotecas de terceros como WebDataset o s5cmd para una descarga más rápida desde Amazon S3. Para obtener más información, consulte Paralelización de cargas de trabajo de S3 con s5cmd. Tenga en cuenta que dichos métodos pueden generar cargos en Amazon S3 debido a transferencia de datos.

Los trabajos de procesamiento también admiten Modo de tubería. Con este método, SageMaker transmite los datos de entrada desde el origen directamente a su contenedor de procesamiento en canalizaciones con nombre sin usar el volumen de almacenamiento de ML, lo que elimina el tiempo de descarga de datos y reduce el volumen del disco. Sin embargo, esto requiere un modelo de programación más complicado que simplemente leer archivos en un disco.

Como se mencionó anteriormente, SageMaker Processing también es compatible con Athena y Amazon Redshift como fuentes de datos. Al configurar un trabajo de procesamiento con estas fuentes, SageMaker copia automáticamente los datos en Amazon S3 y la instancia de procesamiento obtiene los datos de la ubicación de Amazon S3. Sin embargo, cuando finaliza el trabajo, no hay un proceso de limpieza administrado y los datos copiados permanecerán en Amazon S3 y podrían incurrir en cargos de almacenamiento no deseados. Por lo tanto, cuando utilice fuentes de datos de Athena y Amazon Redshift, asegúrese de implementar un procedimiento de limpieza, como una función Lambda que se ejecuta en un horario o en una Paso lambda como parte de una canalización de SageMaker.

Al igual que la descarga, la carga de artefactos de procesamiento también puede ser una oportunidad para la optimización. Cuando la salida de un trabajo de procesamiento se configura mediante el ProcessingS3Output parámetro, puede especificar qué S3UploadMode usar. La S3UploadMode el valor predeterminado del parámetro es EndOfJob, que hará que SageMaker cargue los resultados después de que se complete el trabajo. Sin embargo, si su trabajo de Procesamiento produce varios archivos, puede establecer S3UploadMode a Continuous, lo que permite la carga de artefactos simultáneamente mientras continúa el procesamiento y reduce el tiempo de ejecución del trabajo.

Instancias de trabajo de procesamiento de tamaño adecuado

Elegir el tipo y el tamaño de instancia correctos es un factor importante para optimizar el costo de los trabajos de procesamiento de SageMaker. Puede ajustar el tamaño de una instancia migrando a una versión diferente dentro de la misma familia de instancias o migrando a otra familia de instancias. Al migrar dentro de la misma familia de instancias, solo debe tener en cuenta la CPU/GPU y la memoria. Para obtener más información y orientación general sobre cómo elegir los recursos de procesamiento adecuados, consulte Garantice recursos informáticos eficientes en Amazon SageMaker.

Para afinar la selección de instancias, comenzamos analizando las métricas de trabajo de procesamiento en CloudWatch. Para obtener más información, consulte Monitoree Amazon SageMaker con Amazon CloudWatch.

CloudWatch recopila datos sin procesar de SageMaker y los procesa en métricas legibles casi en tiempo real. Aunque estas estadísticas se mantienen durante 15 meses, la consola de CloudWatch limita la búsqueda a las métricas que se actualizaron en las últimas 2 semanas (esto garantiza que solo se muestren los trabajos actuales). Las métricas de trabajos de procesamiento se pueden encontrar en el espacio de nombres /aws/sagemaker/ProcessingJobs y las métricas recopiladas son CPUUtilization, MemoryUtilization, GPUUtilization, GPUMemoryUtilizationy DiskUtilization.

La siguiente captura de pantalla muestra un ejemplo en CloudWatch del trabajo de procesamiento que vimos anteriormente.

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

En este ejemplo, vemos los valores promedio de CPU y memoria (que es el valor predeterminado en CloudWatch): el uso promedio de CPU es 0.04 %, memoria 1.84 % y uso de disco 13.7 %. Para obtener el tamaño correcto, considere siempre el uso máximo de CPU y memoria (en este ejemplo, el uso máximo de CPU fue del 98 % en los primeros 3 minutos). Como regla general, si su uso máximo de CPU y memoria es consistentemente inferior al 40%, puede reducir la máquina a la mitad de manera segura. Por ejemplo, si estuviera usando una instancia ml.c5.4xlarge, podría pasar a una ml.c5.2xlarge, lo que podría reducir su costo en un 50 %.

Empleos de Administrador de datos

Data Wrangler es una característica de Estudio Amazon SageMaker que proporciona una solución repetible y escalable para la exploración y el procesamiento de datos. Utiliza la interfaz de Data Wrangler para importar, analizar, transformar y presentar sus datos de forma interactiva. Esos pasos se capturan en una receta (un archivo .flow) que luego puede usar en un trabajo de Data Wrangler. Esto lo ayuda a volver a aplicar las mismas transformaciones de datos en sus datos y también a escalar a un trabajo de procesamiento de datos por lotes distribuido, ya sea como parte de una canalización de ML o de forma independiente.

Para obtener orientación sobre cómo optimizar su aplicación Data Wrangler en Studio, consulte la Parte 2 de esta serie.

En esta sección, nos enfocamos en optimizar los trabajos de Data Wrangler.

Usos de Data Wrangler Trabajos de procesamiento de SageMaker Spark con un contenedor administrado por Data Wrangler. Este contenedor ejecuta las instrucciones del archivo .flow en el trabajo. Al igual que cualquier trabajo de procesamiento, Data Wrangler le cobra por las instancias que elija, según la duración del uso y el almacenamiento aprovisionado que se adjunta a esa instancia.

En Cost Explorer, puede filtrar los costos de trabajos de Data Wrangler aplicando un filtro en el tipo de uso. Los nombres de estos tipos de uso son:

  • REGION-processing_DW:instanceType (por ejemplo, USE1-processing_DW:ml.m5.large)
  • REGION-processing_DW:VolumeUsage.gp2 (por ejemplo, USE1-processing_DW:VolumeUsage.gp2)

Para ver su costo de Data Wrangler en Cost Explorer, filtre el servicio para usar SageMaker y para Tipo de uso, elegir la processing_DW prefijo y seleccione la lista en el menú. Esto le mostrará los costos relacionados con el uso de la instancia (horas) y el volumen de almacenamiento (GB). (Si desea ver los costos de Studio Data Wrangler, puede filtrar el tipo de uso por el Studio_DW prefijo.)

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Instancias de trabajo de Data Wrangler del tamaño adecuado y programadas

Por el momento, Data Wrangler solo admite instancias m5 con los siguientes tamaños de instancia: ml.m5.4xlarge, ml.m5.12xlarge y ml.m5.24xlarge. Puede utilizar la función de trabajo distribuido para ajustar el costo de su trabajo. Por ejemplo, suponga que necesita procesar un conjunto de datos que requiere 350 GiB en RAM. Es posible que 4xlarge (128 GiB) y 12xlarge (256 GiB) no puedan procesar y lo llevarán a usar la instancia m5.24xlarge (768 GiB). Sin embargo, podría usar dos instancias m5.12xlarge (2 * 256 GiB = 512 GiB) y reducir el costo en un 40 % o tres instancias m5.4xlarge (3 * 128 GiB = 384 GiB) y ahorrar un 50 % del costo de la instancia m5.24xlarge. Debe tener en cuenta que se trata de estimaciones y que el procesamiento distribuido puede generar algunos gastos generales que afectarán el tiempo de ejecución general.

Al cambiar el tipo de instancia, asegúrese de actualizar el Configuración de chispa respectivamente. Por ejemplo, si tiene un trabajo de instancia ml.m5.4xlarge inicial configurado con propiedades spark.driver.memory establecido en 2048 y spark.executor.memory establecido en 55742, y luego ampliado a ml.m5.12xlarge, esos valores de configuración deben aumentarse, de lo contrario, serán el cuello de botella en el trabajo de procesamiento. Puede actualizar estas variables en la GUI de Data Wrangler o en un archivo de configuración adjunto a la ruta de configuración (vea los siguientes ejemplos).

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Otra característica atractiva de Data Wrangler es la capacidad de establecer un trabajo programado. Si está procesando datos periódicamente, puede crear un programa para ejecutar el trabajo de procesamiento automáticamente. Por ejemplo, puede crear una programación que ejecute un trabajo de procesamiento automáticamente cuando obtenga datos nuevos (para ver ejemplos, consulte Exportar a Amazon S3 or Exportar a la tienda de características de Amazon SageMaker). Sin embargo, debe tener en cuenta que cuando crea un horario, Data Wrangler crea un eventRule en EventBridge. Esto significa que también se le cobrarán las reglas de eventos que cree (así como las instancias utilizadas para ejecutar el trabajo de procesamiento). Para más información, ver Precios de Amazon EventBridge.

Conclusión

En esta publicación, brindamos orientación sobre el análisis de costos y las mejores prácticas al preprocesar

datos mediante trabajos de SageMaker Processing y Data Wrangler. De manera similar al preprocesamiento, hay muchas opciones y ajustes de configuración en la creación, capacitación y ejecución de modelos ML que pueden generar costos innecesarios. Por lo tanto, a medida que el aprendizaje automático se establece como una herramienta poderosa en todas las industrias, las cargas de trabajo de ML deben seguir siendo rentables.

SageMaker ofrece un amplio y profundo conjunto de funciones para facilitar cada paso en la canalización de ML.

Esta solidez también brinda oportunidades continuas de optimización de costos sin comprometer el rendimiento o la agilidad.


Acerca de los autores

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Deepali Rajale es especialista sénior en inteligencia artificial y aprendizaje automático en AWS. Trabaja con clientes empresariales brindando orientación técnica con las mejores prácticas para implementar y mantener soluciones de IA/ML en el ecosistema de AWS. Ha trabajado con una amplia gama de organizaciones en varios casos de uso de aprendizaje profundo que involucran NLP y visión artificial. Le apasiona empoderar a las organizaciones para que aprovechen la IA generativa para mejorar su experiencia de uso. En su tiempo libre, disfruta del cine, la música y la literatura.

Analice el gasto de Amazon SageMaker y determine las oportunidades de optimización de costos según el uso, Parte 3: Trabajos de procesamiento y control de datos | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.uri rosenberg es el gerente técnico especialista en inteligencia artificial y aprendizaje automático para Europa, Medio Oriente y África. Con sede en Israel, Uri trabaja para empoderar a los clientes empresariales en todo lo relacionado con ML para diseñar, construir y operar a escala. En su tiempo libre, disfruta andar en bicicleta, caminar y ver atardeceres (como mínimo una vez al día).

Sello de tiempo:

Mas de Aprendizaje automático de AWS