Raisonnement sur différents modèles RAG Reranker de manière unifiée | Affiner le modèle de reranker RAG à lien complet Résultats expérimentaux |
RAG-Retrieval fournit un code de réglage fin (entraînement), d'inférence (inférence) et de distillation (distillation) de récupération RAG à lien complet.
Rejoignez notre discussion de groupe WeChat
21/10/2024 : RAG-Retrieval a publié deux méthodes différentes pour effectuer des tâches de Reranker basées sur LLM, ainsi qu'une méthode pour les distiller en bert. Quelles sont les meilleures pratiques pour les tâches LLM sur Reranker ? Un simple rapport d'expérience (avec code)
05/06/2024 : implémentation de la perte MRL du modèle d'intégration de RAG-Retrieval. RAG-Retrieval : faire de la perte MRL la configuration standard des modèles vectoriels d'entraînement (intégration)
02/06/2024 : RAG-Retrieval implémente le réglage fin supervisé du RAG retriever basé sur les préférences LLM. RAG-Retrieval implémente un réglage fin du récupérateur RAG basé sur la supervision des préférences LLM
5/5/2024 : Sortie de la bibliothèque python légère RAG-Retrieval : votre application RAG mérite un meilleur cadre d'inférence de tri
18/03/2024 : publication de l'introduction de RAG-Retrieval RAG-Retrieval Zhihu
Le modèle de classement est une partie importante de toute architecture de récupération et une partie importante de RAG, mais le statu quo actuel est le suivant :
Par conséquent, RAG-Retrieval a développé une bibliothèque python légère de récupération de chiffon, qui fournit un moyen unifié d'appeler n'importe quel modèle de tri RAG différent. Elle présente les caractéristiques suivantes.
Prend en charge plusieurs modèles de tri : prend en charge les modèles de tri open source courants (Cross Encoder Reranker, Decoder-Only LLM Reranker)
Adapté aux documents longs : prend en charge deux logiques de traitement différentes pour les documents longs (troncation de longueur maximale, segmentation et score maximum).
Facile à développer : s'il existe un nouveau modèle de classement, l'utilisateur n'a qu'à hériter de basereranker et à implémenter les fonctions Rank et Compute_score.
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install rag-retrieval
Pour Cross Encoder Reranker, tant qu'il utilise AutoModelForSequenceClassification des transformateurs, vous pouvez utiliser le Reranker de rag_retrieval pour le raisonnement. Les exemples sont les suivants.
Modèles d'encodeurs croisés de la série bge, tels que (BAAI/bge-reranker-base, BAAI/bge-reranker-large, BAAI/bge-reranker-v2-m3)
Modèle Cross Encoder de bce, par exemple (maidalun1020/bce-reranker-base_v1)
Pour LLM Reranker, le Reranker de rag_retrieval prend en charge une variété de modèles de classement LLM puissants. Il prend également en charge l'utilisation de n'importe quel modèle de discussion LLM pour le tri zéro tir. Les exemples sont les suivants.
Modèles LLM Reranker de la série bge, tels que (BAAI/bge-reranker-v2-gemma, BAAI/bge-reranker-v2-minicpm-layerwise, BAAI/bge-reranker-v2-m3)
Il prend également en charge l'utilisation de n'importe quel modèle de discussion LLM pour le tri zéro tir.
Pour une utilisation détaillée et les précautions du package rag-retrieval, veuillez vous référer au didacticiel
Nous avons effectué de nombreux tests pour nous aligner sur le cadre de raisonnement d'origine ci-dessous. Voir Tests pour plus de détails. Ils nécessitent différents modules pour s'exécuter et rag_retrieval utilise une interface unifiée.
Tels que FlagReranker, FlagLLMReranker, LayerWiseFlagLLMReranker de FlagEmbedding.
Comme le RerankerModel de BCEmbedding
conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install -r requirements.txt
Prise en charge du réglage fin de tout modèle d'intégration open source (bge, m3e, etc.)
Prend en charge le réglage fin de deux types de données :
Affinez le processus d'intégration du modèle. Pour des processus détaillés, veuillez vous référer au didacticiel dans le répertoire du modèle.
cd ./rag_retrieval/train/embedding
bash train_embedding.sh
Affinez le processus du modèle Colbert. Pour des processus détaillés, veuillez vous référer au didacticiel dans le répertoire du modèle.
cd ./rag_retrieval/train/colbert
bash train_colbert.sh
Affinez le processus du modèle de reclassement. Pour des processus détaillés, veuillez vous référer au didacticiel dans le répertoire du modèle.
cd ./rag_retrieval/train/reranker
bash train_reranker.sh
Modèle | Taille du modèle (Go) | T2Reclassement | MMarcoReclassement | CMedQAv1 | CMedQAv2 | Moy. |
---|---|---|---|---|---|---|
base de reranker bge | 1.11 | 67.28 | 35.46 | 81.27 | 84.10 | 67.03 |
bce-reranker-base_v1 | 1.11 | 70.25 | 34.13 | 79.64 | 81.31 | 66.33 |
reclasseur de récupération de chiffon | 0,41 | 67.33 | 31.57 | 83.54 | 86.03 | 67.12 |
Parmi eux, rag-retrieval-reranker est ce que nous utilisons le code RAG-Retrieval pour nous entraîner sur le modèle hfl/chinese-roberta-wwm-ext, et les données d'entraînement utilisent les données d'entraînement du modèle bge-rerank.
Modèle | Taille du modèle (Go) | Faible | T2Reclassement | MMarcoReclassement | CMedQAv1 | CMedQAv2 | Moy. |
---|---|---|---|---|---|---|---|
bge-m3-colbert | 2.24 | 1024 | 66,82 | 26.71 | 75,88 | 76,83 | 61,56 |
chiffon-récupération-colbert | 0,41 | 1024 | 66,85 | 31.46 | 81.05 | 84.22 | 65,90 |
Parmi eux, rag-retrieval-colbert est ce que nous utilisons le code RAG-Retrieval pour nous entraîner sur le modèle hfl/chinese-roberta-wwm-ext, et les données d'entraînement utilisent les données d'entraînement du modèle bge-rerank.
Modèle | Classement T2 | |
---|---|---|
bge-v1.5-intégration | 66.49 | |
réglage fin de l'intégration de bge-v1.5 | 67.15 | +0,66 |
bge-m3-colbert | 66,82 | |
réglage fin de bge-m3-colbert | 67.22 | +0,40 |
base de reranker bge | 67.28 | |
réglage fin de la base bge-reranker | 67,57 | +0,29 |
Ceux avec un réglage fin signifient que nous utilisons RAG-Retrieval pour continuer à affiner les résultats en fonction du modèle open source correspondant. Les données de formation utilisent l'ensemble de formation T2-Reranking.
Il convient de noter que les trois modèles open source de bge incluent déjà le reclassement T2 dans l'ensemble de formation et que les données sont relativement générales, de sorte que l'effet d'amélioration des performances lié à l'utilisation de ces données pour continuer le réglage n'est pas significatif. Si vous utilisez des ensembles de données de domaine vertical pour continuer à affiner le modèle open source, l'amélioration des performances sera plus importante.
RAG-Retrieval est sous licence MIT.