14 points par GN⁺ 2023-11-27 | 1 commentaires | Partager sur WhatsApp
  • VectorDB est un package Python pour le stockage et la recherche de texte, qui utilise des techniques de chunking, d’embedding et de recherche vectorielle
  • Il offre une interface conviviale et convient au stockage, à la recherche et à la gestion de données textuelles associées à des métadonnées
  • Il est conçu pour des cas d’usage où une faible latence est essentielle

Installation et mode d’emploi

  • VectorDB est open source, et son code ainsi que sa documentation complète sont disponibles sur GitHub.
  • Il peut être installé avec la commande pip install vectordb2.
  • Son utilisation consiste à créer un objet mémoire, stocker du texte et des métadonnées, puis rechercher les chunks pertinents.

Importance de la recherche vectorielle et des embeddings

  • Lorsqu’on travaille avec de grands modèles de langage, la recherche vectorielle et les embeddings permettent une recherche d’information efficace et précise.
  • En transformant le texte en vecteurs de haute dimension, ils permettent des comparaisons et des recherches rapides, tout en capturant le sens sémantique pour améliorer la qualité des résultats.

Exemple

  • À l’aide de l’objet Memory, on configure une stratégie de chunking, puis on stocke du texte et des métadonnées sur le machine learning et l’intelligence artificielle.
  • Pour une requête donnée, les n chunks les plus pertinents sont récupérés puis affichés.

L’avis de GN⁺

Le point le plus important de cet article est que VectorDB est un package Python permettant de stocker et de rechercher efficacement des données textuelles. Grâce à la recherche vectorielle et aux techniques d’embedding, il permet de retrouver rapidement et précisément des informations dans de grands jeux de données, ce qui laisse entrevoir des applications dans des domaines variés comme la prise de décision fondée sur les données et le traitement du langage naturel. Cette technologie devrait devenir encore plus importante dans une société moderne où le volume de données continue d’augmenter, ce qui en fait un sujet intéressant pour les personnes qui s’intéressent au génie logiciel, à la science des données et à l’intelligence artificielle.

1 commentaires

 
GN⁺ 2023-11-27
Avis sur Hacker News
  • Avis du développeur :

    • Ce produit n’est pas une véritable base de données, mais un wrapper basé sur des embeddings exécutés en local et sur FAISS/mrpt.
    • Il propose des valeurs par défaut raisonnables, définies à partir de nombreux benchmarks afin de minimiser la latence.
    • Un notebook Colab d’exemple est partagé pour filtrer le contenu du flux RSS Kagi Small Web selon les centres d’intérêt de l’utilisateur.
  • Avis sur FAISS :

    • FAISS est une bibliothèque de recherche vectorielle qui fournit une API simple.
    • Si l’on n’a pas besoin des bibliothèques lourdes comme PyTorch, Tensorflow ou Transformers, dont VectorDB a besoin, FAISS peut être plus adapté.
  • Avis sur l’intégration avec Postgres :

    • Les équipes qui utilisent déjà Postgres comme stockage opérationnel ont intérêt à utiliser l’extension PGVector.
    • Le fait d’avoir les données et les fonctionnalités de recherche vectorielle ensemble réduit le nombre d’éléments à gérer dans la stack technique.
  • Retours positifs sur Kagi Search :

    • Après avoir utilisé Kagi Search pendant quelques mois, le résultat est impressionnant.
    • Si cette technologie est le moteur de Kagi Search, cela inspire de l’optimisme.
  • Questions sur le stockage des données et les limites :

    • La question est posée de savoir où les données sont stockées et comment elles sont persistées.
    • Il est aussi demandé quelles sont les limites de cette technologie, et si elle fonctionne bien avec des textes de 500 à 1000 mots ainsi qu’avec des collections de texte autres que des phrases.
  • Curiosité sur l’usage du langage Crystal :

    • La question est posée de savoir pourquoi le langage Crystal n’a pas été utilisé.
  • Question sur la comparaison des bases de données vectorielles :

    • Il est demandé s’il existe des ressources comparant les différentes vector DB, expliquant leurs différences et dans quels cas d’usage choisir chacune.
  • Intérêt pour le framework « minimal » :

    • Le fait de supprimer la dépendance à HF Transformers et de personnaliser le chunking est jugé intéressant.
    • Ce n’est pas une critique du projet, mais une façon d’identifier ce qui pourrait être utile.
  • Question sur la génération des embeddings :

    • Une question est posée sur ce qui est réellement utilisé pour générer les embeddings.
  • Partage d’un lien de blog sur les bases de données vectorielles :

    • Un lien de blog affirmant qu’une base de données vectorielle n’est pas nécessaire est partagé.