A ideia inteira em uma cadeia

Aqui está o percurso completo. Não se preocupe se no início parecer um enigma; o resto do artigo explica cada elo.

Quebre uma frase em pedaços e você obtém tokens. Transforme tokens em listas de números e você obtém embeddings. Deixe cada token fazer uma pergunta e você obtém uma query; deixe os outros responderem e você obtém keys e values. Compare queries com keys e você obtém pontuações de atenção. Normalize-as com softmax e você obtém pesos de atenção. Use os pesos para misturar os values e você obtém contexto. Faça isso com cada token e você obtém self-attention. Adicione uma rede feed-forward, conexões residuais e normalização e você obtém um bloco transformer. Empilhe os blocos e você obtém um transformer. Treine-o para prever o próximo token e você obtém um modelo de linguagem. Ensine-o a seguir instruções e a aprender com o feedback humano e você obtém algo muito próximo do ChatGPT.

Passo 1: quebre uma frase em pedaços e você obtém tokens

Um computador não lê palavras como você. A primeira coisa que um modelo de linguagem faz é cortar o texto em pedaços pequenos chamados tokens. Um token pode ser uma palavra inteira («entrevista»), parte de uma palavra («entre» + «vista»), um sinal de pontuação ou até um espaço colado a uma palavra.

Por que não palavras inteiras? Há palavras demais, e surgem novas todo dia. Com pedaços de palavras, um modelo consegue lidar com qualquer texto, inclusive nomes raros e erros de digitação, usando um vocabulário fixo de dezenas de milhares de tokens. Cada token desse vocabulário recebe um número de ID. A frase «Eu mandei bem na entrevista» poderia virar algo como [40, 1734, 279, 7274].

Um token equivale a cerca de três quartos de uma palavra em inglês, então uma «janela de contexto de 128.000 tokens» significa mais ou menos 95.000 palavras que o modelo consegue considerar de uma vez.

Passo 2: transforme tokens em vetores e você obtém embeddings

Um ID de token como 7274 é só um rótulo e não diz nada sobre significado. Por isso o modelo procura cada ID em uma tabela grande e o substitui por uma longa lista de números, muitas vezes centenas ou milhares. Essa lista se chama vetor, e o vetor que representa um token se chama embedding.

Ninguém escreve esses números à mão. Eles começam aleatórios e são ajustados durante o treinamento até capturarem o que cada token significa e como é usado.

Passo 3: represente os embeddings no espaço e o significado vira geometria

Trate cada embedding como as coordenadas de um ponto e cada token vira um lugar em um espaço enorme de muitas dimensões. Você não consegue imaginar mil dimensões, mas a ideia funciona em duas ou três.

Nesse espaço, tokens de significado parecido ficam perto uns dos outros. «Salário» fica perto de «remuneração» e «pagamento». «Entrevista» fica perto de «reunião» e «contratação». Até as direções podem carregar significado: o exemplo famoso é que o passo de «homem» para «mulher» aponta mais ou menos na mesma direção que o passo de «rei» para «rainha».

Embeddings sozinhos não dizem onde um token está, e a ordem muda o significado: «o candidato entrevistou o gerente» não é a mesma coisa que «o gerente entrevistou o candidato». Por isso os modelos também adicionam informação de posição a cada vetor.

Passo 4: cada token faz e responde perguntas: queries, keys e values

As palavras mudam de significado conforme as vizinhas: «manga» significa algo diferente em «manga da camisa» e «suco de manga». Então cada token precisa olhar para os outros. Esta é a ideia mais importante da IA moderna.

A partir do embedding de cada token, o modelo cria três vetores novos multiplicando-o por três tabelas de números aprendidas:

Pense em uma biblioteca: a query é a sua busca, as keys são os títulos nas prateleiras e os values são o conteúdo dos livros.

Passo 5: compare uma query com as keys e você obtém pontuações de atenção

Cada token compara sua query com a key de cada token que consegue ver, usando um produto escalar: multiplicam-se os dois vetores número a número e somam-se os resultados. Direções parecidas dão um resultado grande; direções sem relação dão um resultado pequeno ou negativo.

O resultado é um conjunto de pontuações de atenção, uma para cada par de tokens. Uma pontuação alta significa «este outro token parece relevante para a minha pergunta». Na frase «A recrutadora ligou para a candidata porque gostou do portfólio dela», o token «dela» deve gerar uma pontuação alta com «candidata» e uma menor com «recrutadora».

Passo 6: normalize as pontuações com softmax e você obtém pesos de atenção

Pontuações brutas podem ter qualquer tamanho, positivas ou negativas. Uma função chamada softmax as transforma em valores positivos que somam exatamente 1, dando às maiores pontuações uma fatia bem maior.

Essas fatias são os pesos de atenção, como porcentagens de foco. Um exemplo simplificado para «dela»:

Outro tokenPontuação brutaPeso de atenção
candidata4,00,84
recrutadora2,00,11
ligou1,00,04
a-1,00,01

Assim, «dela» dedicará cerca de 84% da sua atenção a «candidata».

Passo 7: use os pesos para combinar os values e você obtém contexto

Agora cada token constrói um vetor novo com uma mistura ponderada dos values: 84% do value de «candidata», 11% de «recrutadora» e assim por diante. O resultado é uma nova representação de «dela» que carrega informação sobre a quem «dela» realmente se refere.

É isso que contexto significa dentro de um modelo. A palavra já não é apenas «dela» em abstrato; é «dela, ou seja, da candidata, em uma frase sobre um portfólio».

Passo 8: faça cada token fazer isso e você obtém self-attention

Quando todos os tokens executam esse processo ao mesmo tempo, chama-se self-attention (autoatenção): a frase prestando atenção a si mesma.

Dois refinamentos a tornam poderosa:

Passo 9: adicione feed-forward, residuais e normalização e você obtém um bloco transformer

A atenção compartilha informação; o modelo também precisa processá-la. Mais três partes completam a unidade:

Atenção mais feed-forward, envolvidas por conexões residuais e normalização, formam um bloco transformer.

Passo 10: empilhe os blocos e você obtém um transformer

Um bloco dá uma compreensão modesta. Empilhe dezenas deles, com a saída de um alimentando o seguinte, e você obtém um transformer, a arquitetura apresentada por pesquisadores do Google no artigo de 2017 «Attention Is All You Need». É o «T» de GPT, que significa «Generative Pre-trained Transformer».

Cada camada refina o quadro: as primeiras tendem a captar gramática, as últimas ideias mais abstratas, como tom e intenção. Os pesos de todas essas tabelas, os números que o modelo aprende, são o que se chama de parâmetros. Modelos grandes têm bilhões deles.

Passo 11: treine-o para prever o próximo token e você obtém um modelo de linguagem

Até aqui temos uma máquina que transforma texto em vetores conscientes do contexto. Agora damos a ela uma tarefa. No fim da pilha, o modelo transforma o vetor do último token em uma pontuação para cada token do seu vocabulário e aplica softmax de novo para obter uma probabilidade para cada um. Em outras palavras: «Dado tudo até agora, o que vem a seguir?»

Durante o treinamento, o modelo lê quantidades enormes de texto: livros, artigos, código, sites. Em cada posição, ele chuta o próximo token, compara o palpite com o real e ajusta um pouquinho todos os seus parâmetros na direção que teria tornado a resposta certa mais provável. Repita isso trilhões de vezes e o resultado é um modelo de linguagem.

Essa tarefa simples ensina muito: para prever a próxima palavra em um livro didático ou em um contrato, um modelo precisa absorver gramática, fatos e padrões de raciocínio.

Gerar texto é apenas essa previsão em repetição. O modelo escolhe o próximo token, geralmente sorteando segundo as probabilidades (um ajuste chamado temperatura controla o quão ousada é a escolha), o adiciona ao texto e prevê de novo, um token por vez.

Passo 12: ensine-o a seguir instruções e a aprender com o feedback e você obtém o ChatGPT

Um modelo treinado apenas para prever o próximo token é um autocompletar brilhante, não um assistente. Faça uma pergunta e ele pode responder com mais três perguntas. Duas etapas de treinamento a mais resolvem isso:

  1. Ajuste por instruções (instruction tuning): o modelo é treinado com muitos exemplos de um pedido seguido de uma boa resposta útil. Ele aprende o padrão «alguém pergunta, eu respondo de forma útil».
  2. Aprendizado com feedback humano: pessoas comparam pares de respostas do modelo e escolhem a melhor. Essas preferências são usadas para direcionar o modelo a respostas úteis, precisas e seguras. Isso é conhecido como aprendizado por reforço com feedback humano, ou RLHF.

Adicione uma interface de chat e você obtém algo próximo do ChatGPT, do Claude ou do Gemini: o mesmo transformer, moldado para agir como assistente.

Tudo junto: a jornada de uma frase

Imagine que você digite: «A pergunta de entrevista mais difícil é…» Em uma fração de segundo:

  1. O texto é dividido em tokens e cada um vira um embedding com informação de posição.
  2. Em cada bloco transformer, cada token forma uma query, uma key e um value, pontua os tokens anteriores, transforma as pontuações em pesos e mistura os values deles. «Difícil» se liga a «pergunta», e a expressão é entendida como um tema de entrevista.
  3. As camadas feed-forward processam cada vetor atualizado; resíduos e normalização mantêm tudo estável; dezenas de blocos o refinam ainda mais.
  4. O vetor final vira probabilidades sobre o vocabulário. Um token como «fale» recebe pontuação alta; o modelo o escolhe, o adiciona e recomeça.

Glossário rápido

TermoEm linguagem simples
TokenUm pedacinho de texto, muitas vezes uma palavra ou parte dela
VetorUma lista ordenada de números
EmbeddingO vetor que representa o significado de um token
Query / Key / ValueO que um token pergunta / o que oferece / o que compartilha
Pontuação de atençãoO quão relevante um token parece para outro
SoftmaxTransforma pontuações em fatias que somam 1
Peso de atençãoA fatia de foco que um token dá a outro
ContextoO significado de um token atualizado por seus vizinhos
Self-attentionCada token prestando atenção aos tokens que consegue ver
Bloco transformerAtenção + feed-forward + residuais + normalização
ParâmetrosOs números aprendidos dentro do modelo
Janela de contextoQuantos tokens o modelo consegue considerar de uma vez

Por que isso importa para a sua carreira

Se você vai fazer uma entrevista para uma vaga ligada à IA, saber explicar tokens ou atenção em palavras simples é uma vantagem real. Isso também faz de você um usuário mais esperto de ferramentas de IA: você vai entender por que elas podem afirmar fatos errados com confiança (elas preveem texto provável, não verdade verificada) e por que um prompt claro e específico gera respostas melhores. Para usos práticos, veja nossos guias sobre como usar ferramentas de IA para praticar entrevistas de emprego e o que os copilotos de IA para entrevistas realmente mudam.

Perguntas frequentes

Qual é a diferença entre um token e uma palavra?

Um token é a unidade que um modelo de linguagem lê. Palavras comuns costumam ser um único token, enquanto palavras mais longas ou raras são divididas em vários pedaços. Em inglês, um token equivale, em média, a cerca de três quartos de uma palavra.

Um modelo de linguagem entende o que diz?

Ele constrói representações internas ricas de significado e contexto, mas é treinado para prever texto provável, não para verificar fatos. Por isso suas respostas podem soar confiantes e ainda assim estar erradas, e afirmações importantes devem sempre ser conferidas.

O ChatGPT é só um transformer?

No fundo, sim: um grande transformer treinado para prever o próximo token. O que o torna um assistente útil é o treinamento adicional com instruções e feedback humano, além do produto construído em volta dele.