BPE vs. SentencePiece vs. tiktoken: en qué se diferencian los tokenizadores
Traducción automática
Este artículo se tradujo automáticamente a partir de la versión original en inglés.
BPE es un algoritmo de tokenización. SentencePiece y tiktoken son implementaciones con distintas convenciones de entrenamiento, preprocesamiento y vocabulario. SentencePiece admite modelos BPE y unigramas; tiktoken utiliza codificaciones BPE a nivel de byte. Sus identificadores de token no son intercambiables.
Para estimar el uso del contexto o procesar texto, los ingenieros deben utilizar el tokenizador y la plantilla de prompt que correspondan al checkpoint o al modelo de la API concretos.
Distingue el algoritmo de la implementación
Byte Pair Encoding aprende fusiones repetidas de símbolos adyacentes. BPE basado en caracteres comienza con caracteres; las variantes a nivel de byte comienzan con bytes. Las fusiones aprendidas y el vocabulario determinan cómo se divide una cadena. Una palabra habitual puede ser un token en un vocabulario y varios en otro.
| Nombre | Qué especifica | Qué sigue dependiendo del modelo |
|---|---|---|
| BPE | Un algoritmo basado en fusiones | Símbolos iniciales, preprocesamiento, fusiones, vocabulario |
| SentencePiece | Una implementación de tokenizador para texto sin procesar que admite BPE y unigramas | Tipo de modelo, normalización, vocabulario, recurso a bytes para símbolos desconocidos |
| tiktoken | Una implementación de codificaciones BPE a nivel de byte | Codificación, vocabulario, reglas para tokens especiales |
SentencePiece procesa texto Unicode sin procesar y representa los espacios en blanco con el marcador ▁. El recurso a bytes para símbolos desconocidos es opcional. tiktoken ofrece codificaciones con nombre y tratamiento a nivel de byte.
Las familias de tokenizadores también pueden cambiar dentro de una misma marca de modelos. La documentación de Mistral distingue los tokenizadores SentencePiece anteriores de Tekken, que utiliza BPE al estilo de tiktoken. Carga el tokenizador del checkpoint en lugar de deducirlo a partir de la marca.
Mide texto representativo
Para cada idioma y tipo de contenido que ofrezcas, registra el número de tokens después de aplicar la plantilla de prompt real. Incluye los marcadores de rol, los tokens especiales, las herramientas y cualquier instrucción adicional serializada. Contar solo el texto visible del usuario puede subestimar el tamaño de la solicitud.
Para comparar tokenizadores con una muestra fija, define una unidad, como palabras o caracteres, y divide los tokens por el número de unidades. Mantén constantes la normalización y la muestra. Las «palabras» delimitadas por espacios en blanco no son una unidad lingüística comparable en todos los idiomas, así que indica la regla de medición.
El tamaño del vocabulario por sí solo no demuestra la eficiencia en tokens entre distintos corpus de entrenamiento. Un recuento obtenido con el tokenizador de otro modelo tampoco demuestra que tu solicitud quepa en el límite de contexto del modelo seleccionado.
Guía de ingeniería: tokenización ofrece ejemplos de vocabularios y explica la fertilidad de los tokenizadores.