Bases de vecteurs pour les systèmes d'embedding

Introduction aux embeddings avec l'API d'OpenAI

Emmanuel Pire

Senior Software Engineer, DataCamp

Limites de l'approche actuelle

  • Charger tous les embeddings en mémoire (1536 flottants ~ 13 ko/embedding)
  • Recalculer les embeddings à chaque nouvelle requête
  • Calculer les distances cosinus pour chaque embedding puis trier est lent et s'échelonne linéairement

Schéma montrant que les documents et la requête sont convertis en embeddings à chaque requête, sans solution de stockage.

Introduction aux embeddings avec l'API d'OpenAI

Bases de données de vecteurs

  • Les documents convertis en vecteurs sont stockés et interrogés dans la base de données de vecteurs

Schéma montrant l'utilisation d'une base de vecteurs pour stocker les embeddings de documents et retourner des résultats à partir d'une requête convertie en vecteur.

Introduction aux embeddings avec l'API d'OpenAI

 

Base de données NoSQL
  • Structure plus flexible permettant des requêtes plus rapides

Exemples de schémas NoSQL : clé-valeur, document et graphe.

 

Base de données SQL/relationnelle
  • Données structurées en tables, lignes et colonnes

Tables avec colonnes et lignes dans une base de données SQL (relationnelle).

Introduction aux embeddings avec l'API d'OpenAI

Éléments à stocker

 

  • Embeddings
  • Textes sources
  • Métadonnées
    • ID et références
    • Données additionnelles utiles pour filtrer les résultats

 

Astuce : ne stockez pas le texte source comme métadonnées !

Icône de base de données de vecteurs.

Introduction aux embeddings avec l'API d'OpenAI

Panorama des bases de vecteurs

Principales solutions de bases de données de vecteurs, classées selon l'ouverture du code source et si elles sont dédiées ou non aux vecteurs.

1 Image Credit: Yingjun Wu
Introduction aux embeddings avec l'API d'OpenAI

Quelle solution choisir ?

 

  • Gestion de la base :
    • Gérée → plus coûteuse mais réduit la charge de travail
    • Autogérée → moins coûteuse mais exige temps et expertise
  • Ouvert ou commercial ?
    • Code ouvert → flexible et économique
    • Commercial → meilleur soutien, fonctions avancées et conformité

 

  • Modèles de données : le type de données favorise-t-il un type de base en particulier ?
  • Fonctionnalités précises : votre cas d'usage dépend-il d'options comme le stockage multimodal ?

Logo de Chroma.

Introduction aux embeddings avec l'API d'OpenAI

Passons à la pratique !

Introduction aux embeddings avec l'API d'OpenAI

Preparing Video For Download...