Résumé
Dans ce module, vous avez appris à implémenter des fonctionnalités de recherche vectorielle à l’aide de l’extension pgvector dans Azure Database pour PostgreSQL. Vous avez commencé par activer l’extension et concevoir des schémas avec des colonnes vectorielles pour stocker des incorporations à partir de différents modèles, en comprenant comment la taille de dimension affecte le stockage et les performances. Vous avez exploré les trois opérateurs de distance (distance euclide, distance cosinus et produit interne) et appris quand appliquer chacun en fonction de votre modèle d’incorporation et de votre cas d’usage.
Vous avez également appris à créer des index vectoriels à l’aide d’algorithmes IVFFlat et HNSW pour transformer des analyses séquentielles coûteuses en recherches voisines proches rapides. Vous avez découvert que IVFFlat nécessite des données existantes avant la création de l’index et utilise des listes et des paramètres de sonde pour équilibrer la vitesse et le rappel, tandis que HNSW peut indexer les données de manière incrémentielle et offre un meilleur rappel avec les paramètres m, ef_construction et ef_search. Vous avez appris à vérifier l'utilisation des index avec EXPLAIN ANALYZE et à faire correspondre les classes d'opérateurs à vos opérateurs de distance.
En outre, vous avez exploré des stratégies de gestion du cycle de vie des index, notamment la surveillance de l’intégrité des index avec pg_stat_user_indexes, déterminant quand reconstruire des index après des modifications importantes des données et gérer les migrations de modèles incorporées qui nécessitent la mise à jour de tous les vecteurs. Vous avez implémenté des modèles de récupération sémantique qui combinent la similarité vectorielle avec le filtrage des métadonnées, les seuils de distance et les requêtes multi-vecteurs. Enfin, vous avez conçu des schémas de pipeline RAG qui séparent les documents sources des blocs, ce qui permet la récupération de contexte avec des métadonnées de citation complètes pour les applications LLM.