[ad_1]
Amazon SageMaker proporciona un conjunto de algoritmos integrados, modelos preentrenados y plantillas de soluciones preempaquetadas para facilitar que los científicos de datos y los profesionales del aprendizaje automático (ML) comiencen a entrenar e implementar rápidamente modelos de ML. Puede usar estos algoritmos y modelos para el aprendizaje supervisado y no supervisado. Puede procesar diferentes tipos de datos de entrada, incluidas tablas, imágenes y texto.
Esta publicación es la tercera de una serie sobre los nuevos algoritmos integrados en SageMaker. En la primera publicación, mostramos cómo SageMaker proporciona un algoritmo de clasificación de imágenes integrado. En la segunda publicación, mostramos cómo SageMaker proporciona un algoritmo integrado para la detección de objetos. Hoy anunciamos que SageMaker proporciona un nuevo algoritmo de clasificación de texto integrado con TensorFlow. Este algoritmo de aprendizaje supervisado admite el aprendizaje de transferencia para muchos modelos previamente entrenados disponibles en TensorFlow Hub. Toma un fragmento de texto como entrada e imprime la probabilidad para cada una de las etiquetas de clase. Puede utilizar el aprendizaje por transferencia para ajustar estos modelos preentrenados, incluso cuando no se dispone de un gran corpus de texto. Está disponible a través de los algoritmos integrados de SageMaker, así como a través de la interfaz de usuario de SageMaker JumpStart en Amazon SageMaker Studio. Para obtener más información, consulte Clasificación de texto y Introducción a JumpStart: cuaderno de muestra de clasificación de texto.
La clasificación de texto con TensorFlow en SageMaker proporciona transferencia de aprendizaje para muchos modelos previamente entrenados disponibles en TensorFlow Hub. Se agrega una capa de clasificación al modelo de TensorFlow Hub preentrenado de acuerdo con la cantidad de etiquetas de clase en los datos de entrenamiento. La capa de clasificación consta de una capa de abandono y una capa densa, una capa totalmente conectada, con un regularizador de 2 normas inicializado con pesos aleatorios. El entrenamiento del modelo tiene hiperparámetros para la tasa de abandono de la capa de abandono y el factor de regularización L2 para la capa densa. Luego, toda la red, incluido el modelo preentrenado, o solo la capa de clasificación superior se puede ajustar a los nuevos datos de entrenamiento. En este modo de transferencia de aprendizaje, también puede entrenar con un conjunto de datos más pequeño.
Cómo usar el nuevo algoritmo de clasificación de texto de TensorFlow
En esta sección, se describe cómo usar el algoritmo de clasificación de texto de TensorFlow con el SDK de Python de SageMaker. Consulte SageMaker JumpStart para obtener información sobre cómo usarlo desde la interfaz de usuario de Studio.
El algoritmo admite el aprendizaje de transferencia para los modelos preentrenados que se enumeran en Modelos de Tensorflow. Cada modelo está identificado por un artículo único. model_id
. El siguiente código muestra cómo ajustar el modelo base BERT identificado por model_id
tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2
en un conjunto de datos de entrenamiento personalizado. Para cada model_id
, para iniciar un trabajo de capacitación de SageMaker a través de la clase Estimator de SageMaker Python SDK, debe obtener el URI de la imagen de Docker, el URI del script de capacitación y el URI del modelo preentrenado a través de las funciones auxiliares proporcionadas en SageMaker. El URI del script de entrenamiento contiene todo el código necesario para el procesamiento de datos, la carga del modelo previamente entrenado, el entrenamiento del modelo y el almacenamiento del modelo entrenado para la inferencia. El URI del modelo preentrenado contiene la definición de la arquitectura del modelo preentrenado y los parámetros del modelo. El URI del modelo preentrenado es específico para cada modelo. TensorFlow descargó previamente los tarballs del modelo previamente entrenados y los almacenó en depósitos de Amazon Simple Storage Service (Amazon S3) con la firma de modelo adecuada, de modo que el trabajo de entrenamiento se ejecuta en aislamiento de red. Ver el siguiente código:
Puede crear un objeto de clase Estimator utilizando estos artefactos de entrenamiento específicos del modelo:
A continuación, para transferir el aprendizaje en su conjunto de datos personalizado, es posible que deba cambiar los valores predeterminados de los hiperparámetros de entrenamiento enumerados en Hiperparámetros. Puede obtener un diccionario de Python de estos hiperparámetros con sus valores predeterminados llamando hyperparameters.retrieve_default
, actualícelos según sea necesario y luego páselos a la clase Estimator. Tenga en cuenta que los valores predeterminados de algunos hiperparámetros son diferentes para diferentes modelos. Para modelos grandes, el tamaño de pila predeterminado es más pequeño y el train_only_top_layer
hiperparámetro se establece en True
. El hiperparámetro Train_only_top_layer
define qué parámetros del modelo cambian durante el proceso de ajuste. si train_only_top_layer
es True
, luego los parámetros de las capas de clasificación cambian y los parámetros restantes permanecen constantes durante el proceso de ajuste fino. Por otro lado, si train_only_top_layer
es False
, luego se ajustan todos los parámetros del modelo. Ver el siguiente código:
Proporcionamos el SST2 como un conjunto de datos estándar para ajustar los modelos. El conjunto de datos contiene críticas de películas positivas y negativas. Se descargó de TensorFlow bajo la licencia Apache 2.0. El siguiente código proporciona el conjunto de datos de entrenamiento predeterminado alojado en depósitos de S3.
Finalmente, para iniciar el trabajo de entrenamiento de SageMaker para ajustar el modelo, llame a .fit en el objeto de la clase Estimator, pasando la ubicación de Amazon S3 del conjunto de datos de entrenamiento:
Para obtener más información sobre el uso del nuevo algoritmo de clasificación de texto SageMaker TensorFlow para transferir el aprendizaje en un conjunto de datos personalizado, implemente el modelo ajustado, ejecute la inferencia en el modelo implementado e implemente el modelo preentrenado tal cual sin ajustes previos para un conjunto de datos personalizado Consulte el siguiente cuaderno de muestra: Introducción a JumpStart – Clasificación de texto.
Interfaz de entrada/salida para el algoritmo de clasificación de texto TensorFlow
Puede ajustar cualquiera de los modelos previamente entrenados que se enumeran en TensorFlow Models en cualquier conjunto de datos de conjuntos de texto con cualquier número de clases. El modelo previamente entrenado agrega una capa de clasificación al modelo de incrustación de texto e inicializa los parámetros de la capa a valores aleatorios. La dimensión de salida de la capa de clasificación se determina en función del número de clases detectadas en los datos de entrada. El objetivo es minimizar los errores de clasificación en los datos de entrada. El modelo devuelto por el ajuste fino se puede utilizar más para la inferencia.
Las siguientes instrucciones describen cómo deben formatearse los datos de entrenamiento para su entrada en el modelo:
- Entrada: un directorio que contiene un archivo data.csv. Cada fila de la primera columna debe tener designaciones de clases enteras entre 0 y el número de clases. Cada fila de la segunda columna debe contener los datos de texto apropiados.
- Salida: un modelo ajustado que se puede usar para la inferencia o entrenarse más a través del entrenamiento incremental. Un archivo que asocia índices de clase con identificadores de clase se almacena con los modelos.
El siguiente es un ejemplo de un archivo de entrada CSV. Tenga en cuenta que el archivo no debe tener un encabezado. El archivo debe estar alojado en un depósito S3 con una ruta similar a la siguiente: s3://bucket_name/input_directory/
. Tenga en cuenta que el retraso /
es necesario.
Inferencia usando el algoritmo de clasificación de texto TensorFlow
Los modelos generados se pueden alojar como inferencia y texto de apoyo application/x-text
tipo de contenido. La salida contiene los valores de probabilidad, las etiquetas de clase para todas las clases y la etiqueta predicha correspondiente al índice de clase con la probabilidad más alta codificada en formato JSON. El modelo procesa una sola cadena por solicitud y genera solo una línea. El siguiente es un ejemplo de una respuesta en formato JSON:
si accept
se establece en application/json
, entonces el modelo solo devuelve probabilidades. Para obtener más detalles sobre el entrenamiento y la inferencia, consulte Introducción a Introducción a JumpStart: cuaderno de muestra de clasificación de texto.
Use los algoritmos integrados de SageMaker a través de la interfaz de usuario de JumpStart
También puede usar la clasificación de texto de SageMaker TensorFlow y todos los demás algoritmos integrados con solo unos pocos clics desde la interfaz de usuario de JumpStart. JumpStart es una característica 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. Además, puede implementar soluciones de ML completas que unen modelos de ML y varios otros servicios de AWS para resolver un caso de uso específico.
A continuación se muestran dos videos que demuestran cómo replicar el mismo proceso de ajuste e implementación que acabamos de realizar con solo unos pocos clics desde la interfaz de usuario de JumpStart.
Optimizar el modelo preentrenado
Este es el proceso para ajustar el mismo modelo de clasificación de texto entrenado previamente.
Implementar el modelo optimizado
Una vez completada la capacitación del modelo, puede implementar el modelo directamente en un punto final persistente en tiempo real con un solo clic.
Conclusión
En esta publicación, anunciamos el lanzamiento del algoritmo de clasificación de texto incorporado, SageMaker TensorFlow. Brindamos un código de ejemplo de cómo realizar transferencias de aprendizaje en un conjunto de datos personalizado usando un modelo previamente entrenado de TensorFlow Hub con este algoritmo.
Para obtener más información, consulte la documentación y el cuaderno de muestra Introducción a JumpStart – Clasificación de texto.
Sobre los autores
dr. vivek madan es científico aplicado en el equipo JumpStart de Amazon SageMaker. Recibió su doctorado de la Universidad de Illinois en Urbana-Champaign y fue becario postdoctoral en Georgia Tech. Es un investigador activo en los campos de aprendizaje automático y diseño de algoritmos y ha publicado artículos en conferencias EMNLP, ICLR, COLT, FOCS y SODA.
joao moura es Arquitecto de Soluciones Especialista en AI/ML en Amazon Web Services. Centrado principalmente en casos de uso de NLP, ayuda a los clientes a optimizar la capacitación y la implementación de modelos 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.
dr. Ashish Khetan es un científico aplicado sénior con algoritmos integrados de Amazon SageMaker y ayuda a desarrollar algoritmos de aprendizaje automático. Recibió su doctorado de la Universidad de Illinois Urbana Champaign. Es un investigador activo en el campo del aprendizaje automático y la inferencia estadística y ha publicado muchos artículos en las conferencias NeurIPS, ICML, ICLR, JMLR, ACL y EMNLP.
[ad_2]