En diciembre de 2020, AWS anunció la disponibilidad general de JumpStart de Amazon SageMaker, una capacidad de Amazon SageMaker que lo ayuda a comenzar rápida y fácilmente con el aprendizaje automático (ML). En marzo de 2022, también anunció el soporte para API en JumpStart. JumpStart proporciona ajuste e implementación con un solo clic de una amplia variedad de modelos previamente entrenados en tareas populares de ML, así como una selección de soluciones integrales que resuelven problemas comerciales comunes. Estas características eliminan el trabajo pesado de cada paso del proceso de ML, lo que simplifica el desarrollo de modelos de alta calidad y reduce el tiempo de implementación.
En esta publicación, demostramos cómo ejecutar el ajuste automático del modelo con JumpStart.
Ajuste automático del modelo SageMaker
Tradicionalmente, los ingenieros de ML implementan un método de prueba y error para encontrar el conjunto correcto de hiperparámetros. Prueba y error implica ejecutar varios trabajos secuencialmente o en paralelo mientras se aprovisionan los recursos necesarios para ejecutar el experimento.
Con Ajuste automático del modelo SageMaker, los ingenieros de aprendizaje automático y los científicos de datos pueden descargar la tarea que lleva mucho tiempo de optimizar su modelo y dejar que SageMaker ejecute la experimentación. SageMaker aprovecha la elasticidad de la plataforma de AWS para ejecutar de forma eficiente y simultánea múltiples simulaciones de entrenamiento en un conjunto de datos y encontrar los mejores hiperparámetros para un modelo.
El ajuste automático de modelos de SageMaker encuentra la mejor versión de un modelo ejecutando muchos trabajos de entrenamiento en su conjunto de datos usando el algoritmo y rangos de hiperparámetros que especifique. Luego elige los valores de hiperparámetros que dan como resultado un modelo que funciona mejor, según lo medido por un métrico que tu elijas.
El ajuste automático del modelo utiliza un Bayesiano (predeterminado) o un azar estrategia de búsqueda para encontrar los mejores valores para los hiperparámetros. La búsqueda bayesiana trata el ajuste de hiperparámetros como un regresión problema. Al elegir los mejores hiperparámetros para el próximo trabajo de entrenamiento, considera todo lo que sabe sobre el problema hasta el momento y permite que el algoritmo explote los resultados más conocidos.
En esta publicación, usamos la estrategia de búsqueda bayesiana predeterminada para demostrar los pasos necesarios para ejecutar el ajuste automático del modelo con JumpStart usando el LuzGBM modelo.
JumpStart actualmente es compatible con 10 portátiles de ejemplo con ajuste de modelo automático. También admite cuatro algoritmos populares para el modelado de datos tabulares. Las tareas y los vínculos a sus blocs de notas de muestra se resumen en la siguiente tabla.
Resumen de la solución
Este flujo de trabajo técnico brinda una descripción general de las diferentes funciones y pasos necesarios de Amazon Sagemaker para ajustar automáticamente un modelo JumpStart.
En las siguientes secciones, proporcionamos un tutorial paso a paso sobre cómo ejecutar el ajuste automático del modelo con JumpStart utilizando el algoritmo LightGBM. Brindamos un acompañamiento cuaderno para este tutorial.
Caminamos a través de los siguientes pasos de alto nivel:
- Recupere el modelo preentrenado de JumpStart y el contenedor de imágenes.
- Establecer hiperparámetros estáticos.
- Defina los rangos de hiperparámetros ajustables.
- Inicialice el ajuste automático del modelo.
- Ejecute el trabajo de ajuste.
- Implemente el mejor modelo en un punto final.
Recuperar el contenedor de imágenes y modelos preentrenados de JumpStart
En esta sección, elegimos el modelo de clasificación LightGBM para el ajuste fino. Usamos el tipo de instancia ml.m5.xlarge en el que se ejecuta el modelo. Luego recuperamos el contenedor Docker de entrenamiento, la fuente del algoritmo de entrenamiento y el modelo preentrenado. Ver el siguiente código:
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 pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)
Establecer hiperparámetros estáticos
Ahora recuperamos los hiperparámetros predeterminados para este modelo de LightGBM, según lo preconfigurado por JumpStart. También anulamos el num_boost_round
hiperparámetro con un valor personalizado.
# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values
Definir los rangos de hiperparámetros ajustables
A continuación, definimos los rangos de hiperparámetros para que sean optimizado por el ajuste automático del modelo. Definimos el nombre del hiperparámetro como lo espera el modelo y luego los rangos de valores que se probarán para este hiperparámetro. El ajuste automático del modelo extrae muestras (igual a la max_jobs
parámetro) del espacio de hiperparámetros, utilizando una técnica llamada búsqueda bayesiana. Para cada muestra de hiperparámetro dibujada, el sintonizador crea un trabajo de entrenamiento para evaluar el modelo con esa configuración. Ver el siguiente código:
hyperparameter_ranges = {
"learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
"num_boost_round": IntegerParameter(2, 30),
"early_stopping_rounds": IntegerParameter(2, 30),
"num_leaves": IntegerParameter(10, 50),
"feature_fraction": ContinuousParameter(0, 1),
"bagging_fraction": ContinuousParameter(0, 1),
"bagging_freq": IntegerParameter(1, 10),
"max_depth": IntegerParameter(5, 30),
"min_data_in_leaf": IntegerParameter(5, 50),
}
Inicializar el ajuste automático del modelo
Empezamos creando un Estimador objeto con todos los recursos necesarios que definen el trabajo de entrenamiento, como el modelo preentrenado, la imagen de entrenamiento y el script de entrenamiento. Entonces definimos un Sintonizador de hiperparámetros objeto para interactuar con las API de ajuste de hiperparámetros de SageMaker.
El HyperparameterTuner
acepta como parámetros el objeto Estimator, la métrica de destino en función de la cual se decide el mejor conjunto de hiperparámetros, el número total de trabajos de entrenamiento (max_jobs
) para iniciar el trabajo de ajuste de hiperparámetros y el máximo de trabajos de entrenamiento paralelos para ejecutar (max_parallel_jobs
). Los trabajos de entrenamiento se ejecutan con el algoritmo LightGBM y los valores de hiperparámetro que tienen el mínimo mlogloss
Se elige la métrica. Para obtener más información sobre la configuración del ajuste automático del modelo, consulte Prácticas recomendadas para el ajuste de hiperparámetros.
# Create SageMaker Estimator instance
tabular_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,
) tuner = HyperparameterTuner(
estimator=tabular_estimator,
objective_metric_name="multi_logloss",
hyperparameter_ranges=hyperparameter_ranges,
metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
strategy="Bayesian",
max_jobs=10,
max_parallel_jobs=2,
objective_type="Minimize",
base_tuning_job_name=training_job_name,
)
En el código anterior, le decimos al sintonizador que ejecute como máximo 10 experimentos (max_jobs
) y solo dos experimentos simultáneos a la vez (max_parallel_jobs
). Ambos parámetros mantienen el costo y el tiempo de capacitación bajo control.
Ejecutar el trabajo de ajuste
Para iniciar el trabajo de ajuste de SageMaker, llamamos al método de ajuste del objeto sintonizador de hiperparámetros y pasamos el Servicio de almacenamiento simple de Amazon (Amazon S3) ruta de los datos de entrenamiento:
tuner.fit({"training": training_dataset_s3_path}, logs=True)
Mientras que el ajuste automático del modelo busca los mejores hiperparámetros, puede monitorear su progreso en la consola de SageMaker o en Reloj en la nube de Amazon. Cuando finaliza el entrenamiento, los artefactos ajustados del mejor modelo se cargan en la ubicación de salida de Amazon S3 especificada en la configuración de entrenamiento.
Implemente el mejor modelo en un punto final
Cuando se completa el trabajo de ajuste, el mejor modelo se ha seleccionado y almacenado en Amazon S3. Ahora podemos implementar ese modelo llamando al método de implementación del HyperparameterTuner
objeto y pasando los parámetros necesarios, como la cantidad de instancias que se usarán para el punto final creado, su tipo, la imagen que se implementará y el script que se ejecutará:
tuner.deploy(
initial_instance_count=1,
instance_type=inference_instance_type,
entry_point="inference.py",
image_uri=deploy_image_uri,
source_dir=deploy_source_uri,
endpoint_name=endpoint_name,
enable_network_isolation=True
)
Ahora podemos probar el punto final creado haciendo solicitudes de inferencia. Puede seguir el resto del proceso en el adjunto cuaderno.
Conclusión
Con el ajuste automático del modelo en SageMaker, puede encontrar la mejor versión de su modelo ejecutando trabajos de entrenamiento en el conjunto de datos provisto con uno de los algoritmos admitidos. El ajuste automático del modelo le permite reducir el tiempo necesario para ajustar un modelo al buscar automáticamente la mejor configuración de hiperparámetros dentro de los rangos de hiperparámetros que especifique.
En esta publicación, mostramos el valor de ejecutar el ajuste automático del modelo en un modelo preentrenado de JumpStart mediante las API de SageMaker. Usamos el algoritmo LightGBM y definimos un máximo de 10 trabajos de entrenamiento. También proporcionamos enlaces a cuadernos de ejemplo que muestran los marcos de ML que admiten la optimización del modelo JumpStart.
Para obtener más detalles sobre cómo optimizar un modelo JumpStart con el ajuste automático del modelo, consulte nuestro ejemplo cuaderno.
Sobre la autora
doug mbaya es un arquitecto de soluciones de socio senior con un enfoque en datos y análisis. Doug trabaja en estrecha colaboración con los socios de AWS, ayudándolos a integrar la solución de análisis y datos en la nube.
Kruthi Jayasimha Rao es Partner Solutions Architect en el equipo de Scale-PSA. Kruthi lleva a cabo validaciones técnicas para los socios, lo que les permite progresar en Partner Path.
Giannis Mitropoulos es ingeniero de desarrollo de software para SageMaker Ajuste automático de modelo.
Dr. Ashish Khetan es un científico senior aplicado con JumpStart de Amazon SageMaker y 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 y ACL.
- Coinsmart. El mejor intercambio de Bitcoin y criptografía de Europa.
- Platoblockchain. Inteligencia del Metaverso Web3. Conocimiento amplificado. ACCESO LIBRE.
- CriptoHawk. Radar de altcoins. Prueba gratis.
- Fuente: https://aws.amazon.com/blogs/machine-learning/run-automatic-model-tuning-with-amazon-sagemaker-jumpstart/
- "
- 10
- 100
- 2020
- 2022
- Nuestra Empresa
- a través de
- lector activo
- Ventaja
- algoritmo
- algoritmos
- Todos
- Amazon
- Analytics
- API
- Activos
- Automático
- disponibilidad
- AWS
- MEJOR
- incorporado
- llamar al
- Elige
- elegido
- clasificación
- Soluciones
- código
- Algunos
- conferencias
- Configuración
- considera
- Consola
- Envase
- control
- Para crear
- creado
- crea
- Creamos
- En la actualidad
- personalizado
- datos
- decidido
- demostrar
- desplegar
- desplegado
- despliegue
- detalles
- desarrollar
- Desarrollo
- una experiencia diferente
- Docker
- pasan fácilmente
- eficiente.
- permitiendo
- Punto final
- ingeniero
- certificados
- evaluar
- todo
- ejemplo
- esperado
- experimento
- Explotar
- Caracteristicas
- encuentra
- cómodo
- Focus
- seguir
- siguiendo
- promover
- General
- altura
- ayudando
- ayuda
- alta calidad
- Cómo
- Como Hacer
- HTTPS
- imagen
- implementar
- información
- integrar
- involucra
- IT
- Trabajos
- Empleo
- lanzamiento
- aprendizaje
- cirugía estética
- enlaces
- Ubicación
- máquina
- máquina de aprendizaje
- Realizar
- Marzo
- ML
- modelo
- modelos
- Monitorear
- más,
- MEJOR DE TU
- múltiples
- número
- optimización
- Optimización
- optimizando
- Socio
- socios
- Pasando (Paso)
- plataforma
- Popular
- Problema
- problemas
- proporcionar
- proporciona un
- pregunta
- con rapidez
- reducir
- la reducción de
- solicitudes
- Requisitos
- Recursos
- RESTO
- Resultados
- Ejecutar
- correr
- Científico
- los científicos
- Buscar
- seleccionado
- set
- Demostramos a usted
- sencillos
- So
- Software
- Desarrollo de software ad-hoc
- a medida
- Soluciones
- RESOLVER
- Espacio
- comienzo
- fundó
- estadístico
- STORAGE
- Estrategia
- SOPORTE
- Soportado
- soportes
- Target
- tareas
- equipo
- Técnico
- test
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- prolongado
- Título
- Formación
- juicio
- utilizan el
- propuesta de
- variedad
- mientras
- dentro de
- funciona