Überlegungen zu verschiedenen RAG-Reranker-Modellen auf einheitliche Weise |. Feinabstimmung des Full-Link-RAG-Reranker-Modells |
RAG-Retrieval bietet eine vollständige Link-RAG-Retrieval-Feinabstimmung (Train), Inferenz (Infer) und Destillationscode (Destillation).
Treten Sie unserem WeChat-Gruppenchat bei
21.10.2024: RAG-Retrieval hat zwei verschiedene Methoden zur Durchführung von Reranker-Aufgaben auf Basis von LLM veröffentlicht, sowie eine Methode, diese in Bert zu destillieren. Was sind die Best Practices für LLM bei Reranker-Aufgaben? Ein einfacher Experimentbericht (mit Code)
05.06.2024: MRL-Verlust-Implementierung des Einbettungsmodells von RAG-Retrieval. RAG-Retrieval: MRL-Verlust zur Standardkonfiguration von Trainingsvektormodellen (Einbettung) machen
02.06.2024: RAG-Retrieval implementiert überwachte RAG-Retriever-Feinabstimmung basierend auf LLM-Präferenzen. RAG-Retrieval implementiert die Feinabstimmung des RAG-Retrievers basierend auf der LLM-Präferenzüberwachung
5.5.2024: Veröffentlichung der leichtgewichtigen Python-Bibliothek RAG-Retrieval: Ihre RAG-Anwendung verdient ein besseres Sortier-Inferenz-Framework
18.03.2024: Einführung von RAG-Retrieval RAG-Retrieval Zhihu
Das Ranking-Modell ist ein wichtiger Bestandteil jeder Retrieval-Architektur und ein wichtiger Bestandteil von RAG, aber der aktuelle Status quo ist:
Aus diesem Grund hat RAG-Retrieval eine leichtgewichtige Python-Bibliothek zum Abrufen von Rag-Retrieval entwickelt, die eine einheitliche Möglichkeit zum Aufrufen verschiedener RAG-Sortiermodelle bietet. Sie weist die folgenden Eigenschaften auf.
Unterstützt mehrere Sortiermodelle: Unterstützt gängige Open-Source-Sortiermodelle (Cross Encoder Reranker, Decoder-Only LLM Reranker)
Freundlich für lange Dokumente: Unterstützt zwei verschiedene Verarbeitungslogiken für lange Dokumente (Kürzung auf maximale Länge, Segmentierung und maximale Punktzahl).
Einfach zu erweitern: Wenn es ein neues Ranking-Modell gibt, muss der Benutzer nur basereranker erben und die Funktionen rank und compute_score implementieren.
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install rag-retrieval
Für Cross Encoder Reranker können Sie zur Begründung den Reranker von rag_retrieval verwenden, solange AutoModelForSequenceClassification von Transformatoren verwendet wird. Beispiele sind wie folgt.
Cross-Encoder-Modelle der bge-Serie, wie zum Beispiel (BAAI/bge-reranker-base, BAAI/bge-reranker-large, BAAI/bge-reranker-v2-m3)
Cross-Encoder-Modell von bce, zum Beispiel (maidalun1020/bce-reranker-base_v1)
Für LLM Reranker unterstützt der Reranker von rag_retrieval eine Vielzahl leistungsstarker LLM-Ranking-Modelle. Es unterstützt auch die Verwendung eines beliebigen LLM-Chat-Modells für Zero-Shot-Sortierung. Beispiele sind wie folgt.
LLM-Reranker-Modelle der BGE-Serie, wie zum Beispiel (BAAI/bge-reranker-v2-gemma, BAAI/bge-reranker-v2-minicpm-layerwise, BAAI/bge-reranker-v2-m3)
Es unterstützt auch die Verwendung eines beliebigen LLM-Chat-Modells für Zero-Shot-Sortierung.
Ausführliche Informationen zur Verwendung und Vorsichtsmaßnahmen des Lappenrückholpakets finden Sie im Tutorial
Wir haben viele Tests durchgeführt, um sie an das ursprüngliche Argumentationsgerüst anzupassen. Weitere Informationen finden Sie unter Tests. Für die Ausführung sind unterschiedliche Module erforderlich, und rag_retrieval verwendet eine einheitliche Schnittstelle.
Wie zum Beispiel FlagReranker, FlagLLMReranker und LayerWiseFlagLLMReranker von FlagEmbedding.
Wie zum Beispiel das RerankerModel von BCEmbedding
conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install -r requirements.txt
Unterstützen Sie die Feinabstimmung aller Open-Source-Einbettungsmodelle (bge, m3e usw.)
Unterstützt die Feinabstimmung von zwei Datentypen:
Detaillierte Informationen zum Einbettungsmodell finden Sie im Tutorial im Modellverzeichnis.
cd ./rag_retrieval/train/embedding
bash train_embedding.sh
Detaillierte Prozesse finden Sie im Tutorial im Modellverzeichnis.
cd ./rag_retrieval/train/colbert
bash train_colbert.sh
Detaillierte Informationen zu den Prozessen finden Sie im Tutorial im Modellverzeichnis.
cd ./rag_retrieval/train/reranker
bash train_reranker.sh
Modell | Modellgröße (GB) | T2Reranking | MMarcoReranking | CMedQAv1 | CMedQAv2 | Durchschn |
---|---|---|---|---|---|---|
bge-reanker-base | 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 |
Rag-Retrieval-Reranker | 0,41 | 67,33 | 31.57 | 83,54 | 86.03 | 67.12 |
Unter anderem verwenden wir den RAG-Retrieval-Code, um das hfl/chinese-roberta-wwm-ext-Modell zu trainieren, und die Trainingsdaten verwenden die Trainingsdaten des bge-rerank-Modells.
Modell | Modellgröße (GB) | Schwach | T2Reranking | MMarcoReranking | CMedQAv1 | CMedQAv2 | Durchschn |
---|---|---|---|---|---|---|---|
bge-m3-colbert | 2.24 | 1024 | 66,82 | 26.71 | 75,88 | 76,83 | 61,56 |
Rag-Retrieval-Colbert | 0,41 | 1024 | 66,85 | 31.46 | 81.05 | 84,22 | 65,90 |
Unter diesen ist Rag-Retrieval-Colbert das, was wir mit dem RAG-Retrieval-Code verwenden, um das hfl/chinese-roberta-wwm-ext-Modell zu trainieren, und die Trainingsdaten verwenden die Trainingsdaten des bge-rerank-Modells.
Modell | T2ranking | |
---|---|---|
bge-v1.5-Einbettung | 66,49 | |
bge-v1.5- Einbettungsfeinabstimmung | 67.15 | +0,66 |
bge-m3-colbert | 66,82 | |
bge-m3-colbert Feinabstimmung | 67,22 | +0,40 |
bge-reanker-base | 67,28 | |
BGE-Reranker-Basis- Feinabstimmung | 67,57 | +0,29 |
Diejenigen mit der Feinabstimmung am Ende bedeuten, dass wir RAG-Retrieval verwenden, um die Ergebnisse basierend auf dem entsprechenden Open-Source-Modell weiter zu optimieren. Die Trainingsdaten verwenden den T2-Reranking-Trainingssatz.
Es ist erwähnenswert, dass die drei Open-Source-Modelle von bge bereits T2-Reranking im Trainingssatz enthalten und die Daten relativ allgemein sind, sodass der Leistungsverbesserungseffekt der Verwendung dieser Daten zur weiteren Feinabstimmung nicht signifikant ist Wenn Sie vertikale Domänendatensätze verwenden, um das Open-Source-Modell weiter zu optimieren, wird die Leistungsverbesserung größer sein.
RAG-Retrieval ist unter der MIT-Lizenz lizenziert.