Quebrando a tokenização no LLMS: como ai leu suas palavras
Quando você interage com grandes modelos de idiomas (LLMS) como GPT-5, Llama ou Claude, parece que você está enviando frases e parágrafos. Mas sob o capô, o modelo não “vê” o texto da maneira que fazemos. Em vez disso, tudo o que você digita é dividido em tokens – unidades fundamentais que ficam no coração de como o LLMS processam, geram e preço suas saídas. Nesta postagem, mergulharemos profundamente na tokenização no aprendizado de máquina, por que isso é importante para os desenvolvedores e como você pode realmente experimentar tokenizadores usando ferramentas como o TikTokenizer. O que é tokenização? A tokenização é o processo de dividir o texto em unidades menores chamadas tokens, que são então mapeadas para IDs numéricas e incorporados em vetores para processamento. Para nós, as palavras são pedaços naturais de significado. Para máquinas, os tokens são a ponte entre o texto bruto e a computação matemática. Exemplo (tokenizer no estilo GPT): Texto: “O aprendizado de máquina é incrível!” Tokens: [“Machine”, ” learning”, ” is”, ” amazing”, “!”]
Digite o modo de saída de tela cheia de tela cheia, cada um dos mapas de token em um ID inteiro:
[1234, 5678, 90, 4321, 999]
Digite o modo de saída do modo de tela cheia, esses números inteiros são o que o modelo realmente processa. Por que a tokenização é importante na tokenização LLMS não é apenas um detalhe de pré-processamento-ele tem grandes implicações no mundo real: os modelos de limitações de janelas de contexto podem lidar apenas com um certo número de tokens na memória (por exemplo, 4K, 32K ou mesmo 1M tokens). Seu rascunho de 10.000 palavras pode não se encaixar porque a tokenização pode expandir a entrada. Preços & API Custos A maioria dos fornecedores de LLM cobra por token, não por palavra. Um e -mail “curto” pode ser de 60 palavras, mas mais de 90 tokens, dependendo de como é dividido. Otimizar seus avisos pode economizar dinheiro sério. A eficiência da tokenização da eficiência do idioma e do domínio difere pelo idioma e pelo domínio: as palavras em inglês geralmente são tokenizadas de maneira limpa. Línguas aglutinativas (como turca ou finlandesa) podem explodir em muitos tokens. O código de programação tende a ser pesado de token (function () {} geralmente se torna vários tokens). Técnicas de tokenização no LLMS Vamos explorar as principais estratégias usadas no moderno NLP: 1. A tokenização baseada em palavras (velha escola) se divide em espaços/pontuação. Exemplo: “Machine Learning Rocks” → [“Machine”, “learning”, “rocks”]. Problema: Explosão de vocabulário (“Running”, “Runs”, “Ran” são todos separados). 2. A tokenização do subpainhe (BPE, Wordpiece, Unigram LM) divide o texto em subpainhas, equilibrando o tamanho e a generalização do vocabulário. “Desfaptura” → [“un”, “happi”, “ness”]
Digite o modo de saída do modo de tela cheia de tela cheia usada nos modelos BERT e de transformadores iniciais. 3. A codificação de par-pares de byte (BPE, GPT-2/GPT-3) começa no nível do caractere, mescla pares frequentemente co-ocorridos. Lida com palavras raras melhor. Exemplo: “Programação” → [“program”, “ming”]. 4. A tokenização no nível de byte (GPT-2 e além) trabalha no nível de byte cru (UTF-8). Vantagens: lida com emojis, caracteres acentuados e texto raro perfeitamente. Exemplo: “🐱” → [“🐱”] Em vez de invadir tokens desconhecidos. 5. A simulação no nível do caractere (rara para LLMS) se divide em todos os caracteres. Exemplo: “ai” → [“A”, “I”]. Descunda: sequências muito longas → ineficiente para LLMS. Comparando tokenizers no mesmo texto Vamos aceitar a frase: eu amo programação em python 🐍 Digite o modo de tela cheia Sair do modo de tela cheia baseada em palavras: [“I”, “love”, “programming”, “in”, “Python”, “🐍”]
BPE (GPT-2): [“I”, ” love”, ” program”, “ming”, ” in”, ” Python”, ” 🐍”]
Nível de personagem: [“I”, ” “, “l”, “o”, “v”, “e”, ” “, “p”, “r”, …]
Observe como o BPE divide a “programação” em “Programa” + “Ming”, enquanto os emojis permanecem intactos sob a tokenização no nível de bytes. Agora, é assim que parece usar o popular CL100K_BASE POR QUE os desenvolvedores devem se preocupar com a tokenização como um desenvolvedor de desenvolvedores em cima do LLMS, a tokenização afeta diretamente seu trabalho: uso e cobrança da API – todos os tokens contam em relação ao custo de entrada/saída. Design rápido – O entendimento dos tokens ajuda você a criar instruções concisas e eficientes. Suporte ao idioma – A eficiência da tokenização varia entre os idiomas; O teste é essencial. Otimização – O pré -processamento do seu texto (compactação de JSON, corte de branco) pode reduzir o uso de token em 10 a 20%. Então, execute suas instruções através de um tokenizador primeiro. Isso economizará dinheiro, evitará problemas de corte e fornecerá uma imagem mais clara de como seu aplicativo interage com o LLMS.
Fonte