Nuevos algoritmos integrados de Amazon SageMaker para el modelado de datos tabulares: LightGBM, CatBoost, AutoGluon-Tabular y TabTransformer

Nodo de origen: 1541386

Amazon SageMaker proporciona un conjunto de algoritmos incorporados, modelos pre-entrenadosy plantillas de solución preconstruidas para ayudar a los científicos de datos y a los profesionales del aprendizaje automático (ML) a comenzar a entrenar e implementar modelos de ML rápidamente. Puede usar estos algoritmos y modelos para el aprendizaje supervisado y no supervisado. Pueden procesar varios tipos de datos de entrada, incluidos tabulares, imágenes y texto.

A partir de hoy, SageMaker ofrece cuatro nuevos algoritmos de modelado de datos tabulares integrados: LightGBM, CatBoost, AutoGluon-Tabular y TabTransformer. Puede utilizar estos populares algoritmos de última generación para tareas de regresión y clasificación tabular. Están disponibles a través de la algoritmos incorporados en la consola de SageMaker, así como a través de la JumpStart de Amazon SageMaker IU dentro Estudio Amazon SageMaker.

La siguiente es la lista de los cuatro nuevos algoritmos incorporados, con enlaces a su documentación, cuadernos de ejemplo y fuentes.

Documentación Cuadernos de ejemplo Fuente
Algoritmo LightGBM Regresión, Clasificación LuzGBM
Algoritmo CatBoost Regresión, Clasificación gatoboost
Algoritmo tabular AutoGluon Regresión, Clasificación AutoGluon-tabular
Algoritmo TabTransformer Regresión, Clasificación Transformador de pestañas

En las siguientes secciones, proporcionamos una breve descripción técnica de cada algoritmo y ejemplos de cómo entrenar un modelo a través de SageMaker SDK o SageMaker Jumpstart.

LuzGBM

LuzGBM es una implementación popular y eficiente de código abierto del algoritmo Gradient Boosting Decision Tree (GBDT). GBDT es un algoritmo de aprendizaje supervisado que intenta predecir con precisión una variable objetivo mediante la combinación de un conjunto de estimaciones de un conjunto de modelos más simples y más débiles. LightGBM utiliza técnicas adicionales para mejorar significativamente la eficiencia y la escalabilidad del GBDT convencional.

gatoboost

gatoboost es una implementación de código abierto popular y de alto rendimiento del algoritmo GBDT. Se introducen dos avances algorítmicos críticos en CatBoost: la implementación de impulso ordenado, una alternativa basada en permutación al algoritmo clásico y un algoritmo innovador para procesar características categóricas. Ambas técnicas se crearon para combatir un cambio de predicción causado por un tipo especial de fuga de objetivos presente en todas las implementaciones existentes actualmente de algoritmos de aumento de gradiente.

AutoGluon-tabular

AutoGluon-tabular es un proyecto AutoML de código abierto desarrollado y mantenido por Amazon que realiza procesamiento de datos avanzado, aprendizaje profundo y ensamblaje de pilas de varias capas. Reconoce automáticamente el tipo de datos en cada columna para un procesamiento previo de datos sólido, incluido el manejo especial de campos de texto. AutoGluon se adapta a varios modelos que van desde árboles potenciados listos para usar hasta modelos de redes neuronales personalizados. Estos modelos se ensamblan de una manera novedosa: los modelos se apilan en múltiples capas y se entrenan de una manera por capas que garantiza que los datos sin procesar se puedan traducir en predicciones de alta calidad dentro de una restricción de tiempo determinada. El ajuste excesivo se mitiga a lo largo de este proceso al dividir los datos de varias maneras con un seguimiento cuidadoso de los ejemplos fuera de los pliegues. AutoGluon está optimizado para el rendimiento, y su uso listo para usar ha logrado varias posiciones entre los 3 primeros y los 10 primeros en competencias de ciencia de datos.

Transformador de pestañas

Transformador de pestañas es una nueva arquitectura de modelado de datos tabulares profundos para el aprendizaje supervisado. El TabTransformer se basa en Transformers basados ​​en la autoatención. Las capas de Transformador transforman las incrustaciones de características categóricas en incrustaciones contextuales sólidas para lograr una mayor precisión de predicción. Además, las incrustaciones contextuales aprendidas de TabTransformer son muy sólidas contra las características de datos faltantes y con ruido, y brindan una mejor interpretabilidad. Este modelo es producto de recientes Ciencia Amazónica investigación (  y oficial del blog aquí) y ha sido ampliamente adoptado por la comunidad ML, con varias implementaciones de terceros (KerasAutoGluón,) y funciones de redes sociales como Los Tweetshacia la ciencia de datos, medio y Kaggle.

Beneficios de los algoritmos integrados de SageMaker

Al seleccionar un algoritmo para su tipo particular de problema y datos, usar un algoritmo integrado de SageMaker es la opción más fácil, ya que hacerlo tiene los siguientes beneficios principales:

  • Los algoritmos incorporados no requieren codificación para comenzar a ejecutar experimentos. Las únicas entradas que debe proporcionar son los datos, los hiperparámetros y los recursos informáticos. Esto le permite ejecutar experimentos más rápidamente, con menos gastos generales para el seguimiento de los resultados y los cambios de código.
  • Los algoritmos incorporados vienen con paralelización en múltiples instancias de cómputo y compatibilidad con GPU desde el primer momento para todos los algoritmos aplicables (es posible que algunos algoritmos no se incluyan debido a limitaciones inherentes). Si tiene una gran cantidad de datos con los que entrenar su modelo, la mayoría de los algoritmos integrados pueden escalar fácilmente para satisfacer la demanda. Incluso si ya tiene un modelo preentrenado, aún puede ser más fácil usar su corolario en SageMaker e ingresar los hiperparámetros que ya conoce en lugar de transferirlo y escribir un script de entrenamiento usted mismo.
  • Usted es el propietario de los artefactos del modelo resultante. Puede tomar ese modelo e implementarlo en SageMaker para varios patrones de inferencia diferentes (vea todos los tipos de implementación disponibles) y fácil escalado y administración de terminales, o puede implementarlo donde lo necesite.

Veamos ahora cómo entrenar uno de estos algoritmos integrados.

Entrene un algoritmo integrado con el SDK de SageMaker

Para entrenar un modelo seleccionado, necesitamos obtener el URI de ese modelo, así como el del script de entrenamiento y la imagen del contenedor utilizada para el entrenamiento. Afortunadamente, estas tres entradas dependen únicamente del nombre del modelo, la versión (para obtener una lista de los modelos disponibles, consulte Tabla de modelos disponibles de JumpStart), y el tipo de instancia en la que desea entrenar. Esto se demuestra en el siguiente fragmento de código:

from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope, instance_type=training_instance_type
)
# Retrieve the training script
train_source_uri = script_uris.retrieve( model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the model artifact; in the tabular case, the model is not pre-trained train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

El train_model_id cambios a lightgbm-regression-model si estamos tratando con un problema de regresión. Los ID de todos los demás modelos presentados en esta publicación se enumeran en la siguiente tabla.

Modelo Tipo de problema Modelo ID
LuzGBM Clasificación lightgbm-classification-model
. Regresión lightgbm-regression-model
gatoboost Clasificación catboost-classification-model
. Regresión catboost-regression-model
AutoGluon-tabular Clasificación autogluon-classification-ensemble
. Regresión autogluon-regression-ensemble
Transformador de pestañas Clasificación pytorch-tabtransformerclassification-model
. Regresión pytorch-tabtransformerregression-model

Luego definimos dónde está nuestra entrada Servicio de almacenamiento simple de Amazon (Amazon S3). Estamos utilizando un conjunto de datos de muestra pública para este ejemplo. También definimos dónde queremos que vaya nuestra salida y recuperamos la lista predeterminada de hiperparámetros necesarios para entrenar el modelo seleccionado. Puedes cambiar su valor a tu gusto.

import sagemaker
from sagemaker import hyperparameters sess = sagemaker.Session()
region = sess.boto_session.region_name # URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/" # URI for output artifacts output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output" # Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version
) # [Optional] Override default hyperparameters with custom values
hyperparameters[ "num_boost_round"
] = "500" # The same hyperparameter is named as "iterations" for CatBoost

Finalmente, creamos una instancia de SageMaker Estimator con todas las entradas recuperadas y lanzar el trabajo de entrenamiento con .fit, pasándole nuestro URI del conjunto de datos de entrenamiento. los entry_point script proporcionado se llama transfer_learning.py (lo mismo para otras tareas y algoritmos), y el canal de datos de entrada pasó a .fit debe ser nombrado training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base # Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}") # Create SageMaker Estimator instance
tc_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Tenga en cuenta que puede entrenar algoritmos integrados con Ajuste automático del modelo SageMaker para seleccionar los hiperparámetros óptimos y mejorar aún más el rendimiento del modelo.

Entrene un algoritmo integrado con SageMaker JumpStart

También puede entrenar cualquiera de estos algoritmos integrados con unos pocos clics a través de la interfaz de usuario de SageMaker JumpStart. JumpStart es una función de SageMaker que le permite entrenar e implementar algoritmos integrados y modelos previamente entrenados desde varios marcos de ML y centros de modelos a través de una interfaz gráfica. También le permite implementar soluciones de aprendizaje automático completas que unen modelos de aprendizaje automático y varios otros servicios de AWS para resolver un caso de uso específico.

Para obtener más información, consulte Ejecute la clasificación de texto con Amazon SageMaker JumpStart usando TensorFlow Hub y Hugging Face models.

Conclusión

En esta publicación, anunciamos el lanzamiento de cuatro nuevos y potentes algoritmos integrados para ML en conjuntos de datos tabulares ahora disponibles en SageMaker. Brindamos una descripción técnica de qué son estos algoritmos, así como también un trabajo de capacitación de ejemplo para LightGBM usando el SDK de SageMaker.

Traiga su propio conjunto de datos y pruebe estos nuevos algoritmos en SageMaker, y consulte los blocs de notas de muestra para usar los algoritmos integrados disponibles en GitHub.


Acerca de los autores

Dra. Xin Huang es un científico aplicado para los algoritmos integrados de Amazon SageMaker JumpStart y Amazon SageMaker. Se centra en el desarrollo de algoritmos escalables de aprendizaje automático. Sus intereses de investigación se encuentran en el área del procesamiento del lenguaje natural, el aprendizaje profundo explicable en datos tabulares y el análisis sólido de la agrupación de espacio-tiempo no paramétrica. Ha publicado muchos artículos en conferencias ACL, ICDM, KDD y la revista Royal Statistical Society: Serie A.

Dr. Ashish Khetan es un científico aplicado senior con Amazon SageMaker JumpStart y los algoritmos integrados de Amazon SageMaker y ayuda a desarrollar algoritmos de aprendizaje automático. Es un investigador activo en aprendizaje automático e inferencia estadística y ha publicado muchos artículos en conferencias NeurIPS, ICML, ICLR, JMLR, ACL y EMNLP.

joão moura es un arquitecto de soluciones especializado en IA/ML en Amazon Web Services. Se centra principalmente en los casos de uso de NLP y en ayudar a los clientes a optimizar el entrenamiento y la implementación del modelo de aprendizaje profundo. También es un defensor activo de las soluciones de aprendizaje automático de código bajo y el hardware especializado en aprendizaje automático.

Sello de tiempo:

Mas de Aprendizaje automático de AWS