Una iteración real de entrenamiento, operación por operación. Recórrela con ← → o con la línea de tiempo de abajo, o pulsa ▶ (Espacio) para verla animada; pasa el cursor por las matrices para ver cada cuenta.
Cargando…
- Dimensiones
- En este modelo
- Coste
Cientos de iteraciones seguidas
Cada iteración repite lo que ves en «Paso a paso» (forward, pérdida, backward y actualización), pero sobre un minilote de 4 frases con los gradientes promediados y sin guardar la traza: por eso va tan rápido.
La línea discontinua es \(\ln V\): la pérdida de un modelo que reparte la probabilidad por igual entre los \(V\) tokens. Al empezar, la pérdida está cerca de ese valor.
Una matriz \(A_h\) por capa y cabeza: la fila \(i\) dice cuánto mira la posición \(i\) a cada posición anterior \(j \le i\) (cada fila suma 1). Fíjate en la fila del verbo («come», «bebe»): para acertar la palabra siguiente le sirve mirar al sujeto («gato», «niña»…) o a su artículo. Al entrenar, alguna cabeza puede aprender a hacerlo, aunque no siempre ni en todas las frases (a veces se apoya en «el», «la» o <s>).
\(\|\mathrm{d}\theta\|\) de la última iteración, antes del recorte. Suele dominar \(W_{\text{out}}\), el parámetro más cercano a la pérdida.
Entropía cruzada media de cada frase con los pesos actuales. Algunas continuaciones son ambiguas («el gato» puede seguir con «come» o con «duerme»), así que la pérdida no llega a 0. Pulsa una frase para verla en «Atención en vivo».
Cada punto es un token. Con el entrenamiento, los tokens que se usan de forma parecida se acercan.
El modelo escribe, token a token
Escribe un comienzo y el modelo lo continúa: en cada paso calcula la distribución del siguiente token, elige uno, lo añade al contexto y vuelve a empezar.
Corpus, hiperparámetros y dimensiones
El id de cada token es su posición en esta lista (orden de primera aparición en el corpus). El 0 es <s>, el inicio de frase.
Cada tensor del forward y del backward, con su forma simbólica y numérica. Un gradiente \(\mathrm{d}X\) tiene siempre la forma de \(X\). Pulsa «paso» para ver dónde se calcula.
Compara el gradiente del backward (analítico, \(a\)) con una estimación numérica por diferencias centrales (\(n\)), en tres entradas de cada parámetro, con un paso \(\delta = 10^{-5}\):
\[n = \frac{\mathcal L(\theta + \delta) - \mathcal L(\theta - \delta)}{2\delta},\qquad \text{error relativo} = \frac{|a - n|}{\max(|a|, |n|)}\]Si el error queda por debajo de \(10^{-5}\), se da por bueno (en la práctica sale del orden de \(10^{-8}\) o menos).