ML Atlas

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.
Da aula 7.1: Redes neurais: muitas unidades simples juntas Por que uma rede neural precisa de uma função de ativação?

Ver a resposta

Resposta certa: Porque sem ela as camadas empilhadas viram uma única soma ponderada

A ativação dobra o sinal; sem dobras, as camadas não acrescentam poder expressivo além de um único modelo linear.

Da aula 5.6: Qual modelo, quando? Nos dígitos, a SVM acerta mais que a regressão logística em 17 das 20 divisões; nos pinguins, em nenhuma (a regressão em 9, empate em 11). O que concluir?

Ver a resposta

Resposta certa: O melhor depende dos dados, então você confere nos seus

A ordem se inverte de um conjunto para outro. Por isso se escolhe um modelo pela validação nos próprios dados, não pela classificação de outra pessoa.

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.

Preveja, depois confira O modelo conhece a palavra “o” de 13 lugares do texto, e a que mais vem depois dela é “cachorro” (apenas 3 das 13 vezes). Você baixa a temperatura de 1 para 0,1. Que chance “cachorro” recebe?
Qual é o seu grau de certeza?

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?

Resposta do chatbot

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.

1. Em que tarefa um grande modelo de linguagem é treinado?
Ver a resposta

Resposta certa: Prever o próximo token de um texto a partir dos tokens anteriores

LLMs são treinados para dar probabilidade alta ao próximo token real, e todo o resto emerge dessa tarefa.

2. Você baixa a temperatura de amostragem. O que acontece com o texto gerado?
Ver a resposta

Resposta certa: Os tokens mais prováveis dominam, e o texto fica mais previsível e repetitivo

A temperatura remodela as probabilidades na hora da amostragem, sem mudar o que o modelo aprendeu.

3. Por que um modelo de linguagem pode afirmar algo falso com confiança?
Ver a resposta

Resposta certa: Porque produz continuações plausíveis, e plausível nem sempre é verdadeiro

O objetivo de treinamento recompensa texto provável, então, quando o provável e o verdadeiro divergem, o modelo pode alucinar com fluência.

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 palavras c que vieram depois de a.
  • Com t = 1 é a razão simples. Quando t tende a 0, a palavra mais frequente leva tudo. Quando t cresce, 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 particular z = 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%.

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.

Vá mais fundo no Atlas

Verbetes da enciclopédia sobre as ideias desta aula: