1 puntos por GN⁺ 2025-09-16 | 1 comentarios | Compartir por WhatsApp
  • En un espacio de embeddings de alta dimensión, es posible representar muchísimos conceptos aprovechando la cuasiortogonalidad (quasi-orthogonality) en lugar de la ortogonalidad perfecta
  • El lema de Johnson-Lindenstrauss garantiza que datos arbitrarios de alta dimensión pueden proyectarse a una dimensión menor con una pérdida de información casi nula
  • En el proceso de optimización, el diseño de la función de pérdida es importante, ya que una función de pérdida básica puede producir distribuciones de vectores ineficientes o sesgadas
  • Los resultados experimentales muestran que la capacidad real del espacio de embeddings es mucho mayor de lo que se suponía teóricamente, y que pueden coexistir de forma natural desde millones hasta miles de millones de conceptos
  • Estos hallazgos tienen un gran significado práctico en el trabajo aplicado de machine learning, como la representación de datos y la reducción de dimensionalidad en el diseño de embeddings

Introducción: la pregunta sobre la capacidad del espacio de embeddings en los modelos de lenguaje

En la reciente serie de videos sobre modelos Transformer de 3Blue1Brown, Grant Sanderson planteó una pregunta interesante: ¿cómo puede el espacio de embeddings de 12,288 dimensiones de GPT-3 contener cientos de millones de conceptos del mundo real?
Esta duda se conecta con la geometría de alta dimensión y con un resultado matemático conocido como el lema de Johnson-Lindenstrauss (JL)
Al explorarla, surgieron nuevas ideas sobre las propiedades fundamentales de los espacios vectoriales y la optimización, lo que incluso llevó a una colaboración con Grant

Cuasiortogonalidad de vectores y capacidad del espacio de embeddings

  • En un espacio de N dimensiones solo existen N vectores completamente ortogonales
  • En la práctica, si se permite una relación cuasiortogonal (quasi-orthogonal) que se desvíe un poco de los 90 grados exactos (por ejemplo, ángulos de 85 a 95 grados), la cantidad de vectores representables en el mismo espacio crece exponencialmente
  • En el video de Grant se muestra una visualización donde 10,000 vectores unitarios en un espacio de 100 dimensiones se acomodan casi de forma ortogonal
  • Sin embargo, al reproducir el mismo experimento, se descubrió una trampa sutil en el diseño de la función de pérdida de optimización

Problemas y patrones en la función de pérdida

  • Función de pérdida básica:
    loss = (dot_products.abs()).relu().sum()
  • Sobre la esfera unitaria real, esta función de pérdida presenta dos problemas
    1. Gradient Trap: cuando el ángulo del vector se acerca a 90 grados, el gradiente actúa con fuerza, pero cerca de 0 o 180 grados el gradiente se vuelve casi cero, bloqueando la mejora
    2. Solución del 99%: la técnica de optimización minimiza la pérdida total colocando cada vector ortogonal correctamente respecto a 9,900 de los 10,000 vectores, pero casi paralelo a otros 99 (es decir, copias de un vector de referencia)
  • Vista en conjunto, esta solución es fundamentalmente distinta de lo esperado, por lo que hace falta una función de pérdida más refinada
  • Por eso se cambió a una función de pérdida con penalización exponencial: loss = exp(20*dot_products.abs()**2).sum()
  • Este enfoque produce resultados más cercanos a la distribución deseada (el ángulo máximo entre pares es de aproximadamente 76.5 grados)

Lema de Johnson-Lindenstrauss (JL): una garantía geométrica

  • El lema JL garantiza que, incluso si un conjunto arbitrario de puntos de datos de alta dimensión se proyecta aleatoriamente a una dimensión menor, las distancias euclidianas se conservan casi intactas
  • Para entre 1 y N puntos, un factor de error ε y una dimensión de proyección k:
    (1-ε)||u-v||² ≤ ||f(u)-f(v)||² ≤ (1+ε)||u-v||²
  • La dimensión mínima requerida k es: k ≥ (C/ε²) * log(N)
    donde C es una constante que ajusta la probabilidad de éxito
  • En general, se toma un valor conservador de C entre 4 y 8, pero con métodos de proyección especiales (por ejemplo, Hadamard matrix, métodos de optimización) se puede llegar a un C más pequeño

Áreas de aplicación práctica

  1. Reducción de dimensionalidad:
    • Ejemplo: transformar eficientemente las preferencias de clientes en comercio electrónico desde decenas de miles de dimensiones de productos a unos pocos miles
    • Puede usarse para análisis en tiempo real y recomendaciones sobre datos de alta dimensión
  2. Análisis de los límites de capacidad del espacio de embeddings:
    • En vez de ortogonalidad perfecta, el espacio expresa de manera natural un espectro de similitudes y diferencias entre conceptos
    • Ejemplos reales de palabras: "archery", "fire", "gelatinous", "green", etc., cuyos significados físicos y abstractos se representan de forma superpuesta en un espacio de alta dimensión

Análisis experimental de la capacidad del embedding

  • En resultados optimizados mediante transformaciones como Hadamard matrix, el valor de C fue de 2.5 a 4, y con optimización basada en GPU podría bajar mucho más
  • Método experimental: proyectar secuencialmente N vectores estándar basis a un espacio de k dimensiones y optimizar repitiendo el proceso 50,000 veces
  • Resultados observados:
    1. El valor de C sube hasta un máximo (~0.9) a medida que N aumenta, y luego desciende gradualmente
    2. Cuanto mayor es la proporción N/k, más baja C, llegando a menos de 0.2
  • Esto se debe a la eficiencia del sphere packing en espacios de alta dimensión
  • En la práctica, sugiere que hay margen para representar más conceptos que el límite superior teórico

Significado real para los embeddings de modelos de lenguaje

  • Según la cantidad de dimensiones del embedding k, el ángulo de ortogonalidad aproximada F (90° - ángulo real) y el valor de C, la cantidad de conceptos que pueden almacenarse es: Vectors ≈ 10^(k * F² / 1500)
    • k=12,288, F=1(89°) → 10^8
    • F=2(88°) → 10^32
    • F=3(87°) → 10^73
    • F=5(85°) → más de 10^200 vectores posibles
  • Con solo 86° ya se supera el número de átomos en el universo observable (10^80)
  • Es decir, los modelos de lenguaje reales preservan con riqueza millones de significados incluso con una cantidad de dimensiones relativamente baja

Aplicaciones prácticas y dirección futura

  1. Reducción eficiente de dimensionalidad:
    • Mediante enfoques basados en proyección aleatoria combinados con transformaciones Hadamard, codificación BCH, etc., es posible reducir dimensiones en grandes volúmenes de datos y acelerar cálculos sin una optimización compleja
  2. Diseño del espacio de embeddings:
    • Comprender la capacidad del espacio ayuda a explicar cómo modelos grandes de lenguaje como los Transformer pueden conservar simultáneamente relaciones semánticas incluso de conceptos sutiles como "Canadian" o "Muppet-like"
  • En conclusión, los estándares actuales de embeddings (1,000 a 20,000 dimensiones) son suficientes para representar conocimiento humano; la clave está en aprender una distribución ideal dentro de ese espacio

Conclusión

  • Lo que comenzó como una exploración de problemas sutiles de optimización en la función de pérdida terminó llevando a una comprensión más profunda de la geometría de alta dimensión y de la estructura fundamental del machine learning
  • El lema JL, publicado en 1984, sigue proporcionando hoy una base central para los embeddings de machine learning, la representación de información y los principios de reducción de dimensionalidad
  • Se agradece la colaboración de Grant Sanderson, el canal 3Blue1Brown y Suman Dev, compartiendo también el placer de esta experiencia de investigación y escritura

Lecturas adicionales

  1. Sphere Packings, Lattices and Groups – Conway & Sloane
  2. Database-friendly random projections: Johnson-Lindenstrauss with binary coins – Achlioptas
  3. Hadamard Matrices, Sequences, and Block Designs – Seberry & Yamada

1 comentarios

 
GN⁺ 2025-09-16
Opiniones en Hacker News
  • Las implicaciones de esta propiedad geométrica son realmente impactantes. Se puede pensar en una forma simple de estimar cuántos vectores casi ortogonales entre sí caben en un espacio de k dimensiones. Si uno se enfoca solo en el ángulo mínimo entre vectores, al final esto se reduce a un análisis de códigos esféricos (spherical codes). Aun así, este artículo no cita en absoluto la investigación existente sobre códigos esféricos, y gran parte parece escrita por un modelo de lenguaje. Además, numerosas inconsistencias básicas reducen la confiabilidad de la conclusión. Por ejemplo, en la gráfica que muestra el valor de C según K y N, ¿el eje x es K o es N? El pie de figura dice que el eje x es N (cantidad de vectores), pero luego explica que en un "espacio muy grande" salió C=0.2, y en la gráfica C=0.2 solo se alcanza cuando N=30,000 y K=2; o sea, 30,000 vectores en un espacio de 2 dimensiones. Por otro lado, si el eje x fuera K, entonces este artículo estaría extrapolando un resultado medido con 2 vectores en 30,000 dimensiones al caso de 10^200 vectores en 12,888 dimensiones, lo cual no tiene sentido. Quiero acercarme al trabajo de la gente de manera positiva y amistosa, pero últimamente la avalancha de textos escritos por LLM en Hacker News ya está siendo realmente abrumadora

    • Decir que algo fue generado por un LLM no solo es imposible de demostrar, sino que además es más directo y útil señalar simplemente que "hay errores". De hecho, que hayas señalado errores sí fue útil. En esa figura, parece correcto interpretar el eje x como N

    • Como yo no conocía los códigos esféricos, sentí que la terminología de esta área en sí es bastante poco familiar. Parece que ni Wikipedia sabe mucho del tema, y los resultados de Google al final tratan sobre todo de empaquetamiento óptimo tipo pelota esférica en menos de 32 dimensiones. A veces pasa que matemáticas ya existentes se redescubren escondidas bajo terminología técnica poco intuitiva

    • Sí. Me da curiosidad saber qué texto explica mejor las propiedades geométricas o informacionales de los espacios vectoriales de alta dimensión, y también los códigos esféricos

    • En la gráfica que mencionas no puedo ver que C llegue a 0.2 cuando K=2. K=3 también se detiene alrededor de C=0.3. Tampoco entiendo bien por qué eso sería un problema. El autor parece proyectar N vectores base en K dimensiones, y C parece algo así como una medida de error del mapeo del espacio N al espacio K; si hay una razón por la que esta idea no coincide con la gráfica, me gustaría escuchar más detalles. En tu argumento parece que no se aborda este concepto en sí

  • Creo que el autor se enfoca demasiado en la situación en la que todos los vectores son completamente ortogonales, así que sobreestima el nivel de error tolerable en la práctica. Lo que de verdad importa no es mantener casi ortogonales a los vectores ortogonales, sino garantizar el orden relativo de distancias incluso entre vectores alejados de la ortogonalidad. Incluso con un épsilon mucho más pequeño pueden surgir problemas reales. O sea, la afirmación de que “como muestra este estudio, entre 1,000 y 20,000 dimensiones bastan para contener tanto el conocimiento humano como el razonamiento” me parece excesivamente optimista

    • Los vectores normalmente se normalizan sobre la superficie de una n-esfera, y en la práctica la distancia con sentido es la similitud coseno. Por eso en la práctica importa que sean "casi ortogonales". Durante el entrenamiento, el objetivo es volver más “ortogonales” sobre la esfera las representaciones sin significado. Cuando esto se implementa en hardware real, también hay límites de precisión de punto flotante, así que este método funciona especialmente bien. Por cierto, esta idea no fue propuesta por primera vez en ese blog o video de YouTube. La relevancia de este lema en IA, o al menos en el entrenamiento de redes neuronales, ya había sido mencionada por C. Eliasmith hace unos 10 años, mucho antes de que redes de conocimiento de altísima dimensionalidad como GPT pudieran entrenarse en la práctica

    • La lógica del OP no es muy buena, pero aun así sigo siendo optimista respecto a la capacidad de representación de unas 20 mil dimensiones

    • Yo tampoco asumí que todos los vectores fueran completamente ortogonales o independientes. También hay textos interesantes sobre medición de distancia, espacio curvilíneo (curvilinear space) y coordenadas sesgadas (skew coordinate): https://news.ycombinator.com/item?id=41873650. Hay preguntas fundamentales como: “¿cuánto cambia la medición de distancia según el orden de las características?”, “si cambia el orden de todos los ejes ortogonales, ¿también cambia la salida del algoritmo?”, “¿de verdad todas las características en un espacio de alta dimensión son ortogonales a 90 grados?”. Si las características no son estadísticamente independientes, entonces en realidad no hay posibilidad de ortogonalidad completa, y puede haber límites en la utilidad de medidas de distancia que asumen independencia. Modelos lineales como Naive Bayes, regresión lineal, regresión logística, LDA y PCA pierden confiabilidad bajo características no independientes. Técnicas como regularización L1 lasso o L2 ridge también pueden ser riesgosas con datos atípicos o no independientes, no ortogonales. Como es difícil comprimir a la fuerza la [ortogonalidad completa], cuesta pensar que el modelo sea suficiente. Y, de fondo, también está la pregunta de si es posible una codificación simultánea en gbit

  • Me molestó bastante el tono tipo ChatGPT que se siente en gran parte del texto, y me costó concentrarme. Yo también uso IA para pulir mi inglés, pero trato de evitar eso pidiéndole que no cambie demasiado el tono o el formato. Aun así, esta observación matemática me parece realmente interesante. Tiene implicaciones fundamentales para mirar cómo funcionan en realidad los modelos de lenguaje grandes y otros sistemas de IA. Si observas cómo proyectan datos de alta dimensión a espacios de menor dimensión preservando su estructura, se ve que este tipo de mecanismo es clave para la eficiencia y la escalabilidad

    • Irónicamente, en tu segundo párrafo da justo la impresión de haber pasado por ChatGPT por expresiones como “fascinating”, “crucial”, “delving” y por la estructura del párrafo

    • ¿Qué parte te dio una impresión tan fuerte de GPT? ¿Es por el estilo de enumerar mucho?

  • Este tipo de teoría intuitiva y el lema de Johnson-Lindenstrauss (JL) son clave en seguridad de IA para hacer posible la investigación de interpretabilidad mecanicista con SAEs (autoencoders dispersos). Muchas de estas ideas están bien resumidas en un paper de Anthropic de 2022: https://transformer-circuits.pub/2022/toy_model/index.html

    • Me gustaría saber dónde puede verse el paper real y dónde fue publicado
  • Los modelos de lenguaje no meten “conceptos” de forma fija dentro de las C dimensiones de una capa (supongo que ese número de 12k se estaba usando así). Tampoco necesitan ortogonalidad completa entre vectores para tratar conceptos como distinguibles. Un LLM no solo hace que las distancias entre conceptos en el espacio vectorial sean grandes; los significados se superponen por todas partes. Esa es justamente la esencia de una representación densa (dense representation). Si entrenas un autoencoder disperso, puedes ver qué neuronas se activan por tema. Neuronpedia muestra bien este aspecto en la práctica: https://www.neuronpedia.org/

    • Justamente esa investigación con autoencoders dispersos se basa en la idea de “casi ortogonal” de la que habla este texto. Originalmente se llamó la ‘hipótesis de superposición’: https://transformer-circuits.pub/2022/toy_model/index.html Los SAEs sirven para descomponer vectores densos en “conceptos” dispersos, casi ortogonales, dentro de un espacio sobredimensionado (overcomplete). Este método de verdad funciona bien, e incluso puede aprovecharse para alinear eficientemente espacios de embeddings entre distintos LLM

    • Si relajas la condición de ortogonalidad perfecta, puedes meter mucha más información. En esencia, estás agrupando información adicional (de dimensión fraccional) dentro de dimensiones ya existentes. Dicho de otro modo, muchos conceptos no son perfectamente ortogonales entre sí, sino que comparten cierto traslape o correlación. Así que el artículo no tiene nada particularmente revolucionario. Y el abuso de expresiones como “remarkable”, “fascinating” y “profound” le da un aire muy de LLM, como tratando de enganchar sutilmente al lector

  • Un detalle algo trivial pero divertido: ustedes también pueden meter miles de millones de conceptos en un espacio de este tamaño. Aunque solo prestes atención a 4 bits en cada componente del vector, un vector de 12,000 dimensiones en fp4 ocupa unos 6 KB, más o menos como varias páginas de texto en UTF-8. Eso equivale a un embedding de 64K para 3K tokens. La cantidad de posibles ‘pensamientos’ que puede representar eso es enorme. Al procesar un solo token, cada capa mezcla unas 60 veces el ‘pensamiento’ previo con atención y con los datos aprendidos por el FFN. Por eso todo este sistema puede realizar tareas complejas, como convertir Bash a Python o resolver problemas verbales. Claro, no esperaría que fuera 100% eficiente en uso del espacio. Debe funcionar bien al combinar vectores con distintas ‘intensidades’, y el entrenamiento no siempre converge hacia la compresión más eficiente posible. Aun así, solo pensar en el límite teórico como cota superior da una nueva intuición de que en vectores de altísima dimensión realmente puedes empaquetar de manera muy densa algo parecido a ‘pensamientos’

  • Mi intuición es mucho más simple: asumiendo que los conceptos forman una cierta jerarquía, se puede calcular de forma aproximada cuántos conceptos caben en un espacio de 12,000 dimensiones. Si cada concepto es ortogonal a todos los demás al menos en un eje, entonces eso significa que existe una función que puede separar linealmente dos conceptos aunque la distancia coseno no sea tan grande. En ese caso, en el límite podrían existir hasta 12,000! conceptos (factorial), así que para la mayoría de las taxonomías sobra espacio por muchísimo

    • Para materializar 12,000! conceptos tendrías que asociar un orden de dimensiones a cada concepto, pero en un modelo real el orden de las dimensiones no tiene significado. Es decir, [weight_1, weight_2,...] y [weight_2, weight_1,...] son completamente equivalentes dentro del modelo. En la práctica, en un modelo de lenguaje podrías pensar que en cada eje solo hay uno de tres estados: positivo, negativo o 0, así que serían del orden de 3^12,000 conceptos. En realidad, en la mayoría de los vectores casi todos los ejes son 0 salvo unas decenas (por limitaciones de tiempo de entrenamiento)

    • Ese número es muchísimo mayor que la cantidad de átomos en todo el universo (10^80), aproximadamente 10^43741

    • El hecho de que “la distancia coseno no sea tan grande” ya es una limitación decisiva

  • Si has jugado 20 Questions, sabrás que no hacen falta 1000 dimensiones para miles de millones de conceptos. Vectores tan grandes pueden contener información mucho más compleja que solo miles de millones de conceptos. De hecho, un vector así puede representar y recuperar un poema completo y hasta la ubicación de un error tipográfico. Como cuando pegas un poema en GPT y le preguntas dónde está el error: en alguna capa interna está pudiendo distinguir concretamente esa información

    • En realidad eso no lo hace un vector simple, sino el modelo completo. El modelo entero se comporta como una especie de vector de un billón de dimensiones

    • Si usas vectores binarios, con 20 dimensiones puedes representar algo más de un millón de conceptos. Con 30 dimensiones llegas a mil millones de conceptos

  • Ya muchos comentarios señalaron varias fallas del artículo, pero quisiera agregar una observación realmente básica: la afirmación misma de que en 12k dimensiones caben 10^200 conceptos es demasiado absurda. Es cierto que un espacio vectorial de 12k puede contener muchísimos valores individuales, pero eso no significa que todos sean conceptos. Esa afirmación es disparatada. Seguro Shannon también querría señalar eso con claridad

  • El error central es que, en términos realistas, no existen miles de millones de conceptos. Los ‘conceptos’ que usan los humanos y las ‘instancias’ o ‘entidades’ mecánicas son cosas claramente distintas. Puede haber infinitas instancias, pero la cantidad de conceptos abstractos que realmente usamos para pensar es mucho más limitada