Une base de données vectorielle permet une recherche et une indexation efficaces de similitudes de données de haute dimension. Les bases de données vectorielles sont particulièrement utiles pour les applications d'apprentissage automatique, où les points de données sont souvent représentés comme des vecteurs de grande dimension. Ces bases de données permettent aux utilisateurs d'effectuer des recherches de similitude en fonction des intérêts des points de données, ce qui facilite la recherche d'informations pertinentes en fonction du contenu ou des fonctionnalités.
Dans ce projet examplaire, j'ai utilisé WeAviate comme base de données vectorielle et leur intégration avec l'embedder d'OpenAI ( text-embedding-ada-002-v2 ) pour créer et enregistrer des vecteurs d'un ensemble de données. En tant qu'exemple de jeu de données, j'ai gratté tout le combinateur Y de leur site Web (4000+ sociétés) et créé des vecteurs à partir de DataPoint clé (voir /examples/y-combinator/schema.json y-combinator/schema.json pour plus de détails). J'ai également téléchargé l'ensemble de données sur Kaggle.
À titre d'exemple, j'ai téléchargé un ensemble de données de caractère Lord of the Rings de Kaggle, créé par Paul Mooney.
Créez un fichier .env dans le répertoire racine et ajoutez les variables: openai_apikey et data_path. La variable DATA_PATH doit être le chemin d'accès au répertoire de données:
OPENAI_APIKEY=XXXXXXXXXXXXXXXXX
DATA_PATH=C:Usersyour-user-namepathtoprojectdata
Pour utiliser ce code, vous devrez installer les dépendances en utilisant:
npm install
Pour utiliser la base de données, vous devrez configurer une instance Docker de la base de données.
docker-compose up -d --build
Répondez à la base de données WeAviate (assurez-vous que Docker s'exécute). Vous pouvez utiliser l'un des ensembles de données d'exemples fournis dans le répertoire /examples (actuellement y-combinator et lotr-character ).
L'exécution populate créera une base de données WeAviate avec les données de l'exemple de données (et supprimez toutes les données existantes avec la même classe). J'ai payé ~ 0,20 $ en usage OpenAI pour remplir l'ensemble de données Y Combinator Y
npm run populate --dataset=<example-name>
Si vous réussissez, vous pouvez facilement afficher et interroger vos données via l'API GraphQL WeAviate. Vous pouvez utiliser le bac à sable Apollo GraphQL pour explorer les données et exécuter les requêtes. Entrez simplement l'URL du graphique ( http://localhost:8080/v1/graphql ).
Si vous souhaitez vous amuser plus, vous pouvez utiliser le projecteur d'intégration de TensorFlow pour visualiser vos données. Pour obtenir les fichiers .tsv requis, utilisez la commande suivante (les placera à l'intérieur du dossier /example/<example-name> ):
npm run tsv --dataset=<example-name>
Ceux-ci peuvent être téléchargés sur le site Web pour visualiser vos données.
Pour créer vos propres données, suivez les exemples:
/examples avec le nom de votre ensemble de données.schema.json dans la racine de votre dossier de jeu de données. Ce fichier doit contenir le schéma de vos données.data.json dans la racine de votre dossier de jeu de données. Ce fichier doit contenir les données de votre ensemble de données.npm run populate --dataset=<your-dataset-name> pour remplir la base de données avec vos données.