paint-brush
Revolucionando el desarrollo de IA: Apache Cassandra presenta la búsqueda vectorialpor@datastax
1,973 lecturas
1,973 lecturas

Revolucionando el desarrollo de IA: Apache Cassandra presenta la búsqueda vectorial

por DataStax7m2023/05/22
Read on Terminal Reader

Demasiado Largo; Para Leer

La potente búsqueda vectorial, junto con Apache Cassandra, la base de datos más escalable del mundo, cambia las reglas del juego para las aplicaciones de IA.
featured image - Revolucionando el desarrollo de IA: Apache Cassandra presenta la búsqueda vectorial
DataStax HackerNoon profile picture


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 ( CEP-30 ), es una prueba más del compromiso de la comunidad de Cassandra con la creación rápida de funciones fiables. También es un testimonio del creciente atractivo de Cassandra para los desarrolladores de IA y las organizaciones que se enfrentan a conjuntos de datos masivos, brindándoles las herramientas para crear aplicaciones avanzadas basadas en datos.


¿Qué es la búsqueda vectorial?

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 por un tiempo , y ha demostrado ser bastante valioso en varias aplicaciones, especialmente en los campos de inteligencia artificial y aprendizaje automático.


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 img2vec , puede convertir un archivo de imagen en 512 identificadores únicos que se pueden usar para la búsqueda de similitud.


  • 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 palabra2vec y puede requerir la escala que ofrece Cassandra.


  • ¿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.


¿Qué le espera a Cassandra?

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.


Tipo de datos vectoriales

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 Flotador32 incrustaciones, que se usan comúnmente en aplicaciones de IA. Esto ya ha dado lugar a discusiones para agregar a Cassandra en bibliotecas de IA como LangChain . En este ejemplo, imagine la creación de un vector a partir de la descripción para permitir una búsqueda de similitud semántica.



CREATE TABLE products(

id UUID PRIMARY KEY,

name varchar,

description varchar,

item_vector VECTOR<float, 3>

);



índice de búsqueda ANN

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';


Operador ANN en CQL

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]



Destacando la extensibilidad de Cassandra

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 funcionalidad HNSW en Lucene, que proporciona una solución rápida y eficiente para encontrar vecinos más cercanos aproximados en un espacio de alta dimensión.


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.


Nuevos casos de uso

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:


Mejore un caso de uso existente con la búsqueda ANN

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.

Cree algo nuevo que necesite búsqueda vectorial

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 k8ssandra o en la nube con servicios como Base de datos DataStax Astra , obtendrá el mismo gran sistema. La libertad que obtiene con el código abierto es la libertad de elegir cómo crea sus aplicaciones.


Creado por y para desarrolladores

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 Transacciones ACID a escala , hará de Cassandra 5.0 la actualización más importante que pueda realizar. Tampoco nos detenemos aquí. Las empresas y los desarrolladores que respaldan a Cassandra están trabajando arduamente para idear más formas de consolidar sus datos, simplificar la administración y ahorrar dinero.


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 Planeta Casandra .



También publicado por Patrick McFadin, DataStax aquí.