Hoje, anunciamos a disponibilidade pública do aplicativo de última geração da Amazon Alexa Teacher Model com 20 bilhões de parâmetros (AlexaTM 20B) através JumpStart do Amazon SageMaker, hub de aprendizado de máquina da SageMaker. AlexaTM 20B é um modelo de linguagem multilíngue de sequência a sequência (seq2seq) em larga escala desenvolvido pela Amazon. Você pode usar o AlexaTM 20B para uma ampla variedade de casos de uso do setor, desde o resumo de relatórios financeiros até a resposta a perguntas para chatbots de atendimento ao cliente. Pode ser aplicado mesmo quando há poucos exemplos de treinamento disponíveis, ou mesmo nenhum. AlexaTM 20B supera um 175 bilhões modelo GPT-3 em tarefas de aprendizado zero-shot, como SuperGLUE, e mostra desempenho de ponta para tarefas zero-shot multilíngues, como XNLI.
Nesta postagem, fornecemos uma visão geral de como implantar e executar a inferência com o modelo AlexaTM 20B programaticamente por meio de APIs JumpStart, disponíveis no SDK Python do SageMaker. Nós exemplificamos como você pode usar este modelo para traduzir entre vários idiomas, resumir texto longo, responder a perguntas com base em um determinado contexto e gerar texto que pareça indistinguível do texto escrito por humanos.
AlexaTM 20B e aprendizado no contexto
O programa Alexa Teacher Model (AlexaTM) da Amazon Alexa AI foi projetado para criar modelos de aprendizagem profunda multilíngues em larga escala (principalmente baseados em Transformer), com o objetivo de melhorar a generalização e lidar com a escassez de dados para tarefas downstream. Com pré-treinamento em larga escala, os modelos de professores podem generalizar bem para aprender novas tarefas a partir de dados esparsos e ajudar os desenvolvedores a melhorar o desempenho em tarefas posteriores. AlexaTM 20B mostrou desempenho competitivo em benchmarks e tarefas comuns de processamento de linguagem natural (NLP), como tradução automática, geração de dados e resumo.
O uso de modelos básicos como o AlexaTM 20B reduz a necessidade de pré-treinamento dispendioso de modelos e fornece um ponto de partida de última geração para desenvolver modelos de tarefas com menos esforço e menos dados de treinamento específicos de tarefas. Uma das principais habilidades dos modelos de fundação é que podemos ensinar um modelo a executar novas tarefas, como perguntas e respostas em diferentes idiomas, com quantidades muito pequenas de exemplos de entrada e sem a necessidade de ajustes finos ou atualizações de gradiente. Isso é conhecido como aprendizagem no contexto. Com apenas alguns exemplos de uma nova tarefa fornecida como contexto para inferência, o modelo AlexaTM 20B pode transferir conhecimento do que foi aprendido durante o pré-treinamento em larga escala, mesmo entre idiomas. Isso é chamado aprendizado de poucas filmagens. Em alguns casos, o modelo pode funcionar bem sem nenhum dado de treinamento, apenas com uma explicação do que deve ser previsto. Isso é chamado aprendizagem zero-shot. Por exemplo, digamos que estamos usando AlexaTM 20B para geração de linguagem natural de uma só vez. A entrada passada para o modelo é o exemplo de treinamento na forma de pares atributo-valor, junto com sua narrativa de texto de saída correspondente. O exemplo de teste é anexado para formar o prompt de entrada completo, conforme mostrado na figura a seguir.
Para saber mais sobre o modelo, confira O modelo Alexa de 20B define novas marcas no aprendizado de poucos disparos ou o original papel.
O uso do AlexaTM 20B é disponibilizado para uso não comercial e é coberto pela Contrato de licença do modelo de professor Alexa.
Visão geral da solução
As seções a seguir fornecem uma demonstração passo a passo sobre como implantar o modelo, executar a inferência e fazer aprendizado no contexto para resolver tarefas de aprendizado de poucos tiros.
Observe que a seção a seguir contém trechos de código; o código completo com todas as etapas desta demonstração está disponível no notebook que o acompanha: Aprendizagem no contexto com AlexaTM 20B no SageMaker JumpStart.
Implantar o modelo
Para usar um modelo de linguagem grande no SageMaker, você precisa de um script de inferência específico para o modelo, que inclui etapas como carregamento do modelo, paralelização e muito mais. Você também precisa criar testes de ponta a ponta para scripts, modelo e os tipos de instância desejados para validar que todos os três podem funcionar juntos. O JumpStart remove esse esforço fornecendo scripts prontos para uso que foram testados de forma robusta.
O SageMaker oferece a capacidade de executar contêineres do Docker extensivamente para treinamento e inferência. O JumpStart usa essas estruturas específicas disponíveis Contêineres de aprendizado profundo do SageMaker (DLC). Começamos buscando o DLC otimizado (deploy_image_uri
) Utilizando o model_id
. Em seguida, buscamos o model_uri
contendo os parâmetros do modelo, junto com scripts de manipulação de inferência e quaisquer dependências associadas. A seguir, criamos um instância de modelo no SageMaker e implemente-o em um endpoint em tempo real. Veja o seguinte código:
A implantação do AlexaTM 20B requer uma instância com suporte de GPU com pelo menos 50 GB de memória de CPU e pelo menos 42 GB de memória de GPU. O SageMaker fornece muitas dessas instâncias que oferecem suporte à inferência em tempo real. Testamos essa solução em três instâncias: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. Veja o seguinte código:
Em seguida, implantamos o modelo em um endpoint em tempo real do SageMaker:
AlexaTM 20B requer 40 GB de espaço em disco no contêiner de inferência. Uma instância ml.g4dn.12xlarge atende a esse requisito. Para os tipos de instância ml.p3.8xlarge e ml.p3.16xlarge, anexamos um Loja de blocos elásticos da Amazon (Amazon EBS) volume para lidar com o tamanho grande do modelo. Portanto, estabelecemos volume_size = None
ao implantar em ml.g4dn.12xlarge e volume_size=256
ao implantar em ml.p3.8xlarge ou ml.p3.16xlarge.
A implantação do modelo pode levar até 10 minutos. Depois que o modelo é implantado, podemos obter previsões dele em tempo real!
Executar inferência
AlexaTM 20B é um modelo de geração de texto que, dada uma sequência parcial (uma frase ou trecho de texto), gera o próximo conjunto de palavras. O snippet de código a seguir fornece uma ideia de como consultar o endpoint que implantamos e analisar as saídas para a tarefa de preenchimento automático. Para enviar solicitações a um modelo implantado, usamos um dicionário JSON codificado no formato UTF-8. A resposta do endpoint é um objeto JSON contendo uma lista de textos gerados.
Em seguida, consultamos o endpoint e analisamos a resposta em um exemplo de texto de entrada:
AlexaTM 20B atualmente suporta 10 parâmetros de geração de texto durante a inferência: max_length
, num_return_sequences
, num_beams
, no_repeat_ngram_size
, temperature
, early_stopping
, do_sample
, top_k
, top_p
e seed
. Para obter informações detalhadas sobre valores válidos para cada parâmetro e seu impacto na saída, consulte o notebook que acompanha: Aprendizagem no contexto com AlexaTM 20B no SageMaker JumpStart.
Aprendizagem no contexto
A aprendizagem no contexto refere-se ao seguinte: fornecemos ao modelo de linguagem um prompt, que consiste em treinar pares de entrada-saída que demonstram a tarefa. Anexamos uma entrada de teste ao prompt e permitimos que o modelo de linguagem faça previsões condicionando o prompt e prevendo os próximos tokens ou palavras. Esta é uma técnica altamente eficaz para resolver alguns problemas de shot-learning, nos quais aprendemos uma tarefa a partir de alguns exemplos de treinamento.
A seguir, mostramos como você pode usar o AlexaTM 20B para várias tarefas de 1 disparo e zero disparo por meio do aprendizado no contexto. Ao contrário dos modelos anteriores de sequência a sequência, o AlexaTM 20B foi treinado em modelagem de linguagem causal, além de redução de ruído, o que o torna um bom modelo para aprendizado no contexto.
Resumo de texto de 1 tiro
A sumarização de texto é a tarefa de encurtar os dados e criar um resumo que represente as informações mais importantes presentes no texto original. Resumo de texto 1-shot refere-se à configuração em que aprendemos a resumir o texto com base em uma única amostra de treinamento. O código a seguir é uma amostra de resumo de texto do Conjunto de dados XSUM:
Usamos o seguinte prompt para resumo quando apenas uma amostra de treinamento é fornecida. O texto gerado do modelo é interpretado como o resumo previsto do artigo de teste.
O resultado é o seguinte:
Geração de linguagem natural de 1 disparo
A geração de linguagem natural é a tarefa de produzir narrativas textuais a partir do texto de entrada. O exemplo a seguir mostra um exemplo de treinamento do conjunto de dados E2E:
Usamos o seguinte prompt para geração de linguagem natural quando apenas uma amostra de treinamento (1-shot) é fornecida. O texto gerado do modelo é interpretado como a narrativa de texto prevista para a entrada de teste (test_inp
).
O resultado é o seguinte:
Tradução automática de 1 tiro
Tradução automática é a tarefa de traduzir texto de um idioma para outro. O exemplo a seguir mostra uma amostra de treinamento do conjunto de dados WMT19 em que precisamos traduzir do alemão para o inglês:
Usamos o seguinte prompt para tradução automática quando apenas uma amostra de treinamento (1-shot) é fornecida. O texto gerado do modelo é interpretado como a tradução da entrada de teste (test_inp
).
O resultado é o seguinte:
Resposta a perguntas extrativas de tiro zero
A resposta extrativa de perguntas é a tarefa de encontrar a resposta para uma pergunta no parágrafo de contexto. O seguinte é um exemplo de um contexto e uma pergunta do Conjunto de dados SQUAD v2:
Observe que não temos nenhum exemplo de treinamento para nossa tarefa. Em vez disso, criamos uma pergunta fictícia sobre a última palavra no prompt , com base no test_context
(tiro fictício). Portanto, na verdade, estamos respondendo a perguntas extrativas de tiro zero.
Usamos o seguinte prompt para responder perguntas extrativas quando nenhuma amostra de treinamento é fornecida. O texto gerado a partir do modelo é interpretado como a resposta à pergunta do teste.
O resultado é o seguinte:
Engenharia imediata
A engenharia rápida às vezes pode ser uma arte. Mesmo pequenas alterações no modelo de prompt podem resultar em alterações significativas no desempenho do modelo em uma tarefa específica. A seguir estão alguns conselhos para escrever bons modelos de prompt. Primeiramente, é importante lembrar que o modelo foi treinado para aprender a estrutura de sentenças reais (modelagem de linguagem causal). Como tal, é melhor garantir que seu modelo de prompt esteja gramaticalmente e estruturalmente correto em linguagem natural. Em segundo lugar, esse modelo específico se beneficia de tiros fictícios para ajudar a ensinar a estrutura esperada na resposta, conforme demonstrado acima. Em terceiro lugar, é sempre recomendável examinar o desempenho da tarefa em uma variedade de modelos de prompt de candidatos. Fonte de alerta e Instruções Naturais são duas estruturas de software livre para padronizar modelos de prompt e fornecem uma variedade de prompts de exemplo usados para tarefas de modelagem existentes. Além disso, o Apêndice B do Papel AlexaTM 20B fornece os modelos de prompt usados para gerar os resultados apresentados no artigo. Há um subcampo crescente dedicado à criação automática e ao aprendizado dos melhores prompts para uma tarefa, incluindo linguagem natural e prompts contínuos. Isso está além do escopo deste tutorial.
Conclusão
Nesta postagem, mostramos como implantar o modelo AlexaTM 20B em um endpoint SageMaker e executar a inferência. Você pode usar o modelo AlexaTM 20B para aprendizado no contexto para uma variedade de tarefas de aprendizado de poucos tiros. Para saber mais sobre AlexaTM 20B, consulte O modelo Alexa de 20B define novas marcas no aprendizado de poucos disparos ou o original papel.
Os autores gostariam de agradecer as contribuições técnicas de Maciej Rudnicki, Jakub Debski, Ashish Khetan, Anastasiia Dubinina, Vitaliy Korolev, Karl Albertsen, Saleh Soltan e Mariusz Momotko para tornar este lançamento possível.
Sobre o JumpStart
JumpStart é o hub de aprendizado de máquina (ML) do Amazon SageMaker que oferece mais de 350 modelos pré-treinados, algoritmos integrados e modelos de solução pré-criados para ajudar você a começar a usar o ML rapidamente. O JumpStart hospeda modelos de última geração de hubs de modelos populares, como TensorFlow, PyTorch, Hugging Face e MXNet, que suportam tarefas populares de ML, como detecção de objetos, classificação de texto e geração de texto. A comunidade de pesquisa de ML se esforçou muito para tornar a maioria dos modelos desenvolvidos recentemente disponíveis publicamente para uso. O objetivo do JumpStart é ajudá-lo a encontrar os modelos e algoritmos de ML corretos e começar imediatamente a criar modelos. Especificamente, o JumpStart oferece os seguintes benefícios:
- Fácil acesso com a IU e o SDK – Você pode acessar modelos e algoritmos no JumpStart de forma programática usando o SageMaker Python SDK ou por meio da IU do JumpStart no Amazon SageMaker Studio. Atualmente, o AlexaTM 20B só pode ser acessado por meio do SageMaker Python SDK.
- Algoritmos integrados do SageMaker – O JumpStart fornece mais de 350 algoritmos integrados e modelos pré-treinados, juntamente com os scripts de treinamento correspondentes (se suportados), scripts de inferência e notebooks de exemplo. Os scripts são otimizados para cada estrutura e tarefa e fornecem recursos como suporte a GPU, ajuste automático de modelo e treinamento incremental. Os scripts também são testados em instâncias e recursos do SageMaker para que você não tenha problemas de compatibilidade.
- Soluções pré-construídas – o JumpStart fornece um conjunto de 23 soluções para casos de uso comuns de ML, como previsão de demanda e aplicativos industriais e financeiros, que você pode implantar com apenas alguns cliques. As soluções são aplicativos de ML de ponta a ponta que agrupam vários serviços da AWS para resolver um caso de uso de negócios específico. Eles usam modelos do AWS CloudFormation e arquiteturas de referência para implantação rápida, o que significa que são totalmente personalizáveis.
- Suporte – O SageMaker fornece uma variedade de suporte, como manter versões atualizadas quando novos recursos do SageMaker ou versões do Deep Learning Container são lançados e criar documentação sobre como usar o conteúdo do JumpStart em um ambiente do SageMaker.
Para saber mais sobre o JumpStart e como você pode usar modelos pré-treinados de código aberto para uma variedade de outras tarefas de ML, confira o seguinte Vídeo AWS re:Invent 2020.
Sobre os autores
Vivek Madan é um cientista aplicado da equipe Amazon SageMaker JumpStart. Ele obteve seu doutorado na Universidade de Illinois em Urbana-Champaign e foi pesquisador de pós-doutorado na Georgia Tech. Ele é um pesquisador ativo em aprendizado de máquina e design de algoritmos e publicou artigos em conferências EMNLP, ICLR, COLT, FOCS e SODA.
Jack FitzGerald é um cientista aplicado sênior da Alexa AI, onde atualmente se concentra em modelagem de linguagem grande, modelagem de texto multilíngue e operações de aprendizado de máquina.
João moura é arquiteto de soluções especialista em IA/ML na Amazon Web Services. Ele se concentra principalmente em casos de uso de PNL e em ajudar os clientes a otimizar o treinamento e a implantação de modelos de aprendizado profundo. Ele também é um defensor ativo de soluções de ML de baixo código e hardware especializado em ML.
junho ganhou é um gerente de produto com SageMaker JumpStart e algoritmos integrados. Ele se concentra em tornar o conteúdo de ML facilmente detectável e utilizável para os clientes do SageMaker.
Pulkit Kapur é o líder de produto do programa Alexa Teacher Model com Alexa AI, com foco em inteligência generalizada e aplicações dos modelos de fundação multimodais multitarefa da Alexa.
- AI
- arte ai
- gerador de arte ai
- ai robô
- Amazon Sage Maker
- JumpStart do Amazon SageMaker
- inteligência artificial
- certificação de inteligência artificial
- inteligência artificial em bancos
- robô de inteligência artificial
- robôs de inteligência artificial
- software de inteligência artificial
- Aprendizado de máquina da AWS
- blockchain
- conferência blockchain ai
- Coingenius
- inteligência artificial conversacional
- conferência de criptografia ai
- dall's
- deep learning
- Fundamental (100)
- google ai
- aprendizado de máquina
- platão
- platão ai
- Inteligência de Dados Platão
- Jogo de Platão
- PlatãoData
- jogo de platô
- escala ai
- sintaxe
- zefirnet