Heim > Artikel > Technologie-Peripheriegeräte > Warum ist das verzögerte Interaktionsmodell Standard für die nächste RAG-Generation?
Die AIxiv-Kolumne ist eine Kolumne, in der diese Website akademische und technische Inhalte veröffentlicht. In den letzten Jahren sind in der AIxiv-Kolumne dieser Website mehr als 2.000 Berichte eingegangen, die Spitzenlabore großer Universitäten und Unternehmen auf der ganzen Welt abdecken und so den akademischen Austausch und die Verbreitung wirksam fördern. Wenn Sie hervorragende Arbeiten haben, die Sie teilen möchten, können Sie gerne einen Beitrag leisten oder uns für die Berichterstattung kontaktieren. E-Mail für die Einreichung: liyazhou@jiqizhixin.com; zhaoyunfeng@jiqizhixin.com
Zhang Yingfeng: Mitbegründer von Infra, mit langjähriger Erfahrung in den Bereichen Suche, KI und Infrastrukturentwicklung, arbeitet er derzeit am Aufbau der nächsten Generation der RAG-Kernprodukte.
Bei der Entwicklung des RAG-Systems ist ein gutes Reranker-Modell ein unverzichtbares Bindeglied und wird immer in verschiedenen Auswertungen verwendet. Dies liegt daran, dass durch die Vektorsuche dargestellte Abfragen eine niedrige Trefferquote aufweisen. Daher ist ein erweitertes Reranker-Modell erforderlich, um Abhilfe zu schaffen Das Problem besteht aus einer zweistufigen Sortierarchitektur, die die Vektorsuche als grobe Sortierung und das Reranker-Modell als feine Sortierung verwendet.
Es gibt derzeit zwei Haupttypen von Architekturen für Ranking-Modelle:
1. Am Beispiel des BERT-Modells kodiert es Abfragen und Dokumente getrennt und durchläuft schließlich eine Pooling-Schicht, sodass die Ausgabe nur einen Vektor enthält. In der Ranking-Phase der Abfrage müssen Sie nur die Ähnlichkeit zweier Vektoren berechnen, wie in der folgenden Abbildung dargestellt. Sowohl in der Ranking- als auch in der Reranking-Phase können zwei Encoder verwendet werden, und die Vektorsuche ist eigentlich dieses Ranking-Modell. Da der Dual-Encoder die Abfrage und das Dokument getrennt codiert, kann er die komplexe interaktive Beziehung zwischen der Abfrage und den Token des Dokuments nicht erfassen, was jedoch zu großem semantischen Verlust führt, da zum Vervollständigen der Sortierung und Bewertung nur eine Vektorsuche erforderlich ist Berechnung wird die Ausführungseffizienz sehr stark verbessert.
2. Cross-Encoder. Cross-Encoder verwendet ein einziges Encodermodell, um Abfragen und Dokumente gleichzeitig zu codieren. Es kann die komplexe Interaktion zwischen Abfragen und Dokumenten erfassen und so genauere Suchergebnisse liefern. Cross-Encoder gibt nicht den Vektor aus, der dem Token der Abfrage und des Dokuments entspricht, sondern fügt einen Klassifikator hinzu, um die Ähnlichkeitsbewertung der Abfrage und des Dokuments direkt auszugeben. Der Nachteil besteht darin, dass Cross-Encoder nur zum Neuordnen der Endergebnisse verwendet werden kann, da jedes Dokument und jede Abfrage zum Zeitpunkt der Abfrage gemeinsam codiert werden müssen, was die Sortierung sehr langsam macht. Beispielsweise dauert die Neuordnung der Top 10 der vorläufigen Screening-Ergebnisse immer noch Sekunden.
Seit diesem Jahr hat eine andere Art von Arbeit, die von ColBERT [Referenz 1] vertreten wird, in der RAG-Entwicklergemeinschaft große Aufmerksamkeit erregt. Wie in der Abbildung unten gezeigt, unterscheidet sie sich erheblich von den beiden oben genannten Arten von Ranking-Modellen. :
Erstens verwendet ColBERT im Vergleich zu Cross Encoder immer noch eine Dual-Encoder-Strategie, bei der die Abfrage und das Dokument mit unabhängigen Encodern codiert werden Trennung Dadurch kann die Dokumentkodierung offline verarbeitet werden, und beim Abfragen wird nur die Abfragekodierung verwendet, sodass die Verarbeitungsgeschwindigkeit viel höher ist als bei Cross Encoder
Zweitens gibt ColBERT im Vergleich zu Doppelkodierern mehrere Vektoren anstelle einzelner Vektoren aus liegt daran, dass die endgültige Ausgabeschicht von Transformer direkt erhalten wird, während der Dual-Encoder mehrere Vektoren über eine Pooling-Schicht in eine Vektorausgabe umwandelt, wodurch etwas Semantik verloren geht.
Während der Sortierberechnung führte ColBERT eine verzögerte interaktive Berechnungsähnlichkeitsfunktion ein und nannte sie maximale Ähnlichkeit (MaxSim). Die Berechnungsmethode lautet wie folgt: Für jeden Abfrage-Token-Vektor muss er mit den Vektoren verglichen werden, die allen Dokument-Tokens entsprechen. Die Ähnlichkeit wird berechnet und die maximale Punktzahl jedes Abfragetokens wird verfolgt. Die Gesamtpunktzahl für die Abfrage und das Dokument ist die Summe dieser maximalen Kosinuspunktzahlen. Beispielsweise müssen für eine Abfrage mit 32 Token-Vektoren (die maximale Abfragelänge beträgt 32) und ein Dokument mit 128 Tokens 32 * 128 Ähnlichkeitsoperationen durchgeführt werden, wie in der folgenden Abbildung dargestellt.
Im Vergleich dazu kann Cross Encoder als Early Interaction Model bezeichnet werden, während die von ColBERT dargestellte Arbeit als Late Interaction Model bezeichnet werden kann.
À cette fin, nous devons considérer certains problèmes liés à l'ingénierie ColBERT :
1. La fonction de similarité d'interaction retardée MaxSim de ColBERT a une efficacité de calcul bien supérieure à celle de Cross Encoder, mais par rapport à la recherche vectorielle ordinaire, la surcharge de calcul est toujours Très grand : étant donné que la similarité entre la requête et le document est un calcul multi-vecteur, le coût de MaxSim est M * N fois celui du calcul de similarité vectorielle ordinaire (M est le nombre de jetons dans la requête, N est le nombre de jetons dans le document). En réponse à cela, l'auteur de ColBERT a lancé ColBERT v2 en 2021 [Référence 2], qui améliore la qualité de l'intégration générée via Cross Encoder et la distillation du modèle, et utilise la technologie de compression pour quantifier le vecteur de document généré, améliorant ainsi le calcul de Performances MaxSim. Le projet RAGatouille [Référence 3] basé sur le wrapper ColBERT v2 devient une solution de tri RAG de haute qualité. Cependant, ColBERT v2 n'est qu'une bibliothèque d'algorithmes et il est encore difficile de l'utiliser de bout en bout dans les systèmes RAG d'entreprise.
2. Étant donné que ColBERT est un modèle pré-entraîné et que les données d'entraînement proviennent des requêtes des moteurs de recherche et des résultats renvoyés, ces données textuelles ne sont pas volumineuses. Par exemple, le nombre de jetons de requête est de 32 et le nombre de jetons de document. est de 128, qui sont des limites de longueur typiques. Par conséquent, lorsque ColBERT est utilisé pour des données réelles, la longueur dépassant la limite sera tronquée, ce qui n'est pas adapté à la récupération de documents longs.
Sur la base des problèmes ci-dessus, la base de données native d'IA open source Infinity fournit le type de données Tensor dans la dernière version et fournit nativement la solution ColBERT de bout en bout. Lorsque Tensor est utilisé comme type de données, plusieurs vecteurs générés par l'encodage ColBERT peuvent être directement stockés dans un Tensor, de sorte que la similarité entre Tensors peut directement dériver le score MaxSim. En réponse au problème de la grande quantité de calculs de MaxSim, Infinity a proposé deux solutions à optimiser : l'une est la quantification binaire, qui peut rendre l'espace du Tensor d'origine à seulement 1/32 de la taille d'origine, mais ne modifie pas l'ordre relatif. du résultat des calculs MaxSim. Cette solution est principalement utilisée pour Reranker, car il est nécessaire d'extraire le Tensor correspondant en fonction des résultats de l'étape précédente de criblage grossier. L'autre est Tensor Index. ColBERTv2 est en fait l'implémentation de Tensor Index lancée par l'auteur de ColBERT Infinity qui utilise EMVB [Référence 4], qui peut être considérée comme une amélioration de ColBERT v2, principalement grâce à la technologie de quantification et de pré-filtrage, et SIMD. des instructions sont introduites sur les opérations clés pour accélérer la mise en œuvre. Tensor Index ne peut être utilisé que pour servir Ranker et non Reranker. De plus, pour les textes longs qui dépassent la limite de Token, Infinity introduit le type Tensor Array :
Un document qui dépasse la limite ColBERT sera divisé en plusieurs paragraphes, et après encodage et génération de Tensors respectivement, ils seront enregistrés avec le document original. Lors du calcul de MaxSim, la requête et ces paragraphes sont calculés séparément, puis la valeur maximale est considérée comme le score de l'ensemble du document. Comme le montre la figure ci-dessous :
Par conséquent, en utilisant Infinity, un modèle d'interaction retardée peut être introduit de bout en bout pour servir RAG avec une haute qualité. Alors, ColBERT doit-il être utilisé comme Ranker ou Reranker ? Ci-dessous, nous utilisons Infinity pour effectuer une évaluation sur des ensembles de données réels. Étant donné que la dernière version d'Infinity implémente la solution de recherche hybride la plus complète de l'histoire, les méthodes de rappel incluent la recherche vectorielle, la recherche en texte intégral, la recherche vectorielle clairsemée, le Tensor mentionné ci-dessus et toute combinaison de ces méthodes, et fournit une variété de méthodes Reranker. , tels que RRF et ColBERT Reranker, nous incluons donc diverses combinaisons de recherche hybride et de Reranker dans la revue.
Nous utilisons l'ensemble de données MLDR pour l'évaluation. MLDR est un ensemble de référence utilisé par MTEB [Référence 5] pour évaluer la qualité des modèles d'intégration. MLDR est l'un des ensembles de données, appelé Multi Long Document Retrieval et contient un total de 200 000 données de texte long. L'évaluation utilise BGE-M3 [Référence 6] comme modèle d'intégration et Jina-ColBERT [Référence 7] pour générer Tensor. Le script d'évaluation est également placé dans l'entrepôt Infinity [Référence 8].
Évaluation 1 : ColBERT est-il efficace en tant que Reranker ? Utilisez BGE-M3 pour générer des vecteurs denses et des vecteurs clairsemés à partir de 200 000 données MLDR et insérez-les dans la base de données Infinity. La base de données contient 4 colonnes, qui stockent respectivement le texte original, les vecteurs, les vecteurs clairsemés et les tenseurs, et construisent les éléments complets correspondants. index de texte. Index vectoriel, index vectoriel clairsemé. L'évaluation inclut toutes les combinaisons de rappel, y compris le rappel à un seul canal, le rappel à deux canaux et le rappel à trois canaux, comme indiqué ci-dessous :
L'indice d'évaluation utilise nDCG@10. Autres paramètres : lors de l'utilisation de RRF Reranker, le Top N = 1 000 renvoyé par filtrage grossier, le nombre total de requêtes est de 800 et la longueur moyenne des requêtes est d'environ 10 jetons.
Comme vous pouvez le voir sur la figure, toutes les solutions de rappel ont considérablement amélioré les résultats après avoir utilisé ColBERT Reranker. ColBERT, un modèle d'interaction retardée, offre une qualité de classement comparable à celle des classements Reranker de MTEB, mais avec des performances 100 fois supérieures, permettant un reclassement à une échelle beaucoup plus grande. Les résultats affichés dans la figure sont basés sur le Top 100 Reranker, et le Top 1000 est utilisé pour le reclassement ColBERT. La valeur ne change pas de manière significative et les performances chutent de manière significative, ce n'est donc pas recommandé. Traditionnellement, lors de l'utilisation d'un Reranker externe basé sur Cross Encoder, le Top 10 aura un délai de deuxième niveau. Cependant, Infinity implémente le ColBERT Reranker haute performance en interne. Même si le Top 100 ou même le Top 1000 sont réorganisés, l'utilisateur. l'expérience ne sera pas affectée. Cependant, la portée du rappel est considérablement augmentée, de sorte que l'effet de classement final peut être considérablement amélioré. De plus, ce calcul ColBERT Reranker ne doit être exécuté que sur une architecture CPU pure, ce qui réduit également considérablement le coût de déploiement.
Évaluation 2 : La comparaison est basée sur ColBERT en tant que Ranker plutôt qu'en Reranker. Par conséquent, il est nécessaire de construire un index Tensor pour la colonne de données Tensor. Dans le même temps, afin d'évaluer la perte de précision introduite par Tensor Index, une recherche par force brute a également été effectuée.
Donc, force est de constater que ColBERT est bien plus rentable en tant que Reranker qu'en tant que Ranker. La meilleure solution actuelle de récupération RAG est basée sur une recherche hybride à trois voies (recherche en texte intégral + vecteur + vecteur clairsemé) plus ColBERT Reranker. Certains partenaires peuvent demander que pour utiliser ColBERT Reranker, il soit nécessaire d'ajouter une colonne Tensor distincte, et la colonne s'agrandira de 2 ordres de grandeur par rapport à l'ensemble de données d'origine. Tout d'abord : Infinity fournit une méthode de quantification binaire pour Tensor, en tant que Reranker, cela n'affecte pas beaucoup les résultats de tri, mais cela ne peut rendre les données finales qu'à 1/32 de la taille d'origine du Tensor. Deuxièmement, malgré cela, certains penseront que ces frais généraux sont trop élevés. Cependant, du point de vue de l'utilisateur, il est toujours très intéressant d'utiliser plus de stockage en échange d'une meilleure qualité de tri et de coûts moins élevés (le processus de tri ne nécessite pas de GPU). Enfin, je pense qu'un modèle d'interaction tardive avec des performances légèrement réduites mais une surcharge de stockage considérablement réduite sera bientôt lancé. En tant qu'infrastructure Data Infra, elle est transparente face à ces changements et c'est un choix judicieux de confier ces compromis aux utilisateurs.
Ce qui précède est basé sur l'évaluation de rappel multidirectionnelle d'Infinity sur l'ensemble de données MLDR. Les résultats de l'évaluation sur d'autres ensembles de données peuvent être différents, mais la conclusion globale ne changera pas - recherche hybride à 3 voies + réorganisation basée sur le tenseur. actuellement la méthode de rappel avec les résultats de recherche de la plus haute qualité.
On peut voir que ColBERT et son modèle d'interaction retardée ont une grande valeur d'application dans les scénarios RAG. Ce qui précède est un travail connexe sur la génération de contenu de dialogue textuel. Récemment, des modèles d'interaction retardée ont également été utilisés dans des scénarios multimodaux. Il s'agit de ColPali [Référence 9], qui modifie le flux de travail RAG, comme indiqué ci-dessous :
RAG Face à des documents au format complexe, le SOTA actuel utilise un modèle de reconnaissance de document pour identifier la mise en page du document, puis appelle le modèle correspondant pour les structures partielles identifiées, telles que des graphiques, des images, etc., pour les convertir. le texte correspondant est ensuite enregistré dans la base de données de support RAG dans différents formats. ColPali élimine ces étapes et utilise directement des modèles multimodaux pour générer du contenu Embedding. Lorsque vous posez des questions, vous pouvez répondre directement en vous basant sur les graphiques du document :
La formation du modèle ColPali est similaire à ColBERT, et utilise également la forme de paires de pages requête-document pour capturer la sémantique entre la requête et documentez les données multimodales, utilisez simplement PaliGemma [Référence 10] pour générer une intégration multimodale. Par rapport à BiPali, qui n'utilise pas le mécanisme d'interaction tardive mais utilise également PaliGemma pour générer l'intégration, la comparaison de l'indice d'évaluation dans nDCG@5 est de 81,3 contre 58,8. Cet écart est la différence entre « excellent » et « ne peut pas fonctionner du tout ».
Par conséquent, même si ColBERT est apparu depuis 4 ans, l'application du modèle d'interaction tardive dans RAG ne fait que commencer. Il élargira certainement les scénarios d'utilisation de RAG et fournira des scénarios RAG complexes incluant la multi-modalité. rappel sémantique de qualité. Infinity est déjà prêt pour son application de bout en bout. Bienvenue à prêter attention à Star Infinity, https://github.com/infiniflow/infinity, et s'engage à devenir la meilleure base de données native d'IA !
reférences
1. :2112.01488, 2021. Récupération dense multi-vecteurs efficace avec des vecteurs de bits, ECIR 2024.
5 https://huggingface.co/mteb
6. /BAAI/bge-m3
7. https://huggingface.co /jinaai/jina-colbert-v1-en
8. /tree/main/python/benchmark/mldr_benchmark
9 : Récupération efficace de documents avec des modèles de langage Vision, arXiv :2407.01449, 2024.
10. google-research/big_vision/tree/main/big_vision/configs/proj/paligemma
Das obige ist der detaillierte Inhalt vonWarum ist das verzögerte Interaktionsmodell Standard für die nächste RAG-Generation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!