Il n'y a pas d'intelligence artificielle sans données. Et lorsque vos données sont éparpillées un peu partout, vous passerez plus de temps à gérer le processus de mise en œuvre au lieu de vous concentrer sur ce qui est le plus important : la création de l'application. Les applications les plus importantes au monde utilisent déjà Apache Cassandra, l'augmentation de l'efficacité des données est donc un objectif de plus en plus important. L'IA est une question d'échelle, et l'intégration de la recherche vectorielle - un élément clé dans l'utilisation des modèles d'IA - dans Cassandra aidera les organisations à réduire les coûts, à rationaliser leur gestion des données et à tirer la moindre valeur de leurs données.
Cette fonctionnalité de pointe, récemment décrite dans une proposition d'amélioration de Cassandra (
Le concept de recherche de texte existe depuis longtemps. Cela implique la recherche d'un mot-clé particulier dans les documents. Mais les données importantes peuvent être trouvées dans plus que du texte : l'audio, les images et la vidéo (ou une combinaison) contiennent également des informations pertinentes qui nécessitent une méthode de recherche. C'est là qu'intervient la recherche vectorielle. Elle a été utilisée
Également connue sous le nom de recherche de similarité vectorielle, deux parties sont nécessaires pour élever votre jeu de recherche.
Premièrement, les données brutes doivent être indexées dans une représentation vectorielle (un tableau de nombres) qui sert de description mathématique.
Deuxièmement, les données vectorielles doivent être stockées de manière à ce que les développeurs puissent se demander : "Étant donné une chose, quelles autres choses sont similaires ?" C'est simple et puissant pour les développeurs, difficile à mettre en œuvre à grande échelle côté serveur. C'est là que Cassandra brillera vraiment en servant constamment des données à n'importe quelle échelle dans le monde avec une résilience qui garantit la tranquillité d'esprit.
Il ne s'agit en aucun cas d'une plongée approfondie dans la recherche vectorielle, mais plutôt d'une explication de ce qu'elle peut faire pour votre application en créant une toute nouvelle dimension de données utiles pour réduire la complexité du code et entrer en production plus rapidement avec les utilisateurs de fonctionnalités. vouloir.
Voici des exemples pratiques de recherche de vecteurs dans le monde réel :
Récupération d'images basée sur le contenu, où des images visuellement similaires sont identifiées en fonction de leurs vecteurs de caractéristiques. Utiliser une bibliothèque comme
Systèmes de recommandation, où les produits ou le contenu sont recommandés aux consommateurs en fonction de la similitude avec les éléments avec lesquels ils ont précédemment interagi.
Applications de traitement du langage naturel, où les similitudes sémantiques entre le contenu textuel peuvent être identifiées et exploitées pour des tâches telles que l'analyse des sentiments, le regroupement de documents et la modélisation de sujets. Cela se fait généralement à l'aide d'outils tels que
Utiliser ChatGPT ? La recherche vectorielle est essentielle pour le cas d'utilisation du modèle LLM (Large Language Model) car elle permet un stockage et une récupération efficaces des intégrations vectorielles, représentant les connaissances distillées acquises au cours du processus de formation LLM. En effectuant des recherches de similarité, la recherche vectorielle peut rapidement identifier les incorporations les plus pertinentes correspondant à l'invite d'un utilisateur.
Cela aide les LLM à générer des réponses plus précises et adaptées au contexte tout en fournissant une forme de mémoire à long terme pour les modèles. Essentiellement, la recherche vectorielle est un pont vital entre les LLM et les vastes bases de connaissances sur lesquelles ils sont formés.
Le projet Cassandra est dans une quête sans fin pour faire de Cassandra la centrale ultime dans l'univers des bases de données. Comme mentionné précédemment, après avoir converti vos données en vecteurs intégrés, vous aurez besoin d'un endroit pour les stocker et les utiliser. Ces capacités sont ajoutées à Cassandra, exposées de manière simple mais puissante.
Pour prendre en charge le stockage de vecteurs de grande dimension, nous introduisons un nouveau type de données, ` VECTOR<type, dimension>
`. Cela permettra la manutention et le stockage des
CREATE TABLE products(
id UUID PRIMARY KEY,
name varchar,
description varchar,
item_vector VECTOR<float, 3>
);
Nous ajouterons un nouvel index de stockage attaché (SAI) appelé "VectorMemtableIndex", qui prendra en charge la fonctionnalité de recherche approximative du voisin le plus proche (ANN). Cet index fonctionnera conjointement avec le nouveau type de données et la bibliothèque Hierarchical Navigable Small World (HNSW) d'Apache Lucene pour permettre des capacités de recherche vectorielle efficaces dans Cassandra.
CREATE CUSTOM INDEX item_ann_index ON product(item_vector)
USING 'VectorMemtableIndex';
Pour permettre aux utilisateurs d'effectuer plus facilement des recherches ANN sur leurs données, nous allons introduire un nouvel opérateur Cassandra Query Language (CQL), ANN OF. Cet opérateur permettra aux utilisateurs d'effectuer efficacement des recherches ANN sur leurs données avec une syntaxe de requête simple et familière. Poursuivant l'exemple, les développeurs peuvent demander à la base de données quelque chose de similaire à un vecteur créé à partir d'une description.
SELECT * FROM product WHERE item_vector ANN OF [3.4, 7.8, 9.1]
Lors de la sortie de Cassandra 4.0, l'un des points forts facilement négligés était le concept de capacité de connexion accrue. La nouvelle fonctionnalité de recherche vectorielle de Cassandra est conçue comme une extension du cadre SAI existant, évitant une réécriture du moteur d'indexation principal. Il utilise le bien connu et largement utilisé
Le nouvel ajout de Cassandra 4 met en évidence sa modularité et son extensibilité remarquables. Avec l'intégration de HNSW Lucene et l'expansion du framework SAI, les développeurs peuvent désormais accéder beaucoup plus rapidement à une large gamme de fonctionnalités prêtes pour la production. Les développeurs ont accès à de nombreuses bases de données vectorielles, et nombre d'entre eux préfèrent créer un moteur d'indexation vectorielle avant d'ajouter du stockage. Cassandra s'est attaquée avec succès au problème difficile du stockage de données à grande échelle pendant plus d'une décennie. Nous sommes convaincus que l'inclusion de la recherche de vecteurs dans Cassandra fournira des fonctionnalités encore plus exceptionnelles prêtes pour la production.
Cassandra n'est pas novice en matière d'apprentissage automatique et de charges de travail d'IA. Les utilisateurs de longue date de Cassandra utilisent Cassandra comme magasin de fonctionnalités rapide et efficace depuis des années. On dit même qu'OpenAI utilise beaucoup Cassandra dans la construction de LLM. Ces cas d'utilisation utilisent tous les fonctionnalités existantes de Cassandra. Il y aura plusieurs façons d'utiliser la nouvelle recherche vectorielle. Ce sera excitant de voir ce que notre communauté proposera, mais ils entreront probablement dans deux catégories :
Si vous avez déjà une application construite sur Cassandra, vous pouvez améliorer ses capacités en incorporant la recherche ANN ("approximate plus proche voisin"). Par exemple, si vous avez un système de recommandation de contenu, vous pouvez utiliser la recherche ANN pour trouver des articles similaires et améliorer la pertinence de vos recommandations. Les catalogues de produits peuvent dénormaliser les caractéristiques en vecteurs intégrés stockés dans le même enregistrement. La détection des fraudes peut être encore améliorée en mappant les comportements aux fonctionnalités. Pensez à un cas d'utilisation et il est probablement pertinent.
Si vous démarrez un nouveau projet qui nécessite des capacités de recherche de similarité rapide, la nouvelle fonction de recherche vectorielle de Cassandra sera un excellent choix pour le stockage et la récupération de données. Savoir que vous pouvez passer de gigaoctets à pétaoctets sur le même système vous permettra de vous concentrer sur la création de votre application et de ne pas vous soucier des compromis. En plus de stocker les vecteurs incorporés, vous bénéficierez de toute la puissance de CQL et du stockage tabulaire d'une base de données complète.
Quelle que soit la façon dont vous consommez Cassandra, ces options seront toutes disponibles. S'il s'agit de votre propre déploiement à l'aide de Cassandra open source, déployé dans Kubernetes à l'aide de
Alors que nous continuons à innover et à étendre les capacités de Cassandra, nous restons déterminés à rester à la pointe de ce dont vous avez besoin en matière de gestion des données. L'introduction de la recherche vectorielle est un nouveau cas d'utilisation passionnant qui rendra vos applications basées sur les données encore plus puissantes et polyvalentes. Ceci, avec certaines des autres fonctionnalités de pointe comme distribué
Nous sommes convaincus que cet ajout aidera non seulement les développeurs d'IA, mais également les organisations gérant de grands ensembles de données qui peuvent bénéficier d'une recherche rapide de similarité. Gardez donc un œil sur la version alpha de Cassandra avec la fonctionnalité de recherche vectorielle, prévue pour le troisième trimestre. Nous sommes impatients de voir les applications fantastiques que vous créerez avec cette nouvelle fonctionnalité, et nous serions ravis que vous partagiez vos cas d'utilisation avec la communauté sur
Également publié par Patrick McFadin, DataStax ici.