English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

invitado
1 / ?

Un Embedding Es una Consulta, No una Función

Una Primera Capa Después de un Tokenizador

Un tokenizador entrega al modelo IDs enteros: [256, 1842, 7301, ...]. Lo primero que hace un transformer: convertir cada ID en un vector de d_model flotantes. Ese vector vive en un espacio de d_model dimensiones (768 dimensiones para ANDREA-120M).


Una capa de embedding es una tabla de consulta, no una función. Imagina una matriz gigante:


shape: (V, d_model)

[BLOCK_TYPE SECTION/STEP]
fila 0:    [e_0_0, e_0_1, ..., e_0_767]

[BLOCK_TYPE SECTION/STEP]
fila 1:    [e_1_0, e_1_1, ..., e_1_767]

[BLOCK_TYPE SECTION/STEP]
...

[BLOCK_TYPE SECTION/STEP]
fila 8448: [e_8448_0, e_8448_1, ..., e_8448_767]

[BLOCK_TYPE SECTION/STEP]

El ID de token i selecciona la fila i. Acceso directo al arreglo. Sin aritmética, sin activación. Solo un índice.


Flujo de incrustación de token y posición


Flotantes entrenables

Cada entrada en esa tabla comienza como un pequeño número flotante aleatorio (normalmente extraído de una distribución normal escalada por 1/sqrt(d_model)). La retropropagación actualiza cada fila cada vez que su ID de token aparece en un lote. Después del entrenamiento, tokens similares (cat, dog, pet) terminan con vectores parecidos; tokens no relacionados (cat, Tuesday, xylophone) quedan muy separados en el espacio vectorial.


ANDREA-120M Costo de Embedding de Tokens


CantidadValor
V8,449
d_model768
Parámetros6,488,832

Aproximadamente 6.5M parámetros viven solo en una tabla de incrustación de tokens, cerca del 5.4% del total de ANDREA-120M. Cada ranura del vocabulario obtiene estos 768 flotantes.

Dimensionamiento de Tablas de Incrustación

Calcula el conteo de parámetros de incrustación de tokens para dos variantes futuras. (a) ANDREA-480M: V = 16,641 (un tokenizador de 16,384 segmentos más 256 bytes más 1 BOS), d_model = 1536. (b) ANDREA-12M: V = 4,353, d_model = 384. Muestra la aritmética V × d_model para cada una.

Los Productos Punto Miden Similitud

Vectores como Flechas

Un vector de 768 dimensiones vive en un espacio que los humanos no pueden visualizar, pero la misma álgebra funciona en cualquier dimensión. Dos operaciones clave importan para los transformers:


Magnitud (longitud de una flecha):


||v|| = sqrt(v_0² + v_1² + ... + v_767²)

Producto punto (alineación entre dos flechas):


u · v = u_0 × v_0 + u_1 × v_1 + ... + u_767 × v_767

Qué te dice un producto punto

Dos hechos que se cumplen en cualquier dimensión:


- u · v = ||u|| × ||v|| × cos(theta), donde theta es el ángulo entre ellos.

- Los vectores que apuntan en la misma dirección dan productos punto grandes y positivos.

- Los vectores que apuntan en direcciones opuestas dan productos punto grandes y negativos.

- Los vectores en ángulo recto dan un producto punto de cero.


Producto punto = similitud no normalizada. Dos embeddings entrenados de tokens para cat y dog terminan con un producto punto alto porque la retropropagación los acercó (ambos predicen contextos relacionados con mascotas). cat y Tuesday terminan casi ortogonales porque predicen contextos diferentes.


Por qué a un Transformer le importa

La Actividad 5 (grow_a_language_model_attention) construye la atención a partir de productos punto: un vector de consulta multiplicado por producto punto con vectores clave produce puntuaciones que indican qué tokens pasados importan para predecir el siguiente. Los embeddings y los productos punto juntos transportan toda interacción dentro de un transformer.

Predecir Similitud

Después del entrenamiento, el embedding de ANDREA-120M para `believ` (fila de token 4287, hipotético) termina aproximadamente alineado con `know`, `understand`, `learn`. Sin calcular valores exactos, predice un orden de mayor a menor producto punto: `believ · know`, `believ · stone`, `believ · understand`. Justifica tu ordenamiento en una frase por par.

ANDREA Utiliza Incrustaciones de Posición Aprendidas

Un problema

Una incrustación de token le indica al modelo qué palabra se encuentra en esta posición. No le indica al modelo dónde se sitúa esa palabra. Sin información de posición, un transformer trata the cat sat on a mat y mat a on sat cat the de forma idéntica: el mismo conjunto de tokens, sin señal de orden.


Existen tres soluciones en la literatura de transformers:


Sinusoidal (Vaswani 2017). Una fórmula matemática fija basada en senos y cosenos. La posición 0 recibe un vector específico de 768 dimensiones; la posición 1 recibe otro; nunca se entrena, nunca se actualiza. Generaliza a cualquier posición mediante la fórmula.


RoPE (Rotary Position Embedding). Rota los vectores de consulta y clave según la posición. Usado por LLaMA, Qwen. Sin parámetros adicionales; la rotación está integrada en la atención.


Aprendido. Una tabla de embeddings separada con forma (T, d_model) donde T es la longitud del contexto. Cada fila se entrena mediante retropropagación, igual que los embeddings de tokens.


Elección de ANDREA: Aprendido

ANDREA hereda un enfoque de posiciones aprendidas de microGPT, que lo heredó de nanoGPT, que lo heredó de GPT-2. Un razonamiento:


- Simplicidad. No se requiere matemáticas especiales en atención. Una tabla de posiciones se ve como una tabla de tokens.

- Compatibilidad con CUDA personalizado. El motor microgpt_cuda.cu de ANDREA maneja dos búsquedas de embeddings de forma idéntica; no se necesitan kernels de sin/cos.

- Suficiente para contexto fijo. ANDREA limita T a 1024. Una tabla aprendida funciona bien para secuencias de longitud fija.


Costo de Embedding de Posición ANDREA-120M


CantidadValor
T (contexto)1,024
d_model768
Parámetros786,432

0.79M parámetros para posición. Combinados con embeddings de tokens: 6.49M + 0.79M = 7.27M parámetros de embedding en total para ANDREA-120M.


Cómo se combinan

En cada posición t de una secuencia de entrada:


x_t = token_embedding[token_id_t] + position_embedding[t]

Dos vectores de 768 dimensiones, sumados elemento a elemento. El resultado, x_t, fluye hacia el primer bloque transformer. El modelo nunca los separa de nuevo; aprende a usar la señal combinada.

Aprendida Versus Sinusoidal

Compara dos estrategias de incrustación de posición para un modelo ANDREA hipotético. Estrategia A: aprendida, T = 1024. Estrategia B: sinusoidal, T arbitrario (funciona para cualquier longitud de secuencia). Nombra una ventaja de cada una. Luego indica cuál elige ANDREA y una razón desde el punto de vista de CUDA / ingeniería.

Dónde Viven los Parámetros de Embedding

Una Capa de Embedding Completa ANDREA-120M


ComponenteFormaParámetros
Tabla de embeddings de tokens8,449 × 7686,488,832
Tabla de embeddings de posición1,024 × 768786,432
Total7,275,264

Aproximadamente 7.3M parámetros. El recuento total de parámetros de ANDREA-120M: ~120M. La capa de embeddings sola: 6%. El 94% restante se encuentra en los bloques del transformador (atención + MLP, cubiertos en las actividades 5-7).


Embeddings no vinculados vs vinculados

Muchos diseños de transformers (incluido GPT-2) vinculan un embedding de token a una proyección de salida final: la misma matriz V × d_model se utiliza en la entrada y en la salida (logits sobre el vocabulario). Vincular ahorra parámetros V × d_model y a menudo mejora la calidad.


ANDREA utiliza embeddings no vinculados: el embedding de entrada y la proyección de salida se entrenan como matrices separadas. La Actividad 7 (grow_a_language_model_transformer_block) cubre una capa final.


Un Pase Hacia Adelante Hasta Ahora

Entrada: IDs de tokens [256, 1842, 7301, ...] (1024 de ellos). Cada ID busca un vector de 768. Cada posición busca un vector de 768. Suma elemento a elemento. Resultado: una matriz (1024, 768) x de vectores token+posición. x fluye al bloque transformer 1.


La Actividad 5 (grow_a_language_model_attention) cubre lo que hace el bloque 1: atención de producto punto escalado con máscara causal y softmax.

Predecir la estructura de los embeddings

Reflexiona: ANDREA-120M tiene 8449 embeddings de token y 1024 embeddings de posición, compartiendo el mismo espacio de 768 dimensiones. Después del entrenamiento, ¿qué esperarías: (a) una matriz de embeddings de token (¿patrones de agrupamiento?), o (b) una matriz de embeddings de posición (¿gradiente suave?). Elige una y predice en una o dos oraciones. No hay respuesta incorrecta; el razonamiento importa.