23

Preentrenamiento

¿Qué aprende un modelo al leer medio internet?

13 min

Preentrenamiento

Con voz. Puedes pausar y saltar a cualquier paso.

Lección completa

Subtítulos

En la lección anterior armamos un transformer, pero sus números empiezan al azar. Hoy lo vemos aprender leyendo una montaña de texto: es el preentrenamiento.

Voz

Sin voz: la lección avanza sola con subtítulos.

La voz de esta lección está en preparación: por ahora avanza sola con subtítulos.

0:00 / 0:00

Qué lograrás

  • Explicar por qué adivinar la siguiente pieza de un texto es aprendizaje autosupervisado y qué es el preentrenamiento.
  • Describir cómo se limpia un corpus (idioma, calidad, datos personales y duplicados) y calcular qué tanto se parecen dos textos por los trozos de cinco palabras que comparten.
  • Reconocer, con mediciones reales de Pythia, en qué orden aprende un modelo y por qué un modelo base no es un asistente ni sabe lo que pasó después de su corte de conocimiento.

Ideas clave

  1. El preentrenamiento repite un solo ejercicio: tapar la siguiente pieza de un texto y adivinarla. Como la respuesta ya está en el texto, no hacen falta etiquetas puestas por personas: es aprendizaje autosupervisado, y por eso puede usar cientos de miles de millones de tokens (GPT-3 leyó unos trescientos mil millones).
  2. El texto se limpia antes: idioma, reglas de calidad, datos personales tapados y duplicados fuera. Un duplicado casi idéntico se detecta midiendo qué parte de los trozos de cinco palabras comparten dos textos; el umbral es una decisión (los autores de Pythia usaron 87 %).
  3. Calidad antes que cantidad: GPT-3 repasó casi tres veces y media su Wikipedia y menos de media vez su web filtrada. Y lo que casi no está en el corpus casi no se aprende: Pythia, entrenado sobre todo con inglés, nunca contesta «París» en español.
  4. En Pythia, medido en 25 puntos de control: con unos 34 millones de tokens repite lo más frecuente; con unos 2 000 millones ya escribe frases correctas; los hechos («París») y los patrones («casa») llegan hacia los 34 000 millones y siguen afinándose hasta el final.
  5. El resultado es un modelo base: continúa textos, no obedece; no sabe nada posterior a su corte de conocimiento y lo inventa con aplomo. Lo que entra al corpus puede salir (memorización y privacidad), y de dónde viene el texto es una cuestión legal y ética abierta.

Lo que mucha gente cree

Creencia común Un modelo preentrenado guarda internet como una base de datos y busca ahí las respuestas.

Lo correcto No guarda los documentos: ajusta sus parámetros para adivinar mejor la siguiente pieza. Retiene patrones y datos frecuentes, y a veces textos muy repetidos palabra por palabra (por eso importan los duplicados y la privacidad), pero no puede consultar lo que leyó, puede equivocarse con seguridad y no sabe nada posterior a su corte de conocimiento.

Compruébalo

Cuatro preguntas. Sin nota ni cuenta: sirven para ver si la idea quedó.

Concepto¿Por qué el preentrenamiento se llama aprendizaje autosupervisado?
ConceptoEn las mediciones de Pythia, ¿qué aprendió primero?
CálculoDos páginas suman, entre las dos, diez trozos distintos de cinco palabras, y cuatro están en ambas. Con un umbral de cincuenta por ciento, ¿qué pasa?
AplicaciónUn equipo descarga un modelo base recién publicado y le escribe: «Resume este contrato en tres puntos». ¿Qué es lo más probable?

Por dentroPara quien quiere las fórmulas y el código. No hace falta para seguir el curso.

El objetivo, en una fórmula

Para un texto de TT piezas x1,…,xTx_1,\dots,x_T, el modelo con parámetros θ\theta da, en cada lugar, una probabilidad a la pieza que de verdad sigue. El error de una apuesta es −ln⁡p-\ln p, y el preentrenamiento minimiza su promedio, la entropía cruzada:

L(θ)=−1T−1∑t=2Tln⁡pθ(xt∣x1,…,xt−1)\mathcal{L}(\theta) = -\frac{1}{T-1}\sum_{t=2}^{T} \ln p_\theta(x_t \mid x_1,\dots,x_{t-1})

Con la máscara causal de la lección 22, las T−1T-1 predicciones de un texto se calculan en un solo pase. Si la pieza correcta recibe p=1p=1, el error es 00; si recibe p→0p\to 0, crece sin límite. Adivinar al azar entre las V=50 254V = 50\,254 piezas del tokenizador de Pythia da ln⁡V≈10.82\ln V \approx 10.82 (nats por pieza). Las cifras de la escena: «five» sin entrenar recibe p=3.28⋅10−5p = 3.28\cdot10^{-5}, error 10.3310.33; tras entrenar, p=0.1175p = 0.1175, error 2.142.14.

Cómo medimos a Pythia

Pythia (Biderman et al., 2023) es una familia de 16 modelos abiertos entrenados con los mismos datos, en el mismo orden, con 154 puntos de control públicos por modelo: el paso 0, los pasos 1, 2, 4, …, 512 y cada 1 000 pasos hasta el 143 000. Cada paso usa 1 024 secuencias de 2 048 tokens (2 097 1522\,097\,152 tokens), así que el total es 299 892 736 000≈300299\,892\,736\,000 \approx 300 mil millones. Usamos el de 1 400 millones de parámetros (1 414 647 808 en total), entrenado con The Pile sin quitar duplicados, en 25 de sus puntos de control. El script build-pythia.py (junto a esta lección) carga cada uno, mide y escribe pythia-data.ts; nada se retoca a mano. Todo es determinista: decodificación voraz, sin sorteo.

El «error promedio» de la curva es L\mathcal{L} sobre un texto de 500 tokens en inglés escrito para esta lección en 2026 (The Pile es de 2020: no pudo leerlo). Es poco texto: sirve para ver la forma de la curva, no para comparar modelos. Desglosado por tipo de pieza, se ve que la forma llega antes que el contenido:

Paso (tokens leídos) Puntuación Palabras frecuentes Otras palabras Nombres y mayúsculas Promedio
0 (0) 11.40 10.86 11.02 11.32 11.01
16 (34 M) 2.94 7.34 11.09 11.32 8.65
128 (268 M) 2.40 4.40 9.70 10.42 6.77
1 000 (2 100 M) 1.46 2.82 5.94 7.64 4.21
16 000 (33 500 M) 0.94 2.00 3.84 6.33 2.82
143 000 (300 000 M) 0.80 1.84 3.39 6.14 2.52

La puntuación baja de 11.4 a 2.9 en los primeros 34 millones de tokens; los nombres propios siguen cerca de 10 con 500 millones y, al final, son lo más difícil (6.1). Las respuestas: «Paris» aparece por primera vez en el paso 16 000 (antes dice «the capital of France», «the city of Lyon», «Bordeaux»), con pp de 0.30 que llega a 0.61; «casa» en el mismo paso, con pp de 0.15 que llega a 0.82. En cambio, contar («1, 2, 3, 4, 5,» → «6») ya sale en el paso 1 000: algunos patrones sencillos llegan pronto. En español, «París» nunca es la pieza más probable: al final recibe p=6.7⋅10−5p = 6.7\cdot10^{-5}. Para comparar idiomas sin depender del tokenizador se usan bits por byte: al final, 0.78 en inglés y 0.99 en el mismo texto traducido al español.

Duplicados casi idénticos

Cada documento se vuelve el conjunto AA de sus trozos de 5 palabras seguidas (en inglés, shingles). El parecido de dos documentos es el índice de Jaccard:

J(A,B)=∣A∩B∣∣A∪B∣J(A,B) = \frac{|A\cap B|}{|A\cup B|}

En la frase de la escena, ∣A∪B∣=6|A\cup B| = 6 y ∣A∩B∣=2|A\cap B| = 2: J=0.33J = 0.33. Comparar todos contra todos es imposible con miles de millones de páginas; por eso se usa MinHash (Broder, 1997): con una función de hash hh, la probabilidad de que el trozo con menor hh coincida en AA y en BB es exactamente J(A,B)J(A,B). Con muchos hashes agrupados en cubetas, los documentos que coinciden en una cubeta entera se marcan como duplicados. FineWeb (Penedo et al., 2024) usa 5-gramas, 112 hashes en 14 cubetas de 8, apuntando a documentos parecidos en al menos 75 %; Pythia tiene una versión entrenada con The Pile sin duplicados, umbral 0.87, que bajó de unos 300 000 a 207 000 millones de tokens; GPT-3 redujo así cada conjunto un 10 %, en promedio. Lee et al. (2022) encontraron en C4 una frase de 61 palabras repetida más de 60 000 veces, y con datos sin duplicados sus modelos repitieron de memoria texto del entrenamiento diez veces menos.

Filtros de calidad y mezcla

La tubería de la escena (crawl.ts) aplica de verdad tres reglas de FineWeb: se descarta una página si a lo más el 12 % de sus líneas termina en puntuación, si al menos el 10 % de sus caracteres está en líneas repetidas, o si al menos el 67 % de sus líneas mide menos de 30 caracteres; y dos de C4 (Raffel et al., 2020): «lorem ipsum» y llaves {. Los correos y las direcciones IP se enmascaran, como en la versión pública de FineWeb. GPT-3 filtró Common Crawl con un clasificador que premiaba lo parecido a textos de referencia de calidad: de 45 TB comprimidos quedaron 570 GB. La mezcla no es proporcional al tamaño: Wikipedia (3 mil millones de tokens) pesa 3 % y se lee 3.4 veces; Common Crawl filtrado (410 mil millones) pesa 60 % y se lee 0.44 veces. FineWeb-Edu, 1.3 billones de tokens elegidos por valor educativo, iguala en MMLU a otro conjunto web con casi 10 veces menos tokens.

En código

import math

def shingles(texto, k=5):
    w = texto.lower().split()
    return {' '.join(w[i:i + k]) for i in range(len(w) - k + 1)}

def jaccard(a, b):
    return len(a & b) / len(a | b)

A = shingles('plantarán dos mil árboles nuevos junto al río')
B = shingles('plantarán tres mil árboles nuevos junto al río')
print(len(A), len(A | B), len(A & B), round(jaccard(A, B), 2))

# error de una apuesta: −ln p de la pieza correcta
for p in (3.279e-05, 0.1175):
    print(round(-math.log(p), 2))
print(round(math.log(50254), 2))   # adivinar al azar entre 50 254 piezas
# 4 6 2 0.33
# 10.33
# 2.14
# 10.82

Derechos, consentimiento y privacidad

The Pile (Gao et al., 2020) marca en su tabla 5 qué componentes tienen consentimiento de los autores; Books3 (libros de una copia del sitio privado Bibliotik) no lo tiene. En Bartz v. Anthropic (Distrito Norte de California), la orden del 23 de junio de 2025 consideró uso legítimo (fair use) usar los libros para entrenar y digitalizar libros comprados, pero no descargar copias piratas para una biblioteca permanente; el acuerdo de 1 500 millones de dólares, unos 3 000 por obra para unas 482 000 obras, se aprobó el 20 de julio de 2026. Es una decisión de un tribunal de un país; otras demandas siguen en curso y otras jurisdicciones tienen reglas distintas. El consentimiento también se mueve: Longpre et al. (2024) estiman que, en un solo año (de abril de 2023 a abril de 2024), una cuarta parte o más de los tokens de los sitios más importantes de C4 quedaron restringidos para los rastreadores de IA en su robots.txt. Carlini et al. (2021) extrajeron de GPT-2 604 textos memorizados de 1 800 candidatos; entre ellos había nombres, teléfonos y correos, algunos presentes en un solo documento del entrenamiento.

Lo que viene

Pythia leyó 300 mil millones de tokens con 1 400 millones de parámetros. La lección 24 muestra cómo baja el error al crecer los parámetros, los datos y el cómputo, y cuánto cuesta. Cómo se convierte un modelo base en asistente es tema de las lecciones 27 y 28.

Lente de decisión

Qué significa esta idea si tu trabajo es decidir, no programar.

  • Pregunta de dónde salen los datos de un modelo: qué fuentes, con qué licencias y con qué consentimiento. Un proveedor serio documenta su corpus; si no puede decirlo, el riesgo legal y de reputación también es tuyo.
  • Todo modelo tiene un corte de conocimiento: lo posterior no lo sabe y puede inventarlo con aplomo. Pregunta la fecha y, si tu caso depende de información reciente, combínalo con búsqueda en documentos (lección 31).
  • Un modelo base no es un producto: continúa textos, no sigue instrucciones. Los modelos base abiertos sirven para investigar o para ajustarlos a tu tarea; para conversar hace falta la etapa de las lecciones 27 y 28.
  • Lo que entra al corpus puede salir: un modelo puede repetir textos memorizados, incluidos datos personales. No pongas datos sensibles en datos de entrenamiento y pregunta cómo se filtraron y se quitaron duplicados.

Términos de la lección

Transcripción completa
ComentariosConversación pública de esta lección: dudas, datos por revisar, ideas.

Los comentarios viven en GitHub Discussions, en el repositorio público del curso; para escribir se necesita una cuenta de GitHub. Se cargan desde giscus.app al abrir esta sección. Las personas que revisan el curso los leen, y si un cambio se acepta, se aplica en los dos idiomas. Abrir el hilo en GitHub

Fuentes