Fiquei super curiosa para entender melhor o que são os tokens e o processo de tokenização. Com isso, pedi ao Google AI Studio que me explicasse de maneira didática, com analogias e exemplos, o que é o processo de tokenização utilizado pelas IAs. Segue a explicação. Achei fantástica!
Imagine que você e a Inteligência Artificial (IA) são de planetas diferentes.
Você fala Português (palavras, frases, emoções), e a IA fala Matematiquês
(apenas números e cálculos).
Se você disser "Eu amo pizza" para a IA, ela não vai entender absolutamente
nada. O processo de tokenização é o primeiro passo para traduzir a sua linguagem
humana para a linguagem matemática da máquina.
Vamos entender isso em três passos simples, usando analogias e exemplos.
- A Analogia do Castelo de Lego (O que é o Token?)
Imagine que um texto inteiro (um parágrafo ou uma frase) é um grande Castelo de
Lego. A IA não consegue engolir ou processar o castelo inteiro de uma vez. Ela
precisa desmontar esse castelo nas suas pecinhas fundamentais.
O processo de desmontar o texto se chama Tokenização, e cada pecinha de Lego
individual é o que chamamos de Token.
- Castelo inteiro (Frase): "A gata preta pulou."
- Pecinhas de Lego (Tokens):["A", "gata", "preta", "pulou", "."]
Nota: Sim, a pontuação também costuma ser uma pecinha separada!
- A Analogia do Cardápio de Lanchonete (Por que transformar em Token?)
Como dissemos, a IA só entende números. Então, como os tokens de palavras viram
números?
Pense no cardápio de uma lanchonete de fast-food. Quando você chega no caixa e
pede o "Combo Número 4", o cozinheiro lá atrás não precisa ler "Hambúrguer de
frango com queijo, batata média e refrigerante". Ele só recebe o número 4 na
tela dele e já sabe exatamente o que fazer.
A IA possui um "cardápio" gigante (chamado de vocabulário), que tem milhares de
tokens, e cada um tem um número de identificação (ID).
Então, a frase "Eu amo pizza" passa pela tokenização assim:
- Desmontar: ["Eu", "amo", "pizza"]
- Olhar o cardápio (IDs fictícios): ["Eu" = 105], ["amo" = 894], ["pizza"
= 4320]
Pronto! A IA recebe os números [105, 894, 4320]. Agora ela consegue usar
matemática para prever qual será a próxima palavra.
- A Grande Sacada: A Analogia da Sílaba (Por que a IA não usa apenas palavras inteiras?)
Você deve estar pensando: "Por que a IA não pega um dicionário comum e dá um
número para cada palavra que existe no mundo?"
Porque isso seria impossível! Pense em quantas variações existem: correr,
correndo, correrei, corria, corremos... E as palavras inventadas? E gírias
novas? O "cardápio" da IA ficaria pesado e lento demais.
Para resolver isso, as IAs modernas (como o ChatGPT) usam Tokens de Sub-palavras
(pedaços de palavras). É parecido com a forma como aprendemos a separar as
sílabas na escola ou a entender os prefixos e sufixos.
Exemplo prático com a palavra "Infelizmente": Em vez de gastar espaço na memória
criando um número para "Infelizmente", "Felizmente", "Infeliz", a IA corta a
palavra em blocos menores que se repetem muito no idioma:
- Texto: "Infelizmente"
- Tokens: ["In", "feliz", "mente"]
Isso é genial por dois motivos:
- Economiza espaço: O token ["mente"] pode ser reaproveitado em "rapidamente",
"lentamente", etc. - Lida com palavras novas: Se você inventar a palavra "Neymarmente" (agir como
o Neymar), a IA não vai travar por não conhecer a palavra. Ela vai tokenizar
como["Neymar", "mente"] e, por causa do bloquinho "mente", ela vai deduzir
matematicamente que é um advérbio de modo!
Resumo da Ópera
- Você digita um texto.
- A tokenização atua como um triturador inteligente, cortando seu texto em
pedacinhos (palavras ou partes de palavras) = Tokens. - Ela consulta um grande dicionário interno e transforma cada pedacinho em um
número. - A IA faz cálculos complexos com esses números.
- Ela gera uma resposta em números, converte de volta para texto (usando o
mesmo dicionário) e exibe na sua tela.
Curiosidade final: É por causa da tokenização que as IAs às vezes são ruins em
jogos de adivinhar letras ou soletrar de trás pra frente. Se a IA aprendeu que
"Cachorro" é um token único (ex: ID 580), ela enxerga o bloco inteiro "580", e
não as letras C-a-c-h-o-r-r-o separadas!