[ad_1]
En diciembre de 2020, AWS anunció la disponibilidad general de Amazon SageMaker JumpStart, una característica de Amazon SageMaker que lo ayuda a comenzar con el aprendizaje automático (ML) de manera rápida y sencilla. JumpStart ofrece ajuste e implementación con un solo clic de una variedad de modelos previamente entrenados para tareas populares de ML, así como una selección de soluciones integrales que resuelven problemas comerciales comunes. Estas características descargan cada paso del proceso de ML, lo que facilita el desarrollo de modelos de alta calidad y reduce el tiempo de implementación.
Esta publicación es la cuarta de una serie sobre el uso de JumpStart para tareas específicas de ML. En la primera publicación, mostramos cómo ejecutar casos de uso de clasificación de imágenes en JumpStart. En la segunda publicación, mostramos cómo ejecutar casos de uso de clasificación de texto. En la tercera publicación, describimos casos de uso para la segmentación de imágenes.
En esta publicación, proporcionamos una guía paso a paso para implementar modelos de generación de texto previamente entrenados. Estamos explorando dos formas de lograr el mismo resultado: mediante la interfaz gráfica de usuario de JumpStart en Amazon SageMaker Studio y mediante programación mediante las API de JumpStart.
Si desea pasar directamente al código de la API de JumpStart que cubrimos en esta publicación, puede consultar el siguiente cuaderno de Jupyter de muestra: Presentación de JumpStart: generación de texto.
Descripción general de JumpStart
JumpStart lo ayuda a comenzar con los modelos ML para una variedad de tareas sin escribir una sola línea de código. Actualmente, JumpStart le permite hacer lo siguiente:
- Proporcione modelos pre-entrenados para tareas comunes de ML – JumpStart le permite abordar tareas comunes de ML sin esfuerzo de desarrollo al proporcionar una implementación sencilla de modelos entrenados previamente en grandes conjuntos de datos disponibles públicamente. La comunidad de investigación de ML ha hecho todo lo posible para poner a disposición del público gran parte de los modelos desarrollados recientemente. JumpStart alberga una colección de más de 300 modelos que cubren las 15 tareas de ML más populares, como detección de objetos, clasificación de texto y generación de texto, lo que las hace fáciles de usar para principiantes. Estos modelos provienen de centros de modelos populares como TensorFlow, PyTorch, Hugging Face y MXNet.
- Optimizar modelos pre-entrenados – Con JumpStart, puede optimizar modelos previamente entrenados sin tener que escribir su propio algoritmo de entrenamiento. ML describe la capacidad de transferir el conocimiento aprendido en un dominio a otro dominio transferir el aprendizaje. Puede usar el aprendizaje por transferencia para crear modelos precisos para sus conjuntos de datos más pequeños con costos de capacitación mucho más bajos que los del modelo original. JumpStart también incluye algoritmos de entrenamiento populares basados en LightGBM, CatBoost, XGBoost y Scikit-learn que puede entrenar desde cero para regresión tabular y clasificación.
- Utilice soluciones preparadas – JumpStart ofrece un conjunto de 17 soluciones para casos de uso comunes de ML como: B. Pronóstico de demanda y aplicaciones industriales y financieras que puede implementar con solo unos pocos clics. Las soluciones son aplicaciones de aprendizaje automático integrales que unen diferentes servicios de AWS para resolver un caso de uso comercial específico. Utilizan plantillas de AWS CloudFormation y arquitecturas de referencia para una implementación rápida, lo que significa que son totalmente personalizables.
- Ver muestras de cuadernos para algoritmos de SageMaker – SageMaker ofrece un conjunto de algoritmos integrados para facilitar que los científicos de datos y los profesionales de ML comiencen a capacitarse e implementar rápidamente modelos de ML. JumpStart proporciona cuadernos de muestra para ayudarlo a usar rápidamente estos algoritmos.
- Ver videos y blogs de capacitación – JumpStart también tiene numerosas publicaciones de blog y videos que le enseñan cómo usar varias funciones en SageMaker.
JumpStart acepta configuraciones de VPC personalizadas y claves de cifrado de AWS Key Management Service (AWS KMS), lo que le permite utilizar de forma segura los modelos y soluciones disponibles en su entorno empresarial. Puede pasar su configuración de seguridad a JumpStart desde Studio o a través del SDK de Python de SageMaker.
Generación de texto, GPT-2 y Bloom
La generación de texto es la tarea de generar texto fluido e indistinguible del texto escrito por humanos. También se conoce como Generación de lenguaje natural.
GPT-2 es un popular modelo de generación de texto basado en transformadores. Está pre-entrenado en un gran corpus de texto en inglés sin formato humano. Está capacitado para la tarea en la que, dada una subsecuencia (oración o fragmento de texto), el modelo debe predecir la siguiente palabra o elemento de la secuencia.
Bloom también es un modelo de generación de texto basado en transformadores y está entrenado de manera similar a GPT-2. Sin embargo, Bloom está pre-entrenado en 46 lenguajes diferentes y 13 lenguajes de programación. A continuación se muestra un ejemplo de generación de texto de desplazamiento utilizando el modelo Bloom:
descripción general de la solución
Las siguientes secciones proporcionan una demostración paso a paso de la realización de inferencias mediante la interfaz de usuario de Studio y las API de JumpStart. Pasamos por los siguientes pasos:
- Acceda a JumpStart desde la interfaz de usuario de Studio para implementar y ejecutar la inferencia en el modelo previamente entrenado.
- Use JumpStart mediante programación con SageMaker Python SDK para implementar el modelo previamente entrenado y ejecutar la inferencia.
Acceda a JumpStart desde la interfaz de usuario de Studio y ejecute la inferencia en un modelo previamente entrenado
En esta sección, mostramos cómo entrenar e implementar modelos JumpStart mediante la interfaz de usuario de Studio.
El siguiente video le muestra cómo encontrar e implementar un modelo de generación de texto previamente entrenado en JumpStart. La página del modelo contiene información valiosa sobre el modelo y su uso. Puede implementar cualquiera de los modelos previamente entrenados disponibles en JumpStart. Para la inferencia, elegimos el tipo de instancia ml.p3.2xlarge porque ofrece la aceleración de GPU requerida para una latencia de inferencia baja a un precio bajo. Después de configurar la instancia de alojamiento de SageMaker, seleccione Desplegar. Su terminal persistente puede tardar entre 20 y 25 minutos en estar en funcionamiento.
Una vez que su punto final esté en funcionamiento, estará listo para responder a las solicitudes de inferencia.
Para acelerar su tiempo de inferencia, JumpStart proporciona un cuaderno de muestra que le muestra cómo ejecutar la inferencia en su punto final recién implementado. Elegir cuaderno abierto por debajo Usar Endpoint desde Studio.
Utilice JumpStart mediante programación con el SDK de SageMaker
En la sección anterior, mostramos cómo puede usar la interfaz de usuario de JumpStart para implementar de forma interactiva un modelo previamente entrenado con solo unos pocos clics. Sin embargo, también puede usar los modelos de JumpStart mediante programación mediante las API integradas en el SDK de SageMaker.
En esta sección, veremos un ejemplo rápido de cómo replicar el proceso anterior mediante el SDK de SageMaker. Seleccionamos un modelo preentrenado apropiado en JumpStart, implementamos ese modelo en un punto final de SageMaker y ejecutamos la inferencia en el punto final implementado. Todos los pasos de esta demostración están disponibles en el cuaderno complementario Introducción a JumpStart – Generación de texto.
Implementar el modelo preentrenado
SageMaker es una plataforma que hace un uso extensivo de los contenedores Docker para tareas de compilación y tiempo de ejecución. JumpStart utiliza los contenedores de aprendizaje profundo (DLC) de SageMaker específicos del marco disponibles. Primero recuperamos los paquetes adicionales, así como los scripts para manejar el entrenamiento y la inferencia de la tarea seleccionada. Finalmente, los artefactos del modelo pre-entrenados se recuperan por separado model_uris
, lo que da flexibilidad a la plataforma. Puede usar cualquier cantidad de modelos entrenados previamente para la misma tarea con un solo script de inferencia. Ver el siguiente código:
Bloom es un modelo muy grande y puede tardar entre 20 y 25 minutos en desplegarse. También puede usar un modelo más pequeño como GPT-2. Para proporcionar un modelo GPT-2 preentrenado, puede especificar model_id = huggingface-textgeneration-gpt2
. Para obtener una lista de otros modelos disponibles en JumpStart, consulte la tabla de modelos disponibles de JumpStart.
A continuación, inyectemos los recursos en una instancia de modelo de SageMaker y proporcionemos un punto final:
Después de implementar nuestro modelo, ¡podemos obtener predicciones en tiempo real de él!
realizar inferencia
El fragmento de código a continuación le da una idea de cómo se ven los resultados. Para enviar solicitudes a un modelo proporcionado, el texto de entrada se debe proporcionar en un utf-8
formato encriptado.
La respuesta del punto final es un objeto JSON que contiene el texto de entrada seguido del texto generado:
Nuestra salida es la siguiente:
Conclusión
En esta publicación, mostramos cómo implementar un modelo de generación de texto previamente entrenado usando JumpStart. Puede lograr esto sin tener que escribir ningún código. Pruebe la solución usted mismo y envíenos sus comentarios. Para obtener más información sobre JumpStart y cómo puede usar modelos de código abierto entrenados previamente para una variedad de otras tareas de aprendizaje automático, vea el siguiente video de AWS re:Invent 2020.
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.
santosh kulkarni es Enterprise Solutions Architect en Amazon Web Services y trabaja con clientes deportivos en Australia. Le apasiona desarrollar aplicaciones distribuidas a gran escala para resolver problemas comerciales utilizando su conocimiento en AI/ML, Big Data y desarrollo de software.
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 numerosos artículos en las conferencias NeurIPS, ICML, ICLR, JMLR, ACL y EMNLP.
[ad_2]