- Los embeddings ofrecen un potencial de avance revolucionario en el campo de la escritura técnica actual
- Tienen la característica de devolver un arreglo numérico de dimensión fija sin importar el tamaño del texto de entrada
- Este arreglo numérico permite hacer comparaciones matemáticas entre textos arbitrarios
- Los embeddings calculan distancias según el significado del texto en un espacio multidimensional, y pueden usarse de muchas formas, como recomendaciones por relación, análisis semántico, etc.
- En adelante, si los sitios de documentación técnica publican datos de embeddings, se espera que se amplíen los nuevos casos de uso de herramientas y de la comunidad
Panorama general de la tecnología de embeddings basada en aprendizaje automático
- En la tecnología de aprendizaje automático, a diferencia de los modelos de generación de texto, los embeddings tienen el potencial de transformar de forma revolucionaria la escritura técnica
- En los últimos años, el uso de embeddings se ha vuelto mucho más accesible
- A través de embeddings, los redactores técnicos pueden realizar comparaciones y análisis semánticos entre distintos textos
Desarrollar intuición sobre los embeddings
- Un embedding toma texto (palabras, oraciones, varios documentos, etc.) como entrada y devuelve un arreglo numérico de tamaño fijo
- Sin importar la longitud del texto de entrada, siempre se genera un arreglo de datos del mismo tamaño
- Gracias a esto, surge la posibilidad de comparar matemáticamente textos arbitrarios de diferentes longitudes
Cómo se generan los embeddings
- Es posible generar embeddings con apenas unas cuantas líneas de código a través de los principales proveedores de servicios
- Según el modelo utilizado, el tamaño del arreglo del embedding cambia; en Gemini se devuelven 768 valores numéricos y en Voyage AI, 1024
- Como el significado de los embeddings cambia por completo según el proveedor o el modelo, no existe compatibilidad entre ellos
Costos e impacto ambiental
- La generación de embeddings en sí no tiene un costo alto
- Se estima que el proceso de generación consume menos recursos computacionales que los modelos de generación de texto, aunque para evaluar el impacto ambiental aún se necesita más información
Criterios para elegir un modelo de embeddings
- El modelo más adecuado varía según la capacidad de admitir grandes volúmenes de datos de entrada
- En 2024, voyage-3 de Voyage AI ofrece el límite de entrada más alto
- Es importante elegir un modelo acorde con el propósito de uso y las necesidades
Concepto de espacio multidimensional
- Cada valor del arreglo numérico del embedding corresponde a una coordenada en un espacio multidimensional, y las características del texto se expresan como una posición semántica dentro de ese espacio
- Por ejemplo, operaciones como
king - man + woman ≈ queen muestran la posibilidad de representar relaciones semánticas
- Las características de cada dimensión en el espacio de embeddings son en su mayoría difusas y abstractas
- Mediante este proceso, se vuelve posible el aprendizaje del significado por parte de la máquina y la inferencia semántica del texto
Comparación y almacenamiento de embeddings
- Los embeddings generados se almacenan para cada texto (por ejemplo, cada página) en una base de datos o similar
- Al calcular la distancia matemática entre dos embeddings (usando álgebra lineal), es posible determinar la similitud semántica
- Con bibliotecas como NumPy y scikit-learn, la carga de implementar fórmulas complejas es baja
Ejemplos de aplicación de los embeddings
- En sitios de documentación técnica, los embeddings se usan eficazmente en funciones de recomendación de páginas relacionadas
- Tras generar embeddings para cada página, es posible recomendar documentos semánticamente relacionados entre páginas con alta similitud numérica
- Cada vez que cambia el contenido de una página, basta con actualizar su embedding, por lo que la eficiencia es sobresaliente
- Los resultados de aplicarlo a la documentación de [Sphinx] confirmaron un desempeño positivo
Comunidad y posibilidades de datos abiertos
- En el futuro, los sitios de documentación podrían ofrecer datos de embeddings a través de una REST API o well-known URIs
- Esto permitiría a la comunidad desarrollar diversas herramientas y servicios de aplicación
Conclusión
- Resulta interesante tener la oportunidad de relacionar el concepto de un espacio de cientos de dimensiones con el trabajo cotidiano
- Con la adopción de embeddings, puede esperarse un potencial de avance transformador en áreas como el mantenimiento de documentación y la ampliación de funcionalidades
1 comentarios
Opiniones de Hacker News
Hola, quiero agradecer que hayan escrito este artículo
Quería señalar que hubo una discusión similar hace 6 meses
La frase “los embeddings están subestimados” buscaba enfatizar que son una herramienta útil para escritores técnicos más que para quienes trabajan en machine learning
Soy consciente de que en este texto faltan detalles sobre cómo exactamente se usan los embeddings en la redacción técnica
Estoy preparando proyectos y publicaciones de blog sobre el uso de embeddings
Los embeddings son importantes porque pueden ayudar a resolver tres problemas difíciles en la redacción técnica
Para que se pueda experimentar públicamente cómo los embeddings ayudan con el problema de no encontrar fácilmente la información que uno quiere, probé aplicar una capa de UX con “semantic scrolling”
Más que una búsqueda, permite recorrer clústeres en una estructura de árbol con <details>/<summary>
[1] es el punto de inicio y [2] es la colección completa (libros, películas, música, anime, etc.)
También comparto los enlaces
Sería bueno estructurar el contenido para que resulte más atractivo para escritores técnicos que para especialistas en machine learning
Por ejemplo, convendría explicar con más detalle la parte de “descubrir conexiones entre textos a una escala antes imposible”
Si se pusieran ejemplos de aplicación más al principio, el mensaje llegaría mejor a los lectores
Como ejemplo de aplicación directa de los embeddings a la redacción técnica, recomiendo un paper relacionado
Comparto el enlace
Después de leer esto, me da curiosidad saber cómo fue la calidad del resultado
Sin llegar a las evaluaciones formales (evals) que gustan en machine learning, quisiera saber si en términos generales el resultado parece razonable
Leí el texto, pero no encontré una explicación de qué es un “embedding”
En el tercer párrafo se habla de cómo usarlo, pero falta una definición del embedding mismo al inicio
Para alguien principiante, se siente como un texto demasiado básico
Después de leerlo no obtuve información ni ideas nuevas
Si al menos hubiera mostrado una pequeña prueba de un caso clave de uso de embeddings, me habría dejado con más expectativa por el siguiente artículo
De todos modos, gracias por compartirlo
Otra ventaja de los embeddings y la búsqueda por embeddings es que se pueden implementar del lado del cliente con poca carga
Los modelos ONNX pueden cargarse y ejecutarse con transformer.js
También se puede crear un índice como hnsw y alojarlo de forma estática
Incluso hice un demo open source
Basta con representar el índice como archivos Parquet consultables y hacer consultas con duckdb
Con Github Pages se puede hacer gratis o casi gratis
Es un descubrimiento nuevo para mí que se puedan hacer embeddings del lado del cliente con JS
Me entusiasma porque parece abrir nuevas aplicaciones para sitios de documentación
Empecé a prestar atención a Parquet y Polars por un artículo que había leído antes
Tenía curiosidad sobre una implementación así
He dudado en adoptarla porque me preocupa la latencia de la búsqueda basada en embeddings
Si el modelo se ejecuta localmente, me pregunto cómo queda la calidad frente a OpenAI/Google
Lo gratis y la inmediatez son ventajas
Estaría bien que explicaran con más detalle qué está pasando en el demo
No termino de entender bien el resultado
Me gustaría que se explicara con más claridad la parte de que “los embeddings siempre devuelven un arreglo de números del mismo tamaño sin importar el tamaño del texto de entrada, así que se puede comparar matemáticamente cualquier texto entre sí”
Una función hash también produce un resultado del mismo tamaño sin importar el tamaño de la entrada, pero esa comparación matemática y la de los embeddings tienen significados completamente distintos
Hay que enfatizar que la calidad de un embedding depende del proceso de entrenamiento
No existe un “embedding universal” que permita comparaciones significativas para texto arbitrario
También comparto los enlaces
Los embeddings, igual que los hashes, comprimen y representan entradas grandes, pero a diferencia de los hashes, los embeddings tienen significado intrínseco
Entonces me pregunto si existe investigación sobre “cracking” para generar a la inversa texto con significado parecido a partir de embeddings
También parece posible incluir en la evaluación del siguiente token de la salida de un LLM cambios en la similitud o en la dirección respecto del embedding
Al igual que las operaciones entre vectores de embedding que mencionó el autor, imagino si se podría aplicar una “álgebra del significado” también a textos grandes como párrafos completos o libros
Me pregunto si sería posible vectorizar un concepto clave como la “afinidad” y sumarlo a un texto existente
“Generar a la inversa texto de significado parecido a partir de embeddings” se llama embedding inversion o Universal Zero-shot Embedding Inversion
Hay papers relacionados, y también se relaciona con diffusion en imágenes usando embeddings de CLIP
En términos muy generales, los embeddings cumplen una función parecida a los fuzzy hashes
No soy especialista en este campo, pero también hay investigación sobre inference-time intervention que podría estar relacionada
Adjunto un enlace al paper
La frase “se puede lograr un avance de primer nivel en redacción técnica usando embeddings” no es concreta y como lector no me resulta útil
En general, al leer o escribir documentación técnica, nunca he sentido que necesitara un widget de “páginas similares”
La tesis está en el segundo párrafo
Los embeddings permiten que los escritores técnicos encuentren conexiones entre textos de formas que antes no podían descubrir
Admito que el post no logra mostrar esta tesis con ejemplos prácticos
Creo que los embeddings pueden resolver varios problemas difíciles de la redacción técnica, y pienso tratar ejemplos directos más adelante
Más allá de los documentos relacionados, la documentación técnica se beneficia muchísimo de una gran búsqueda
Los embeddings son especialmente útiles para el “fuzzy matching” y permiten encontrar la función que el usuario realmente busca aunque no recuerde las palabras exactas
Un enfoque híbrido que combine búsqueda por palabras clave y búsqueda por similitud vectorial es eficiente
Me gustaría encontrar más ejemplos concretos de uso
La analogía del mapa en 2D es un buen punto de partida para entenderlo, pero los embeddings operan en cientos o miles de dimensiones
Tampoco está claro qué significado tiene cada dimensión, y el ejemplo de 'king - man + woman = queen' no se debe a que exista una “dimensión de género”, sino a que existe una “dirección” específica
En n dimensiones existen exponencialmente muchas direcciones casi ortogonales
Esa es la razón por la que se pueden contener miles de millones de conceptos en un espacio de 1000 dimensiones
En papers reales de arXiv, si metes 1000 palabras masculinas en embeddings, no pasa que encuentres con precisión 950 palabras femeninas
Unas 20 sí se agrupan de forma visible, pero como hay muchas dimensiones, al proyectar casi cualquier cosa puede parecer “correcta”
Cuando N crece, el resultado tiende a volverse ambiguo
Los embeddings basados en transformers consideran el contexto, así que son muy superiores a los antiguos word vectors
Incluso en búsqueda de texto completo, los embeddings con conciencia de contexto resuelven eficazmente problemas del área de recuperación de información que se vienen intentando abordar desde hace 50 años, como el manejo de sinónimos
Gracias por la crítica detallada; reconozco que fue un error conceptual explicar como si una dimensión individual se mapeara uno a uno con un concepto
Voy a pulir el concepto junto con el funcionamiento de la similitud coseno y corregir el post
Siento que gracias a este comentario mejoró la calidad de mi manera de pensar
Quiero enfatizar que la expresión correcta no es “dimensiones casi ortogonales”, sino “direcciones casi ortogonales”
Tengo curiosidad sobre la conservación de dimensiones y la precisión con que se preservan las distancias en embeddings, junto con información sobre el Johnson-Lindenstrauss lemma
Para preservar distancias con un error del 10%, se necesitarían unas 18 mil dimensiones
También comparto un enlace a Wikipedia
Para ser aún más precisos, no son “dimensiones casi ortogonales”, sino “direcciones casi ortogonales”
Si una dimensión individual coincidiera con un concepto significativo, por ejemplo si hubiera una dimensión de género, entonces sería fácil detectar que la diferencia entre “king” y “queen” existe solo en una dimensión
Si hubiera una dimensión para cada concepto, se podrían seguir intuitivamente esos conceptos a partir de esa diferencia
Comparto un buen artículo sobre el concepto de vectores casi ortogonales
Comparto el enlace
Me pregunto si el principio es tratar cada dimensión como un bit para codificar 2^n direcciones, o si lo estoy entendiendo mal
Si el género se representara con dos dimensiones, ¿no sería imposible distinguir entre “el género es diferente” y “cada dimensión tiene componentes diferentes”?
Aunque no se pueda visualizar, sí se puede calcular la distancia euclidiana
También se puede reducir la dimensionalidad con herramientas como UMAP
Respecto al ejemplo king-man+woman=queen, la operación de suma vectorial no siempre funciona como uno quisiera
El significado puede estar limitado solo por la dirección y magnitud de un vector individual, y como la red aprende comportamientos no lineales, el significado puede cambiar según el punto de partida
Sin evidencia experimental, hay límites para generalizar a partir de operaciones vectoriales simples
Los embeddings son un nuevo salto hacia la universalidad, como el alfabeto o los números
Comparto un enlace
Una pregunta para especialistas
Si los embeddings capturan el contenido, es decir, el significado mismo, en vectores, ¿existe también un vector separado solo para el “estilo”?
Pienso que sería un gran avance si los embeddings pudieran usarse fácilmente también en investigaciones que analizan estilo y forma de escritura
Estoy totalmente de acuerdo con el uso de embeddings
Al desarrollar algo llamado Recallify, logré volver a encontrar rápidamente incluso información poco común que había leído en línea
Incluso usando solo 1024 dimensiones, conecta el contenido de forma efectiva por similitud semántica y no por palabras clave
Es una herramienta revolucionaria para convertir conceptos ambiguos en insights accionables
También estoy buscando beta testers para una app de iOS
No sé si en el artículo aparecía algún caso de uso directo para escritores técnicos
Los embeddings son muy importantes en LLM, búsqueda semántica, etc., pero falta una explicación del beneficio directo que el autor está insinuando
No apareció ningún ejemplo de aplicación directa
Quería tratar varios usos de embeddings en un post de seguimiento y en proyectos, pero se me retrasó recientemente por la crianza de mi bebé de 3 meses
Estoy preparando proyectos y textos relacionados para más adelante, y los embeddings ayudan a resolver tres problemas importantes en la redacción técnica
Los usos prácticos de los embeddings son búsqueda semántica, clasificación y clustering
En el área de búsqueda hay un gran avance aproximadamente cada 10 años
Si generas embeddings y los metes en algoritmos clásicos de ML, puedes clasificar de forma efectiva
El enfoque Bag-of-Words ya da resultados flojos; con embeddings más algoritmos simples se pueden obtener buenos clústeres
Para encontrar vectores cercanos, más que álgebra lineal compleja, suele bastar con algo como el producto punto
Sería muy útil buscar papers y literatura de forma semántica usando embeddings
Pero los embeddings en sí no incluyen información de procedencia, así que en búsquedas RAG solo pueden llevar a la página fuente
Los problemas de citas y verificación siguen ahí
Modelos de citas basados en grafos como GraphRAG son un avance más prometedor
Hice un clasificador de feeds RSS con búsqueda semántica basada en embeddings
También permite clasificación basada en categorías arbitrarias
Actualmente el servicio está fuera de línea porque dejé AWS