- Documentos da API
- CLI
- Guias de integração
- Integração do Exchange com usuário do serviço do Azure
- Integração do Exchange com Autenticação de Aplicativo do Azure
- Automação em tempo real
- Como buscar dados para o Tableau com o Python
- Integração do Elasticsearch
- Integração do EWS auto-hospedado
- Estrutura de automação da UiPath
- Atividades do UiPath Marketplace
- Atividades oficiais da UiPath
- Blog
- Como as máquinas aprendem a entender as palavras: um guia para incorporações ao NLP
- Aprendizado baseado em solicitação com Transformers
- Efficient Transformers II: extração de conhecimento e ajustes finos
- Transformers eficientes I: mecanismos de atenção
- Modelagem de intenção hierárquica profunda não supervisionada: obtenção de valor sem dados de treinamento
- Corrigindo viés de anotação com Communications Mining
- Aprendizado ativo: melhores modelos de ML em menos tempo
- Está tudo nos números - avaliando o desempenho do modelo com métricas
- Por que a validação de modelos é importante
- Comparação do Communications Mining e do Google AutoML para inteligência de dados conversacional
Aprendizado baseado em solicitação com Transformers
Os modelos de aprendizado de máquina da Communications Mining usam uma arquitetura chamada Transformer, que, ao longo dos últimos anos, alcançou resultados de ponta na maioria das tarefas de processamento de linguagem natural (NLP). A abordagem ir para foi tomar um modelo de idioma Transformer pré-treinado e ajustá-lo para a tarefa de interesse.
Mais recentemente, examinamos o tópico 'prompt' — um grupo promissor de métodos que está ficando cada vez mais popular. Elas envolvem a especificação direta da tarefa em linguagem natural para o modelo de linguagem pré-treinado interpretar e concluir.
Métodos baseados em solicitação têm benefícios potenciais significativos; então, você deve usá-los? Este post vai:
- Ilustrar a diferença entre o ajuste fino tradicional e os avisos.
- Explique em detalhes como alguns métodos populares baseados em prompt funcionam.
- Converse sobre os prós e os contras de métodos baseados em solicitação e forneça nossa recomendação sobre se deve ou não usá-los.
Ao longo dos últimos anos, o campo do NLP mudou do uso de incorporações de palavras estáticas pré-treinadas, como Word2vec e GloVe, para o uso de grandes modelos de linguagem baseados em Transformer, como BERT e GPT-3.
Esses modelos de idioma são primeiro pré-treinados usando dados não anotados, com o objetivo de poder codificar o significado semântico de sequências de texto (por exemplo, frases/documentos). O objetivo do pré-treinamento é aprender representações que serão úteis de modo geral para qualquer tarefa downstream.
Após o pré-treinamento, o modelo de idioma normalmente é ajustado (ou seja, os parâmetros pré-treinados são treinados posteriormente) para uma tarefa downstream, por exemplo, reconhecimento de intenção, classificação de sentimento, reconhecimento de campo geral nomeado, etc. O processo de ajuste fino requer dados de treinamento anotados, e o modelo é ajustado separadamente para cada tarefa.
Pré-treinamento
Os Transformers primeiro codificam cada palavra de uma sequência de texto em um vetor de números conhecido como “incorporação”. A camada de incorporação é então seguida por uma sequência de camadas de atenção, que são usadas para construir as representações internas do modelo da sequência. Por fim, há a camada de previsão, cuja função objetivo depende do tipo de pré-treinamento utilizado.
Os Transformers são pré-treinados de maneira não supervisionada. Essa etapa é feita na maioria das vezes usando um de dois tipos de treinamento:
- Modelagem de idioma mascarado (um exemplo é mostrado na Figura 1)
- Algumas palavras escolhidas aleatoriamente são removidas da sequência e o modelo é treinado para prever essas palavras que faltam.
- Previsão da próxima palavra (um exemplo é mostrado na Figura 2)
- O modelo tem que prever cada palavra na sequência, condicionando aquelas que ocorreram antes dela.
Ajuste fino
Após o pré-treinamento, o modelo é ajustado para uma tarefa supervisionada a jusante (por exemplo, reconhecimento de intenção). Isso geralmente envolve pegar a representação na etapa final de uma sequência (ou o meio das representações) e passá-la por uma pequena rede feedforward para fazer uma previsão (consulte a Figura 3 para obter um exemplo). Na maioria das vezes, os parâmetros do modelo de idioma pré-treinado e do modelo feedforward são atualizados durante o processo de ajuste fino.
Suponha que tenhamos um modelo de idioma pré-treinado com o qual queremos executar uma tarefa downstream. Em vez de usar as representações do modelo de idioma como entradas para outro modelo para resolver a tarefa (conforme descrito acima), podemos usar diretamente sua capacidade de modelar a linguagem natural fornecendo-lhe um "prompt" e fazendo-o preencher os espaços em branco ou para completar a sequência (um exemplo é mostrado na Figura 4).
Também é possível fornecer exemplos no prompt para mostrar ao modelo como a tarefa deve ser concluída (consulte a Figura 5 para obter um exemplo). Isso é conhecido como aprendizado K -shot, onde K se refere ao número de exemplos fornecidos. Isso significa que a Figura 4 é um exemplo de aprendizado disparado.
Ao usar prompts, o modelo ainda pode ser ajustado (da mesma maneira descrita acima), mas isso geralmente não é necessário, como vamos ver a seguir.
No restante desta seção, revisaremos alguns métodos populares baseados em prompt; veja este documento de pesquisa para uma cobertura mais abrangente.
GPT-3
O GPT-3 é um grande modelo de idioma baseado no Transformer que é treinado usando o objetivo de previsão da próxima palavra em uma versão filtrada do conjunto de dados do Common rastreamento. Além de ser conhecido por gerar sequências de texto de notavelmente alta qualidade, o GPT-3 também é usado para executar tarefas supervisionadas nas configurações de disparo zero, disparo único e poucas disparos (10K100) sem qualquer ajuste fino. Os autores treinam modelos de diferentes tamanhos, o maior com 175 bilhões de parâmetros.
No geral, a GPT-3 obtém bons resultados nas configurações de disparo zero e disparo único. Na configuração de poucas disparos, às vezes ele tem um desempenho melhor do que os modelos de última geração, mesmo que possam ser ajustados em grandes conjuntos de dados anotados. Na grande maioria das tarefas, o desempenho do GPT-3 melhora tanto com o tamanho do modelo quanto com o número de exemplos mostrados no prompt.
No entanto, ele também tem dificuldades com certas tarefas, em particular aquelas que envolvem a comparação de várias sequências de texto. Elas incluem:
- Inferência em linguagem natural
- O modelo recebe duas frases e tem que decidir se a segunda implica, contraria ou é neutra em relação à primeira.
- Compreensão de leitura
- O modelo recebe um parágrafo e tem que responder a perguntas sobre ele.
Os autores supõem que isso ocorra porque o GPT-3 é treinado para prever a próxima palavra, ou seja, de maneira da esquerda para a direita (em vez de bidirecional).
Treinamento de exploração de padrões
Para uma determinada tarefa, o Treinamento de Exploração de Padrão (PET) define um conjunto de solicitações, cada uma com exatamente um token de máscara, que são alimentados para um modelo de idioma que foi pré-treinado com o objetivo de modelagem de linguagem mascarada. O processo Pet funciona da seguinte maneira:
- Ajuste um modelo de idioma separado para cada solicitação, criando um conjunto de modelos para a tarefa.
- Use esse conjunto de modelos ajustados para gerar rótulos 'soft' para um conjunto de pontos de dados não anotados, de uma maneira semelhante à depuração de conhecimento.
- Use esses rótulos suaves para ajustar o modelo de idioma final da maneira definida na seção de ajuste fino acima (ou seja não usando prompts).
O Automatizado também foi estendido para funcionar com vários tokens de máscara e funciona bem mesmo quando as etapas 2 e 3 acima são ignoradas (ou seja, o conjunto de modelos ajustados da etapa 1 é usado diretamente como o modelo final). Os autores usam o ALBERT como base para o modelo de linguagem mascarada e avaliam o SAP na configuração de 32 disparos. Na maioria das tarefas no parâmetro de referência SuperGLUE, ele supera o GPT-3, embora tenha apenas 0,1% de parâmetros.
Ajuste de solicitação
Ao contrário dos métodos que examinamos até agora, o ajuste de prompt não projeta manualmente os prompts que são alimentados para o modelo. Em vez disso, ela usa incorporações adicionais que podem ser aprendidas, que são diretamente anexadas à sequência na camada de incorporação. Efetivamente, isso pula a etapa de escrever as prompts em linguagem natural e, em vez disso, permite que o modelo aprenda o prompt ideal diretamente na camada de incorporação.
A abordagem de ajuste rápido (mostrada na Figura 6) é baseada no modelo de linguagem T5 pré-treinado. Isso é semelhante ao Transformer original, que foi projetado para realizar a tradução. O modelo T5 tem dois componentes:
- O codificador mapeia a sequência de entrada para representações vetoriais usando um mecanismo de autoatenção, com as incorporações de solicitação aprendíveis sendo inseridas na primeira camada.
- O decodificador gera o texto para classificar o exemplo com base nas representações do codificador, novamente usando um mecanismo de atenção.
O modelo é ajustado em um conjunto de dados anotado completo para cada tarefa, mas apenas as incorporações de prompt são atualizadas (o restante do modelo, que contém a grande maioria dos parâmetros, está congelado após o pré-treinamento). O ajuste de prompt supera significativamente o GPT-3 com poucas disparos, e o maior modelo ajustado de prompt corresponde ao desempenho do ajuste fino completo.
De uma perspectiva prática, a maior vantagem dos métodos baseados em solicitação é que geralmente funcionam bem com quantidades muito pequenas de dados anotados. Por exemplo, com o GPT-3, é possível obter o desempenho de ponta em determinadas tarefas com apenas um exemplo anotado. Embora possa não ser prático executar um modelo do tamanho do GPT-3 em muitas configurações, é possível ter um desempenho melhor do que o GPT-3 na configuração de poucas disparos com um modelo muito menor usando o método API.
De uma perspectiva de modelagem, pode-se discutir que o uso de prompts é uma maneira mais natural de aproveitar modelos de idiomas pré-treinados para tarefas downstream em comparação com o ajuste fino tradicional. Isso ocorre porque, ao usar solicitações, estamos usando o modelo de idioma para gerar o texto que resolve uma tarefa; foi treinado para fazer isso no procedimento de pré-treinamento. Em contrapartida, o ajuste fino tradicional (Figura 3) pode ser considerado uma maneira menos intuitiva de usar modelos de linguagem para tarefas de downstream, porque usa um modelo separado com uma função objetivo completamente diferente em comparação com o procedimento pré-treinamento.
Desvantagens do aprendizado baseado em solicitação
Embora os métodos baseados em prompt sejam promissores, capazes de ter um bom desempenho em tarefas com muito poucos exemplos anotados, eles também possuem algumas desvantagems. Em primeiro lugar, os modelos de idioma são propensos à "alucinações", ou seja, podem gerar texto sem sentido, parcial ou ofensivo. Isso pode tornar esses modelos inutilizáveis em qualquer configuração do mundo real. É possível restringir o texto gerado por modelos de idiomas, mas, dependendo da tarefa, nem sempre é possível especificar um conjunto apropriado de restrições enquanto mantém o desempenho.
Outra desvantagem de muitos desses métodos é que as próprias instruções são projetadas manualmente. Não só é provável que isso seja abaixo do ideal em termos de desempenho, mas a seleção do prompt ideal em si requer dados de validação anotados. O Automated Contorna esse problema usando um conjunto de solicitações, mas isso requer um ajuste fino de um modelo de idioma separado para cada solicitação. Métodos de prompt 'soft' (como ajuste de prompt) não exigem prompts projetados manualmente, mas, em vez disso, exigem conjuntos de dados de treinamento maiores.
Métodos como o GPT-3 descrito acima e o recente modelo PaLM , inserem os exemplos anotados como parte do prompt de linguagem natural e não ajustam o modelo de linguagem em si. Embora isso funcione muito bem no ambiente de aprendizado de poucos disparos, pode ser abaixo do ideal quando houver um conjunto maior de exemplos anotados disponível. Isso ocorre porque apenas um pequeno número de exemplos pode ser inserido no prompt antes de atingir um comprimento máximo de sequência; isso limita o modelo para executar apenas o aprendizado de poucas tentativas.
Neste post, examinamos métodos baseados em solicitação — eles envolvem especificar diretamente a tarefa em linguagem natural para um modelo de linguagem pré-treinado interpretar e concluir.
A solicitação mostra um grande potencial para alcançar um alto desempenho com muito poucos exemplos de treinamento anotados. No entanto, essas técnicas geralmente dependem de prompts projetados manualmente e podem ser propensas a inconsistências, tornando-as inseguros para usar em configurações do mundo real. Portanto, embora esses métodos pareçam promissores, ainda há muita pesquisa a ser feita para torná-los práticos.
Na Communications Mining, estamos pesquisando ativamente para tornar os métodos imediatos seguros de usar, fornecendo estimativas precisas e gerando dados estruturados acionáveis. Os resultados dessa pesquisa serão disponibilizados em breve.
Se você quiser experimentar o Communications Mining em sua empresa, inscreva-se para obter uma avaliação ou assistir a uma demonstração.