[ad_1]
Durante los últimos seis meses, el equipo de ingeniería de Rockset ha integrado completamente índices de similitud en su base de datos de búsqueda y análisis.
La indexación siempre ha estado a la vanguardia de la tecnología de Rockset. Rockset creó un índice convergente que incluye elementos de un índice de búsqueda, un almacén de columnas, un almacén de filas y ahora un índice de similitud que puede escalar a much de millones de vectores y terabytes de datos. Hemos diseñado estos índices para admitir actualizaciones en tiempo actual, de modo que los datos de transmisión puedan estar disponibles para búsqueda en menos de 200 milisegundos.
A principios de este año, Rockset presentó una nueva arquitectura de nube con separación entre computación y almacenamiento de computación. Como resultado, la indexación de vectores y metadatos recién incorporados no afecta negativamente al rendimiento de la búsqueda. Los usuarios pueden transmitir e indexar continuamente vectores completamente aislados de la búsqueda. Esta arquitectura es ventajosa para la transmisión de datos y también para la indexación de similitudes, ya que se trata de operaciones que consumen muchos recursos.
Lo que también hemos notado es que la búsqueda de vectores no se encuentra en una isla propia. Muchas aplicaciones aplican filtros a la búsqueda de vectores utilizando texto, datos geográficos, collection de tiempo y más. Rockset hace que la búsqueda híbrida sea tan fácil como una cláusula WHERE de SQL. Rockset ha aprovechado el poder del índice de búsqueda con un motor SQL integrado para que sus consultas siempre se ejecuten de manera eficiente.
En este weblog, profundizaremos en cómo Rockset se ha integrado completamente búsqueda vectorial en su base de datos de búsqueda y análisis. Describiremos cómo Rockset ha diseñado su solución para SQL nativo, actualizaciones en tiempo actual y separación entre computación.
Mira la charla técnica en Cómo creamos la búsqueda vectorial en la nube con el arquitecto jefe Tudor Bosman y el ingeniero Daniel Latta-Lin. Escuche cómo crearon un índice de similitud distribuido utilizando FAISS-IVF que ahorra memoria y admite la inserción y recuperación inmediatas.
FAISS-IVF en Rockset
Si bien Rockset es independiente del algoritmo en su implementación de indexación de similitud, para la implementación inicial aprovechamos FAISS-FIV ya que es ampliamente utilizado, está bien documentado y admite actualizaciones.
Hay varios métodos para indexar vectores incluida la construcción de un gráfico, una estructura de datos de árbol y una estructura de archivos invertida. Las estructuras de árbol y gráfico tardan más en construirse, lo que las hace computacionalmente costosas y requiere mucho tiempo para admitir casos de uso con vectores que se actualizan con frecuencia. El método de archivo invertido es muy apreciado debido a su rápido tiempo de indexación y rendimiento de búsqueda.
Mientras que el Biblioteca FAISS es de código abierto y se puede aprovechar como un índice independiente, los usuarios necesitan una base de datos para administrar y escalar la búsqueda de vectores. Ahí es donde entra Rockset porque ha resuelto los desafíos de las bases de datos, incluida la optimización de consultas, la multiinquilino, la fragmentación, la coherencia y más que los usuarios necesitan al escalar las aplicaciones de búsqueda vectorial.
Implementación de FAISS-IVF en Rockset
Como Rockset está diseñado para escalar, crea un índice de similitud FAISS distribuido que ahorra memoria y admite la inserción y recuperación inmediatas.
Usando un comando DDLun usuario crea un índice de similitud en cualquier campo vectorial en una colección de Rockset. Debajo del capó, el algoritmo de indexación de archivos invertido divide el espacio vectorial en Células de Voronói y asigna a cada partición un centroide, o el punto que cae en el centro de la partición. Luego, los vectores se asignan a una partición o celda, según el centroide al que están más cercanos.
CREATE SIMILARITY INDEX vg_ann_index
ON FIELD confluent_webinar.video_game_embeddings:embedding
DIMENSION 1536 as 'faiss::IVF256,Flat';
Un ejemplo del comando DDL utilizado para crear un índice de similitud en Rockset.

En el momento de la creación del índice de similitud, Rockset crea una lista de publicación de los centroides y sus identificadores que se almacena en la memoria. Cada registro de la colección también está indexado y se agregan campos adicionales a cada registro para almacenar el centroide más cercano y el residual, el desplazamiento o la distancia desde el centroide más cercano. La colección se almacena en SSD para mejorar el rendimiento y el almacenamiento de objetos en la nube para mayor durabilidad, lo que ofrece un mejor precio y rendimiento que las soluciones de bases de datos vectoriales en memoria. A medida que se agregan nuevos registros, se calculan y almacenan sus centroides y residuos más cercanos.

Con Rockset Índice convergentela búsqueda vectorial puede aprovechar tanto el índice de similitud como el de búsqueda en paralelo. Al ejecutar una búsqueda, el optimizador de consultas de Rockset obtiene los centroides más cercanos a la incrustación objetivo de FAISS. El optimizador de consultas de Rockset luego busca en los centroides utilizando el índice de búsqueda para devolver el resultado.
Rockset también brinda flexibilidad al usuario para compensar entre recuperación y velocidad para su aplicación de inteligencia synthetic. En el momento de la creación del índice de similitud, el usuario puede determinar el número de centroidescon más centroides, lo que conduce a una búsqueda más rápida pero también a un mayor tiempo de indexación. En el momento de la consulta, el usuario también puede seleccionar el número de sondas o el número de celdas a buscar, compensando entre velocidad y precisión de la búsqueda.
La implementación de Rockset minimiza la cantidad de datos almacenados en la memoria, limitándolos a una lista de publicaciones, y aprovecha el índice de similitud y el índice de búsqueda para mejorar el rendimiento.
Cree aplicaciones con actualizaciones en tiempo actual
uno de los conocidos desafíos difíciles con la búsqueda vectorial se manejan inserciones, actualizaciones y eliminaciones. Esto se debe a que los índices de vectores están cuidadosamente organizados para búsquedas rápidas y cualquier intento de actualizarlos con nuevos vectores deteriorará rápidamente las propiedades de búsqueda rápida.
Rockset admite la transmisión de actualizaciones de metadatos y vectores de manera eficiente. Rockset se basa en RocasDBun motor de almacenamiento integrado de código abierto diseñado para la mutabilidad y construido por el equipo detrás de Rockset en Meta.
El uso interno de RocksDB permite a Rockset admitir mutaciones a nivel de campo, por lo que una actualización del vector en un registro particular person activará una consulta a FAISS para generar el nuevo centroide y residual. Luego, Rockset actualizará solo los valores del centroide y el residual para un campo vectorial actualizado. Esto garantiza que los vectores nuevos o actualizados se puedan consultar en aproximadamente 200 milisegundos.
Separación de indexación y búsqueda.
Rockset separación cálculo-cómputo garantiza que la transmisión continua y la indexación de vectores no afectarán el rendimiento de la búsqueda. En la arquitectura de Rockset, se puede utilizar una instancia digital, un grupo de nodos informáticos, para ingerir e indexar datos, mientras que otras instancias virtuales se pueden utilizar para realizar consultas. Varias instancias virtuales pueden acceder simultáneamente al mismo conjunto de datos, eliminando la necesidad de múltiples réplicas de datos.
La separación entre computación hace posible que Rockset admita la indexación y la búsqueda simultáneas. En muchas otras bases de datos vectorialesno puede realizar lecturas y escrituras en paralelo, por lo que se ve obligado a cargar datos por lotes fuera del horario laboral para garantizar un rendimiento de búsqueda constante de su aplicación.
La separación entre cálculos también garantiza que, cuando sea necesario volver a entrenar periódicamente los índices de similitud para mantener alta la recuperación, no haya interferencia con el rendimiento de la búsqueda. Es bien sabido que reentrenar periódicamente el índice puede resultar costoso desde el punto de vista computacional. En muchos sistemas, incluso en búsqueda elásticalas operaciones de reindexación y búsqueda ocurren en el mismo clúster. Esto introduce la posibilidad de que la indexación interfiera negativamente con el rendimiento de búsqueda de la aplicación.
Con la separación entre computación, Rockset evita el problema de que la indexación afecte la búsqueda para lograr un rendimiento predecible a cualquier escala.
Búsqueda híbrida tan sencilla como una cláusula WHERE de SQL
Muchas bases de datos vectoriales Ofrece soporte limitado para búsqueda híbrida o filtrado de metadatos y restringe los tipos de campos, las actualizaciones de metadatos y el tamaño de los metadatos. Rockset, creado para búsqueda y análisis, trata los metadatos como ciudadanos de primera clase y admite documentos de hasta 40 MB de tamaño.
La razón por la que muchas bases de datos vectoriales nuevas limitan los metadatos es que filtrar datos increíblemente rápido es un problema muy difícil. Si le hicieran la pregunta: «Dame 5 vecinos más cercanos donde
?” necesitaría poder sopesar los diferentes filtros, su selectividad y luego reordenar, planificar y optimizar la búsqueda. Este es un problema muy difícil, pero las bases de datos de búsqueda y análisis, como Rockset, han dedicado mucho tiempo, incluso años, a resolver con un optimizador basado en costos.
Como usuario, puede indicarle a Rockset que está abierto a una búsqueda aproximada del vecino más cercano y compensar cierta precisión por velocidad en la consulta de búsqueda usando approx_dot_product
o approx_euclidean_dist
.
WITH dune_embedding AS (
SELECT embedding
FROM commons.book_catalogue_embeddings catalogue
WHERE title="Dune"
LIMIT 1
)
SELECT title, writer, score, num_ratings, value,
APPROX_DOT_PRODUCT(dune_embedding.embedding, book_catalogue_embeddings.embedding) similarity,
description, language, book_format, page_count, liked_percent
FROM commons.book_catalogue_embeddings CROSS JOIN dune_embedding
WHERE score IS NOT NULL
AND book_catalogue_embeddings.embedding IS NOT NULL
AND writer != 'Frank Herbert'
AND score > 4.0
ORDER BY similarity DESC
LIMIT 30
una consulta con approx_dot_product
que es una medida aproximada de qué tan cerca se alinean dos vectores.
Rockset utiliza el índice de búsqueda para filtrar por metadatos y restringir la búsqueda a los centroides más cercanos. Esta técnica se conoce como filtrado de una sola etapa y contrasta con el filtrado de dos pasos, incluido el filtrado previo y posterior, que puede inducir latencia.
Búsqueda de vectores de escala en la nube
En Rockset, hemos pasado años creando una base de datos de búsqueda y análisis a escala. Ha sido diseñado desde cero para la nube con aislamiento de recursos que es essential al crear aplicaciones en tiempo actual o aplicaciones que se ejecutan 24 horas al día, 7 días a la semana. En cargas de trabajo de clientes, Rockset ha escalado a 20.000 QPS manteniendo una latencia de datos P50 de 10 milisegundos.
Como resultado, vemos empresas que ya utilizan la búsqueda vectorial para aplicaciones de producción a escala. JetBluelíder de datos en la industria de las aerolíneas, utiliza Rockset como su base de datos de búsqueda de vectores para tomar decisiones operativas sobre vuelos, tripulación y pasajeros utilizando chatbots basados en LLM. Cualquier cosael mercado de más rápido crecimiento en EE. UU., utiliza Rockset para impulsar recomendaciones de IA en su plataforma de subastas en vivo.
Si está creando una aplicación de IA, lo invitamos a iniciar una prueba gratuita de Rockset u obtenga más información sobre nuestra tecnología para su caso de uso en un demostración del producto.
Mira la charla técnica en Cómo creamos la búsqueda vectorial en la nube con el arquitecto jefe Tudor Bosman y el ingeniero Daniel Latta-Lin. Escuche cómo crearon un índice de similitud distribuido utilizando FAISS-IVF que ahorra memoria y admite la inserción y recuperación inmediatas.
[ad_2]