¿Qué es la indexación vectorial? - Una guía completa para 2024

Diseñado para la velocidad: ~ 10 ms de latencia, incluso bajo carga
¡Una forma increíblemente rápida de crear, rastrear e implementar sus modelos!
- Gestiona más de 350 RPS en solo 1 vCPU, sin necesidad de ajustes
- Listo para la producción con soporte empresarial completo
En el ámbito del desarrollo de bases de datos, la demanda de un acceso rápido y preciso a los datos ha llevado a métodos de indexación innovadores. Como las tablas tradicionales no servían para la gestión de datos a gran escala, aparecieron sistemas más estructurados, como las bases de datos relacionales, que integraban estrategias de indexación avanzadas. Pongamos el ejemplo de un supermercado: los productos de los supermercados se clasifican meticulosamente en distintas categorías, como productos agrícolas, lácteos y productos de panadería, lo que agiliza el proceso de compra al guiar a los clientes directamente a la sección deseada. Este método de organización física refleja los principios de la indexación digital, según los cuales los datos se clasifican de manera eficiente para facilitar un acceso rápido.
La indexación vectorial sustenta muchas aplicaciones modernas y mejora las interacciones de los usuarios en varias plataformas. Por ejemplo, Netflix utiliza la indexación vectorial para mejorar sus recomendaciones y garantizar que los espectadores reciban películas y programas que se ajusten a sus gustos. Amazon aprovecha una tecnología similar para personalizar las sugerencias de productos, lo que mejora las experiencias de compra al alinearse con el comportamiento de los consumidores. En el sector sanitario, la indexación vectorial acelera la recuperación de los registros de los pacientes, lo que ayuda a realizar diagnósticos más rápidos y precisos. Las plataformas de redes sociales como Facebook aprovechan esta tecnología para personalizar los feeds y los anuncios, priorizando el contenido que se ajusta a las preferencias de los usuarios. Este despliegue estratégico de la indexación vectorial aumenta significativamente tanto la eficiencia como la satisfacción de los usuarios, lo que demuestra su función vital a la hora de transformar los datos sin procesar en información útil.
¿Qué son las incrustaciones vectoriales?

Las incrustaciones vectoriales son una forma transformadora de representar los datos, ya que permiten a las máquinas comprender y procesar diversas formas de información de manera más eficiente. Básicamente, las incrustaciones convierten elementos complejos (ya sean palabras, imágenes o sonidos) en vectores numéricos de tamaño fijo, que capturan las características esenciales de los datos.
Imagina intentar enseñarle a una computadora a diferenciar entre diferentes tipos de música. Al convertir las canciones en incrustaciones basadas en características como el tempo, el ritmo y la instrumentación, cada canción se convierte en un punto en un espacio multidimensional. Las canciones con características similares se agrupan en este espacio, de forma muy parecida a cómo se agrupan los diferentes géneros en una tienda de música. Esta disposición espacial permite a los algoritmos reconocer fácilmente patrones y similitudes, algo crucial para tareas como la recomendación musical o la clasificación de géneros.
En un contexto más cotidiano, piense en las incrustaciones como si una aplicación de redes sociales entendiera sus preferencias. En función de los tipos de publicaciones con las que interactúas, la aplicación desarrolla un «perfil» numérico que representa lo que te gusta y lo que no te gusta. Luego usa este perfil para decidir qué contenido nuevo mostrarte, con el objetivo de presentar las publicaciones que estén cerca de tu perfil en su espacio multidimensional de incrustaciones de contenido.
Comprensión de los índices vectoriales
La indexación vectorial desempeña un papel crucial en la gestión y recuperación de datos de alta dimensión almacenados en espacios vectoriales. Pero primero, ¿qué es un espacio vectorial en este contexto? Básicamente, es una construcción matemática en la que cada punto representa un dato distinto (como texto, imágenes o sonidos) convertido a un formato numérico conocido como vector. Estos vectores capturan las características esenciales de los datos, lo que permite realizar cálculos complejos.
- Transformación vectorial: El proceso comienza con la conversión de datos sin procesar en vectores. Cada vector cuantifica las características clave del contenido original, traduciendo información compleja a un lenguaje que los sistemas informáticos puedan entender y procesar de manera eficiente.
- Construcción de índices: Una vez que los datos se transforman en vectores, el siguiente paso consiste en crear un índice para gestionar estos vectores de forma sistemática. Se emplean varios algoritmos para optimizar el almacenamiento y la recuperación de estos vectores, lo que reduce eficazmente el espacio de búsqueda y mejora el rendimiento.
- Agrupación de vectores similares: Se utilizan técnicas como la agrupación de k-means, el mundo pequeño navegable jerárquico (HNSW) o la cuantificación de productos para organizar vectores similares en grupos. La agrupación en clústeres de K-means, por ejemplo, divide los vectores en clústeres en función de sus similitudes, lo que agiliza el proceso de búsqueda al centrarse únicamente en los clústeres relevantes durante una consulta.
- Búsqueda eficiente: Cuando se realiza una consulta, como cuando un usuario busca una imagen similar a la que tiene, el sistema de indexación identifica rápidamente el clúster que contiene los vectores más similares a la consulta. A continuación, realiza una búsqueda específica dentro de este grupo, lo que acelera considerablemente la recuperación de los resultados pertinentes.
Mediante estos pasos, la indexación vectorial facilita el acceso rápido y preciso a vastos conjuntos de datos, lo que convierte los datos sin procesar en información útil.
Técnicas básicas de indexación vectorial
Índices invertidos:
Los índices invertidos son una estructura de datos fundamental que se utiliza ampliamente en los motores de búsqueda y los sistemas de recuperación de información. Permiten la consulta eficiente de grandes conjuntos de datos al asignar el contenido a sus ubicaciones en una base de datos. A continuación, se analizan en profundidad el concepto básico y algunos tipos específicos de índices invertidos, incluidas las variaciones de la técnica de indexación de archivos invertidos (IVF):
Indexación directa:
Indexación invertida:
Ejemplo básico que ilustra la diferencia entre la indexación directa e invertida
Índice invertido básico:
En esencia, un índice invertido consiste en un diccionario en el que cada palabra o término está asociado a una lista de documentos en los que aparece ese término. Se trata esencialmente de una «inversión» de la relación normal entre documento y palabra, de ahí el nombre. Esta configuración acelera considerablemente el proceso de búsqueda de todos los documentos que contienen una palabra en particular.
Variaciones y mejoras:
- Índices posicionales: Para admitir las consultas de proximidad y frases, a menudo es necesario almacenar no solo los identificadores de los documentos (ID) en los que aparece una palabra, sino también las posiciones específicas dentro de esos documentos. Esto permite al motor de búsqueda encontrar rápidamente documentos en los que las palabras no solo aparecen, sino que aparecen en un orden específico o a una distancia determinada entre sí.
- Información de frecuencia: Algunas implementaciones almacenan la frecuencia de cada palabra en cada documento. Esto puede resultar útil para optimizar los planes de ejecución de consultas, ya que los documentos con frecuencias de uso más altas pueden considerarse más relevantes, según la consulta.
- Índices duales: Algunos sistemas mantienen dos listas invertidas independientes: una para las identificaciones y frecuencias de los documentos y otra para las posiciones de las palabras completas. Las consultas simples pueden utilizar las listas más cortas, mientras que las búsquedas más complejas que implican la proximidad pueden utilizar las listas posicionales detalladas.
Variantes de archivos invertidos (IVF):
- IFFLAT: Utiliza un modelo de almacenamiento plano dentro de cada clúster para realizar operaciones de búsqueda simplificadas y eficientes, especialmente eficaces en conjuntos de datos de tamaño moderado donde se requiere una alta precisión.
- IVFPQ (cuantificación del producto): Mejora la eficiencia al descomponer vectores de alta dimensión en subespacios más pequeños que se cuantifican de forma independiente, lo que permite realizar búsquedas de similitud rápidas y reducir las necesidades de almacenamiento.
- IVFSQ (cuantificación escalar): Emplea la cuantificación escalar para simplificar el proceso de codificación al tratar cada dimensión por separado, lo que reduce la complejidad computacional y la sobrecarga de almacenamiento, lo que resulta ideal para datos de dimensiones inferiores.
Técnicas de compresión:
- Codificación de longitud variable: El uso de métodos como números enteros de longitud variable para almacenar los identificadores y las posiciones de los documentos puede reducir considerablemente la cantidad de espacio necesario.
- Codificación Delta: Al almacenar solo la diferencia entre los ID o las posiciones de los documentos consecutivos, la codificación delta puede reducir aún más los requisitos de espacio, ya que las diferencias suelen ser menores que los valores absolutos.
Estructuras avanzadas para mejorar la eficiencia:
- Estructura de la lista de grupos: Una adaptación del índice invertido en el que se agrupan los identificadores de los documentos, lo que mejora la eficiencia a la hora de realizar operaciones como la intersección o la unión, que son habituales en el procesamiento de consultas.
Casos de uso y aplicaciones:
Los índices invertidos son fundamentales no solo en los motores de búsqueda, sino también en los sistemas que se ocupan de datos semiestructurados (como las bases de datos XML y RDF) y los motores de búsqueda de gráficos utilizados en las redes sociales. La eficacia de estos índices repercute directamente en el rendimiento y la escalabilidad de estos sistemas.
El pequeño mundo navegable jerárquico (HNSW)
Ilustración de la idea jerárquica de NSW. La búsqueda comienza a partir de un elemento de la capa superior (que se muestra en rojo). Las flechas rojas muestran la dirección del codicioso algoritmo desde el punto de entrada hasta la consulta (se muestra en verde). Adaptado de https://arxiv.org/abs/1603.09320

El algoritmo HNSW representa un enfoque avanzado basado en gráficos para indexar y buscar datos de alta dimensión. Aprovecha de manera eficiente una estructura de varios niveles y se inspira en las listas de omisiones y las redes navegables de pequeños mundos (NSW) para optimizar las operaciones de almacenamiento y búsqueda en las bases de datos.
Comprensión de HNSW:
- Inspiración para omitir la lista: En una lista de omisiones tradicional, los datos se organizan en varios niveles. Cada nivel contiene un subconjunto de datos: la capa inferior contiene todos los puntos de datos y cada capa sucesiva omite algunos puntos de forma gradual. Esta estructura en capas permite rutas de búsqueda eficientes, ya que comienza en la parte superior y se reduce a través de las capas en función de las comparaciones.
- Pequeño mundo navegable (Nueva Gales del Sur): NSW aporta el concepto de conectar puntos de datos (nodos) en un gráfico basándose en la similitud, utilizando un algoritmo codicioso para navegar por los vecinos más cercanos. Esto garantiza que las búsquedas sean eficientes, incluso en conjuntos de datos grandes y complejos, ya que se parte de un nodo conocido y se avanza progresivamente hacia los nodos más cercanos hasta encontrar el más cercano.
Cómo funciona HNSW:
- Estructura gráfica en capas: HNSW utiliza un gráfico en capas en el que cada nodo está conectado a otros nodos de la misma capa y también a los nodos de la siguiente capa inferior. La capa superior tiene la menor cantidad de nodos, y su densidad aumenta a medida que las capas descienden. Esta configuración imita la eficiente estrategia de búsqueda de la lista de omisiones, pero está adaptada para gestionar las complejidades de los espacios de datos de gran dimensión.
- Proceso de búsqueda en HNSW: la búsqueda comienza en la capa superior examinando los nodos conectados a un punto de inicio predefinido y moviéndose al nodo más cercano a la consulta de destino. La búsqueda avanza hacia abajo a través de las capas, reduciendo el espacio de búsqueda hasta llegar a la capa más baja, que contiene todos los puntos de datos. Este método garantiza que la búsqueda sea exhaustiva e incorpora a los posibles vecinos más cercanos.
Variantes de HNSW:
- PLANO HNSW: En esta variante, los vectores sin procesar se almacenan directamente dentro de los nodos del gráfico. Esta variante es sencilla y conserva los datos originales, pero requiere más espacio de almacenamiento.
- HNSWSQ: Al igual que el enfoque de cuantificación escalar del IVFSQ, el HNSWSQ almacena los vectores en un formato cuantificado, lo que reduce los requisitos de almacenamiento y puede mejorar la velocidad de búsqueda a costa de una ligera disminución de la precisión.
Casos de uso y aplicaciones:
El HNSW es particularmente eficaz para las aplicaciones que requieren un acceso rápido a elementos similares dentro de grandes conjuntos de datos, como la recuperación de imágenes, los sistemas de recomendación y otros escenarios que implican búsquedas de similitud complejas. Su diseño permite realizar consultas escalables y eficientes al minimizar los cálculos de distancia necesarios para encontrar los vecinos más cercanos, por lo que es la opción preferida para los sistemas que manejan grandes volúmenes de datos.
Hashing sensible a la localidad (LSH)
Descripción general de la LSH:
El hash sensible a la localidad agiliza la búsqueda de los vecinos más cercanos mediante el uso de funciones de hash que son «sensibles» a la localidad de los datos. Esto significa que es probable que los vectores que están cerca unos de otros en el conjunto de datos se compriman en el mismo «bucket» o contenedor de la tabla hash.
Cómo funciona la LSH:
- Función de hash: LSH emplea un tipo específico de función de hash que agrupa vectores cercanos en el mismo depósito de hash. Estas funciones están diseñadas de manera que la probabilidad de colisión (es decir, de usar el hash en el mismo cubo) sea mayor en el caso de los elementos que se encuentran cerca unos de otros en el espacio vectorial.
- Construcción de índices: Durante la fase de indexación, las incrustaciones vectoriales del conjunto de datos se cifran mediante estas funciones. Los vectores que son similares terminan en el mismo segmento, lo que reduce la necesidad de buscar los vecinos más cercanos en todo el conjunto de datos.
- Procesamiento de consultas: Cuando se envía un vector de consulta, LSH lo convierte en un hash para encontrar su bucket correspondiente. En ese caso, la búsqueda de los vecinos más cercanos se limita únicamente a este segmento. El sistema calcula las métricas de similitud de los vectores de este segmento, lo que reduce drásticamente la cantidad de comparaciones necesarias en comparación con los métodos que requieren buscar en todo el conjunto de datos.
Casos de uso y aplicaciones:
Sistemas de recomendación: encontrar rápidamente artículos similares a los intereses de un usuario.
Recuperación de imágenes: Búsqueda de imágenes que sean visualmente similares a las de una imagen de consulta.
Detección de casi duplicados: Identificar documentos de texto o archivos multimedia similares en bases de datos de gran tamaño.

Algunos ejemplos de aplicaciones jerárquicas de LSH. Adaptado de https://arxiv.org/pdf/2204.11209
Algunas otras técnicas de indexación que no se discuten aquí son Ball-Tree, KD-Tree (K Dimensional Tree), R-Tree, Annoy (Approximate Nearest Neighbors Oh Yeah).
Conclusión
En conclusión, la indexación vectorial es un componente fundamental que mejora los procesos de recuperación de datos en diversas industrias y aplicaciones. Desde servicios de streaming multimedia como Netflix que optimizan sus algoritmos de recomendación hasta gigantes del comercio electrónico como Amazon que mejoran las experiencias de compra de los clientes, el uso estratégico de la indexación vectorial es crucial para traducir inmensos volúmenes de datos en información útil y personalizada. Las plataformas sanitarias y de redes sociales también aprovechan estas sofisticadas estrategias de indexación para ofrecer mejores servicios y mejorar la relevancia del contenido, lo que demuestra la amplia aplicabilidad y eficacia de estas tecnologías.
Al explorar la indexación vectorial, hemos profundizado en varias técnicas, como el índice invertido, el mundo pequeño navegable jerárquico (HNSW) y el hash sensible a la localidad (LSH), cada una con características únicas adecuadas para diferentes estructuras y necesidades de datos. Estas técnicas no solo agilizan el proceso de recuperación de datos, sino que también garantizan la escalabilidad y la eficiencia, que son imprescindibles en el mundo actual basado en los datos.
A medida que la indexación vectorial siga evolucionando, mantenerse actualizado con estas tecnologías será vital para los desarrolladores, científicos de datos y empresas que deseen aprovechar todo el potencial de sus activos de datos. Es probable que los avances futuros introduzcan métodos aún más optimizados, lo que mejorará aún más la velocidad y la precisión de los sistemas de recuperación de datos.
TrueFoundry AI Gateway ofrece una latencia de entre 3 y 4 ms, gestiona más de 350 RPS en una vCPU, se escala horizontalmente con facilidad y está listo para la producción, mientras que LitellM presenta una latencia alta, tiene dificultades para superar un RPS moderado, carece de escalado integrado y es ideal para cargas de trabajo ligeras o de prototipos.
La forma más rápida de crear, gobernar y escalar su IA

















.png)


.webp)




.webp)







