Uma tecnologia mais recente, os modelos de linguagem grandes (LLMs, na sigla em inglês) preveem um token ou uma sequência de tokens, às vezes com muitos parágrafos de tokens previstos. Um token pode ser uma palavra, uma subpalavra (um subconjunto de uma palavra) ou até mesmo um único caractere. Os LLMs fazem previsões muito melhores do que modelos de linguagem N-gram ou redes neurais recorrentes porque:
- Os LLMs contêm muito mais parâmetros do que os modelos recorrentes.
- Os LLMs coletam muito mais contexto.
Esta seção apresenta a arquitetura mais bem-sucedida e amplamente usada para criar LLMs: o transformador.
O que é um transformador?
Os transformadores são a arquitetura de última geração para uma ampla variedade de aplicativos de modelo de linguagem, como tradução:
Os transformadores completos consistem em um codificador e um decodificador:
- Um codificador converte o texto de entrada em uma representação intermediária. Um codificador é uma rede neural enorme.
- Um decodificador converte essa representação intermediária em texto útil. Um decodificador também é uma rede neural enorme.
Por exemplo, em um tradutor:
- O codificador processa o texto de entrada (por exemplo, uma frase em inglês) em uma representação intermediária.
- O decodificador converte essa representação intermediária em texto de saída (por exemplo, a frase equivalente em francês).
O que é autoatenção?
Para melhorar o contexto, os transformadores dependem muito de um conceito chamado autoatenção. De fato, em nome de cada token de entrada, a auto-atenção faz a seguinte pergunta:
"Em que medida cada outro token de entrada afeta a interpretação desse token?"
O "self" em "autoatenção" se refere à sequência de entrada. Alguns mecanismos de atenção ponderam relações de tokens de entrada em tokens em uma sequência de saída, como uma tradução ou em outra sequência. No entanto, a autoatenção pondera apenas a importância das relações entre tokens na sequência de entrada.
Para simplificar, suponha que cada token seja uma palavra e que o contexto completo seja apenas uma frase. Considere a seguinte frase:
The animal didn't cross the street because it was too tired.
A frase anterior contém onze palavras. Cada uma das onze palavras está a prestar atenção nas outras dez, se perguntando o quanto cada uma delas é importante para si mesma. Por exemplo, observe que a frase contém o pronome it. Os pronomes costumam ser ambíguos. O pronome it geralmente se refere a um substantivo ou sintagma nominal recente, mas na frase de exemplo, a qual substantivo recente o it se refere: o animal ou a rua?
O mecanismo de autoatenção determina a relevância de cada palavra próxima para o pronome ele. A Figura 3 mostra os resultados. Quanto mais azul a linha, mais importante é a palavra para o pronome it. Ou seja, animal é mais importante do que street para o pronome it.
Por outro lado, suponha que a última palavra da frase mude da seguinte forma:
The animal didn't cross the street because it was too wide.
Nesta frase revisada, a autoatenção classificaria street como mais relevante do que animal para o pronome it.
Alguns mecanismos de auto-atenção são bidirecionais, ou seja, eles calculam pontuações de relevância para tokens anteriores e posteriores à palavra que está sendo focada. Por exemplo, na Figura 3, observe que as palavras em ambos os lados de it são examinadas. Assim, um mecanismo de autoatenção bidirecional pode coletar o contexto das palavras em ambos os lados da palavra que está sendo atendida. Por outro lado, um mecanismo de autoatenção unidirecional só pode coletar o contexto das palavras em um lado da palavra que está sendo atendida. A auto-atenção bidirecional é especialmente útil para gerar representações de sequências inteiras, enquanto os aplicativos que geram sequências token por token exigem auto-atenção unidirecional. Por esse motivo, os codificadores usam a auto-atenção bidirecional, enquanto os decodificadores usam a unidirecional.
O que é autoatenção com vários cabeçalhos?
Cada camada de auto-atenção geralmente é composta por vários cabeçalhos de auto-atenção. A saída de uma camada é uma operação matemática (por exemplo, média ponderada ou produto escalar) da saída das cabeças diferentes.
Como cada camada de autoatenção é inicializada com valores aleatórios, diferentes cabeças podem aprender diferentes relações entre cada palavra que recebe atenção e as palavras próximas. Por exemplo, a camada de autoatenção descrita na seção anterior se concentra em determinar a qual substantivo o pronome ele se referia. No entanto, outras camadas de autoatenção podem aprender a relevância gramatical de cada palavra para todas as outras ou aprender outras interações.
Por que os Transformers são tão grandes?
Os transformadores contêm centenas de bilhões ou até trilhões de parâmetros. Este curso geralmente recomenda a criação de modelos com um número menor de parâmetros em vez de modelos com um número maior de parâmetros. Afinal, um modelo com um número menor de parâmetros usa menos recursos para fazer previsões do que um modelo com um número maior de parâmetros. No entanto, pesquisas mostram que os transformadores com mais parâmetros superam consistentemente os transformadores com menos parâmetros.
Mas como um LLM gera texto?
Você já viu como os pesquisadores treinam LLMs para prever uma ou duas palavras ausentes, e talvez não tenha ficado impressionado. Afinal, a previsão de uma ou duas palavras é essencialmente o recurso de preenchimento automático integrado a vários textos, e-mails e softwares de criação. Você pode estar se perguntando como os LLMs podem gerar frases, parágrafos ou haikus sobre arbitragem.
Na verdade, os LLMs são basicamente mecanismos de preenchimento automático que podem prever (completar) automaticamente milhares de tokens. Por exemplo, considere uma frase seguida por uma frase mascarada:
My dog, Max, knows how to perform many traditional dog tricks. ___ (masked sentence)
Um LLM pode gerar probabilidades para a frase mascarada, incluindo:
Probabilidade | Palavras |
---|---|
3,1% | Por exemplo, ele pode sentar, ficar e rolar. |
2,9% | Por exemplo, ele sabe como sentar, ficar e rolar. |
Um LLM suficientemente grande pode gerar probabilidades para parágrafos e textos inteiros. Pense nas perguntas de um usuário para um LLM como a frase "dada" seguida por uma máscara imaginária. Exemplo:
User's question: What is the easiest trick to teach a dog? LLM's response: ___
O LLM gera probabilidades para várias respostas possíveis.
Como outro exemplo, um LLM treinado com um número enorme de "problemas de palavras" matemáticos pode dar a impressão de raciocínio matemático sofisticado. No entanto, esses LLMs apenas preenchem automaticamente um comando de problema de palavra.
Benefícios dos LLMs
Os LLMs podem gerar textos claros e fáceis de entender para diversos públicos-alvo. Os LLMs podem fazer previsões sobre tarefas em que são explicitamente treinados. Alguns pesquisadores afirmam que os LLMs também podem fazer previsões para entradas em que não foram treinados explicitamente, mas outros pesquisadores refutaram essa afirmação.
Problemas com LLMs
O treinamento de um LLM envolve muitos problemas, incluindo:
- Coletar um conjunto de treinamento enorme.
- Consumir vários meses e recursos computacionais e eletricidade enormes.
- Como resolver desafios de paralelismo.
O uso de LLMs para inferir previsões causa os seguintes problemas:
- Os LLMs alucinam, o que significa que as previsões deles geralmente contêm erros.
- Os LLMs consomem quantidades enormes de recursos computacionais e eletricidade. O treinamento de LLMs em conjuntos de dados maiores geralmente reduz a quantidade de recursos necessários para inferência, embora os conjuntos de treinamento maiores incorram em mais recursos de treinamento.
- Como todos os modelos de ML, os LLMs podem apresentar todos os tipos de viés.