Machine learning do zero · Aula 7.2 · 33 de 33 aulas prontas · 12 min
De redes neurais a grandes modelos de linguagem
Em resumo
Um grande modelo de linguagem é treinado para adivinhar o próximo token. A aula parte de um modelo que conta palavras e mostra o efeito da temperatura.
Aquecimento Duas perguntas de aulas anteriores. Um minuto, e a aula nunca fica bloqueada.
O teclado do seu celular sugere a próxima palavra enquanto você digita. Um chatbot escreve redações inteiras, responde perguntas e traduz poemas. São o mesmo tipo de máquina? No coração dos dois existe uma tarefa surpreendentemente modesta: dado o texto até aqui, adivinhar o que vem depois. Esta última lição mostra até onde essa única pergunta pode levar e onde estão os limites dela.
Escolha uma resposta e o seu grau de certeza.
Responda para liberar o experimento.
Experimento interativo
Este experimento interativo funciona em um navegador com JavaScript ativado. O texto ao redor descreve o que ele mostra.
Ver a resposta
Resposta certa: Cerca de 98%
Com temperatura 1, “cachorro” tem 23%, com 0,5 tem 43% e com 0,1 chega a 98%, embora seja só 3 das 13 ocorrências no texto. Uma temperatura baixa afia a distribuição: a palavra mais frequente leva quase tudo. Uma alta (3) a achata para 13%.
Experimente
- Digite uma palavra comum no campo de texto e leia a lista de próximas palavras prováveis e as suas probabilidades. Elas fazem sentido com o que você sabe do texto?
- Mova o controle de temperatura para a esquerda e veja a palavra mais provável ficar com quase toda a probabilidade. Depois mova para a direita e veja as probabilidades se igualarem.
- Teste uma palavra que provavelmente é rara no texto curto. Com tão poucos exemplos para contar, quão confiáveis são as probabilidades que o modelo mostra?
- Siga uma cadeia à mão: digite a próxima palavra mais provável, depois a mais provável depois dela, e assim por diante. A frase que sai soa fluente? Ela chega a algum lugar?
A ideia em poucas palavras
Vamos ver agora, em palavras simples, o que você acabou de manipular.
Um modelo de linguagem atribui probabilidades ao que vem a seguir num texto. Depois de “Eu queria uma xícara de”, a palavra “chá” é provável, “café” também, “cascalho” quase nada. Com essas probabilidades, dá para gerar texto: escolher uma próxima palavra, acrescentá-la e perguntar de novo.
O modelo de linguagem mais simples possível é um modelo de bigramas. Ele lê um conjunto de textos (um corpus) e simplesmente conta qual palavra vem depois de qual. Nesta lição olhamos para um desses, construído com um texto curto escrito para este curso. Para cada palavra, o modelo conhece as palavras que vieram depois dela no corpus, com as suas probabilidades.
Pense numa pessoa que leu um único livro, muitas vezes, e cuja única habilidade é lembrar qual palavra vinha depois de qual. Peça para ela continuar uma frase, e ela vai produzir algo que soa vagamente como o livro — fluente de perto, sem rumo no todo. Essa pessoa é um modelo de bigramas.
Por que funciona
O modelo de bigramas estima a probabilidade da próxima palavra b depois da palavra a a partir de contagens:
P(próxima = b | atual = a) = contagem(a b) / contagem(a)
Se “xícara” aparece dez vezes no corpus e é seguida por “de” sete vezes, o modelo dá a “de” uma probabilidade de 0,7 depois de “xícara”. É só isso — contar e dividir. Aprender, mais uma vez, significa ajustar um modelo a exemplos, e a pontuação é o quanto ele prevê bem a próxima palavra de um texto real.
Para gerar texto, o modelo precisa escolher entre os candidatos, e aqui entra a temperatura. Uma temperatura baixa afia a distribuição: a palavra mais provável vence quase sempre, e o texto fica repetitivo e seguro. Uma temperatura alta achata a distribuição: palavras mais raras ganham uma chance real, e o texto fica mais variado e mais errático. A temperatura não muda o que o modelo sabe, só o quanto ele ousa ao sortear.
Um grande modelo de linguagem (LLM, na sigla em inglês) faz a mesma tarefa com três grandes melhorias. Primeiro, ele prevê tokens — pedaços de palavras —, então consegue lidar com qualquer palavra, mesmo uma que nunca viu inteira. Segundo, em vez de olhar só a palavra anterior, ele é uma rede neural, geralmente um transformer (apresentado em 2017), cujo mecanismo de atenção permite que cada posição olhe para trás por milhares de tokens anteriores e decida quais importam. Terceiro, as probabilidades dele não são contagens, e sim saídas de uma rede com bilhões de pesos, treinada exatamente com as ferramentas deste curso: a perda logarítmica da lição 5 sobre o próximo token, minimizada pela descida de gradiente da lição 4, com a retropropagação da lição 11. Treinada com uma quantidade enorme de texto, a tarefa de adivinhar força a rede a captar gramática, fatos e padrões de raciocínio, porque tudo isso ajuda a prever o que vem depois.
Erro comum
O maior mal-entendido sobre modelos de linguagem é achar que eles procuram as respostas. Eles não consultam um banco de dados; produzem a continuação que o treinamento tornou provável. Na maioria das vezes, ela também é a verdadeira, mas nem sempre — quando o plausível e o verdadeiro se separam, o modelo afirma uma falsidade com fluência, e isso se chama alucinação. O segundo erro é tratar a temperatura como um botão de qualidade. Temperatura baixa não é “mais correta”, só mais previsível; ela combina com respostas factuais, enquanto uma temperatura mais alta combina com brainstorming.
Essa é a jornada inteira: de um limiar numa medida de um tumor a uma rede que prevê a próxima palavra de tudo o que já foi escrito. A receita nunca mudou — uma família de modelos, uma pontuação, uma busca e um teste honesto com dados que o modelo nunca viu. Os links para o Atlas logo abaixo são o lugar para se aprofundar em qualquer etapa.
Pegue o erro da IA
Foi assim que um chatbot respondeu. Uma frase está errada. Qual?
Pergunta: Como um chatbot como você sabe a resposta à minha pergunta?
Mostrar a frase errada
A frase errada: Quando você faz uma pergunta, o modelo procura a resposta em seu banco de dados de fatos verificados e depois a redige com fluência.
Um modelo de linguagem não consulta um banco de dados; ele produz a continuação que o treino tornou provável, assim como o modelo do laboratório só sabe que “o” é seguido de “cachorro” em 3 das 13 vezes. Quando o plausível e o verdadeiro se separam, ele afirma uma falsidade com fluência: uma alucinação.
Quiz
Três perguntas para você se testar. Escolha uma resposta ou abra a resposta embaixo de cada pergunta. No teclado: as setas escolhem, Enter ou Espaço confirma.
Pontos-chave
- Um modelo de linguagem dá probabilidades para o próximo token; gerar texto é sortear a partir delas repetidamente.
- Um modelo de bigramas conta qual palavra vem depois de qual; um LLM troca as contagens por um transformer que olha um contexto longo.
- A temperatura controla o quanto o modelo ousa ao sortear, não o quanto ele sabe.
- LLMs são treinados com a mesma receita do resto do curso: perda logarítmica, descida de gradiente e retropropagação.
- Plausível não é o mesmo que verdadeiro, e é por isso que modelos de linguagem podem alucinar.
E agora?
Esta é a última lição do curso. Por enquanto, o resto do ML Atlas está em inglês e em polonês.
- Revisão as perguntas das lições concluídas voltam após 1, 7 e 30 dias; alguns minutos por dia
- Daily ML um enigma curto por dia (em inglês)
- Atlas of terms termos da enciclopédia em inglês
Mais a fundo: fórmula, código, prática
A matemática
Em um modelo de bigramas, a probabilidade da próxima palavra b depois da palavra a é uma razão de contagens: P(b | a) = count(a b) / count(a). A temperatura t remodela essas probabilidades sem mudar as contagens:
P_t(b | a) = count(a b)^(1/t) / Σ_c count(a c)^(1/t), somando sobre todas as palavrascque vieram depois dea.- Com
t = 1é a razão simples. Quandottende a 0, a palavra mais frequente leva tudo. Quandotcresce, a distribuição se achata em direção a chances iguais. - Um LLM usa a mesma ideia sobre logits
z:P_t(b) = exp(z_b / t) / Σ_c exp(z_c / t). As contagens acima são o caso particularz = log count. - O treino minimiza a perda logarítmica do próximo token real,
−log P(real token | context), com a média sobre o texto.
No código (Python)
O código lê as frases em inglês do lab, conta o que vem depois de “the” e aplica a fórmula da temperatura. Por isso ele funciona com as frases em INGLÊS, e seus números são os da versão inglesa da lição (o texto do lab em português pode ser diferente). O notebook indicado abaixo da saída baixa os dados sozinho.
import re
from collections import Counter
src = open("site-src/course/labs/next-token.corpus.js", encoding="utf-8").read()
text = re.search(r"en: `(.*?)`", src, re.S).group(1) # as frases em inglês do lab
words = re.findall(r"[a-z']+", text.lower())
after_the = Counter(b for a, b in zip(words, words[1:]) if a == "the")
counts = after_the.most_common()
print(f'"the" seen {sum(after_the.values())} times, {len(after_the)} different next words, top: {counts[:3]}')
for t in (1, 0.5, 0.1, 3):
w = {b: c ** (1 / t) for b, c in counts}
print(f"temperature {t}: P(morning | the) = {w['morning'] / sum(w.values()):.1%}")
Saída
"the" seen 42 times, 26 different next words, top: [('morning', 4), ('cup', 3), ('garden', 3)]
temperature 1: P(morning | the) = 9.5%
temperature 0.5: P(morning | the) = 18.6%
temperature 0.1: P(morning | the) = 85.0%
temperature 3: P(morning | the) = 5.3%
Estes são os números da lição: “the” é seguida por 26 palavras diferentes em 42 lugares, e “morning” é a mais frequente delas, com 4 de 42, ou seja, 9,5% na temperatura 1. Na temperatura 0,1 ela chega a 85,0%, e em 3 apenas 5,3%.
Baixar o notebook (.ipynb). Abra no Jupyter ou envie para o Google Colab; ele baixa sozinho os dados que faltarem.
Para quem pratica
- Contagens de pouco texto são ruidosas. Uma palavra vista três vezes dá três exemplos, não uma distribuição confiável. Por isso os modelos reais são treinados em corpora enormes.
- A escolha gulosa (sempre a palavra mais provável) dá texto repetitivo. Amostrar com uma temperatura perto de 1, ou só entre as poucas palavras mais prováveis, dá mais variedade.
- Use uma temperatura baixa para respostas que devem ser estáveis e verificáveis, e uma mais alta para brainstorming. Nenhuma das duas deixa a resposta mais verdadeira.
- Fluente não significa correto. Confira fatos, números e citações em uma fonte, porque o modelo apenas continua o que é provável.
- Os modelos reais leem tokens, não palavras. Uma palavra rara é dividida em pedaços, então contar palavras inteiras, como aqui, é uma simplificação.
Isto foi útil?
Obrigado! Isso nos ajuda a melhorar.
Vá mais fundo no Atlas
Verbetes da enciclopédia sobre as ideias desta aula: