AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

AlexaTM 20B ya está disponible en Amazon SageMaker JumpStart

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:

# model_version="*" fetches the latest version of the model
model_id, model_version = "pytorch-textgeneration1-alexa20b", "*"

instance_type = "ml.g4dn.12xlarge"

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve(
    region=None,
    framework=None,  # automatically inferred from model_id
    image_scope="inference",
    model_id=model_id,
    model_version=model_version,
    instance_type=inference_instance_type,
)

# Retrieve the model uri. This includes the model parameters, all dependencies and scripts for model loading, inference handling etc.
 model_uri = model_uris.retrieve(
 model_id=model_id, 
 model_version=model_version, 
 model_scope="inference")

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:

env = {
        "SAGEMAKER_MODEL_SERVER_TIMEOUT": str(3600),
        "MODEL_CACHE_ROOT": "/opt/ml/model",
        "SAGEMAKER_ENV": "1",
        "SAGEMAKER_SUBMIT_DIRECTORY":"/opt/ml/model/code/",
        "SAGEMAKER_PROGRAM": "inference.py",
        "SAGEMAKER_MODEL_SERVER_WORKERS": "1", # One worker for the endpoint rather than one worker per GPU by default
        "TS_DEFAULT_WORKERS_PER_MODEL":"1" # 1 TS worker which allocates all memory to the single master worker.
    }
    
#Create the SageMaker model instance. 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.
model = Model(
    image_uri=deploy_image_uri,
    model_data=model_uri,
    role=aws_role,
    predictor_cls=Predictor,
    name=endpoint_name,
    env=env
)

A continuación, implementamos el modelo en un punto final en tiempo real de SageMaker:

# deploy the Model.
model_predictor = model.deploy(
    initial_instance_count=1,
    instance_type=instance_type,
    endpoint_name=endpoint_name,
    volume_size= volume_size, # Specify the size of the Amazon EBS volume in GBs.
    model_data_download_timeout = 3600, # Specify the model download timeout in seconds.
    container_startup_health_check_timeout = 3600, # Specify the health checkup timeout in seconds
)

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.

def query(model_predictor, text, kwargs = None):
    """Query the model predictor."""

    payload = {"text_inputs": text}
    if kwargs is not None:
        payload.update(kwargs)
        
    encoded_inp = json.dumps(payload).encode("utf-8")

    query_response = model_predictor.predict(
        encoded_inp,
        {
            "ContentType": "application/json",
            "Accept": "application/json",
        },
    )
    return query_response
 
def parse_response(query_response):
    """Parse response and return the generated texts."""

    model_predictions = json.loads(query_response)
    generated_texts = model_predictions["generated_texts"]
    return generated_texts

A continuación, consultamos el punto final y analizamos la respuesta en un texto de entrada de muestra:

# text can be a single string or a list of strings
text = “[CLM]My name is Lewis and I like to"
kwargs = {"num_beams": 5, "no_repeat_ngram_size": 2, “max_length”: 50}
query_response = query_endpoint(model_predictor, text, kwargs)
generated_texts = parse_response(query_response)

Generated_texts: “travel and meet new people. I have been to many countries and I like to meet people from all over the world. If you are interested in meeting me, please feel free to send me a message and we can arrange a meeting.”

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_py 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:

train_article = "The announcement ends months of uncertainty for Cornish Language Partnership staff whose contracts had been due to end. Local government minister Andrew Stunnell said the three-year funding package for the service would help make sure the language survived. But he warned that long term funding should come from Cornwall. He said it was "important to make sure the Cornish were given the opportunity to put down sound foundations." "In the longer term support for the Cornish language is going to be something which is going to have to be based in Cornwall and will not come from London," he added. The Cornish Language Partnership's, Jennifer Lowe, said: "We can now plan for the future thanks to the funding." The United Nations recently upgraded the status of the Cornish language from "extinct" to "critically endangered". It is thought fewer than 500 people worldwide are fluent in the language.""
                
train_summary = "The government is spending nearly £400,000 to help save the Cornish language."

test_article = "Torrents of water brought down a suspended ceiling and damaged stock "
                "in the Victoria Centre store at about 22:40 BST on Tuesday. Managers "
                "had hoped for a weekend reopening but it is now closed "until "
                "further notice". Staff have been helping with the clean-up "
                "operation. Water poured through from a rooftop room, leaving the "
                "top floor under three inches of water and stock "significantly" "
                "damaged. A spokeswoman said: "Our teams are working around the "
                "clock to get the shop open as quickly as possible and we're sorry "
                "for the inconvenience this has caused to our customers.""

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.

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El resultado es el siguiente:

AlexaTM 20B output: 'The top floor of a London department store has been flooded.'

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:

train_inp = "name[The Punter], food[Indian], priceRange[cheap]"
train_out = "The Punter provides Indian food in the cheap price range."

test_inp = "name[Blue Spice], eatType[coffee shop], area"

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).

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El resultado es el siguiente:

AlexaTM 20B output: 'Blue Spice is a coffee shop in the city centre. '

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:

train_inp = "Das Parlament erhebt sich zu einer Schweigeminute."
train_out = "The House rose and observed a minute' s silence"

test_inp = "Kleingärtner bewirtschaften den einstigen Grund von Bauern."

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).

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El resultado es el siguiente:

AlexaTM 20B translation: 'Gardeners cultivate the former land of farmers.'

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:

test_context = "The Normans (Norman: Nourmands; French: Normands; Latin: Normanni) were the people who in the 10th and 11th centuries gave their name to Normandy, a region in France. They were descended from Norse ("Norman" comes from "Norseman") raiders and pirates from Denmark, Iceland and Norway who, under their leader Rollo, agreed to swear fealty to King Charles III of West Francia. Through generations of assimilation and mixing with the native Frankish and Roman-Gaulish populations, their descendants would gradually merge with the Carolingian-based cultures of West Francia. The distinct cultural and ethnic identity of the Normans emerged initially in the first half of the 10th century, and it continued to evolve over the succeeding centuries."
test_question = "In what country is Normandy located?"

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.

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El resultado es el siguiente:

AlexaTM 20B output: 'France'

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

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart 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.

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.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.

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart 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. 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.

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai. 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.

AlexaTM 20B ahora está disponible en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.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.

Sello de tiempo:

Mas de Aprendizaje automático de AWS