Treine um GPT

Como uma IA é treinada, passo a passo

Treinar um modelo de linguagem é repetir um jogo: adivinhar a próxima letra, medir o erro e ajustar cada parâmetro um pouco. Treine um GPT aqui, em menos de um minuto, e veja o erro cair passo a passo.

Roda no seu navegador

Sem cadastro

O código na tela

1 · Os dados

Tudo começa numa lista

Um modelo de linguagem aprende só com exemplos. Aqui, uma lista curta: um item por linha. Ele nunca recebe uma regra, como "nome termina em a ou o". Tem que descobrir sozinho.

Troque a lista ou cole a sua (cidades, nomes de produto, palavras inventadas) e veja o que ele aprende dela.

282

itens

36

caracteres diferentes

10

caracteres no maior

2 · Os tokens

Cada letra vira um número

O modelo não lê letras, só números. Então cada caractere diferente da lista ganha um número, em ordem alfabética. Esse é o vocabulário dele.

Um número a mais, o ponto, marca onde uma palavra começa e onde termina. É assim que ele sabe a hora de parar de escrever.

Os modelos grandes fazem o mesmo, com pedaços de palavra no lugar de letras.

O vocabulário: 37 tokens

a0
á1
â2
ã3
b4
c5
ç6
d7
e8
é9
ê10
f11
g12
h13
i14
í15
j16
k17
l18
m19
n20
o21
ó22
ô23
p24
q25
r26
s27
t28
u29
ú30
v31
w32
x33
y34
z35
·36

“glória” para o modelo

·36
g12
l18
ó22
r26
i14
a0

[36, 12, 18, 22, 26, 14, 0]

3 · Os parâmetros

4.432 números, começando como ruído

Tudo o que o modelo sabe mora nestes números, os parâmetros. Antes do treino, são ruído: valores pequenos, sorteados ao acaso.

Cada quadrado é um número, do mais negativo ao mais positivo, como mostra a legenda. Aperte Treinar e veja os desenhos surgirem: é o modelo aprendendo.

O GPT-3, de 2020, já tinha 175 bilhões deles. A ideia é a mesma.

negativo

positivo

Um vetor por caractere

wte · cada linha é o que o modelo sabe de uma letra · 37×16

Passe o mouse para ver cada número

Um vetor por posição

wpe · o lugar da letra na palavra · 11×16

Passe o mouse para ver cada número

De volta às letras

lm_head · transforma o resultado numa nota por letra · 37×16

Passe o mouse para ver cada número

Atenção: o que procura

wq · a consulta (query) · 16×16

Passe o mouse para ver cada número

Atenção: o que oferece

wk · a chave (key) · 16×16

Passe o mouse para ver cada número

Atenção: o que passa adiante

wv · o valor (value) · 16×16

Passe o mouse para ver cada número

Atenção: a mistura final

wo · junta as quatro cabeças · 16×16

Passe o mouse para ver cada número

Os 64 neurônios: entrada

mlp_fc1 · 64 linhas, uma por neurônio · 64×16

Passe o mouse para ver cada número

Os 64 neurônios: saída

mlp_fc2 · de 64 de volta para 16 · 16×64

Passe o mouse para ver cada número

4 · O treino

Adivinhar a próxima letra, mil vezes

O jogo é um só: o modelo vê o começo de uma palavra e dá uma chance para cada letra que pode vir depois. O erro (loss) mede o quanto ele se surpreendeu com a letra certa.

A cada passo ele pega uma palavra, mede o erro, descobre quanto cada parâmetro contribuiu para ele (o backward) e mexe cada um um pouquinho para o lado que diminui o erro.

A linha tracejada é o erro de quem chuta uma letra ao acaso. Tudo abaixo dela é aprendizado.

0

passos de 1.000

—

erro médio agora

3,61

erro do chute às cegas

01234chute às cegas02505007501.000

Linha fina: o erro de cada passo, que oscila porque cada passo vê uma palavra só. Linha grossa: a média dos últimos 25.

5 · Por dentro

O caminho de uma letra pelo modelo

Escreva o começo de uma palavra e escolha uma letra. Você vê, em ordem, tudo o que o modelo calcula para adivinhar a seguinte.

Os vetores da letra e da posição se somam. A atenção decide para quais letras anteriores olhar: cada uma das quatro cabeças olha de um jeito. Os 64 neurônios processam o que a atenção trouxe. No fim, sai uma chance para cada letra.

Isto muda enquanto o modelo treina. Deixe o treino rodando e olhe aqui.

Só os caracteres da lista contam.

Escolha a letra

O número embaixo é a posição na palavra. O ponto é o começo.

1 · O que entra

a letra “a”

Passe o mouse para ver cada número

a posição 7

Passe o mouse para ver cada número

somados e normalizados

Passe o mouse para ver cada número

2 · A atenção: para onde cada letra olha

Cada linha é uma letra; cada coluna, uma letra anterior. Quanto mais forte o tom, mais ela olhou para lá. Acima da diagonal fica vazio: uma letra nunca vê o futuro.

Cabeça 1

Passe o mouse para ver cada número

Cabeça 2

Passe o mouse para ver cada número

Cabeça 3

Passe o mouse para ver cada número

Cabeça 4

Passe o mouse para ver cada número

3 · Os 64 neurônios

33 de 64 acesos

Passe o mouse para ver cada número

O ReLU zera todo valor negativo: o quadrado da cor do fundo é um neurônio apagado para esta letra.

4 · A próxima letra, depois de “glória”

o

5,1%

r

5,1%

ú

3,8%

y

3,7%

v

3,7%

e

3,5%

i

3,5%

p

3,4%

6 · A geração

Agora ele escreve sozinho

Para escrever, o modelo começa no ponto, calcula a chance de cada letra, sorteia uma de acordo com essas chances e a usa como entrada da próxima. Até sortear o fim.

A temperatura controla o sorteio. Baixa, ele fica nas letras mais prováveis e repete o que viu. Alta, arrisca e inventa mais.

Gere antes de treinar e depois. A diferença é tudo o que ele aprendeu.

Temperatura

0,5

Passo 0 de 1.000

Em três passos

Da lista ao modelo

01

Escolha a lista

Nomes de pessoas, cidades do Brasil ou uma lista sua, um item por linha. É tudo o que o modelo vai ver.

02

Aperte Treinar

Mil passos, em menos de um minuto. Os números mudam na tela enquanto ele aprende, e você pode pausar e ir um passo por vez.

03

Peça para ele escrever

Ele inventa itens novos, que soam como os da lista e não estavam nela. Você vê a chance de cada letra que ele sorteou.

Como funciona

Um laboratório de IA numa página

Um GPT de verdade

A mesma arquitetura do GPT-2, em miniatura: tokens, embeddings, atenção com quatro cabeças, 64 neurônios e a saída. Só é menor.

Cada número à vista

Os parâmetros, o mapa de atenção, os neurônios acesos e a probabilidade de cada letra. Passe o mouse em qualquer quadrado para ver o valor.

O erro, ao vivo

O gráfico mostra o erro caindo passo a passo, ao lado do erro de quem chuta às cegas.

O código que está rodando

Cada etapa abre o trecho de código que a calcula. É o mesmo arquivo que treina o modelo na sua tela, não um resumo.

Tudo no seu navegador

Nenhum servidor treina nada. A lista que você cola não sai da sua máquina.

Para aprender de verdade

Feito para quem quer entender como a IA funciona por dentro, sem precisar instalar nada nem saber programar.

Perguntas

O que as pessoas perguntam

Ciro Cesar Maciel

Quem faz

Feito por quem usa todo dia.

Faço software há mais de vinte anos. Hoje construo os blocos que uma ideia precisa para existir de verdade.

Uso todo dia as ferramentas que construo. Se quebrar para você, quebrou para mim antes.

Ciro Cesar Maciel

Cartas do Ciro

O que estou construindo e aprendendo, por e-mail. Você só começa a receber depois de confirmar pelo e-mail que chega na hora.

Toda carta traz o link para sair na hora. Política de privacidade.

Perguntas sobre IA

Como a IA funciona, etapa por etapa