Los modelos y algoritmos de Amazon SageMaker JumpStart ahora están disponibles a través de API PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Los modelos y algoritmos de Amazon SageMaker JumpStart ahora están disponibles a través de la API

En diciembre de 2020, AWS anunció la disponibilidad general of 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). 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 facilita el desarrollo de modelos de alta calidad y reduce el tiempo de implementación.

Anteriormente, todo el contenido de JumpStart estaba disponible solo a través de Estudio Amazon SageMaker, que proporciona un interfaz gráfica fácil de usar para interactuar con la característica. Hoy, nos complace anunciar el lanzamiento de fácil de usar API JumpStart como una extensión del SDK de Python de SageMaker. Estas API le permiten implementar y ajustar mediante programación una amplia selección de modelos preentrenados compatibles con JumpStart en sus propios conjuntos de datos. Este lanzamiento desbloquea el uso de las capacidades de JumpStart en sus flujos de trabajo de código, canalizaciones de MLOps y en cualquier otro lugar donde esté interactuando con SageMaker a través de SDK.

En esta publicación, proporcionamos una actualización sobre el estado actual de las capacidades de JumpStart y lo guiamos a través del flujo de uso de la API de JumpStart con un caso de uso de ejemplo.

Descripción general de JumpStart

JumpStart es un producto multifacético que incluye diferentes capacidades para ayudarlo a comenzar rápidamente con ML en SageMaker. Al momento de escribir, JumpStart le permite hacer lo siguiente:

  • Implemente modelos previamente entrenados para tareas comunes de ML – JumpStart le permite resolver tareas comunes de ML sin esfuerzo de desarrollo al proporcionar una fácil implementación de modelos entrenados previamente en grandes conjuntos de datos disponibles públicamente. La comunidad de investigación de ML ha realizado un gran esfuerzo para que la mayoría de los modelos desarrollados recientemente estén disponibles públicamente para su uso. JumpStart alberga una colección de más de 300 modelos, que abarcan las 15 tareas de ML más populares, como detección de objetos, clasificación de texto y generación de texto, lo que facilita su uso a los principiantes. Estos modelos se extraen de centros de modelos populares, como TensorFlow, PyTorch, Hugging Face y MXNet Hub.
  • Ajuste fino de modelos preentrenados – JumpStart le permite ajustar modelos previamente entrenados sin necesidad de escribir su propio algoritmo de entrenamiento. En ML, la capacidad de transferir el conocimiento aprendido en un dominio a otro dominio se denomina transferencia de aprendizaje. Puede usar el aprendizaje por transferencia para producir modelos precisos en sus conjuntos de datos más pequeños, con costos de capacitación mucho más bajos que los involucrados en la capacitación del modelo original desde cero. JumpStart también incluye algoritmos de entrenamiento populares basados ​​en LightGBM, CatBoost, XGBoost y Scikit-learn que puede entrenar desde cero para la regresión y clasificación de datos tabulares.
  • Utilice soluciones prediseñadas – JumpStart proporciona un conjunto de 17 soluciones preconstruidas para casos de uso comunes de ML, como pronóstico de demanda y aplicaciones industriales y financieras, que puede implementar con solo unos pocos clics. Las soluciones son aplicaciones de ML de extremo a extremo que unen varios servicios de AWS para resolver un caso de uso comercial particular. Ellos usan Formación en la nube de AWS plantillas y arquitecturas de referencia para una implementación rápida, lo que significa que son totalmente personalizables.
  • Use ejemplos de cuadernos para los algoritmos de SageMaker – SageMaker proporciona un conjunto de algoritmos incorporados para ayudar a los científicos de datos y profesionales de ML a comenzar a entrenar e implementar modelos de ML rápidamente. JumpStart proporciona cuadernos de muestra que puede usar para usar rápidamente estos algoritmos.
  • Aprovecha los vídeos y blogs de formación – JumpStart también proporciona numerosas publicaciones de blog y videos que le enseñan cómo usar diferentes funcionalidades dentro de SageMaker.

JumpStart acepta configuraciones de VPC personalizadas y claves de cifrado KMS, para que pueda usar los modelos y soluciones disponibles de forma segura dentro de su entorno empresarial. Puede pasar su configuración de seguridad a JumpStart dentro de SageMaker Studio o a través del SDK de Python de SageMaker.

Tareas de aprendizaje automático compatibles con JumpStart y cuadernos de ejemplo de API

JumpStart actualmente admite 15 de las tareas de ML más populares; 13 de ellos son tareas basadas en visión y NLP, de las cuales 8 admiten ajustes finos sin código. 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.

Tarea Inferencia con modelos pre-entrenados Capacitación en conjuntos de datos personalizados Marcos soportados Cuadernos de ejemplo
Clasificación de imagen si si PyTorch, TensorFlow Introducción a JumpStart: clasificación de imágenes
Detección de objetos si si PyTorch, TensorFlow, MXNet Introducción a JumpStart: detección de objetos
Segmentación semántica si si MXNet Introducción a JumpStart – Segmentación Semántica
Segmentación de instancia si no MXNet Introducción a JumpStart: segmentación de instancias
Incrustación de imágenes si no TensorFlow, MXNet Introducción a JumpStart: incrustación de imágenes
Clasificación de texto si si TensorFlow Introducción a JumpStart: clasificación de texto
Clasificación de pares de oraciones si si TensorFlow, abrazando la cara Introducción a JumpStart: clasificación de pares de oraciones
Respuesta a preguntas si si PyTorch Introducción a JumpStart: respuesta a preguntas
Reconocimiento de entidad nombrada si no Abrazando la cara Introducción a JumpStart: reconocimiento de entidades nombradas
Resumen de texto si no Abrazando la cara Introducción a JumpStart: resumen de texto
Generación de texto si no Abrazando la cara Introducción a JumpStart: generación de texto
Máquina traductora si no Abrazando la cara Introducción a JumpStart – Traducción automática
Incrustación de texto si no TensorFlow, MXNet Introducción a JumpStart: incrustación de texto
Clasificación tabular si si LightGBM, CatBoost, XGBoost, aprendizaje lineal Introducción a JumpStart – Clasificación tabular – LightGBM, CatBoost
Introducción a JumpStart – Clasificación tabular – XGBoost, Linear Learner
Regresión tabular si si LightGBM, CatBoost, XGBoost, aprendizaje lineal Introducción a JumpStart – Regresión tabular – LightGBM, CatBoost
Introducción a JumpStart – Regresión tabular – XGBoost, Linear Learner

Según la tarea, los cuadernos de muestra vinculados en la tabla anterior pueden guiarlo en todos o en un subconjunto de los siguientes procesos:

  • Seleccione un modelo preentrenado compatible con JumpStart para su tarea específica.
  • Aloje un modelo previamente entrenado, obtenga predicciones de él en tiempo real y muestre adecuadamente los resultados.
  • Ajuste un modelo previamente entrenado con su propia selección de hiperparámetros e impleméntelo para la inferencia.

Ajuste e implemente un modelo de detección de objetos con las API de JumpStart

En las siguientes secciones, proporcionamos un tutorial paso a paso sobre cómo usar las nuevas API de JumpStart en la tarea representativa de detección de objetos. Mostramos cómo usar un modelo de detección de objetos previamente entrenado para identificar objetos de un conjunto predefinido de clases en una imagen con cuadros delimitadores. Finalmente, mostramos cómo ajustar un modelo previamente entrenado en su propio conjunto de datos para detectar objetos en imágenes que son específicos para sus necesidades comerciales, simplemente aportando sus propios datos. Proporcionamos un cuaderno adjunto para este tutorial.

Caminamos a través de los siguientes pasos de alto nivel:

  1. Ejecute la inferencia en el modelo previamente entrenado.
    1. Recupere artefactos de JumpStart e implemente un punto final.
    2. Consulte el punto final, analice la respuesta y muestre las predicciones del modelo.
  2. Ajuste el modelo preentrenado en su propio conjunto de datos.
    1. Recupera artefactos de entrenamiento.
    2. Ejecutar entrenamiento.

Ejecutar inferencia en el modelo previamente entrenado

En esta sección, elegimos un modelo preentrenado apropiado en JumpStart, implementamos este modelo en un punto final de SageMaker y mostramos cómo ejecutar la inferencia en el punto final implementado. Todos los pasos están disponibles en el cuaderno de Jupyter acompañante.

Recuperar artefactos de JumpStart e implementar un punto final

SageMaker es una plataforma basada en contenedores Docker. JumpStart utiliza el marco específico disponible Contenedores de aprendizaje profundo de SageMaker (DLC). Obtenemos cualquier paquete adicional, así como scripts para manejar el entrenamiento y la inferencia para la tarea seleccionada. Finalmente, los artefactos del modelo pre-entrenados se recuperan por separado con model_uris, lo que proporciona flexibilidad a la plataforma. Puede usar cualquier cantidad de modelos entrenados previamente para la misma tarea con un solo script de entrenamiento o inferencia. Ver el siguiente código:

infer_model_id, infer_model_version = "pytorch-od-nvidia-ssd", "*" # Retrieve the inference docker container uri. This is the base container PyTorch image for the model selected above. deploy_image_uri = image_uris.retrieve(region=None, framework=None, image_scope="inference",model_id=infer_model_id, model_version=infer_model_version, instance_type=inference_instance_type) # Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, script_scope="inference") # Retrieve the base model uri. This includes the pre-trained nvidia-ssd model and parameters.
base_model_uri = model_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, model_scope="inference")

A continuación, alimentamos los recursos en un Modelo de SageMaker instancia e implementar un punto final:

# Create the SageMaker model instance
model = Model(image_uri=deploy_image_uri, source_dir=deploy_source_uri, model_data=base_model_uri, entry_point="inference.py", role=aws_role, predictor_cls=Predictor, name=endpoint_name) # deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name)

La implementación de puntos finales puede tardar unos minutos en completarse.

Consultar el punto final, analizar la respuesta y mostrar predicciones

Para obtener inferencias de un modelo implementado, se debe proporcionar una imagen de entrada en formato binario junto con un tipo de aceptación. En JumpStart, puede definir el número de cuadros delimitadores devueltos. En el siguiente fragmento de código, predecimos diez cuadros delimitadores por imagen agregando ;n_predictions=10 a Accept. Para predecir xx cajas, puede cambiarlo a ;n_predictions=xx , u obtenga todas las casillas pronosticadas omitiendo ;n_predictions=xx enteramente.

def query(model_predictor, image_file_name): with open(image_file_name, "rb") as file: input_img_rb = file.read() return model_predictor.predict(input_img_rb,{ "ContentType": "application/x-image", "Accept": "application/json;verbose;n_predictions=10"}) query_response = query(base_model_predictor, Naxos_Taverna)

El siguiente fragmento de código le da una idea de cómo se ve la detección de objetos. Se visualiza la probabilidad predicha para cada clase de objeto, junto con su cuadro delimitador. usamos el parse_response y display_predictions funciones auxiliares, que se definen en el documento adjunto cuaderno.

normalized_boxes, classes_names, confidences = parse_response(query_response)
display_predictions(Naxos_Taverna, normalized_boxes, classes_names, confidences)

La siguiente captura de pantalla muestra la salida de una imagen con etiquetas de predicción y cuadros delimitadores.

Los modelos y algoritmos de Amazon SageMaker JumpStart ahora están disponibles a través de API PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Ajuste un modelo previamente entrenado en su propio conjunto de datos

Los modelos de detección de objetos existentes en JumpStart se entrenan previamente en los conjuntos de datos COCO o VOC. Sin embargo, si necesita identificar clases de objetos que no existen en el conjunto de datos previo al entrenamiento original, debe ajustar el modelo en un nuevo conjunto de datos que incluya estos nuevos tipos de objetos. Por ejemplo, si necesita identificar utensilios de cocina y ejecutar inferencias en un modelo SSD preentrenado implementado, el modelo no reconoce ninguna característica de los nuevos tipos de imágenes y, por lo tanto, la salida es incorrecta.

En esta sección, demostramos lo fácil que es ajustar un modelo previamente entrenado para detectar nuevas clases de objetos mediante las API de JumpStart. El ejemplo de código completo con más detalles está disponible en el cuaderno de acompañamiento.

Recuperar artefactos de entrenamiento

Los artefactos de entrenamiento son similares a los artefactos de inferencia discutidos en la sección anterior. El entrenamiento requiere un contenedor Docker base, a saber, el contenedor MXNet en el siguiente código de ejemplo. Todos los paquetes adicionales necesarios para la capacitación se incluyen con los guiones de capacitación en train_sourcer_uri. El modelo preentrenado y sus parámetros se empaquetan por separado.

train_model_id, train_model_version, train_scope = "mxnet-od-ssd-512-vgg16-atrous-coco","*","training"
training_instance_type = "ml.p2.xlarge" # Retrieve the docker image. This is the base container MXNet image for the model selected above. 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 and dependencies. This contains all the necessary files including data processing, model training etc.
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)

Correr entrenamiento

Para ejecutar el entrenamiento, simplemente alimentamos los artefactos requeridos junto con algunos parámetros adicionales a un Estimador de SageMaker y llama al .fit función:

# Create SageMaker Estimator instance
od_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", # Entry-point file in source_dir and present in train_source_uri. 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
od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Mientras el algoritmo se entrena, puede monitorear su progreso en el cuaderno de SageMaker donde está ejecutando el código o en Reloj en la nube de Amazon. Cuando finaliza el entrenamiento, los artefactos del modelo ajustados se cargan en el Servicio de almacenamiento simple de Amazon (Amazon S3) ubicación de salida especificada en la configuración de entrenamiento. Ahora puede implementar el modelo de la misma manera que el modelo previamente entrenado. Puedes seguir el resto del proceso en el cuaderno de acompañamiento.

Conclusión

En esta publicación, describimos el valor de las API JumpStart recién lanzadas y cómo usarlas. Proporcionamos enlaces a 17 cuadernos de ejemplo para las diferentes tareas de ML admitidas en JumpStart y lo guiamos a través del cuaderno de detección de objetos.

Esperamos saber de usted mientras experimenta con JumpStart.


Acerca de los autores

Los modelos y algoritmos de Amazon SageMaker JumpStart ahora están disponibles a través de API PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Dr. Vivek Madan es un científico aplicado del equipo JumpStart de Amazon SageMaker. Obtuvo su doctorado en la Universidad de Illinois en Urbana-Champaign y fue investigador posdoctoral en Georgia Tech. Es un investigador activo en aprendizaje automático y diseño de algoritmos, y ha publicado artículos en conferencias EMNLP, ICLR, COLT, FOCS y SODA.

Los modelos y algoritmos de Amazon SageMaker JumpStart ahora están disponibles a través de API PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.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.

Los modelos y algoritmos de Amazon SageMaker JumpStart ahora están disponibles a través de API PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.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.

Sello de tiempo:

Mas de Aprendizaje automático de AWS