BPE, SentencePiece e tiktoken: diferenças entre tokenizadores

Tradução automática

Este artigo foi traduzido automaticamente a partir da versão original em inglês.

BPE é um algoritmo de tokenização. SentencePiece e tiktoken são implementações com diferentes convenções de treino, pré-processamento e vocabulário. SentencePiece suporta modelos BPE e de unigramas; tiktoken utiliza codificações BPE ao nível dos bytes. Os seus identificadores de token não são intercambiáveis.

Os engenheiros que estimam a utilização do contexto ou processam texto têm de utilizar o tokenizador e o template de prompt que correspondem ao checkpoint ou ao modelo de API exatos.

Distinga o algoritmo da implementação

Byte Pair Encoding aprende fusões repetidas de símbolos adjacentes. O BPE baseado em caracteres começa com caracteres; as variantes ao nível dos bytes começam com bytes. As fusões aprendidas e o vocabulário determinam como uma cadeia de caracteres é dividida. Uma palavra comum pode corresponder a um token num vocabulário e a vários noutro.

NomeO que especificaO que continua a depender do modelo
BPEUm algoritmo baseado em fusõesSímbolos iniciais, pré-processamento, fusões, vocabulário
SentencePieceUma implementação de tokenizador para texto bruto que suporta BPE e unigramasTipo de modelo, normalização, vocabulário, recurso a bytes para símbolos desconhecidos
tiktokenUma implementação de codificações BPE ao nível dos bytesCodificação, vocabulário, regras dos tokens especiais

SentencePiece processa texto Unicode bruto e representa os espaços em branco com o marcador ▁. O recurso a bytes para símbolos desconhecidos é opcional. tiktoken fornece codificações com nome e tratamento ao nível dos bytes.

As famílias de tokenizadores também podem mudar dentro de uma mesma marca de modelos. A documentação da Mistral distingue os tokenizadores SentencePiece anteriores do Tekken, que utiliza BPE ao estilo do tiktoken. Carregue o tokenizador do checkpoint em vez de o deduzir a partir da marca.

Meça texto representativo

Para cada idioma e tipo de conteúdo que disponibiliza, registe o número de tokens depois de aplicar o template de prompt real. Inclua os marcadores de função, os tokens especiais, as ferramentas e quaisquer instruções adicionais serializadas. Contar apenas o texto visível do utilizador pode subestimar o tamanho do pedido.

Para comparar tokenizadores com uma amostra fixa, defina uma unidade, como palavras ou caracteres, e divida o número de tokens pelo número dessas unidades. Mantenha a normalização e a amostra constantes. As «palavras» delimitadas por espaços em branco não são uma unidade linguística comparável em todos os idiomas, pelo que deve indicar a regra de medição.

O tamanho do vocabulário, por si só, não demonstra a eficiência em tokens entre diferentes corpora de treino. Uma contagem obtida com o tokenizador de outro modelo também não prova que o seu pedido cabe no limite de contexto do modelo selecionado.

Guia de engenharia: tokenização apresenta exemplos de vocabulários e explica a fertilidade dos tokenizadores.