Hoy anunciamos la disponibilidad pública de la tecnología de última generación de Amazon. Alexa Teacher Model con 20 mil millones de parámetros (AlexaTM 20B) a través JumpStart de Amazon SageMaker, el centro de aprendizaje automático de SageMaker. AlexaTM 20B es un modelo de lenguaje multilingüe de secuencia a secuencia (seq2seq) a gran escala desarrollado por Amazon. Puede usar AlexaTM 20B para una amplia gama de casos de uso de la industria, desde resumir informes financieros hasta responder preguntas para chatbots de servicio al cliente. Se puede aplicar incluso cuando solo hay unos pocos ejemplos de capacitación disponibles, o incluso ninguno. Alexa™ 20B supera 175 mil millones modelo GPT-3 en tareas de aprendizaje de disparo cero como SuperGLUE y muestra un rendimiento de última generación para tareas de disparo cero multilingües como XNLI.
En esta publicación, brindamos una descripción general de cómo implementar y ejecutar la inferencia con el modelo AlexaTM 20B mediante programación a través de las API JumpStart, disponibles en el SDK de SageMaker Python. Ejemplificamos cómo puede usar este modelo para traducir entre varios idiomas, resumir texto de formato largo, responder preguntas basadas en un contexto dado y generar texto que parece indistinguible del texto escrito por humanos.
AlexaTM 20B y aprendizaje en contexto
El programa Alexa Teacher Model (AlexaTM) de Amazon Alexa AI está diseñado para crear modelos de aprendizaje profundo multilingües a gran escala (principalmente basados en Transformer), con el objetivo de mejorar la generalización y el manejo de la escasez de datos para tareas posteriores. Con una formación previa a gran escala, los modelos docentes pueden generalizar bien para aprender nuevas tareas a partir de datos escasos y ayudar a los desarrolladores a mejorar el rendimiento en las tareas posteriores. AlexaTM 20B ha mostrado desempeño competitivo en puntos de referencia y tareas comunes de procesamiento de lenguaje natural (NLP), como traducción automática, generación de datos y resumen.
El uso de modelos básicos como AlexaTM 20B reduce la necesidad de un costoso entrenamiento previo del modelo y proporciona un punto de partida de última generación para desarrollar modelos de tareas con menos esfuerzo y menos datos de entrenamiento específicos de tareas. Una de las habilidades clave de los modelos básicos es que podemos enseñarle a un modelo a realizar nuevas tareas, como preguntas y respuestas, en diferentes idiomas, con cantidades muy pequeñas de ejemplos de entrada y sin necesidad de ajustes finos o actualizaciones de gradientes. Esto se conoce como aprendizaje en contexto. Con solo unos pocos ejemplos de una nueva tarea proporcionada como contexto para la inferencia, el modelo AlexaTM 20B puede transferir el conocimiento de lo que se ha aprendido durante la capacitación previa a gran escala, incluso entre idiomas. Se llama aprendizaje de pocos tiros. En algunos casos, el modelo puede funcionar bien sin ningún dato de entrenamiento, con solo una explicación de lo que se debe predecir. Se llama aprendizaje cero. Por ejemplo, supongamos que estamos usando AlexaTM 20B para la generación de lenguaje natural de una sola vez. La entrada que se pasa al modelo es el ejemplo de entrenamiento en forma de pares de atributo-valor, junto con su correspondiente narrativa de texto de salida. Luego, se agrega el ejemplo de prueba para formar el indicador de entrada completo, como se muestra en la siguiente figura.
Para obtener más información sobre el modelo, consulte El modelo Alexa de 20B parámetros establece nuevas marcas en el aprendizaje de pocos disparos o el original .
El uso de AlexaTM 20B está disponible para uso no comercial y está cubierto por el Acuerdo de licencia del modelo de profesor de Alexa.
Resumen de la solución
Las siguientes secciones brindan una demostración paso a paso sobre cómo implementar el modelo, ejecutar inferencias y realizar aprendizaje en contexto para resolver tareas de aprendizaje de pocos disparos.
Tenga en cuenta que la siguiente sección contiene fragmentos de código; el código completo con todos los pasos de esta demostración está disponible en el cuaderno adjunto: Aprendizaje en contexto con AlexaTM 20B en SageMaker JumpStart.
Implementar el modelo
Para usar un modelo de lenguaje grande en SageMaker, necesita un script de inferencia específico para el modelo, que incluye pasos como la carga del modelo, la paralelización y más. También debe crear pruebas integrales para secuencias de comandos, modelos y los tipos de instancia deseados para validar que los tres pueden funcionar juntos. JumpStart elimina este esfuerzo al proporcionar scripts listos para usar que han sido probados de manera sólida.
SageMaker le brinda la capacidad de ejecutar contenedores Docker de forma extensiva para capacitación e inferencia. JumpStart utiliza estos marcos específicos disponibles Contenedores de aprendizaje profundo de SageMaker (DLC). Comenzamos por obtener el DLC optimizado (deploy_image_uri
) utilizando el model_id
. Luego buscamos el model_uri
que contiene los parámetros del modelo, junto con los scripts de manejo de inferencias y las dependencias asociadas. A continuación, creamos un instancia de modelo en SageMaker e impleméntelo en un punto final en tiempo real. Ver el siguiente código:
La implementación de AlexaTM 20B requiere una instancia respaldada por GPU con al menos 50 GB de memoria de CPU y al menos 42 GB de memoria de GPU. SageMaker proporciona muchas instancias de este tipo que admiten la inferencia en tiempo real. Probamos esta solución en tres instancias: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. Ver el siguiente código:
A continuación, implementamos el modelo en un punto final en tiempo real de SageMaker:
AlexaTM 20B requiere 40 GB de espacio en disco en el contenedor de inferencia. Una instancia ml.g4dn.12xlarge cumple este requisito. Por ejemplo, los tipos ml.p3.8xlarge y ml.p3.16xlarge, adjuntamos un Tienda de bloques elásticos de Amazon (Amazon EBS) volumen para manejar el tamaño de modelo grande. Por lo tanto, establecemos volume_size = None
al implementar en ml.g4dn.12xlarge y volume_size=256
al implementar en ml.p3.8xlarge o ml.p3.16xlarge.
La implementación del modelo puede tardar hasta 10 minutos. Después de implementar el modelo, ¡podemos obtener predicciones de él en tiempo real!
Ejecutar inferencia
AlexaTM 20B es un modelo de generación de texto que, dada una secuencia parcial (una oración o un fragmento de texto), genera el siguiente conjunto de palabras. El siguiente fragmento de código le da una idea de cómo consultar el punto final que implementamos y analizar los resultados para la tarea de finalización automática. Para enviar solicitudes a un modelo implementado, usamos un diccionario JSON codificado en formato UTF-8. La respuesta del punto final es un objeto JSON que contiene una lista de textos generados.
A continuación, consultamos el punto final y analizamos la respuesta en un texto de entrada de muestra:
AlexaTM 20B actualmente admite 10 parámetros de generación de texto durante la inferencia: max_length
, num_return_sequences
, num_beams
, no_repeat_ngram_size
, temperature
, early_stopping
, do_sample
, top_k
, top_p
y seed
. Para obtener información detallada sobre los valores válidos para cada parámetro y su impacto en el resultado, consulte el cuaderno adjunto: Aprendizaje en contexto con AlexaTM 20B en SageMaker JumpStart.
Aprendizaje en contexto
El aprendizaje en contexto se refiere a lo siguiente: proporcionamos al modelo de lenguaje un aviso, que consiste en entrenar pares de entrada-salida que demuestran la tarea. Agregamos una entrada de prueba al indicador y permitimos que el modelo de lenguaje haga predicciones condicionando el indicador y prediciendo los siguientes tokens o palabras. Esta es una técnica altamente efectiva para resolver problemas de aprendizaje de pocos disparos, en los que aprendemos una tarea a partir de unas pocas muestras de entrenamiento.
A continuación, le mostramos cómo puede usar AlexaTM 20B para varias tareas de 1 disparo y cero disparo a través del aprendizaje en contexto. A diferencia de los modelos de secuencia a secuencia anteriores, AlexaTM 20B se entrenó en el modelado de lenguaje causal además de la eliminación de ruido, lo que lo convierte en un buen modelo para el aprendizaje en contexto.
Resumen de texto de 1 disparo
El resumen de texto es la tarea de acortar los datos y crear un resumen que represente la información más importante presente en el texto original. El resumen de texto de 1 disparo se refiere a la configuración en la que aprendemos a resumir el texto en función de una sola muestra de entrenamiento. El código siguiente es un ejemplo de resumen de texto del Conjunto de datos XSUM:
Usamos el siguiente mensaje para resumir cuando solo se proporciona una muestra de capacitación. El texto generado a partir del modelo se interpreta como el resumen previsto del artículo de prueba.
El resultado es el siguiente:
Generación de lenguaje natural de 1 disparo
La generación de lenguaje natural es la tarea de producir narraciones de texto dado el texto de entrada. El siguiente ejemplo muestra un ejemplo de entrenamiento del Conjunto de datos E2E:
Usamos el siguiente aviso para la generación de lenguaje natural cuando solo se proporciona una muestra de entrenamiento (1 disparo). El texto generado a partir del modelo se interpreta como la narración de texto predicha para la entrada de prueba (test_inp
).
El resultado es el siguiente:
Traducción automática de 1 disparo
La traducción automática es la tarea de traducir texto de un idioma a otro. El siguiente ejemplo muestra una muestra de entrenamiento del Conjunto de datos WMT19 en el que necesitamos traducir del alemán al inglés:
Usamos el siguiente aviso para la traducción automática cuando solo se proporciona una muestra de capacitación (1 disparo). El texto generado a partir del modelo se interpreta como la traducción de la entrada de prueba (test_inp
).
El resultado es el siguiente:
Respuesta de preguntas extractivas de tiro cero
La respuesta extractiva a preguntas es la tarea de encontrar la respuesta a una pregunta a partir del párrafo de contexto. El siguiente es un ejemplo de un contexto y una pregunta del Conjunto de datos SQuAD v2:
Tenga en cuenta que no tenemos muestras de capacitación para nuestra tarea. En su lugar, creamos una pregunta ficticia sobre la última palabra en el indicador, en función de la test_context
(disparo ficticio). Por lo tanto, en realidad estamos respondiendo preguntas de manera extractiva y sin disparo.
Usamos el siguiente mensaje para responder preguntas extractivas cuando no se proporciona una muestra de capacitación. El texto generado a partir del modelo se interpreta como la respuesta a la pregunta de prueba.
El resultado es el siguiente:
Ingeniería rápida
La ingeniería rápida a veces puede ser un arte. Incluso pequeños cambios en la plantilla de solicitud pueden generar cambios significativos en el rendimiento del modelo en una tarea específica. Los siguientes son algunos consejos para escribir buenas plantillas de solicitud. Primero, es importante recordar que el modelo fue entrenado para aprender la estructura de oraciones reales (modelado de lenguaje causal). Como tal, es mejor asegurarse de que su plantilla de solicitud sea gramatical y estructuralmente correcta en lenguaje natural. En segundo lugar, este modelo en particular se beneficia de tomas ficticias para ayudar a enseñarle la estructura esperada en la respuesta, como se demostró anteriormente. En tercer lugar, siempre se recomienda examinar el rendimiento de la tarea en una variedad de plantillas de solicitud de candidatos. Fuente del aviso y Instrucciones Naturales son dos marcos de trabajo de código abierto para estandarizar plantillas de avisos y proporcionan una variedad de avisos de ejemplo utilizados para tareas de modelado existentes. Además, el Apéndice B de la Papel Alexa™ 20B proporciona las plantillas de solicitud utilizadas para generar los resultados presentados en el documento. Existe un subcampo en crecimiento dedicado a la creación y el aprendizaje automáticos de las mejores indicaciones para una tarea, incluidos tanto el lenguaje natural como las indicaciones continuas. Esto está más allá del alcance de este tutorial.
Conclusión
En esta publicación, mostramos cómo implementar el modelo AlexaTM 20B en un punto final de SageMaker y ejecutar la inferencia. Puede usar el modelo AlexaTM 20B para el aprendizaje en contexto para una variedad de tareas de aprendizaje de pocas tomas. Para obtener más información sobre AlexaTM 20B, consulte El modelo Alexa de 20B parámetros establece nuevas marcas en el aprendizaje de pocos disparos o el original .
Los autores desean agradecer las contribuciones técnicas de Maciej Rudnicki, Jakub Debski, Ashish Khetan, Anastasiia Dubinina, Vitaliy Korolev, Karl Albertsen, Saleh Soltan y Mariusz Momotko para hacer posible este lanzamiento.
Acerca de JumpStart
JumpStart es el centro de aprendizaje automático (ML) de Amazon SageMaker que ofrece más de 350 modelos preentrenados, algoritmos integrados y plantillas de soluciones preconstruidas para ayudarlo a comenzar con ML rápidamente. JumpStart aloja modelos de última generación de centros de modelos populares como TensorFlow, PyTorch, Hugging Face y MXNet, que admiten tareas populares de ML como detección de objetos, clasificación de texto y generación de texto. 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 tiene como objetivo ayudarlo a encontrar los modelos y algoritmos de ML correctos, y comenzar a construir modelos de inmediato. Específicamente, JumpStart brinda los siguientes beneficios:
- Fácil acceso con la interfaz de usuario y el SDK: puede acceder a modelos y algoritmos en JumpStart mediante programación mediante el SDK de Python de SageMaker o a través de la interfaz de usuario de JumpStart en Amazon SageMaker Studio. Actualmente, solo se puede acceder a AlexaTM 20B a través del SDK de Python de SageMaker.
- Algoritmos integrados de SageMaker: JumpStart proporciona más de 350 algoritmos integrados y modelos preentrenados, junto con los scripts de entrenamiento correspondientes (si se admiten), scripts de inferencia y cuadernos de ejemplo. Los scripts están optimizados para cada marco y tarea, y brindan funciones como compatibilidad con GPU, ajuste automático de modelos y capacitación incremental. Los scripts también se prueban con instancias y funciones de SageMaker para que no tenga problemas de compatibilidad.
- Soluciones prediseñadas: JumpStart proporciona un conjunto de 23 soluciones 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 aprendizaje automático integrales que unen varios servicios de AWS para resolver un caso de uso comercial particular. Utilizan plantillas de AWS CloudFormation y arquitecturas de referencia para una implementación rápida, lo que significa que son totalmente personalizables.
- Soporte: SageMaker brinda una variedad de soporte, como el mantenimiento de versiones actualizadas cuando se lanzan nuevas funciones de SageMaker o versiones de Deep Learning Container, y la creación de documentación sobre cómo usar los contenidos de JumpStart en un entorno de SageMaker.
Para obtener más información sobre JumpStart y cómo puede usar modelos preentrenados de código abierto para una variedad de otras tareas de ML, consulte lo siguiente Vídeo de AWS re: Invent 2020.
Acerca de los autores
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.
jack fitzgerald es un científico aplicado sénior de Alexa AI, donde actualmente se enfoca en el modelado de lenguaje extenso, el modelado de texto multilingüe y las operaciones de aprendizaje automático.
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.
junio ganó es gerente de producto con SageMaker JumpStart y algoritmos incorporados. Se enfoca en hacer que los contenidos de ML sean fáciles de descubrir y usar para los clientes de SageMaker.
Púlkit Kapur es el líder de producto del programa Alexa Teacher Model con Alexa AI, que se centra en la inteligencia generalizada y las aplicaciones de los modelos básicos multimodales multitarea de Alexa.
- AI
- arte ai
- generador de arte ai
- robot ai
- Amazon SageMaker
- JumpStart de Amazon SageMaker
- inteligencia artificial
- certificación de inteligencia artificial
- inteligencia artificial en banca
- robots de inteligencia artificial
- robots de inteligencia artificial
- software de inteligencia artificial
- Aprendizaje automático de AWS
- blockchain
- conferencia blockchain ai
- Coingenius
- inteligencia artificial conversacional
- criptoconferencia ai
- de dall
- deep learning
- Fundacional (100)
- google ai
- máquina de aprendizaje
- Platón
- platón ai
- Inteligencia de datos de Platón
- Juego de Platón
- PlatónDatos
- juego de platos
- escala ia
- sintaxis
- zephyrnet