A IA generativa está no meio de um período de crescimento impressionante. Modelos de fundação cada vez mais capazes estão sendo lançados continuamente, com grandes modelos de linguagem (LLMs) sendo uma das classes de modelo mais visíveis. LLMs são modelos compostos por bilhões de parâmetros treinados em extensos corpora de texto, até centenas de bilhões ou até mesmo um trilhão de tokens. Esses modelos provaram ser extremamente eficazes para uma ampla gama de tarefas baseadas em texto, desde respostas a perguntas até análises de sentimentos.
O poder dos LLMs vem de sua capacidade de aprender e generalizar a partir de dados de treinamento extensos e diversos. O treinamento inicial desses modelos é realizado com diversos objetivos, supervisionados, não supervisionados ou híbridos. A conclusão ou imputação de texto é um dos objetivos não supervisionados mais comuns: dado um pedaço de texto, o modelo aprende a prever com precisão o que vem a seguir (por exemplo, prever a próxima frase). Os modelos também podem ser treinados de forma supervisionada usando dados rotulados para realizar um conjunto de tarefas (por exemplo, esta crítica de filme é positiva, negativa ou neutra). Se o modelo é treinado para conclusão de texto ou alguma outra tarefa, frequentemente não é a tarefa para a qual os clientes desejam usar o modelo.
Para melhorar o desempenho de um LLM pré-treinado em uma tarefa específica, podemos ajustar o modelo usando exemplos da tarefa de destino em um processo conhecido como instrução de ajuste fino. O ajuste fino de instrução usa um conjunto de exemplos rotulados na forma de pares {prompt, response} para treinar ainda mais o modelo pré-treinado para prever adequadamente a resposta dada ao prompt. Este processo modifica os pesos do modelo.
Este post descreve como realizar o ajuste fino de instrução de um LLM, ou seja, FLAN T5 XL, usando Início rápido do Amazon SageMaker. Demonstramos como fazer isso usando a IU do Jumpstart e um notebook em Estúdio Amazon SageMaker. Você pode encontrar o caderno de acompanhamento no exemplos de amazon-sagemaker Repositório GitHub.
Visão geral da solução
A tarefa de destino neste post é, dado um pedaço de texto no prompt, retornar perguntas relacionadas ao texto, mas que não podem ser respondidas com base nas informações que ele contém. Esta é uma tarefa útil para identificar informações ausentes em uma descrição ou identificar se uma consulta precisa de mais informações para ser respondida.
Os modelos FLAN T5 são instruções ajustadas em uma ampla gama de tarefas para aumentar o desempenho zero-shot desses modelos em muitas tarefas comuns[1]. O ajuste fino de instruções adicionais para uma determinada tarefa do cliente pode aumentar ainda mais a precisão desses modelos, especialmente se a tarefa de destino não tiver sido usada anteriormente para treinar um modelo FLAN T5, como é o caso de nossa tarefa.
Em nossa tarefa de exemplo, estamos interessados em gerar perguntas relevantes, mas não respondidas. Para esse fim, usamos um subconjunto da versão 2 do Stanford Question Answering Dataset (SQuAD2.0)[2] para ajustar o modelo. Este conjunto de dados contém perguntas feitas por anotadores humanos em um conjunto de artigos da Wikipédia. Além das perguntas com respostas, o SQuAD2.0 contém cerca de 50,000 perguntas sem resposta. Essas perguntas são plausíveis, mas não podem ser respondidas diretamente a partir do conteúdo dos artigos. Nós só usamos as perguntas irrespondíveis. Nossos dados são estruturados como um arquivo JSON Lines, com cada linha contendo um contexto e uma pergunta.
Pré-requisitos
Para começar, tudo o que você precisa é de uma conta da AWS na qual possa usar o Studio. Você precisará criar um perfil de usuário para o Studio se ainda não tiver um.
Ajuste o FLAN-T5 com a interface do usuário do Jumpstart
Para ajustar o modelo com a IU do Jumpstart, conclua as seguintes etapas:
- No console do SageMaker, abra Studio.
- Debaixo Início rápido do SageMaker no painel de navegação, escolha Modelos, notebooks, soluções.
Você verá uma lista de modelos básicos, incluindo o FLAN T5 XL, marcado como ajustável.
- Escolha Ver modelo.
- Debaixo Fonte de dados, você pode fornecer o caminho para seus dados de treinamento. A fonte dos dados usados nesta postagem é fornecida por padrão.
- Você pode manter o valor padrão para a configuração de implantação (incluindo tipo de instância), segurança e hiperparâmetros, mas deve aumentar o número de épocas para pelo menos três para obter bons resultados.
- Escolha Trem para treinar o modelo.
Você pode acompanhar o status do trabalho de treinamento na interface do usuário.
- Quando o treino estiver completo (após cerca de 53 minutos no nosso caso), escolha Implantação para implantar o modelo ajustado.
Depois que o ponto de extremidade é criado (alguns minutos), você pode abrir um notebook e começar a usar seu modelo ajustado.
Ajuste o FLAN-T5 usando um notebook Python
Nosso notebook de exemplo mostra como usar o Jumpstart e o SageMaker para ajustar e implantar programaticamente um modelo FLAN T5 XL. Pode ser executado no Studio ou localmente.
Nesta seção, primeiro percorremos algumas configurações gerais. Em seguida, você ajusta o modelo usando os conjuntos de dados SQuADv2. Em seguida, você implanta a versão pré-treinada do modelo por trás de um endpoint do SageMaker e faz o mesmo com o modelo ajustado. Por fim, você pode consultar os endpoints e comparar a qualidade da saída do modelo pré-treinado e ajustado. Você descobrirá que a saída do modelo ajustado é de qualidade muito superior.
Pré-requisitos de configuração
Comece instalando e atualizando os pacotes necessários. Reinicie o kernel após executar o seguinte código:
Em seguida, obtenha a função de execução associada à instância de notebook atual:
Você pode definir um menu suspenso conveniente que listará os tamanhos de modelo disponíveis para ajuste fino:
O Jumpstart recupera automaticamente os tipos de instância de treinamento e inferência apropriados para o modelo que você escolheu:
Agora você está pronto para começar o ajuste fino.
Retreine o modelo no conjunto de dados de ajuste fino
Após a conclusão da configuração, conclua as seguintes etapas:
Use o código a seguir para recuperar o URI dos artefatos necessários:
Os dados de treinamento estão localizados em um arquivo público Serviço de armazenamento simples da Amazon (Amazon S3).
Use o código a seguir para apontar para o local dos dados e configurar o local de saída em um bloco em sua conta:
Os dados originais não estão em um formato que corresponda à tarefa para a qual você está ajustando o modelo, então você pode reformatá-lo:
Agora você pode definir alguns hiperparâmetros para o treinamento:
Agora você está pronto para iniciar o trabalho de treinamento:
Dependendo do tamanho dos dados de ajuste fino e do modelo escolhido, o ajuste fino pode levar algumas horas.
Você pode monitorar métricas de desempenho, como perda de treinamento e validação usando Amazon CloudWatch durante o treinamento. Convenientemente, você também pode buscar o instantâneo mais recente das métricas executando o seguinte código:
Quando o treinamento estiver completo, você terá um modelo ajustado em model_uri
. Vamos usá-lo!
Você pode criar dois endpoints de inferência: um para o modelo pré-treinado original e outro para o modelo ajustado. Isso permite que você compare a saída de ambas as versões do modelo. Na próxima etapa, você implanta um endpoint de inferência para o modelo pré-treinado. Em seguida, você implanta um endpoint para seu modelo ajustado.
Implante o modelo pré-treinado
Vamos começar implantando o modelo pré-treinado para recuperar o URI da imagem do Docker de inferência. Esta é a imagem base do contêiner Hugging Face. Use o seguinte código:
Agora você pode criar o endpoint e implantar o modelo pré-treinado. Observe que você precisa passar a classe Predictor ao implantar o modelo por meio da classe Model para poder executar a inferência por meio da API do SageMaker. Veja o seguinte código:
A criação do endpoint e a implantação do modelo podem levar alguns minutos, então seu endpoint está pronto para receber chamadas de inferência.
Implante o modelo ajustado
Vamos implantar o modelo ajustado em seu próprio endpoint. O processo é quase idêntico ao que usamos anteriormente para o modelo pré-treinado. A única diferença é que usamos o nome do modelo e o URI ajustados:
Quando esse processo é concluído, os modelos pré-treinados e ajustados são implantados atrás de seus próprios endpoints. Vamos comparar suas saídas.
Gerar saída e comparar os resultados
Defina algumas funções utilitárias para consultar o terminal e analisar a resposta:
No próximo trecho de código, definimos o prompt e os dados de teste. O descreve nossa tarefa de destino, que é gerar perguntas relacionadas ao texto fornecido, mas que não podem ser respondidas com base nele.
Os dados do teste consistem em três parágrafos diferentes, um na cidade australiana de Adelaide do primeiros dois parágrafos da página da Wikipédia, um sobre Loja de blocos elásticos da Amazon (Amazônia EBS) da Documentação do Amazon EBSe um dos Amazon Comprehend do Documentação do Amazon Comprehend. Esperamos que o modelo identifique questões relacionadas a esses parágrafos, mas que não podem ser respondidas com as informações fornecidas neles.
Agora você pode testar os endpoints usando os artigos de exemplo
Dados de teste: Adelaide
Usamos o seguinte contexto:
A resposta do modelo pré-treinado é a seguinte:
As respostas do modelo ajustado são as seguintes:
Dados de teste: Amazon EBS
Usamos o seguinte contexto:
As respostas do modelo pré-treinado são as seguintes:
As respostas do modelo ajustado são as seguintes:
Dados de teste: Amazon Comprehend
Usamos o seguinte contexto:
As respostas do modelo pré-treinado são as seguintes:
As respostas do modelo ajustado são as seguintes:
A diferença na qualidade de saída entre o modelo pré-treinado e o modelo ajustado é gritante. As perguntas fornecidas pelo modelo ajustado abrangem uma gama mais ampla de tópicos. São perguntas sistematicamente significativas, o que nem sempre é o caso do modelo pré-treinado, conforme ilustrado no exemplo do Amazon EBS.
Embora isso não constitua uma avaliação formal e sistemática, é claro que o processo de ajuste fino melhorou a qualidade das respostas do modelo nessa tarefa.
limpar
Por fim, lembre-se de limpar e excluir os endpoints:
Conclusão
Nesta postagem, mostramos como usar o ajuste fino de instrução com modelos FLAN T5 usando a interface do usuário do Jumpstart ou um notebook Jupyter em execução no Studio. Fornecemos um código que explica como treinar novamente o modelo usando dados para a tarefa de destino e implantar o modelo ajustado por trás de um endpoint. A tarefa de destino nesta postagem era identificar perguntas relacionadas a um pedaço de texto fornecido na entrada, mas que não pode ser respondida com base nas informações fornecidas nesse texto. Demonstramos que um modelo ajustado para esta tarefa específica retorna melhores resultados do que um modelo pré-treinado.
Agora que você sabe como fazer o ajuste fino de um modelo com o Jumpstart, você pode criar modelos poderosos personalizados para sua aplicação. Reúna alguns dados para o seu caso de uso, carregue-os no Amazon S3 e use a interface do usuário do Studio ou o notebook para ajustar um modelo FLAN T5!
Referências
[1] Chung, Hyung Won, e outros. “Modelos de linguagem sintonizados com instruções de escalabilidade.” pré-impressão arXiv arXiv:2210.11416 (2022).
[2] Rajpurkar, Pranav, Robin Jia e Percy Liang. “Saiba o que você não sabe: perguntas sem resposta para o SQUAD.” Anais da 56ª Reunião Anual da Association for Computational Linguistics (Volume 2: Short Papers). 2018.
Sobre os autores
Laurent Callot é um cientista aplicado principal e gerente do AWS AI Labs que trabalhou em uma variedade de problemas de aprendizado de máquina, desde modelos fundamentais e IA generativa até previsão, detecção de anomalias, causalidade e operações de IA.
Andrey Kan é um cientista aplicado sênior no AWS AI Labs com interesses e experiência em diferentes campos de aprendizado de máquina. Isso inclui pesquisas sobre modelos de fundação, bem como aplicativos de ML para gráficos e séries temporais.
Dr. é um cientista aplicado sênior com algoritmos integrados do Amazon SageMaker e ajuda a desenvolver algoritmos de aprendizado de máquina. Ele obteve seu PhD pela University of Illinois Urbana Champaign. Ele é um pesquisador ativo em aprendizado de máquina e inferência estatística e publicou muitos artigos em conferências NeurIPS, ICML, ICLR, JMLR, ACL e EMNLP.
Baris Kurt é um cientista aplicado no AWS AI Labs. Seus interesses estão na detecção de anomalias de séries temporais e modelos de fundação. Ele adora desenvolver sistemas de ML amigáveis.
Jonas Kubler é um cientista aplicado no AWS AI Labs. Ele está trabalhando em modelos básicos com o objetivo de facilitar aplicativos específicos de casos de uso.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoAiStream. Inteligência de Dados Web3. Conhecimento Amplificado. Acesse aqui.
- Cunhando o Futuro com Adryenn Ashley. Acesse aqui.
- Compre e venda ações em empresas PRE-IPO com PREIPO®. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/instruction-fine-tuning-for-flan-t5-xl-with-amazon-sagemaker-jumpstart/
- :tem
- :é
- :não
- $UP
- 000
- 1
- 10
- 100
- 11
- 12
- 13
- 17
- 1M
- 20
- 2018
- 2022
- 22
- 40
- 50
- 60
- 7
- 8
- 80
- 9
- a
- Capaz
- Sobre
- ACEITAR
- Acesso
- acessível
- realizar
- Conta
- precisão
- exatamente
- ativo
- Adição
- Adicional
- adequadamente
- Depois de
- AI
- AL
- algoritmos
- Todos os Produtos
- permite
- já
- tb
- sempre
- Amazon
- Amazon Comprehend
- Amazon Sage Maker
- JumpStart do Amazon SageMaker
- Amazon Web Services
- an
- análise
- analisar
- e
- anual
- detecção de anomalia
- respostas
- qualquer
- api
- APIs
- Aplicação
- aplicações
- aplicado
- apropriado
- SOMOS
- ÁREA
- argumento
- artigo
- artigos
- AS
- associado
- Associação
- At
- Australia
- australiano
- automaticamente
- disponível
- AWS
- base
- baseado
- BE
- Beach
- viga
- atrás
- ser
- abaixo
- Melhor
- entre
- bilhões
- Bloquear
- corpo
- pino
- ambos
- construídas em
- mas a
- by
- chamado
- chamadas
- CAN
- não podes
- capacidades
- capaz
- Capacidade
- capital
- casas
- Centro
- alterar
- escolha
- Escolha
- escolheu
- escolhido
- Cidades
- classe
- aulas
- classificação
- remover filtragem
- cliente
- Costa
- código
- vem
- comum
- comparar
- completar
- realização
- composta
- compreender
- conferências
- Configuração
- cônsul
- constituir
- Recipiente
- contém
- conteúdo
- contexto
- contínuo
- continuamente
- Conveniente
- corresponde
- poderia
- Casal
- crio
- criado
- Criar
- criação
- Atual
- personalizadas
- cliente
- Clientes
- personalizado
- dados,
- bases de dados
- conjuntos de dados
- Padrão
- demonstrar
- demonstraram
- Dependendo
- implantar
- implantado
- Implantação
- desenvolvimento
- descrição
- Detecção
- Determinar
- desenvolver
- em desenvolvimento
- desenvolve
- dispositivo
- Dispositivos/Instrumentos
- diferença
- diferente
- diretamente
- Ecrã
- diferente
- do
- Estivador
- documento
- INSTITUCIONAIS
- parece
- Não faz
- dominante
- não
- distância
- durante
- dinamicamente
- E & T
- cada
- Mais cedo
- Leste
- Eficaz
- ou
- elementos
- outro
- final
- Ponto final
- Todo
- entidades
- entidade
- época
- épocas
- especialmente
- avaliação
- Mesmo
- examinar
- exemplo
- exemplos
- executar
- execução
- esperar
- vasta experiência
- explicando
- exposto
- se estende
- extensão
- extenso
- extrato
- extremamente
- Rosto
- facilitar
- longe
- Moda
- Característica
- Funcionalidades
- poucos
- Campos
- Envie o
- Arquivos
- Finalmente
- Encontre
- final
- Primeiro nome
- seguinte
- segue
- Escolha
- formulário
- formal
- formato
- encontrado
- Foundation
- Quarto
- Quadro
- freqüentemente
- amigável
- da
- funções
- mais distante
- reunir
- Geral
- gerar
- gerado
- gerando
- geração
- generativo
- IA generativa
- ter
- GitHub
- dado
- meta
- Bom estado, com sinais de uso
- gráficos
- ótimo
- maior
- Growth
- Queijos duros
- disco rígido
- Ter
- he
- ajuda
- superior
- Hills
- sua
- HORÁRIO
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTML
- http
- HTTPS
- Abraçando o Rosto
- humano
- Centenas
- HÍBRIDO
- i
- ID
- idêntico
- identificar
- ids
- if
- Illinois
- imagem
- importar
- melhorar
- melhorado
- in
- incluir
- Incluindo
- Crescimento
- cada vez mais
- independentemente
- info
- INFORMAÇÕES
- informativo
- do estado inicial,
- entrada
- inputs
- insights
- instalar
- instalando
- instância
- interessado
- interesses
- Introdução
- IT
- ESTÁ
- Trabalho
- Empregos
- jpg
- json
- Guarda
- Chave
- Saber
- conhecido
- Laboratório
- língua
- Idiomas
- grande
- maior
- lançamento
- APRENDER
- aprendizagem
- mínimo
- Comprimento
- Nível
- vida
- como
- Line
- linhas
- Lista
- LLM
- localmente
- localizado
- localização
- sublime
- longo
- longo prazo
- fora
- ama
- máquina
- aprendizado de máquina
- Gerente
- muitos
- marcado
- max
- Posso..
- significativo
- reunião
- menções
- Menu
- Métrica
- Minutos
- desaparecido
- ML
- modelo
- modelos
- Monitore
- mais
- a maioria
- MONTE
- filme
- muito
- devo
- nome
- nomeadamente
- natural
- Processamento de linguagem natural
- Navegação
- necessário
- você merece...
- necessário
- Cria
- negativo
- networking
- Neutro
- Novo
- novos produtos
- Próximo
- PNL
- Norte
- caderno
- agora
- número
- objetivos
- obter
- of
- on
- ONE
- só
- aberto
- or
- original
- Outros
- A Nossa
- saída
- Acima de
- override
- próprio
- proprietários
- pacotes
- pares
- pão
- papéis
- parâmetros
- parte
- particular
- particularmente
- passar
- caminho
- Pessoas
- Realizar
- atuação
- significativo
- persistência
- Frases
- platão
- Inteligência de Dados Platão
- PlatãoData
- plausível
- ponto
- população
- positivo
- Publique
- poder
- poderoso
- predizer
- prevendo
- Predictor
- anteriormente
- primário
- Diretor
- impressão
- problemas
- processo
- em processamento
- Produtos
- Perfil
- Progresso
- comprovado
- fornecer
- fornecido
- fornece
- público
- publicado
- Python
- qualidade
- consultas
- questão
- Frequentes
- rapidamente
- acaso
- alcance
- Cru
- pronto
- em tempo real
- receber
- recentemente
- reconhecimento
- reconhecer
- reconhecendo
- recomendar
- Recomenda
- em relação a
- regex
- região
- relacionado
- liberado
- relevante
- depender
- lembrar
- repositório
- requerer
- requeridos
- exige
- pesquisa
- investigador
- residentes
- Recursos
- resposta
- respostas
- restringir
- Resultados
- retorno
- Retorna
- rever
- Robin
- Tipo
- Execute
- corrida
- s
- sábio
- mesmo
- digitalização
- Cientista
- Pesquisar
- Segundo
- Seção
- segurança
- Vejo
- doadores,
- senior
- sentença
- sentimento
- Série
- serviço
- Serviços
- Sessão
- conjunto
- Conjuntos
- instalação
- vários
- Baixo
- rede de apoio social
- mostrou
- Shows
- simples
- Tamanho
- tamanhos
- pequeno
- Instantâneo
- So
- Redes Sociais
- As redes sociais
- alguns
- fonte
- Sul
- específico
- divisão
- Stanford
- forte
- começo
- começado
- Estado
- estatístico
- Status
- Passo
- Passos
- Ainda
- armazenamento
- loja
- estrutura
- estruturada
- estudo
- Assombroso
- tal
- ajuda
- Suportado
- Em torno da
- .
- sistemas
- Tire
- Target
- Tarefa
- tarefas
- modelo
- teste
- do que
- que
- A
- A área
- O capital
- as informações
- A fonte
- O Estado
- O Ocidente
- o mundo
- deles
- Eles
- então
- lá no
- Este
- deles
- isto
- aqueles
- três
- Através da
- tempo
- Séries temporais
- para
- Tokens
- topo
- Temas
- tocar
- pista
- tradicional
- Trem
- treinado
- Training
- Trilhão
- verdadeiro
- dois
- tipo
- tipos
- ui
- compreensão
- universidade
- Atualizações
- carregado
- usar
- caso de uso
- usava
- Utilizador
- utilização
- utilidade
- validação
- valor
- Valores
- variedade
- versão
- vincent
- visível
- volume
- volumes
- W
- queremos
- foi
- Caminho..
- we
- web
- serviços web
- BEM
- Ocidente
- O Quê
- O que é a
- quando
- se
- qual
- enquanto
- QUEM
- Largo
- Ampla variedade
- mais largo
- largura
- Wikipedia
- precisarão
- de
- dentro
- Ganhou
- Word
- trabalhou
- trabalhar
- mundo
- seria
- Vocês
- investimentos
- zefirnet