J'ai enfin compris pourquoi les re-rankers sont si puissants une fois que j'ai saisi la différence clé entre les bi-encodeurs et les cross-encodeurs. J'ai également trouvé un moyen de combiner leurs pouvoirs en utilisant une architecture unifiée. Laissez-moi expliquer : RAG est composé de 80 % de récupération et de 20 % de génération. Donc, si RAG ne fonctionne pas, c'est probablement un problème de récupération. C'est exactement pourquoi il est si important d'obtenir votre architecture de récupération correctement - et cela commence par comprendre ces deux (en fait trois) approches d'encodage. (faites référence à la visualisation ci-dessous pendant que vous lisez) 1️⃣ Bi-encodeurs Les bi-encodeurs (la colonne vertébrale de la recherche vectorielle) traitent les requêtes et les documents séparément. - Les embeddings des documents sont pré-calculés - La requête est encodée au moment de la recherche Cela rend les bi-encodeurs parfaits pour la récupération initiale : - extrêmement rapides - fonctionnent à grande échelle - manquent d'informations contextuelles importantes 2️⃣ Cross-encodeurs Les cross-encodeurs adoptent une approche complètement différente pour le re-ranking. Ils traitent la requête et chaque document comme une seule unité. - Combinez la requête avec le document ([CLS] Requête [SEP] Document [SEP]) - Passez ensemble dans le modèle pour une attention croisée complète Cela rend les cross-encodeurs idéaux pour la deuxième étape : - capturent les relations sémantiques pour une meilleure précision - mais beaucoup plus lents et gourmands en ressources pour de grandes collections Maintenant, que se passerait-il si nous pouvions combiner le meilleur des deux mondes ! 3️⃣ ColBERT ColBERT réunit la puissance des cross-encodeurs et l'évolutivité des bi-encodeurs. - Encodez séparément les requêtes et les documents - Créez une matrice d'interaction avec des scores de similarité entre toutes les paires de tokens requête-document - Prenez le score maximum pour chaque token de requête parmi les tokens de document - Sommez les scores maximums pour le score final de correspondance _____ C'est tout ! Si vous avez trouvé cela instructif, partagez-le avec votre réseau. Trouvez-moi → @akshay_pachaar ✔️ Pour plus d'informations et de tutoriels sur les LLM, les agents AI et l'apprentissage automatique !
46,68K