English · Español
00 — Por qué un corpus bilingüe enumerado diminuto vence a uno gigantesco scrapeado¶
🇪🇸 Datos de baja calidad anulan cualquier arquitectura. Construimos a mano un corpus pequeño y opinado: la enumeración completa de 20 verbs × 5 tenses × 3 persons con su traducción al español. Etiquetas correctas por construcción, cobertura garantizada, reproducible desde una semilla. Lo que el modelo aprenda sobre gramática verbal viene de aquí; si esto está mal, todo está mal.
"Garbage in, mystery out"¶
Un modelo es un compresor: aprende patrones en sus datos de entrenamiento y los reproduce en inferencia. Si los patrones en los datos están mal, el modelo está mal. Ninguna arquitectura inteligente, ningún regularizador sofisticado, ninguna cantidad de cómputo arregla un corpus corrupto.
Esto es bien conocido. También se ignora rutinariamente. Proyectos públicos de IA (AI) en 2026 siguen construyendo modelos sobre datos scrapeados con etiquetas no verificadas — y luego pasan meses depurando "¿por qué el modelo hace X?" cuando la respuesta es "tu conjunto de entrenamiento dice que haga X".
La Fase 12 es la fase de mayor palanca-por-hora del currículo. Bien hecha, el resto del proyecto es directo. Mal hecha, las Fases 13–32 producen un modelo que misterio-fuera en cada entrada interesante — incluyendo el capstone de tutor de gramática.
Los dos extremos (y por qué elegimos el pequeño)¶
Extremo A: scrapear la web abierta en busca de texto en inglés¶
100 GiB de texto en inglés de Common Crawl. Suena estupendo. Problemas:
- Sin etiquetas morfológicas. Una frase scrapeada
He works hard.no lleva anotación que diga "esto es 3rd-person singular present simple dework". Para obtener esas etiquetas, necesitas un parser (que es a su vez un modelo — circularidad). Para obtener pares en español, necesitas un traductor (otro modelo). El pipeline completo se convierte en "confiar en las salidas de otros modelos como etiquetas", que es exactamente lo que dijimos que no haríamos. - Sesgo distribucional. El texto real en inglés está enormemente sesgado: el verbo
bees ~10× más común quewalk; la 3rd-personhe/she/ites ~5× más rara que la 1st-personIen diálogo pero ~3× más común en narrativa. Sin balanceo explícito, el modelo sobreajusta al sesgo que tenga el scrape. - Cobertura de tiempos no uniforme. Past perfect es raro; simple present está por todas partes. Queremos nuestra matriz 20 × 5 × 3 uniformemente cubierta.
- Riesgo de licencia. El texto scrapeado tiene complicaciones de licencia. Republicar es su propio dolor de cabeza legal.
- Reproducibilidad. La web de hoy ≠ la web de ayer. No puedes fijar un corpus así.
Extremo B: escribir a mano 600 frases en papel¶
Tipea cada forma en inglés + traducción al español a mano. ¿Calidad? Excelente. ¿Coste? ~3–5 horas de pura introducción de datos. Borja tiene cosas mejores que hacer; además, los errores tipográficos se colarán y se propagarán silenciosamente.
Nuestra elección: sintético enumerado¶
Para cada uno de 20 verbos × 6 formas superficiales de tiempo × 3 personas = 360 celdas (el simple future se divide en superficies will y going to; ver "La matriz de cobertura 20 × 6 × 3" más abajo), enumera la forma en inglés vía un generador guiado por una tabla de verbos. Para cada forma en inglés, busca la forma en español en una tabla de conjugación paralela en español. Para un subconjunto curado de celdas, emite una forma deliberadamente incorrecta con una etiqueta mis_conjugation_type.
| Métrica | Web-scrape | Tipeado a mano | Sintético enumerado |
|---|---|---|---|
| Coste (horas) | 100s (limpieza) | 5 (tipeo) | ~2 (tabla de verbos) + 4 (generator+pares) |
| Calidad de etiquetas | Baja (inferida) | Alta (manual) | Perfecta (por construcción) |
| Cobertura | Sesgada | Manual | Garantizada (360 celdas) |
| Reproducibilidad | Ninguna | Manual | Con semilla |
| Licencia | Enredada | Propia | Propia |
| Pares en español | Modelo traductor | Manual | Desde un diccionario estático |
El enfoque enumerado gana en cada eje. El coste es autoría opinada — la micro-gramática §A13 es la especificación. Ese es todo el punto del alcance microscópico de §A13: hacemos el corpus completo.
La matriz de cobertura 20 × 6 × 3 (5 tiempos, 6 formas superficiales)¶
Según §A13, los verbos en el alcance son:
Regulares (12): work, play, walk, talk, listen, watch, study, finish, start, look, want, like
Irregulares (8): be, have, do, go, come, see, eat, write
Los 5 tiempos verbales en el alcance:
- Infinitive (bare:
work,to work). - Present simple — 3rd person singular añade
-s(o-es):I work,he works. - Past simple — los regulares añaden
-ed; los irregulares usan stems almacenados (go → went). - Past participle — para regulares igual que past simple (
worked); para irregulares distinto (go → gone,eat → eaten). - Simple future — tanto la forma
will(I will work) como la formagoing to(I am going to work).
Las 3 personas (según §A13):
- 1st sg
I. - 2nd sg
you. - 3rd sg
he/she/it— usamoshecomo canónica 3rd-sg en el corpus para mantener la matriz pequeña; el modelo aprende la morfología, no la elección léxica del pronombre.
Entonces la matriz es:
I you he
infinitive • • •
pres simple • • •
past simple • • •
past participle • • •
will-future • • •
going-to-future • • •
Un momento — son 6 filas × 3 columnas = 18 celdas por verbo × 20 verbos = 360 celdas. La redacción de §A13 agrupa will y going to como un único tiempo "simple future"; los dividimos en dos celdas por (verbo, persona) por claridad en el corpus. Entonces:
I you he
infinitive (bare) • • •
present simple • • •
past simple • • •
past participle • • •
simple future (will) • • •
simple future (going to) • • •
6 variantes de tiempo × 3 personas × 20 verbos = 360 celdas. El "5 tenses" de §A13 es el conteo conceptual; el corpus divide uno de ellos en dos formas superficiales, así que el conteo de celdas es 360, no 300. Usaremos 360 en adelante como el conteo canónico de celdas. El validador verifica >= 360.
(Nota: past participle como forma autónoma es inusual fuera de construcciones auxiliares como I have worked. Lo incluimos para que el modelo aprenda la morfología del participio; las fases posteriores pueden sintetizar construcciones auxiliares si es necesario.)
Por qué importa la cobertura exacta: generalización morfológica¶
Si solo 280 de las 360 celdas aparecen en el entrenamiento, el embedding+modelo aprende la morfología parcialmente. Las 80 celdas no vistas se convierten en un test de generalización — pero sesgado: no sabemos si las celdas faltantes son fáciles (verbos regulares con sufijos estándar) o difíciles (participios pasados irregulares).
Cobertura exacta significa: el modelo ve cada (verbo, tiempo, persona) al menos una vez. Los tests de generalización ocurren sobre frases no vistas que contienen morfología vista — p. ej., He works hard. (un envoltorio de contexto de frase, opcional v1.5) — no sobre formas faltantes.
Este es el alcance correcto para el tutor de gramática §A13: el trabajo del tutor es reconocer una mis-conjugación como he work, y emitir la forma correcta (he works). No necesita extrapolar a stems verbales no vistos. Necesita memorizar la tabla de 360 celdas con suficiente robustez para aplicarla a entradas mis-conjugadas.
Mis-conjugaciones: el objetivo supervisado para la Fase 32¶
Más allá de las 360 formas correctas, el corpus contiene mis-conjugaciones deliberadas — formas incorrectas emparejadas con sus correcciones. Ejemplos:
| Wrong | Type | Correction |
|---|---|---|
he work |
missing_third_person_s |
he works |
I goed |
overregularization_past |
I went |
she eated |
overregularization_past |
she ate |
he will to work |
wrong_aux_will_with_to |
he will work |
I am go to work |
wrong_aux_going_to_missing_ing |
I am going to work |
you has worked |
subject_verb_disagreement |
you have worked |
he gone |
bare_participle_missing_aux |
he has gone |
Cada fila de mis-conjugación lleva:
text: la forma incorrecta (p. ej.,he work).label:mis_conjugated.mis_conjugation_type: uno de los códigos canónicos.correct_form: la forma correcta (he works).- Los mismos campos
(verb, tense, person, regularity)que las filas correctas.
Esta es exactamente la supervisión que el tutor de gramática de la Fase 32 necesita: input = mis-conjugado, output = correcto + explicación del tipo.
Anti-patrón: generar mis-conjugaciones al azar perturbando los bytes de la forma correcta. Los errores gramaticales reales siguen patrones (sobre-regularización, morfema de acuerdo faltante); los bytes aleatorios no.
Cada tipo de mis-conjugación se enumera explícitamente por el generador, extrayendo de una taxonomía cerrada de ~6 tipos (ver 01-schema-and-labels.md).
Pares en español: señal cruzada interlingüística integrada¶
Según §A2, cada fila en inglés tiene una traducción al español. Para nuestra gramática enumerada, esto significa: el generador también enumera los 20 infinitivos verbales en español (trabajar, jugar, caminar, hablar, escuchar, ver/mirar, estudiar, terminar, empezar, mirar, querer, gustar, ser/estar, tener, hacer, ir, venir, ver, comer, escribir) y sus conjugaciones a través de los tiempos y personas correspondientes en español.
Sutilezas:
- El español tiene más distinciones de persona que el inglés (
yo, tú, él/ella/usted, …). Mapeamos: 1st sgI → yo, 2nd sgyou → tú, 3rd sghe → él. (ustedes el 2nd sg formal; fuera de alcance.) - Algunos verbos en inglés mapean ambiguamente (
be → seroestar;look → miraroparecer;like → gustarcon sintaxis invertida). Para v1, el generador escoge un lema canónico en español por verbo en inglés, registrado en la tabla de verbos. Documenta la elección; la Fase 13 puede revisar. - Los irregulares en español no se alinean con los irregulares en inglés.
work(regular EN) mapea atrabajar(regular ES);go(irregular EN) mapea air(altamente irregular ES). El camporegularityes por-idioma — la fila llevaenglish_regularityyspanish_regularitypor separado.
¿Por qué bilingüe?
- El chequeo destacado de la Fase 13 (visualización de embeddings) quiere ver si
workytrabajaracaban cerca uno del otro en el espacio del embedding. Eso solo es posible si el corpus contiene ambos consistentemente. - Cobertura del tokenizer (Fase 11). Los acentos en español (
ñ,á,é) fuerzan al BPE a nivel de byte a aprender fusiones multi-byte — que es exactamente la robustez cross-script de la que la teoría 03 de la Fase 11 hace defensa. - Pedagógicamente, Borja obtiene recibos cruzados de que la geometría es significativa, no solo un agrupamiento coincidente de sufijos en inglés.
Lo que nos compra "opinado"¶
Un corpus enumerado es opinado por definición — nosotros elegimos qué hay en él. Esa es la fuente de su valor:
- Podemos garantizar que el modelo ve cada morfema. Sin puntos ciegos del corpus.
- Podemos balancear cada celda (verbo, tiempo, persona) exactamente. Sin ventaja de sesgo por un
besobre-representado. - Podemos stress-testear tipos específicos de mis-conjugación. Si el agente lo hace mal en
wrong_aux_will_with_to("he will to work"), podemos generar más de tales ejemplos.
El trade-off: el corpus no refleja la distribución real del inglés. Está bien — el tutor de la Fase 32 se evalúa sobre entradas de test enumeradas similarmente. Si alguna vez queremos generalizar a "inglés real en la naturaleza", eso es v2 (refinamiento de Fase 38+).
La reproducibilidad no es negociable¶
Según CLAUDE.md §0.5, cada script que produce datos/numéricos siembra los RNG y escribe un manifest. Para la Fase 12:
gen_corpus.pytoma una--seed(default 42). Misma semilla → mismo SHA256 de cada archivo de salida. Nota: la mayoría del corpus es enumeración determinista — la semilla solo afecta (a) el orden de las filas en el JSONL de salida y (b) qué subconjunto de tipos de mis-conjugación se aplica a qué celdas (verbo, tiempo, persona).MANIFEST.jsonregistra la semilla, la versión de Python, la versión de la corpus spec y SHA256s de todos los archivos de salida.- CI ejecuta
gen_corpus.py --seed 42y asegura que el SHA256 coincida con el manifest.
¿Por qué tan paranoico? Porque la Fase 13 entrena embeddings sobre este corpus, la Fase 16 entrena el modelo, la Fase 32 evalúa el agente. Si el corpus cambia silenciosamente, cada resultado posterior es inválido. La cadena SHA256 los ata.
Leakage: el asesino silencioso para la morfología¶
El modo clásico de fallo en ciencia de datos: los datos de entrenamiento se filtran al split de test, la accuracy se ve genial, la generalización es cero.
Para una tarea de morfología, el modo de leakage es astuto:
- División fila por fila: train ve
he works, test veshe works(suponiendo que incluyéramosshetambién). El modelo "generaliza" memorizando el patrón de cualquier celda (verbo, tiempo) única. - Solución: dividir por (verbo, tiempo). Las 3 personas de un (verbo, tiempo) van al mismo split. El modelo se ve forzado a aprender la morfología desde otras celdas.
Dicho esto, incluso las divisiones estratificadas por (verbo, tiempo) no están perfectamente libres de leakage — el modelo puede memorizar -s de las celdas present-simple de un verbo y aplicarlo a otro. Esa es una generalización deseada, no leakage. La teoría 02 hace la distinción precisa.
Cómo la Fase 12 conecta con todo lo posterior¶
- Fase 11 (BPE) se re-entrena sobre el corpus de la Fase 12 una vez listo. El corpus de bootstrap de la Fase 11 (~30 frases tipeadas a mano) se reemplaza.
- Fase 13 (embeddings) entrena sobre los snippets de la Fase 12. La visualización destacada testea si
work↔trabajarse agrupan. - Fase 14 (baseline n-gram) computa perplexity sobre el split de test de la Fase 12 — la baseline-a-batir.
- Fase 16 (loop de entrenamiento) entrena el modelo sobre el split de train de la Fase 12.
- Fase 32 (tutor de gramática) evalúa sobre el split de test de la Fase 12 + nuevas pruebas generadas (mis-conjugaciones que el modelo no ha visto).
Cada una de esas fases depende de esta. Hazla bien.
Lo que esta fase NO cubre¶
- Plurales. Según §A13, los plurales están diferidos.
- Formas negativas.
I don't worky similares — fuera de alcance para v1. - Preguntas.
Do you work?— fuera de alcance. - Verbos modales distintos a
will. Sincan,should,would— fuera de alcance. - Aspecto. Continuo (
I am working), perfecto (I have worked) — fuera de alcance. - Envoltorios de frase libres. Mejora opcional v1.5.
Recapitulación de un párrafo¶
Un corpus pequeño, enumerado y bilingüe es la herramienta correcta para este currículo. Autoreamos una tabla de verbos según la matriz 20 × 5 × 3 = 360 celdas, el generador emite cada celda determinísticamente, cada fila en inglés está emparejada con su traducción al español, y un conjunto controlado de mis-conjugaciones deliberadas da al agente tutor de la Fase 32 objetivos de corrección supervisados. La cobertura de 360 celdas no es negociable (§A13). La prevención de leakage requiere divisiones estratificadas por (verbo, tiempo). El corpus es la especificación del proyecto; si está mal, nada posterior puede estar bien.
Siguiente: theory/01-schema-and-labels.md.