No hay inteligencia artificial sin datos. Y cuando sus datos estén dispersos por todos lados, pasará más tiempo administrando el proceso de implementación en lugar de concentrarse en lo que es más importante: construir la aplicación. Las aplicaciones más destacadas del mundo ya utilizan Apache Cassandra, por lo que aumentar la eficiencia de los datos es un objetivo cada vez más importante. La IA tiene que ver con la escala, y llevar la búsqueda vectorial , un componente clave en el uso de modelos de IA, a Cassandra ayudará a las organizaciones a reducir costos, optimizar su gestión de datos y exprimir hasta la última gota de valor de sus datos.
Esta característica de vanguardia, descrita recientemente en una propuesta de mejora de Cassandra (
El concepto de búsqueda de texto existe desde hace mucho tiempo. Implica buscar una palabra clave particular dentro de los documentos. Pero los datos importantes se pueden encontrar en algo más que texto: audio, imágenes y video (o alguna combinación) también contienen información relevante que requiere un método de búsqueda. Ahí es donde entra en juego la búsqueda vectorial. Ha estado en uso
También conocida como búsqueda de similitud vectorial, se requieren dos partes para elevar su juego de búsqueda.
En primer lugar, los datos sin procesar deben indexarse en una representación vectorial (una matriz de números) que sirva como descripción matemática.
En segundo lugar, los datos vectoriales deben almacenarse de manera que los desarrolladores puedan preguntar: "Dada una cosa, ¿qué otras cosas son similares?" Es simple y poderoso para los desarrolladores, y es un desafío implementarlo a escala en el lado del servidor. Aquí es donde Cassandra realmente brillará al proporcionar datos de manera constante a cualquier escala en todo el mundo con una resiliencia que otorga tranquilidad.
De ninguna manera pretende ser una inmersión completa en la búsqueda de vectores, sino más bien una explicación de lo que puede hacer por su aplicación al crear una dimensión completamente nueva de datos útiles para reducir la complejidad del código y entrar en producción más rápido con las características de los usuarios. desear.
Los ejemplos prácticos del mundo real de la búsqueda de vectores incluyen:
Recuperación de imágenes basada en contenido, donde las imágenes visualmente similares se identifican en función de sus vectores de características. Usando una biblioteca como
Sistemas de recomendación, en los que se recomiendan productos o contenido a los consumidores en función de la similitud con los elementos con los que han interactuado previamente.
Aplicaciones de procesamiento de lenguaje natural, donde las similitudes semánticas entre el contenido textual se pueden identificar y aprovechar para tareas como el análisis de sentimientos, la agrupación de documentos y el modelado de temas. Esto generalmente se hace usando herramientas como
¿Usar ChatGPT? La búsqueda de vectores es fundamental para el caso de uso del modelo de lenguaje grande (LLM), ya que permite el almacenamiento y la recuperación eficientes de incrustaciones de vectores, que representan el conocimiento destilado obtenido durante el proceso de capacitación de LLM. Al realizar búsquedas de similitud, la búsqueda vectorial puede identificar rápidamente las incrustaciones más relevantes correspondientes a la solicitud de un usuario.
Esto ayuda a los LLM a generar respuestas más precisas y contextualmente apropiadas al mismo tiempo que proporciona una forma de memoria a largo plazo para los modelos. En esencia, la búsqueda de vectores es un puente vital entre los LLM y las vastas bases de conocimiento en las que se capacitan.
El proyecto Cassandra se encuentra en una búsqueda interminable para convertir a Cassandra en la potencia definitiva en el universo de las bases de datos. Como se mencionó anteriormente, después de convertir sus datos en incrustaciones de vectores, necesitará un lugar para almacenarlos y usarlos. Esas capacidades se están agregando a Cassandra, expuestas de una manera simple pero poderosa.
Para admitir el almacenamiento de vectores de alta dimensión, estamos introduciendo un nuevo tipo de datos, ` VECTOR<type, dimension>
`. Esto permitirá el manejo y almacenamiento de
CREATE TABLE products(
id UUID PRIMARY KEY,
name varchar,
description varchar,
item_vector VECTOR<float, 3>
);
Agregaremos un nuevo índice adjunto de almacenamiento (SAI) llamado "VectorMemtableIndex", que se adaptará a la funcionalidad de búsqueda del vecino más cercano (ANN). Este índice funcionará junto con el nuevo tipo de datos y la biblioteca Hierarchical Navigable Small World (HNSW) de Apache Lucene para permitir capacidades de búsqueda de vectores eficientes dentro de Cassandra.
CREATE CUSTOM INDEX item_ann_index ON product(item_vector)
USING 'VectorMemtableIndex';
Para facilitar a los usuarios la realización de búsquedas ANN en sus datos, presentaremos un nuevo operador Cassandra Query Language (CQL), ANN OF. Este operador permitirá a los usuarios realizar búsquedas ANN en sus datos de manera eficiente con una sintaxis de consulta simple y familiar. Continuando con el ejemplo, los desarrolladores pueden solicitar a la base de datos algo similar a un vector creado a partir de una descripción.
SELECT * FROM product WHERE item_vector ANN OF [3.4, 7.8, 9.1]
Cuando se lanzó Cassandra 4.0, uno de los aspectos más destacados que fácilmente se pasó por alto fue el concepto de mayor capacidad de conexión. La nueva funcionalidad de búsqueda de vectores en Cassandra está construida como una extensión del marco SAI existente, evitando una reescritura del motor de indexación central. Utiliza el conocido y ampliamente utilizado
La nueva incorporación de Cassandra 4 destaca su notable modularidad y extensibilidad. Con la integración de HNSW Lucene y la expansión del marco SAI, los desarrolladores ahora pueden acceder a una amplia gama de funciones listas para producción mucho más rápido. Los desarrolladores tienen acceso a numerosas bases de datos vectoriales y muchos de ellos prefieren crear un motor de indexación de vectores antes de agregar almacenamiento. Cassandra ha abordado con éxito el desafiante problema del almacenamiento de datos a escala durante más de una década. Estamos muy seguros de que la inclusión de la búsqueda de vectores en Cassandra proporcionará características listas para producción aún más excepcionales.
Cassandra no es nueva en el aprendizaje automático y las cargas de trabajo de IA. Los usuarios de Cassandra desde hace mucho tiempo han estado usando Cassandra como una tienda de funciones rápida y eficiente durante años. Incluso se rumorea que OpenAI usa Cassandra en gran medida en la construcción de LLM. Todos estos casos de uso emplean la funcionalidad existente de Cassandra. Habrá muchas formas de utilizar la nueva búsqueda vectorial. Será emocionante ver qué se le ocurre a nuestra comunidad, pero es probable que encajen en dos categorías:
Si ya tiene una aplicación creada en Cassandra, puede mejorar sus capacidades incorporando la búsqueda ANN ("vecino más cercano aproximado"). Por ejemplo, si tiene un sistema de recomendación de contenido, puede usar la búsqueda ANN para encontrar elementos similares y mejorar la relevancia de sus recomendaciones. Los catálogos de productos pueden desnormalizar características en vectores incrustados almacenados en el mismo registro. La detección de fraude se puede mejorar aún más mediante la asignación de comportamientos a funciones. Piense en un caso de uso y probablemente sea relevante.
Si está iniciando un nuevo proyecto que requiere capacidades de búsqueda rápida por similitud, la nueva función de búsqueda vectorial de Cassandra será una excelente opción para el almacenamiento y la recuperación de datos. Saber que puede pasar de gigabytes a petabytes en el mismo sistema le permitirá concentrarse en crear su aplicación y no preocuparse por las compensaciones. Además de almacenar incrustaciones de vectores, tendrá todo el poder de CQL y el almacenamiento tabular de una base de datos con todas las funciones.
Independientemente de cómo consuma Cassandra, todas estas opciones estarán disponibles. Si es su propia implementación usando Cassandra de código abierto, implementada en Kubernetes usando
A medida que continuamos innovando y ampliando las capacidades de Cassandra, seguimos comprometidos a permanecer a la vanguardia de lo que necesita en la gestión de datos. La introducción de la búsqueda vectorial es un nuevo y emocionante caso de uso que hará que sus aplicaciones basadas en datos sean aún más poderosas y versátiles. Esto, junto con algunas de las otras características de vanguardia como distribución
Estamos seguros de que esta adición ayudará no solo a los desarrolladores de IA, sino también a las organizaciones que administran grandes conjuntos de datos que pueden beneficiarse de la búsqueda rápida de similitudes. Así que esté atento a la versión alfa de Cassandra con la función de búsqueda de vectores, programada para algún momento del tercer trimestre. Esperamos ver las fantásticas aplicaciones que creará con esta nueva función y nos encantaría que compartiera sus casos de uso con la comunidad en
También publicado por Patrick McFadin, DataStax aquí.