Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Acelere el desarrollo de ML con SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg

Hoy en día, las empresas están estableciendo tiendas de funciones para proporcionar un repositorio central para escalar el desarrollo de ML en unidades comerciales y equipos de ciencia de datos. A medida que los datos de características crecen en tamaño y complejidad, los científicos de datos deben poder consultar de manera eficiente estos almacenes de características para extraer conjuntos de datos para experimentación, entrenamiento de modelos y puntuación por lotes.

Tienda de funciones de Amazon SageMaker es una solución de gestión de funciones especialmente diseñada que ayuda a los científicos de datos y a los ingenieros de aprendizaje automático a almacenar, descubrir y compartir de forma segura los datos seleccionados que se utilizan en los flujos de trabajo de entrenamiento y predicción. SageMaker Feature Store ahora admite iceberg apache como un formato de tabla para almacenar características. Esto acelera el desarrollo de modelos al permitir un rendimiento de consulta más rápido al extraer conjuntos de datos de entrenamiento de ML, aprovechando la compactación de tablas Iceberg. Según el diseño de sus grupos de características y su escala, puede experimentar mejoras en el rendimiento de las consultas de entrenamiento de 10x a 100x mediante el uso de esta nueva capacidad.

Al final de esta publicación, sabrá cómo crear grupos de características usando el formato Iceberg, ejecutar los procedimientos de administración de tablas de Iceberg usando Atenea amazónicay programe estas tareas para que se ejecuten de forma autónoma. Si es usuario de Spark, también aprenderá cómo ejecutar los mismos procedimientos con Spark e incorporarlos a su propio entorno y automatización de Spark.

Tienda de funciones de SageMaker y Apache Iceberg

Tienda de funciones de Amazon SageMaker es un almacén centralizado de características y metadatos asociados, lo que permite que los equipos de científicos de datos que trabajan en diferentes proyectos o modelos de ML las descubran y reutilicen fácilmente.

SageMaker Feature Store consta de un modo en línea y fuera de línea para administrar funciones. La tienda en línea se utiliza para casos de uso de inferencia en tiempo real de baja latencia. La tienda sin conexión se usa principalmente para predicciones por lotes y entrenamiento de modelos. La tienda sin conexión es una tienda de solo anexar y se puede usar para almacenar y acceder a datos históricos de funciones. Con la tienda fuera de línea, los usuarios pueden almacenar y brindar funciones para la exploración y la puntuación por lotes y extraer conjuntos de datos correctos en un momento dado para el entrenamiento de modelos.

Los datos de la tienda sin conexión se almacenan en un depósito de Amazon Simple Storage Service (Amazon S3) en su cuenta de AWS. SageMaker Feature Store crea automáticamente un catálogo de datos de AWS Glue durante la creación del grupo de funciones. Los clientes también pueden acceder a los datos de la tienda sin conexión mediante un tiempo de ejecución de Spark y realizar un procesamiento de big data para el análisis de características de ML y los casos de uso de ingeniería de características.

Los formatos de tabla proporcionan una forma de abstraer los archivos de datos como una tabla. A lo largo de los años, han surgido muchos formatos de tablas para respaldar los casos de uso de transacciones, gobernanza y catálogos de ACID. iceberg apache es un formato de tabla abierta para conjuntos de datos analíticos muy grandes. Administra grandes colecciones de archivos como tablas y admite operaciones modernas de lagos de datos analíticos, como la inserción, actualización, eliminación y consultas de viaje en el tiempo a nivel de registro. Iceberg rastrea archivos de datos individuales en una tabla en lugar de en directorios. Esto permite a los escritores crear archivos de datos en su lugar (los archivos no se mueven ni cambian) y solo agregan archivos a la tabla en una confirmación explícita. El estado de la tabla se mantiene en los archivos de metadatos. Todos los cambios en el estado de la tabla crean una nueva versión del archivo de metadatos que reemplaza atómicamente los metadatos anteriores. El archivo de metadatos de la tabla realiza un seguimiento del esquema de la tabla, la configuración de partición y otras propiedades.

Iceberg tiene integraciones con los servicios de AWS. Por ejemplo, puede utilizar el Pegamento AWS Data Catalog como metaalmacén para tablas Iceberg, y Athena admite consultas de lectura, viaje en el tiempo, escritura y DDL para tablas Apache Iceberg que utilizan el formato Apache Parquet para datos y el catálogo de AWS Glue para su metastore.

Con SageMaker Feature Store, ahora puede crear grupos de funciones con el formato de tabla Iceberg como alternativa al formato Glue estándar predeterminado. Con eso, los clientes pueden aprovechar el nuevo formato de tabla para usar las funciones de compactación de archivos y poda de datos de Iceberg para cumplir con su caso de uso y requisitos de optimización. Iceberg también permite a los clientes realizar consultas de eliminación, viajes en el tiempo, transacciones de alta simultaneidad y consultas de mayor rendimiento.

Al combinar Iceberg como formato de tabla y operaciones de mantenimiento de tablas, como la compactación, los clientes obtienen un rendimiento de consulta más rápido cuando trabajan con grupos de funciones fuera de línea a escala, lo que les permite crear conjuntos de datos de entrenamiento de ML con mayor rapidez.

El siguiente diagrama muestra la estructura de la tienda fuera de línea utilizando Iceberg como formato de tabla.

En las siguientes secciones, aprenderá a crear grupos de funciones con el formato Iceberg, ejecutar los procedimientos de administración de tablas de Iceberg con AWS Athena y usar los servicios de AWS para programar estas tareas para que se ejecuten bajo demanda o según un cronograma. Si es usuario de Spark, también aprenderá a ejecutar los mismos procedimientos con Spark.

Para obtener instrucciones paso a paso, también proporcionamos un cuaderno de muestra, que se puede encontrar en GitHub. En este post destacaremos las partes más importantes.

Creación de grupos de características utilizando el formato de tabla Iceberg

Primero debe seleccionar Iceberg como formato de tabla al crear nuevos grupos de funciones. Un nuevo parámetro opcional TableFormat se puede configurar de forma interactiva mediante Amazon SageMaker Studio o mediante código mediante la API o el SDK. Este parámetro acepta los valores ICEBERG or GLUE (para el formato actual de AWS Glue). El siguiente fragmento de código le muestra cómo crear un grupo de características usando el formato Iceberg y FeatureGroup.create API del SDK de SageMaker.

orders_feature_group_iceberg.create(
s3_uri=f"s3://{s3_bucket_name}/{prefix}",
record_identifier_name=record_identifier_feature_name,
event_time_feature_name=event_time_feature_name,
role_arn=role,
enable_online_store=True,
table_format=TableFormatEnum.ICEBERG
)

La tabla se creará y registrará automáticamente en el catálogo de datos de AWS Glue.

Ahora que la orders_feature_group_iceberg se crea, puede ingerir funciones utilizando la canalización de ingesta que elija. En este ejemplo, ingerimos registros usando el FeatureGroup.ingesta() API, que ingiere registros de un Pandas DataFrame. También puede utilizar el Grupo de funciones().put_record API para ingerir registros individuales o para manejar fuentes de transmisión. Los usuarios de Spark también pueden ingerir marcos de datos de Spark usando nuestro Conector de chispa.

orders_fg = FeatureGroup(name=orders_feature_group_iceberg_name,
sagemaker_session=feature_store_session)
orders_fg.ingest(data_frame=order_data, wait=True)

Puede verificar que los registros se hayan ingerido correctamente ejecutando una consulta en el almacén de funciones sin conexión. También puede navegar a la ubicación de S3 y ver la nueva estructura de carpetas.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Ejecución de procedimientos de gestión de tablas Iceberg

Atenea amazónica es un motor de consulta SQL sin servidor que admite de forma nativa los procedimientos de gestión de Iceberg. En esta sección, utilizará Athena para compactar manualmente el grupo de funciones sin conexión que creó. Tenga en cuenta que deberá utilizar la versión 3 del motor Athena. Para ello, puede crear un nuevo grupo de trabajo o configurar un grupo de trabajo existente y seleccionar la versión 3 recomendada del motor Athena. Para obtener más información e instrucciones para cambiar la versión del motor Athena, consulte Cambiar las versiones del motor Athena.

A medida que los datos se acumulan en una tabla Iceberg, las consultas pueden volverse gradualmente menos eficientes debido al mayor tiempo de procesamiento requerido para abrir archivos adicionales. La compactación optimiza el diseño estructural de la mesa sin alterar el contenido de la mesa.

Para realizar la compactación, se utiliza el OPTIMIZE table REWRITE DATA Comando de mantenimiento de mesa de compactación en Athena. La siguiente sintaxis muestra cómo optimizar el diseño de datos de un grupo de características almacenado con el formato de tabla Iceberg. Él sagemaker_featurestore representa el nombre de la base de datos de la tienda de funciones de SageMaker y orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 es nuestro nombre de tabla de grupo de funciones.

OPTIMIZE sagemaker_featurestore.orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 REWRITE DATA USING BIN_PACK

Después de ejecutar el comando de optimización, utiliza el VACUUM procedimiento, que realiza la caducidad de la instantánea y elimina los archivos huérfanos. Estas acciones reducen el tamaño de los metadatos y eliminan los archivos que no están en el estado actual de la tabla y que también son más antiguos que el período de retención especificado para la tabla.

VACUUM sagemaker_featurestore.orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334

Tenga en cuenta que las propiedades de la tabla se pueden configurar mediante Athena's ALTER TABLE. Para ver un ejemplo de cómo hacer esto, consulte el Documentación de Atenea. para VACÍO, vacuum_min_snapshots_to_keep y vacuum_max_snapshot_age_seconds se puede utilizar para configurar los parámetros de eliminación de instantáneas.

Echemos un vistazo al impacto en el rendimiento de ejecutar la compactación en una tabla de grupo de características de muestra. Con fines de prueba, recopilamos los mismos registros de funciones de pedidos en dos grupos de funciones, orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003 y orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334, utilizando un trabajo de procesamiento de SageMaker paralelizado con Scikit-Learn, lo que da como resultado 49,908,135 3 106.5 objetos almacenados en Amazon SXNUMX y un tamaño total de XNUMX GiB.

Ejecutamos una consulta para seleccionar la última instantánea sin duplicados y sin registros eliminados en el grupo de características orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003. Antes de la compactación, la consulta tomó 1 hora y 27 minutos.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Luego ejecutamos la compactación en orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334 mediante la consulta OPTIMIZE de Athena, que comprimió la tabla de grupos de funciones en 109,851 3 objetos en Amazon S2.5 y un tamaño total de 1 GiB. Si luego ejecutamos la misma consulta después de la compactación, su tiempo de ejecución se redujo a 13 minuto y XNUMX segundos.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Con la compactación de archivos Iceberg, el tiempo de ejecución de consultas mejoró significativamente. Para la misma consulta, el tiempo de ejecución disminuyó de 1 h 27 min a 1 min 13 s, que es 71 veces más rápido.

Programación de la compactación de Iceberg con los servicios de AWS

En esta sección, aprenderá cómo automatizar los procedimientos de administración de tablas para compactar su tienda de funciones fuera de línea. El siguiente diagrama ilustra la arquitectura para crear grupos de funciones en formato de tabla Iceberg y una solución de administración de tablas completamente automatizada, que incluye operaciones de limpieza y compactación de archivos.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

En un nivel alto, crea un grupo de funciones utilizando el formato de tabla Iceberg e ingiere registros en la tienda de funciones en línea. Los valores de las características se replican automáticamente desde la tienda en línea a la tienda histórica fuera de línea. Athena se utiliza para ejecutar los procedimientos de gestión de Iceberg. Para programar los procedimientos, configura un Pegamento AWS trabajo utilizando un script de shell de Python y cree un programa de trabajo de AWS Glue.

Configuración del trabajo de AWS Glue

Utiliza un trabajo de AWS Glue para ejecutar las operaciones de mantenimiento de la tabla Iceberg según un cronograma. Primero, debe crear un rol de IAM para que AWS Glue tenga permisos para acceder a Amazon Athena, Amazon S3 y CloudWatch.

A continuación, debe crear un script de Python para ejecutar los procedimientos de Iceberg. Puedes encontrar el script de muestra en GitHub. El script ejecutará la consulta OPTIMIZE usando boto3.

optimize_sql = f"optimize {database}.{table} rewrite data using bin_pack"

El script ha sido parametrizado usando AWS Glue getResolvedOptions(args, options) función de utilidad que le da acceso a los argumentos que se pasan a su secuencia de comandos cuando ejecuta un trabajo. En este ejemplo, la región de AWS, la base de datos y la tabla de Iceberg para su grupo de funciones, el grupo de trabajo de Athena y la carpeta de resultados de la ubicación de salida de Athena se pueden pasar como parámetros al trabajo, lo que hace que este script sea reutilizable en su entorno.

Finalmente, crea el trabajo real de AWS Glue para ejecutar el script como un shell en AWS Glue.

  • Navegue a la consola de AWS Glue.
  • Elija el Empleo pestaña en AWS Glue Studio.
  • Seleccione Editor de secuencias de comandos Python Shell.
  • Elige Cargar y editar un script existente. Hacer clic Crear.
  • El proyecto Detalles del trabajo El botón le permite configurar el trabajo de AWS Glue. Debe seleccionar el rol de IAM que creó anteriormente. Seleccione 3.9 Python o la última versión de Python disponible.
  • En la misma pestaña, también puede definir una serie de otras opciones de configuración, como Número de reintentos or Tiempo de espera del trabajo. En Propiedades avanzadas, puede agregar parámetros de trabajo para ejecutar el script, como se muestra en la siguiente captura de pantalla de ejemplo.
  • Haga Clic en Guardar.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

En Horarios pestaña, puede definir la programación para ejecutar los procedimientos de mantenimiento de la tienda de funciones. Por ejemplo, la siguiente captura de pantalla muestra cómo ejecutar el trabajo en un horario de cada 6 horas.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Puede monitorear las ejecuciones de trabajos para comprender las métricas de tiempo de ejecución, como el estado de finalización, la duración y la hora de inicio. También puede consultar CloudWatch Logs para el trabajo de AWS Glue para comprobar que los procedimientos se ejecutan correctamente.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Ejecutar tareas de administración de tablas Iceberg con Spark

Los clientes también pueden usar Spark para administrar los trabajos de compactación y los métodos de mantenimiento. Para obtener más detalles sobre los procedimientos de Spark, consulte el Documentación de chispa.

Primero debe configurar algunas de las propiedades comunes.

%%configure -f
{
  "conf": {
    "spark.sql.catalog.smfs": "org.apache.iceberg.spark.SparkCatalog",
    "spark.sql.catalog.smfs.catalog-impl": "org.apache.iceberg.aws.glue.GlueCatalog",
    "spark.sql.catalog.smfs.warehouse": "",
    "spark.sql.extensions":"org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
    "spark.sql.catalog.smfs.glue.skip-name-validation": "true"
  }
}

El siguiente código se puede usar para optimizar los grupos de funciones a través de Spark.

spark.sql(f"""CALL smfs.system.rewrite_data_files(table => '{DATABASE}.`{ICEBERG_TABLE}`')""")

A continuación, puede ejecutar los siguientes dos procedimientos de mantenimiento de tablas para eliminar instantáneas antiguas y archivos huérfanos que ya no son necesarios.

spark.sql(f"""CALL smfs.system.expire_snapshots(table => '{DATABASE}.`{ICEBERG_TABLE}`', older_than => TIMESTAMP '{one_day_ago}', retain_last => 1)""")
spark.sql(f"""CALL smfs.system.remove_orphan_files(table => '{DATABASE}.`{ICEBERG_TABLE}`')""")

A continuación, puede incorporar los comandos de Spark anteriores en su entorno de Spark. Por ejemplo, puede crear un trabajo que realice la optimización anterior en un horario deseado o en una canalización después de la ingesta.

Para explorar el código de ejemplo completo y probarlo en su propia cuenta, consulte el Repositorio GitHub.

Conclusión

SageMaker Feature Store proporciona una solución de administración de funciones especialmente diseñada para ayudar a las organizaciones a escalar el desarrollo de ML en los equipos de ciencia de datos. En esta publicación, explicamos cómo puede aprovechar Apache Iceberg como formato de tabla y operaciones de mantenimiento de tablas, como la compactación, para beneficiarse de consultas significativamente más rápidas cuando se trabaja con grupos de características fuera de línea a escala y, como resultado, crear conjuntos de datos de entrenamiento más rápido. Pruébelo y háganos saber lo que piensa en los comentarios.


Sobre los autores

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Arnaud Lauer es Arquitecto Senior de Soluciones de Socios en el equipo del Sector Público en AWS. Permite a los socios y clientes comprender la mejor manera de utilizar las tecnologías de AWS para traducir las necesidades comerciales en soluciones. Aporta más de 17 años de experiencia en la entrega y la arquitectura de proyectos de transformación digital en una variedad de industrias, incluido el sector público, la energía y los bienes de consumo. Arnaud posee 12 certificaciones de AWS, incluida la Certificación de especialidad de ML.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.ioan catana es Arquitecto de Soluciones Especializado en Inteligencia Artificial y Aprendizaje Automático en AWS. Ayuda a los clientes a desarrollar y escalar sus soluciones de aprendizaje automático en la nube de AWS. Ioan tiene más de 20 años de experiencia, principalmente en diseño de arquitectura de software e ingeniería en la nube.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.marca roy es un arquitecto principal de aprendizaje automático para AWS, que ayuda a los clientes a diseñar y desarrollar soluciones de IA / ML. El trabajo de Mark cubre una amplia gama de casos de uso de ML, con un interés principal en la visión por computadora, el aprendizaje profundo y la ampliación de ML en toda la empresa. Ha ayudado a empresas en muchas industrias, incluidas las de seguros, servicios financieros, medios y entretenimiento, atención médica, servicios públicos y fabricación. Mark tiene seis certificaciones de AWS, incluida la Certificación de especialidad ML. Antes de unirse a AWS, Mark fue arquitecto, desarrollador y líder tecnológico durante más de 25 años, incluidos 19 años en servicios financieros.

Acelere el desarrollo de aprendizaje automático utilizando SageMaker Feature Store y la compactación de tiendas fuera de línea Apache Iceberg PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Brandon Chaham es ingeniero de software en el equipo de la tienda de funciones de SageMaker. Es un apasionado de la creación de sistemas elegantes que ponen al alcance de las personas los macrodatos y el aprendizaje automático.

Sello de tiempo:

Mas de Aprendizaje automático de AWS