Um token é a unidade fundamental de texto que um modelo de linguagem lê e escreve. No contexto de grandes modelos de linguagem, tokens não são necessariamente palavras inteiras; eles podem ser subpalavras, caracteres ou até representações em nível de byte. O processo de converter texto bruto em tokens é chamado de tokenização, e é uma etapa de pré-processamento crítica que determina como um modelo interpreta e gera linguagem. Todas as métricas operacionais de um modelo de linguagem, incluindo preço, tamanho da janela de contexto e velocidade de processamento, são medidas em tokens, tornando-os a moeda dos sistemas modernos de inteligência artificial.
A tokenização permite que os modelos lidem com um vasto vocabulário de forma eficiente. Em vez de armazenar todas as palavras possíveis, um tokenizador divide o texto em partes menores com base em um vocabulário aprendido, tipicamente variando de 30.000 a 100.000 tokens. Por exemplo, a palavra "infelicidade" pode ser dividida em "in", "felici" e "dade", enquanto palavras comuns como "o" permanecem como tokens únicos. Essa abordagem equilibra eficiência computacional com cobertura linguística, permitindo que os modelos processem diversos idiomas e jargões técnicos sem um tamanho de dicionário impraticável.
Métodos de Tokenização
Vários algoritmos de tokenização foram desenvolvidos ao longo dos anos. A Codificação por Pares de Bytes (BPE), introduzida por Rico Sennrich e colegas em 2016, é um dos métodos mais amplamente utilizados. A BPE mescla iterativamente os pares mais frequentes de caracteres ou subpalavras em um corpus de treinamento até que um tamanho de vocabulário alvo seja alcançado. Outro método popular é o WordPiece, desenvolvido no Google, que usa uma abordagem baseada em verossimilhança para selecionar mesclagens. Mais recentemente, o SentencePiece, criado pelo Google, trata o texto inteiro como uma sequência de caracteres e pode lidar com idiomas sem limites claros de palavras, como japonês ou chinês.
A tokenização por modelo de linguagem Unigram, também implementada no SentencePiece, adota uma abordagem probabilística ao selecionar a segmentação mais provável de um texto com base em um modelo unigram treinado. Cada método tem trade-offs em termos de taxa de compressão, tratamento de palavras fora do vocabulário e desempenho do modelo downstream. A escolha do tokenizador afeta significativamente o quão bem um modelo entende palavras raras, variações morfológicas e texto multilíngue.
Papel nos Modelos de Linguagem
Em modelos baseados em transformer, os tokens são convertidos em embeddings numéricos que servem como entrada para a rede neural. Cada token recebe um ID inteiro único do vocabulário, e esses IDs são mapeados para vetores de alta dimensão que capturam informações semânticas e sintáticas. O modelo processa sequências desses embeddings através de múltiplas camadas de atenção e redes feed-forward, aprendendo padrões e relações entre tokens.
Durante a geração, o modelo produz uma distribuição de probabilidade sobre todo o vocabulário de tokens para o próximo token, dado o contexto precedente. Esse processo autorregressivo continua até que um token especial de fim de sequência seja produzido ou um comprimento máximo seja alcançado. A granularidade dos tokens afeta a capacidade do modelo de gerar texto coerente; tokens de subpalavras permitem composição flexível de novas palavras, enquanto tokens em nível de caractere exigiriam sequências muito mais longas e mais computação.
Janela de Contexto e Limites
O tamanho da janela de contexto, medido em tokens, define quanto texto um modelo pode considerar de uma vez. Modelos antigos como GPT-2 tinham janelas de contexto de 1.024 tokens, enquanto modelos modernos como GPT-4 Turbo suportam até 128.000 tokens, e alguns modelos como Claude 3 oferecem contextos de 200.000 tokens. Esses limites impactam diretamente os tipos de tarefas que um modelo pode realizar, como analisar documentos longos, resumir livros inteiros ou manter conversas coerentes ao longo de interações estendidas.
Quando a entrada excede a janela de contexto, os modelos tipicamente truncam os tokens mais antigos ou usam técnicas como janelas deslizantes ou aumento por recuperação para gerenciar textos mais longos. A janela de contexto também influencia o uso de memória e o custo computacional; contextos mais longos exigem mais computações de atenção, que escalam quadraticamente com o comprimento da sequência em transformers padrão. Isso motivou pesquisa em mecanismos de atenção eficientes, como atenção esparsa e atenção linear, para estender comprimentos de contexto sem demandas de recursos proibitivas.
Preço e Custo
Provedores de API cobram com base no uso de tokens, tipicamente diferenciando entre tokens de entrada e saída. Por exemplo, o GPT-4 Turbo da OpenAI custa $0,01 por 1.000 tokens de entrada e $0,03 por 1.000 tokens de saída, enquanto o Claude 3 Opus da Anthropic cobra $0,015 para entrada e $0,075 para saída por 1.000 tokens. Esses preços refletem o custo computacional de processar tokens, com tokens de saída sendo mais caros devido ao processo de geração sequencial.
A contagem de tokens também determina o custo de fine-tuning e treinamento. Treinar um modelo envolve processar bilhões de tokens, e o custo total escala linearmente com o número de tokens. Por exemplo, treinar um modelo de 70 bilhões de parâmetros como Llama 2 exigiu aproximadamente 2 trilhões de tokens, custando milhões de dólares em computação. Entender o preço de tokens é essencial para orçar aplicações de IA, especialmente aquelas que envolvem processamento de texto em larga escala ou interações em tempo real.
Velocidade e Throughput
A velocidade de processamento é medida em tokens por segundo (TPS). A velocidade de inferência varia amplamente dependendo do hardware e do tamanho do modelo. Em GPUs de alto desempenho como NVIDIA A100, um modelo de 7 bilhões de parâmetros pode gerar 20-30 tokens por segundo, enquanto modelos menores em hardware especializado podem alcançar centenas de tokens por segundo. Empresas como Groq desenvolveram chips personalizados que alcançam throughput extremamente alto, com sua LPU (Unidade de Processamento de Linguagem) entregando mais de 500 tokens por segundo para alguns modelos.
A velocidade é crítica para aplicações em tempo real, como chatbots, conclusão de código e tradução ao vivo. A latência, o tempo até o primeiro token, também é medida em milissegundos e depende do tamanho do modelo e da eficiência da pilha de inferência. Técnicas como quantização, poda de modelo e decodificação especulativa são usadas para melhorar o throughput de tokens, permitindo implantações mais responsivas e econômicas.
Eficiência e Otimização de Tokens
Pesquisadores e profissionais buscam continuamente melhorar a eficiência de tokens. Isso inclui desenvolver tokenizadores que comprimem texto de forma mais eficaz, reduzindo o número de tokens necessários para representar a mesma informação. Por exemplo, alguns modelos usam tokenização em nível de byte para lidar com texto arbitrário, enquanto outros empregam vocabulários especializados para código ou notação científica.
A engenharia de prompt também foca na eficiência de tokens, já que prompts mais curtos reduzem custo e latência. Técnicas como ajuste de instruções e aprendizado de poucos exemplos visam alcançar saídas desejadas com uso mínimo de tokens. Além disso, destilação de modelo e quantização podem reduzir o custo computacional por token, tornando os modelos mais rápidos e baratos de executar sem perda significativa de desempenho.
Direções Futuras
À medida que os modelos de linguagem evoluem, a tokenização permanece uma área ativa de pesquisa. Modelos multimodais agora tokenizam não apenas texto, mas também imagens, áudio e vídeo, usando tokenizadores separados ou unificados. Por exemplo, modelos como GPT-4V processam patches de imagem como tokens, enquanto modelos de áudio convertem formas de onda em representações discretas. Essa expansão de tipos de tokens permite sistemas de IA mais versáteis que podem entender e gerar através de modalidades.
Há também interesse crescente em tokenização dinâmica, onde a segmentação se adapta com base no contexto ou na tarefa. Algumas pesquisas exploram o uso de unidades de token maiores, como frases ou sentenças inteiras, para melhorar eficiência e coerência. No entanto, essas abordagens enfrentam desafios em manter flexibilidade e lidar com entradas novas. O desenvolvimento contínuo de técnicas de tokenização continuará a moldar as capacidades e a economia dos modelos de linguagem.