Uma história sobre IA · 02
Como uma máquina pensa?
Acompanhe uma pergunta pela máquina: dos tokens e da atenção até a primeira palavra da resposta.
Publicado por AI Model Green Zone
Continuar lendo →Termos sublinhados abrem o glossário. Passe o cursor ou use o teclado para uma explicação rápida.
Existe um momento peculiar que acontece com quase todo mundo que passa tempo suficiente com um bom modelo de IA.
No começo, você sabe perfeitamente que está usando um programa.
Você digita em uma caixa. Um computador faz cálculos. Palavras aparecem.
Então, talvez vinte minutos depois, você pergunta algo complicado. A máquina percebe um detalhe mencionado dez minutos antes, conecta esse detalhe a outra coisa, encontra uma contradição no seu raciocínio e produz uma resposta que não é apenas gramaticalmente correta, mas aparentemente relevante.
E em algum momento surge a pergunta óbvia:
O que, exatamente, aconteceu dentro da máquina entre a minha pergunta e essa resposta?
Não filosoficamente.
Mecanicamente.
O que o computador realmente fez?
Vamos acompanhar uma pergunta durante todo o seu percurso pela máquina.
Suponha que você digite:
Meu cachorro roubou um frango inteiro da mesa da cozinha. Devo ligar para o veterinário?
Para você, a frase já chega carregada de significado.
Existe um cachorro.
Existia um frango.
Pelo visto, o frango mudou de dono sem autorização.
Pode haver ossos envolvidos.
Você está preocupado.
O cachorro, suspeitamos, não se arrepende de nada.
Um grande modelo de linguagem (Large Language Model, LLM) não recebe nada disso como imagem ou experiência. Ele não imagina um labrador ao lado de um prato vazio. Nunca sentiu o cheiro de frango assado. Nunca levou um animal a uma emergência veterinária às onze da noite.
Ele recebe símbolos.
E a primeira coisa que precisa fazer é transformar esses símbolos em números.
Primeiro passo: tokenização — dividir a linguagem em pedaços do tamanho da máquina
O modelo não consegue processar diretamente a sua frase como linguagem comum.
Antes de a rede neural vê-la, um programa chamado tokenizador divide a frase em unidades menores chamadas tokens.
Um token pode ser uma palavra inteira.
Pode ser parte de uma palavra.
Pode ser um sinal de pontuação.
Pode ser um número, um espaço ou parte de um nome desconhecido.
Assim:
My dog stole a whole chicken.
poderia se transformar, conceitualmente, em algo como:
My|dog|stole|a|whole|chicken|.
Esse exemplo é simplificado; famílias diferentes de modelos usam tokenizadores diferentes.
Cada token recebe então um identificador numérico chamado ID do token.
A palavra dog não percorre o modelo como as letras D-O-G.
Ela pode entrar como algo parecido com:
ID do token 8.214
O número em si não tem significado para nós. É apenas um endereço no vocabulário do modelo.
Nesse ponto, a máquina converteu a sua frase em uma sequência de números inteiros.
Isso só parece progresso se interpretarmos a palavra com bastante generosidade.
Porque o número 8.214 não explica o que é um cachorro.
Para isso, precisamos de outra transformação.
Dos IDs dos tokens aos embeddings
O modelo converte cada ID de token em um embedding.
Um embedding é uma lista de números que representa o token em um espaço matemático.
Outra palavra útil aqui é vetor.
Nesse contexto, um vetor é simplesmente uma coleção ordenada de números.
Em vez de representar dog com um único inteiro sem significado, o modelo pode representá-lo com centenas ou milhares de valores numéricos.
De forma bem aproximada:
dog → [0.17, −0.42, 0.08, 1.31, …]
Pode haver milhares de números nesse vetor.
Não tente atribuir significados humanos a posições individuais.
O primeiro número não significa “tem pelo”.
O segundo não significa “ocasionalmente destrói móveis”.
O significado emerge do padrão completo.
Você pode imaginar os embeddings como coordenadas em um mapa enorme.
Mas não é um mapa normal, com norte, sul, leste e oeste.
Ele pode ter vários milhares de dimensões matemáticas.
Isso o torna péssimo para viagens de carro, mas muito útil para aprendizado de máquina.
Nesse estranho mapa matemático, conceitos relacionados tendem a desenvolver representações relacionadas.
Cachorro pode ficar mais perto de filhote do que de hipoteca.
Veterinário pode ter relações com animal, medicina, clínica e tratamento.
Frango pode se conectar a comida, ave, ossos, cozinha e milhares de outros contextos.
Ninguém digitou todas essas relações manualmente no modelo.
Elas surgiram porque o treinamento ajustou repetidamente os pesos do modelo até aparecerem relações úteis.
Mas ainda não terminamos.
Existe outro problema.
A palavra inglesa bank pode significar uma instituição financeira.
Ou a margem de um rio.
O embedding da palavra sozinha não consegue dizer qual dos dois sentidos você quer usar.
O significado depende do contexto.
E é no contexto que o Transformer começa a justificar o salário.
O bloco Transformer: onde o processamento de verdade começa
Os grandes modelos de linguagem modernos geralmente são construídos com várias etapas de processamento repetidas, chamadas blocos Transformer.
Você pode imaginar cada bloco como um andar de um prédio muito alto.
As representações dos seus tokens entram no primeiro andar.
São transformadas.
Sobem.
O andar seguinte recebe as representações modificadas e as transforma de novo.
Um modelo moderno pode conter dezenas ou até mais de cem camadas Transformer.
Quando a informação chega ao topo, a representação da frase é muito mais rica do que era na entrada.
Dentro de cada bloco Transformer existem vários mecanismos importantes.
O mais famoso se chama:
autoatenção (self-attention).
E é aqui que precisamos de três dos nomes mais estranhos da IA moderna:
Query, Key e Value — consulta, chave e valor.
Geralmente abreviados como:
Q, K e V.
Query, Key, Value — nomes terríveis, ideia útil
A terminologia vem, em parte, dos sistemas de recuperação de informação e, infelizmente, ninguém parou para perguntar se pessoas comuns algum dia precisariam aprendê-la.
Mas a ideia é compreensível.
Imagine um coquetel.
Todas as pessoas usam um crachá com informações sobre si mesmas.
Uma delas está procurando:
“Alguém que entenda de medicina veterinária.”
Isso é parecido com uma Query, uma consulta.
O crachá de cada outra pessoa contém informações que descrevem o que ela representa.
Isso é um pouco parecido com uma Key, uma chave.
Quando a consulta combina bem com uma determinada chave, prestamos mais atenção às informações daquela pessoa.
Essas informações são o Value, o valor.
Em um Transformer, cada token cria seus próprios vetores Query, Key e Value.
Não de forma metafórica: vetores numéricos reais são calculados usando matrizes de pesos aprendidas.
A palavra dog cria representações Q, K e V.
Chicken também.
Vet também.
E todos os outros tokens também.
O modelo então compara consultas com chaves para calcular:
A quais outros tokens este token deve prestar atenção, e quanto?
Pontuações de atenção: decidir o que importa
Vamos voltar ao nosso desafortunado frango.
O modelo chega à frase:
Devo ligar para o veterinário?
A representação associada a veterinário pode desenvolver relações fortes com tokens anteriores como:
cachorro
frango
roubou
inteiro
E relações mais fracas com partes menos importantes, como:
o
Essa relação é representada matematicamente por uma pontuação de atenção.
Tecnicamente, o modelo calcula algo chamado produto escalar entre os vetores Query e Key.
Um produto escalar é simplesmente uma forma matemática de medir o quanto dois vetores se alinham.
Você não precisa conhecer a aritmética detalhada.
Conceitualmente:
Correspondência forte → pontuação maior
Correspondência fraca → pontuação menor
As pontuações passam então por uma operação matemática chamada softmax.
Softmax transforma um conjunto de pontuações brutas em pesos normalizados.
Em linguagem simples:
Ela transforma “quem parece importante?” em “quanta atenção devo realmente dar a cada um?”
Talvez, apenas para ilustrar:
cachorro → 35% de atenção
frango → 28%
veterinário → 21%
mesa → 6%
o → quase nada
A atenção real é muito mais complicada, e várias cabeças de atenção funcionam simultaneamente, mas essa intuição é útil.
O modelo combina então os vetores Value correspondentes de acordo com esses pesos de atenção.
Isso produz uma nova representação com informações reunidas de partes relevantes do contexto.
O token já não representa apenas a si mesmo.
Agora ele carrega informações sobre suas relações com outros tokens.
A equação que os engenheiros usam
Um engenheiro costuma escrever a autoatenção assim:
Attention(Q, K, V) = softmax(QKᵀ / √d) V
À primeira vista, parece que alguém derrubou uma calculadora escada abaixo.
Mas agora podemos traduzir.
Q = o que este token está procurando.
K = o que os outros tokens anunciam sobre si mesmos.
QKᵀ = comparar o que se procura com o que está disponível.
√d = um ajuste de escala que mantém os números matematicamente bem-comportados.
softmax = converter as pontuações da comparação em pesos de atenção.
V = coletar as informações dos tokens de acordo com esses pesos.
Essa equação intimidadora está basicamente dizendo:
Olhe ao redor, decida o que importa e combine as informações relevantes.
De repente, ela já não parece tão assustadora.
Atenção com múltiplas cabeças: olhar para a mesma frase de várias maneiras
Um Transformer normalmente não faz apenas um cálculo de atenção.
Ele usa atenção com múltiplas cabeças (Multi-Head Attention).
Uma cabeça de atenção é um mecanismo de atenção independente.
Por que ter várias?
Porque a mesma frase contém vários tipos de relações ao mesmo tempo.
Veja:
O cachorro que roubou o frango agora dorme tranquilamente porque ele não tem consciência.
Uma cabeça de atenção pode se tornar útil para relações gramaticais.
Outra pode se concentrar em descobrir a qual substantivo ele se refere.
Outra pode acompanhar o sujeito principal.
Outra pode captar relações semânticas mais distantes.
Devemos tomar cuidado para não imaginar que toda cabeça tem uma tarefa bem definida e compreensível para humanos, como:
Cabeça número 17 = Departamento de Roubo de Frangos.
A especialização não é necessariamente tão organizada.
Mas várias cabeças permitem que a rede examine o mesmo contexto por meio de diferentes padrões de relações aprendidos, simultaneamente.
É por isso que o modelo não está apenas lendo palavras da esquerda para a direita.
Ele está construindo uma rede de relações entre elas.
O estado oculto: o que o modelo “sabe” agora sobre o token
Depois da atenção, cada token tem uma representação interna mais rica.
Essa representação costuma ser chamada de estado oculto.
A palavra oculto significa apenas que esses números existem dentro da rede neural, em vez de serem diretamente visíveis para o usuário.
Essa é uma ideia importante.
O modelo começa com:
“cachorro”
como um token.
Algumas camadas depois, seu estado oculto pode representar implicitamente algo mais parecido com:
o cachorro do usuário, que acabou de comer um frango inteiro e é motivo de uma possível preocupação médica
Não existe uma frase em português dizendo isso dentro do modelo.
O estado oculto continua sendo um vetor de números.
Mas matematicamente ele agora carrega muito mais informação contextual.
Então entra no próximo bloco Transformer.
Atenção de novo.
Transformação de novo.
Outro estado oculto.
Outra vez.
E outra.
Camada após camada.
A rede de propagação direta: pensar sobre o que a atenção encontrou
A atenção recebe quase toda a publicidade, mas os blocos Transformer contêm outro componente importante: a rede de propagação direta (Feed-Forward Network, FFN).
Você pode pensar na atenção como a coleta de informações relevantes.
A rede de propagação direta faz transformações adicionais nessas informações.
Se a atenção é a redação de um jornal dizendo:
“Esses fatos estão relacionados”,
a rede de propagação direta está mais perto de:
“Certo. O que devemos concluir a partir deles?”
Tecnicamente, isso envolve grandes multiplicações de matrizes.
Uma matriz é basicamente uma tabela retangular de números.
Redes neurais modernas passam uma quantidade extraordinária de tempo multiplicando matrizes enormes.
Isso pode parecer banal.
Também é o motivo pelo qual as GPUs são tão úteis.
As unidades de processamento gráfico (Graphics Processing Units, GPUs) foram projetadas para executar muitas operações matemáticas simultaneamente.
Renderizar milhões de pixels e processar matrizes de redes neurais têm requisitos de hardware surpreendentemente compatíveis.
A humanidade passou décadas construindo placas de vídeo mais rápidas para que os jogos tivessem explosões mais realistas.
Então pesquisadores descobriram que o mesmo hardware era extraordinariamente bom para inteligência artificial.
A tecnologia raramente segue o caminho anunciado no folheto original.
Funções de ativação: introduzir a não linearidade
Dentro da rede de propagação direta encontramos outro termo:
função de ativação.
Sem funções de ativação, empilhar muitas camadas de uma rede neural seria muito menos poderoso.
Uma função de ativação introduz não linearidade.
Essa expressão merece uma tradução.
Se toda a rede realizasse apenas combinações lineares simples, muitas camadas se reduziriam matematicamente a algo equivalente a uma única grande transformação linear.
Funções de ativação não lineares permitem que a rede represente relações muito mais complicadas.
Transformers modernos costumam usar funções como GELU, SiLU ou variantes relacionadas.
Você definitivamente não precisa memorizar esses nomes para usar um LLM.
A ideia importante é:
Funções de ativação permitem que a rede curve, filtre e remodele as informações, em vez de apenas alterar sua escala e somá-las.
Pense na diferença entre uma régua e uma caixa de Lego.
Operações lineares dão a você réguas excelentes.
A não linearidade permite começar a construir coisas.
Conexões residuais: não jogue fora o que você já sabia
Os blocos Transformer também usam algo chamado conexão residual.
É uma ideia maravilhosamente sensata escondida atrás de mais um termo técnico.
Em vez de substituir completamente a representação anterior por uma nova transformação, o modelo adiciona de volta boa parte das informações originais.
Conceitualmente:
nova representação = representação anterior + informações novas
Por quê?
Imagine que você está editando um documento.
Normalmente, você não reescreveria o documento inteiro de memória toda vez que corrigisse um parágrafo.
Você preserva o que já funcionava e acrescenta a melhoria.
Conexões residuais ajudam as informações a atravessar redes neurais muito profundas sem serem repetidamente destruídas ou distorcidas.
Elas foram uma das inovações importantes que tornaram redes muito profundas viáveis na prática.
Normalização de camada: manter a matemática sob controle
Também existe a normalização de camada (Layer Normalization).
À medida que os valores percorrem dezenas de camadas, suas escalas numéricas podem se tornar difíceis de administrar.
A normalização de camada redimensiona os valores internos para uma faixa mais estável.
Pense em um engenheiro de áudio que recebe faixas gravadas em volumes radicalmente diferentes.
Um microfone sussurra.
Outro parece ter sido colocado dentro de um motor a jato.
Antes de mixar a música, o engenheiro precisa de níveis razoáveis.
A normalização de camada faz um trabalho parecido de arrumação matemática.
Ela não fornece inteligência.
Mas, sem uma boa arrumação, a parte inteligente fica muito mais difícil de treinar.
Pelo visto, até a inteligência artificial precisa de alguém para arrumar o quarto.
E isso acontece camada após camada
Agora vamos fazer uma pausa.
Sua frase original:
Meu cachorro roubou um frango inteiro da mesa da cozinha. Devo ligar para o veterinário?
passou por:
Tokenização
→ conversão em IDs de tokens
→ conversão em embeddings
→ transformação em vetores
→ entrada em um bloco Transformer
→ processamento por autoatenção
→ comparação de consultas com chaves
→ cálculo dos pesos de atenção com softmax
→ combinação de valores
→ transformação por uma rede de propagação direta
→ passagem por funções de ativação
→ preservação por conexões residuais
→ estabilização pela normalização de camada
→ transformação em estados ocultos mais ricos
Então todo o processo se repete em outra camada Transformer.
E outra.
E outra.
Isso se aproxima muito mais do que acontece fisicamente quando dizemos casualmente:
“O modelo está pensando.”
Mas existe mais uma coisa que é fácil deixar passar quando descrevemos esse processo lentamente em uma página.
O computador está fazendo tudo isso a uma velocidade extraordinária.
Em algum lugar, um centro de dados acabou de acordar
Se você usa um serviço de IA na nuvem, sua pergunta pode viajar pela internet até um centro de dados cheio de racks de computadores.
Dentro desses racks existem poderosas unidades de processamento gráfico (Graphics Processing Units, GPUs) projetadas para realizar enormes quantidades de operações matemáticas em paralelo.
Os pesos aprendidos do modelo já estão carregados na memória dessas máquinas.
Eles não são criados quando você faz a pergunta.
Foram criados antes, durante o treinamento.
Você pode pensar nesses pesos como a estrutura matemática permanente que o modelo adquiriu durante sua educação.
Sua pergunta não é gravada neles.
Em vez disso, sua pergunta passa através deles.
Essa distinção é importante.
Quando você digita:
Meu cachorro roubou um frango. Devo ligar para o veterinário?
o modelo não para para se treinar novamente.
Seus bilhões de pesos aprendidos já estão ali, esperando.
Sua entrada chega.
Vira tokens.
Tokens viram embeddings.
Embeddings viram estados ocultos.
Esses estados ocultos percorrem camadas e mais camadas de matrizes de pesos aprendidas.
A atenção compara relações.
As redes de propagação direta as transformam.
As conexões residuais preservam informações úteis.
A normalização mantém toda a operação numérica estável.
O texto de entrada se transforma gradualmente em representações internas cada vez mais ricas.
Você poderia dizer, de maneira informal, que a frase original está sendo comprimida em significado matemático, embora “compressão” aqui não signifique que a informação esteja sendo gravada de volta nos pesos.
Os pesos permanecem, em grande parte, fixos.
O que muda é o estado interno temporário produzido pela passagem da sua pergunta por esses pesos.
E tudo isso pode envolver bilhões e bilhões de operações de multiplicação e adição.
Ainda assim, em hardware moderno, o início da resposta pode aparecer em uma fração de segundo ou em alguns segundos, dependendo do modelo, do hardware, da carga do sistema e do tamanho da sua solicitação.
Pense nisso por um instante.
Você aperta Enter.
Sua frase sai do computador.
Em algum lugar, talvez a centenas ou milhares de quilômetros, GPUs começam a multiplicar matrizes enormes.
A frase é dividida, transformada em vetores, comparada entre cabeças de atenção, transformada ao longo de dezenas de camadas e reduzida a probabilidades para os possíveis próximos tokens —
E então uma resposta começa a voltar.
Para você, parece assim:
“Se o seu cachorro comeu um frango inteiro, a pergunta importante é se havia ossos cozidos…”
Parece uma conversa.
Dentro do centro de dados, uma enorme fábrica matemática acabou de entrar em ação.
E, se você roda o modelo localmente, o mesmo processo geral acontece na GPU dentro do seu próprio computador.
Sem um centro de dados distante.
Sem uma nuvem misteriosa.
Apenas sua placa de vídeo executando discretamente uma quantidade absurda de cálculos enquanto as ventoinhas reconsideram suas escolhas de vida.
Mas, em algum momento, o modelo precisa dizer alguma coisa
Depois de todas essas camadas, o modelo construiu uma representação oculta rica do contexto atual.
Agora precisa converter esse estado interno de volta em linguagem.
O estado oculto final é transformado em uma grande lista de números chamados logits.
Um logit é basicamente uma pontuação bruta para um possível próximo token.
Suponha que a resposta esteja prestes a começar.
O modelo poderia produzir algo parecido com:
Se → 8.4
Porque → 7.9
Seu → 6.7
Frango → 2.1
Volkswagen → −3.8
Novamente, esses números foram inventados para ilustrar.
O modelo ainda não escolheu a palavra.
Ele produziu pontuações.
Esses logits são então convertidos em probabilidades, geralmente usando softmax de novo.
Agora, talvez:
Se → 31%
Porque → 22%
Seu → 14%
Como → 11%
centenas de outros tokens → a probabilidade restante
O sistema precisa decidir qual token gerar.
Temperatura e amostragem: por que o modelo não diz sempre a mesma coisa
Se o modelo sempre escolhesse o token de maior probabilidade, as respostas poderiam se tornar repetitivas e rígidas.
Em vez disso, sistemas de geração costumam usar amostragem.
Amostragem significa escolher entre tokens prováveis de acordo com sua distribuição de probabilidade.
Uma configuração chamada temperatura muda o quanto essa escolha se torna aventureira.
Em temperatura baixa, o modelo favorece fortemente os tokens mais prováveis.
Ele se comporta de forma mais conservadora.
Em temperatura mais alta, alternativas menos prováveis ficam mais competitivas.
A escrita pode ficar mais variada ou criativa.
Também pode ficar mais excêntrica.
Pense na temperatura como a diferença entre contratar:
um contador cuidadoso
E:
o mesmo contador depois de três espressos e uma aula de improvisação.
Os dois podem ser úteis.
Não necessariamente para a mesma tarefa.
Outros controles de geração incluem amostragem top-k e amostragem top-p, que restringem quais tokens candidatos podem entrar no conjunto de seleção.
Os detalhes são configuráveis, mas a ideia central é simples:
A rede neural produz possibilidades.
A estratégia de decodificação escolhe entre elas.
Geração autorregressiva: um token muda o seguinte
Agora o modelo seleciona seu primeiro token de saída.
Talvez:
Se
Esse token é adicionado ao contexto.
O modelo roda novamente.
Agora ele está processando:
Meu cachorro roubou um frango inteiro da mesa da cozinha. Devo ligar para o veterinário?
Se
Ele prevê o próximo token.
Talvez:
seu
Depois:
cachorro
Depois:
comeu
E assim por diante.
Isso se chama geração autorregressiva.
Auto significa que o sistema realimenta a próxima previsão com sua própria saída gerada.
Regressiva, nesse contexto, significa que o próximo valor depende dos valores anteriores da sequência.
Portanto, a resposta não é escrita de uma vez só.
Ela cresce.
Token por token.
Cada token gerado muda um pouco o contexto usado para prever o próximo.
É por isso que a analogia com o jazz funciona tão bem.
Um músico toca uma nota.
Essa nota muda o que faz sentido musicalmente em seguida.
A próxima nota muda as possibilidades outra vez.
Um modelo de linguagem faz isso com tokens.
Então existe um momento em que o modelo “já tem a resposta”?
Essa é uma pergunta interessante.
Geralmente, não da forma como uma pessoa imagina.
Não existe um instante claro em que o modelo escreva internamente:
RESPOSTA COMPLETA ENCONTRADA. IMPRIMIR AGORA.
Em vez disso, existe um estado interno em constante evolução.
Cada camada refina as representações.
Cada token gerado modifica o contexto.
A resposta surge em sequência.
Isso ajuda a explicar alguns comportamentos estranhos.
Um modelo pode começar uma resposta com confiança e depois perceber, por meio do contexto que ele mesmo acabou de gerar, que outra direção faz mais sentido.
Ele pode se corrigir.
Ou se contradizer.
Ou, ocasionalmente, cair direto numa vala conceitual enquanto mantém uma gramática excelente.
A geração é um processo, não a recuperação de um objeto pronto.
Onde o cache de chaves e valores entra nisso tudo?
Agora podemos finalmente entender direito o cache de chaves e valores (Key-Value Cache, KV cache).
Lembra de Query, Key e Value?
Cada camada Transformer calcula chaves e valores para os tokens que processa.
Ao gerar o próximo token, a maioria das chaves e dos valores anteriores não precisa ser calculada novamente.
Eles já foram calculados.
Por isso, o programa de inferência os armazena no cache KV.
Portanto, o cache KV não é um recurso extra misterioso colado ao modelo.
Ele está diretamente ligado ao mecanismo de atenção que acabamos de descrever.
O cache diz:
“Já calculamos as chaves e os valores dos tokens anteriores. Vamos mantê-los por perto para não repetir o mesmo trabalho.”
Conforme a conversa cresce, há mais tokens anteriores.
Mais tokens significam mais chaves e valores armazenados.
Então o cache KV cresce.
E, como ele ocupa VRAM, um contexto mais longo exige mais memória de GPU.
Agora a relação fica lógica, em vez de ser algo que você simplesmente precisa decorar:
Mais contexto → mais informações K/V armazenadas → cache KV maior → mais VRAM utilizada.
É exatamente esse tipo de relação que o Green Zone tenta tornar visível.
Então, finalmente: como a máquina pensa?
Vamos voltar uma última vez ao cachorro e ao frango roubado.
Você digitou uma frase.
O computador não entendeu essa frase da mesma forma imediata e sem esforço que você.
Ele precisou construir esse entendimento.
Primeiro, dividiu sua linguagem em tokens.
Depois, transformou esses tokens em vetores.
Esses vetores entraram em uma rede com bilhões de pesos aprendidos.
A autoatenção permitiu que diferentes partes da frase interagissem.
Os vetores Query, Key e Value ajudaram o modelo a decidir quais relações importavam.
A atenção com múltiplas cabeças permitiu examinar vários padrões de relações diferentes ao mesmo tempo.
As redes de propagação direta transformaram as informações resultantes.
As funções de ativação permitiram relações não lineares complicadas.
As conexões residuais levaram informações anteriores úteis adiante.
A normalização de camada manteve o sistema numérico estável.
E cada camada Transformer produziu estados ocultos mais ricos que a anterior.
Quando a informação chegou às últimas camadas, a representação matemática interna já não correspondia apenas a palavras isoladas, como:
cachorro
frango
veterinário
A rede tinha construído algo muito mais próximo de uma representação da situação:
Uma pessoa está preocupada porque um cachorro comeu algo que pode conter ossos perigosos, e ela quer saber se pode ser necessário atendimento médico.
Não existe uma frase em português dizendo isso dentro do modelo.
Não existe um médico minúsculo examinando o cachorro.
Existe um estado complicado feito de números.
Mas esses números agora codificam relações ricas o suficiente para que o modelo gere uma continuação apropriada.
O estado oculto final é transformado em logits.
Os logits viram probabilidades.
Um algoritmo de decodificação escolhe um token.
Esse token passa a fazer parte da próxima entrada.
Outro token é gerado.
Depois outro.
Enquanto isso acontece, as chaves e os valores calculados anteriormente continuam disponíveis no cache KV, permitindo que o modelo continue a conversa sem repetir cada cálculo do zero.
E tudo isso — tokenização, embeddings, atenção, multiplicação de matrizes, transformação de estados ocultos, cálculo de probabilidades, decodificação e armazenamento em cache — pode acontecer tão rápido que a resposta começa a aparecer quase imediatamente.
Não existe uma única operação dentro da máquina chamada pensamento.
Não existe uma “equação da inteligência” especial.
Em vez disso, acontece algo mais interessante.
Milhares de operações matemáticas relativamente simples são repetidas sobre bilhões de parâmetros aprendidos, de novo e de novo, camada após camada, até surgir uma representação complexa.
Pense em um piano.
Um único martelo não é música.
Uma corda não é música.
Uma tecla de madeira não é música.
O pedal certamente não é música.
Você pode desmontar o instrumento inteiro e examinar cada peça sem encontrar Beethoven escondido debaixo do tampo harmônico.
A música aparece quando as peças estão organizadas corretamente e entram em movimento.
Uma rede neural é parecida em um aspecto importante.
Um peso isolado não é inteligente.
Uma multiplicação de matrizes não é inteligente.
Um token não é inteligente.
Nem mesmo uma cabeça de atenção, sozinha, é inteligente.
O comportamento extraordinário surge da interação de todo o sistema.
E talvez essa seja a parte mais estranha da inteligência artificial moderna.
Não descobrimos um símbolo matemático que significa:
inteligência = 42.
Aprendemos a construir sistemas enormes nos quais operações matemáticas simples, cuidadosamente estruturadas e treinadas com grandes quantidades de dados, podem produzir comportamentos que parecem incrivelmente sofisticados.
Você digita:
Devo ligar para o veterinário?
Em algum lugar, bilhões de números entram em ação.
E, um instante depois, a máquina responde.
O que nos deixa com a próxima pergunta óbvia:
De onde vieram esses bilhões de pesos úteis?
Porque, quando o modelo foi criado, esses pesos não sabiam nada sobre cachorros.
Ou frangos.
Ou veterinários.
Ou Python.
Ou a França.
Ou Shakespeare.
Eles tiveram que aprender.
E é aí que começa a próxima história.
Fontes e outras leituras
Compartilhamento e republicação
Publicado por AI Model Green Zone.
Você pode republicar este artigo somente na íntegra e sem alterações, dando crédito ao AI Model Green Zone e incluindo um link ativo e bem visível para o artigo original no nosso site.
Traduções, versões resumidas e adaptações precisam de autorização específica.
Estas condições não restringem os usos permitidos por lei.
O link público estará disponível quando o endereço público do site for configurado.