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.
| Nome | O que especifica | O que continua a depender do modelo |
|---|---|---|
| BPE | Um algoritmo baseado em fusões | Símbolos iniciais, pré-processamento, fusões, vocabulário |
| SentencePiece | Uma implementação de tokenizador para texto bruto que suporta BPE e unigramas | Tipo de modelo, normalização, vocabulário, recurso a bytes para símbolos desconhecidos |
| tiktoken | Uma implementação de codificações BPE ao nível dos bytes | Codificaçã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.