Skip to content

English · Español

Fase 03 — Álgebra lineal desde primeros principios

Requiere: 02 — Representación numérica Enseña: tensors · matmul · einsum · svd · rank · norms Salta a cualquier capítulo desde el índice de referencia de fases.

Mapa del capítulo

Pre-escrita según A12; re-anclada a A13 (gramática verbal en inglés). Los enunciados de teoría + laboratorios son borradores estables; las soluciones aterrizan justo a tiempo en la apertura de fase.

🇪🇸 Los tensores no son "arrays con más dimensiones". Son mapas lineales coordinados, y la matmul es la composición de esos mapas. Esta fase te entrena a predecir shapes sin ejecutar código, derivar SVD, y conectar la eficiencia de matmul con la jerarquía de memoria de Fase 1. Los ejemplos viven en el universo del modelo: vectores one-hot que indexan formas verbales y matrices que actúan como tablas de búsqueda sobre el vocabulario §A13.


Objetivo

Interiorizar el álgebra lineal con la profundidad suficiente para que Borja pueda:

  • Leer cualquier expresión einsum y predecir el shape resultante (y el número de FLOPs) sin ejecutarla — incluida la expresión batched-embedding-lookup que ancla la Fase 13.
  • Derivar ||Ax|| ≤ ||A||·||x|| a partir de la SVD en una página en blanco.
  • Medir un speedup de 50× entre matmul ingenua y np.matmul en su i5-8250U y explicarlo como un hecho de roofline (Fase 1) compuesto por la ausencia de vectorización (anticipo de Fase 6).
  • Reconstruir una matriz de conteos de conjugaciones de formas verbales con k valores singulares y cuantificar el error de reconstrucción como función de k.
  • Ver, mecánicamente, cómo M @ one_hot(i) es una búsqueda M[:, i] — la operación que toda capa de embedding realiza.

Orden de lectura

  1. theory/00-motivation.md — por qué una fase de álgebra lineal antes de cualquier autograd.
  2. theory/01-tensors-and-shapes.md — escalar / vector / matriz / tensor; aritmética de shapes; einsum como gramática unificadora; codificaciones one-hot de formas verbales.
  3. theory/02-matmul-and-shapes.md — matmul como composición, distinciones dot/outer/Hadamard, batched matmul, búsqueda de embedding como matmul. La página más importante de la Fase 3.
  4. theory/03-svd-and-rank.md — SVD como rotar-escalar-rotar, rango, aproximación de bajo rango, Eckart-Young; aplicada a una matriz de conteos de conjugaciones.
  5. theory/04-norms-and-conditioning.md — normas vectoriales / matriciales, norma de operador, número de condición.
  6. lab/00-shapes-by-hand.md — predecir shapes a partir de strings einsum (sin código al principio), incluyendo patrones de embedding-lookup y batched-matmul.
  7. lab/01-matmul-perf.md — competir cuatro implementaciones de matmul en tu máquina.
  8. lab/02-svd-compression.md — comprimir una matriz sintética de conteos de conjugaciones con SVD de rango-k.
  9. lab/03-norms-by-experiment.md — verificar empíricamente ||Ax|| ≤ ||A||·||x|| y encontrar el caso de igualdad.

solutions/ está vacío en la pre-escritura — se rellena al abrir la fase.

Definición de hecho (DoD)

Ver PHASE_03_PLAN.md §6. Brevemente:

  • Cuatro directorios de experimentos con manifiestos + artefactos commiteados.
  • El gráfico de rendimiento de matmul muestra un gap ≥ 50× entre Python ingenuo y np.matmul en N=1024.
  • Grid de reconstrucción SVD + curva de error sobre la matriz de conteos de conjugaciones commiteados.
  • Borja puede predecir shapes de einsum en una página en blanco y derivar ||Ax|| ≤ ||A||·||x|| a partir de la SVD.

Lo que esta fase intencionalmente NO cubre

  • Autograd / gradientes. Fase 4 (cálculo) y Fase 7 (autograd escalar).
  • Un módulo src/minigrad/linalg.py. La Fase 3 permanece en experiments/; los primitivos de álgebra lineal se promueven en la Fase ⅞ cuando se construya un consumidor de autograd.
  • Probabilidad / matrices aleatorias / proyecciones aleatorias. Fase 5 + Fase 10 (RMSNorm/init).
  • Descomposición en valores propios de matrices no simétricas. Mencionada por vocabulario; el trabajo es SVD.
  • Algoritmos numéricos para la propia SVD. Usamos np.linalg.svd; derivar Jacobi / SVD basada en QR queda fuera del alcance curricular.
  • Matrices dispersas / estructuradas. La Fase 27 (attention eficiente) toca block-diagonal; nada aquí.
  • Matmul en GPU (BLAS / cuBLAS / Triton GEMM). Fase 23+.

El alcance de la Fase 3 es entender los shapes de tensores, la mecánica de matmul y la intuición de SVD con la profundidad suficiente para que el paso de álgebra lineal de cada fase posterior sea aburrido. Nada más.

Lecturas recomendadas

Opcional — enriquece pero no es necesario para aprobar la fase.