English · Español
Fase 11 — Teoría de tokenización + implementación de BPE¶
Requiere: 10 — Inicialización, normalización, residuales Enseña:
tokenization·bpe·byte-level·subwords·vocabulary·zipfSalta a cualquier capítulo desde el índice de referencia de fases.
Mapa del capítulo¶
Preescrito según A12. La teoría y los enunciados del laboratorio son borradores estables; las soluciones se escriben justo a tiempo al abrir la fase.
🇪🇸 Tokenizar es decidir el alfabeto del modelo. Aquí construimos un tokenizer BPE byte-level desde cero, entrenado sobre frases inglesas de conjugación verbal (con sus traducciones al español, §A13). Los merges más frecuentes deberían incluir morfemas como
-s,-ed,will,to,he,I.
Objetivo¶
Borja escribe un tokenizer BPE byte-level en Python puro desde cero, lo entrena sobre un corpus bootstrap de verbos en inglés (más adelante se reentrena con el corpus completo de la Fase 12) y demuestra invertibilidad exacta de ida y vuelta sobre ASCII, acentos en español y emojis. El artefacto estrella de la fase son los 30 merges principales del vocabulario entrenado — prueba legible para humanos de que el corpus dio forma al tokenizer. Se espera ver sufijos (-s, -ed, ing), palabras funcionales (will, to) y marcadores de persona (I, he, you) emergiendo como merges principales.
Orden de lectura¶
theory/00-motivation.md— por qué la tokenización es el primer compromiso irreversible de cualquier modelo de lenguaje, y por qué el corpus de gramática verbal dirige el diseño del tokenizer.theory/01-character-word-subword.md— las tres familias de tokenizers; por qué la subpalabra (BPE) gana para nuestro corpus bilingüe de verbos; cuánto nos costaría el OOV.theory/02-bpe-algorithm.md— los algoritmos de entrenamiento y codificación de BPE, con un ejemplo de juguete totalmente desarrollado sobre frases con verbos en inglés.theory/03-byte-level-and-unicode.md— bytes vs caracteres; UTF-8 de los acentos españoles (á,ñ,¿); NFC vs NFD; emojis; la convención de espacio inicial de GPT-2.lab/00-toy-bpe-by-hand.md— cinco merges sobre un corpus juguete de 5 frases con verbos en inglés, en papel, antes del código.lab/01-implement-bpe.md— escribesrc/minitoken/bpe.py. Train + encode + decode + tests basados en propiedades de ida y vuelta.lab/02-bpe-on-verb-corpus.md— entrena sobre el corpus bootstrap de verbos (y luego el corpus de la Fase 12) en tres tamaños de vocabulario; produce gráfica de Zipf + 30 merges principales con anotaciones morfológicas.
solutions/ está vacío durante el preescrito — se rellena al abrir la fase.
Definición de hecho (DoD)¶
Véase PHASE_11_PLAN.md §6. En breve:
src/minitoken/{bpe.py, vocab.py}limpio conmypy --strict, contrain/encode/decode/save/load.- Tests basados en propiedades pasan sobre 1k entradas UTF-8 aleatorias (
hypothesis) cubriendo ASCII, rango español y emojis. - El vocabulario entrenado sobre el corpus de verbos expone morfología en sus merges principales:
-s,-ed,will,to,ing, más al menos 3 verbos enteros como tokens únicos. - Gráfica de Zipf de frecuencias de tokens comprometida.
- Puedes explicar el entrenamiento BPE paso a paso con una traza de 5 merges a mano sobre el corpus juguete de verbos en inglés.
Lo que esta fase intencionadamente NO cubre¶
- WordPiece (estilo BERT) — solo encuesta en theory 02.
- Unigram tokenizer (entrenamiento EM estilo SentencePiece) — solo encuesta.
tiktokenotransformers.AutoTokenizer— explícitamente prohibido por la regla dura 4 del §0 de CLAUDE.md (notransformerslib antes de la Fase 24). Construimos primero, luego leemos el código de otros en la Fase 24.- Regex de pre-tokenización (el
patde GPT-2 que divide por espacios y puntuación antes de BPE). Operamos sobre bytes en bruto. Se discute en teoría pero no se implementa. - Conciencia gramatical a nivel del tokenizer. BPE es estadístico, no gramatical. Fusiona
-sporque es frecuente, no porque sea un morfema. El modelo aprende gramática a partir de la Fase 13 (embeddings + attention). - El corpus completo de la Fase 12. La Fase 11 usa un corpus bootstrap pequeño (≈ 30 frases con verbos tecleadas a mano en
data/raw/bootstrap-en.txt). El corpus completo de 600 formas llega en la Fase 12 y el BPE se reentrena sobre él como elemento final de DoD de la Fase 12.
El alcance de la Fase 11 es el tokenizer BPE byte-level — el puente entre el texto en bruto y los IDs enteros. Nada más.
Lecturas recomendadas¶
Opcional — enriquece pero no es necesario para aprobar la fase.
- 📄 Neural Machine Translation of Rare Words with Subword Units — Sennrich, Haddow, Birch · 2015. el paper original de BPE que reimplementas.
- ✍️ Let's build the GPT Tokenizer — Karpathy · 2024. BPE byte-level construido en vivo, de principio a fin.