Honey, he reducido los embeddings: Matryoshka vs. PCA
Honey, I shrunk the embeddings: Matryoshka vs. PCA

Un experimento compara dos métodos para reducir la dimensionalidad de los embeddings: el entrenamiento Matryoshka (MRL) y el análisis de componentes principales (PCA). En ocho conjuntos de datos BEIR, PCA iguala o supera a MRL en la mayoría de los tamaños, especialmente en dimensiones bajas. Además, PCA funciona bien incluso en modelos sin entrenamiento MRL, y el ajuste de PCA es robusto ante muestras pequeñas o fuera de dominio.
PCA matched or outperformed MRL truncation at nearly every dimension across both MRL-trained models.
- hanneshdc
¡Buenos benchmarks!
> Puedes llevar esto más lejos combinando cuantización con truncamiento o PCA. Los vectores resultantes pueden ser drásticamente más pequeños mientras conservan una sorprendente cantidad de calidad de recuperación.
Contraintuitivamente, la cuantización también se puede combinar con un paso de rotación aleatoria antes de la cuantización. Una rotación aleatoria distribuye la información a través de más dimensiones, permitiendo una cuantización más agresiva sin perder precisión. Irónicamente, casi lo opuesto a PCA.
Me pregunto si es relevante aquí. Depende de que los embeddings tengan "estructura", es decir, que los componentes principales apunten a lo largo de los vectores base, lo cual puede no ser el caso con embeddings de texto.
Fuente: https://research.google/blog/turboquant-redefining-ai-effici...
- stephantul
¡Genial! He estado trabajando en algo similar y encontré resultados parecidos.
En mis experimentos, usé muchos modelos de embeddings y los resultados no fueron ni de lejos tan uniformes como esta curva, solo para que lo sepas. No usé ninguno de los modelos basados en API, sin embargo.
También escribí sobre esta comparación exacta cuando se usa PCA y MRL para cuantizar modelos estáticos, ver: https://stephantul.github.io/blog/mrl-pca/
- purplemoonx
Entrenas el modelo con la pérdida aplicada en varias longitudes de prefijo a la vez: los primeros 64 dimensiones, los primeros 128, y así sucesivamente. Esto le enseña a empaquetar la información más importante al inicio del vector, como un conjunto de muñecas matrioshka anidadas.
Esto es fascinante si funciona tan bien como parecen indicar los experimentos. Por ejemplo, ¿cómo se compara con algoritmos clásicos de redimensionamiento de imágenes como Seam Carving o Inpainting: https://en.wikipedia.org/wiki/Seam_carving, https://en.wikipedia.org/wiki/Inpainting
(¿se pueden comparar?)
La compresión/pérdida, y lo opuesto - escalar y sobresuavizar - son fascinantes porque cada vez que ocurre la más mínima innovación en esas áreas, toda esta otra tecnología mejora de la noche a la mañana, y un montón de nueva tecnología se vuelve posible.