Tokenizer de codificação de pares de bytes (BPE)
Já se perguntou como modelos como GPT entendem o texto? Tudo começa com a tokenização – e uma das técnicas mais poderosas por trás dela é chamada de codificação de pares de bytes (BPE). Neste post, explicarei o BPE como se você fosse cinco e depois mostre como construí -lo do zero em Python. 🧠 O que é um tokenizador? Antes que um modelo de aprendizado de máquina possa funcionar com a linguagem, ele precisa converter texto em números. Mas como? Ao dividir o texto em pequenos pedaços chamados tokens, e dando a cada peça um número. Por exemplo: “eu amo gatos” → [“I”, “love”, “cats”] → [101, 204, 999
But here’s the twist:
What if the model has never seen the word “cats” before?Should it just give up? Not with BPE.
🔍 What is Byte Pair Encoding (BPE)?
BPE is a clever way to build up tokens from characters, by looking at what combinations show up the most in real text.
It works like this:
Split every word into characters”hello” → [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
Encontre o par mais comum de símbolos → mescle -os (por exemplo, (‘l’, ‘l’) → ‘ll’) repita até atingir o tamanho do seu vocabulário (como 1000 tokens) o que é legal é que o BPE não entende o significado das palavras – mas aprende acidentalmente palavras reais, apenas porque elas parecem muito. 🧱 BPE Em inglês simples Imagine que você está construindo com blocos de lego. Primeiro, você só tem tijolos minúsculos – um para cada letra. Mas, à medida que você constrói cada vez mais frases, você percebe: “H” e “E” estão muitas vezes juntos → Faça um “ele” bloqueando “ele” e “L” → “Hel” “inferno” e “O” → “Hello”, eventualmente, palavras comuns como “olá” se tornam um único token. [“circum”, “navi”, “gation”]. 🧪 Construa seu próprio tokenizador BPE (do zero!) Aqui está um tokenizador BPE mínimo em Python usando apenas funções – também funciona muito bem no Google Colab. De coleções importam contador def get_stats (token_lists): pars = contador () para tokens em token_lists: para i no range (len (tokens) – 1): pares[(tokens[i]tokens[i+1])]]+= 1 pares de retorno def merge_tokens (token_lists, par): mescle = []
bigram = ” .Join (par) para tokens em token_lists: new_tokens = []
i = 0 enquanto eu
Publicar comentário