Penalaran tentang model RAG Reranker yang berbeda secara terpadu |. Menyempurnakan model reranker RAG tautan lengkap |
RAG-Retrieval menyediakan kode penyempurnaan pengambilan RAG tautan penuh (kereta), inferensi (infer), dan distilasi (penyulingan).
Bergabunglah dengan obrolan grup WeChat kami
21/10/2024: RAG-Retrieval merilis dua metode berbeda untuk melakukan tugas Reranker berdasarkan LLM, serta metode menyaringnya menjadi bert. Apa praktik terbaik untuk LLM pada tugas Reranker? Laporan eksperimen sederhana (dengan kode)
5/6/2024: Implementasi kerugian MRL pada model Penyematan RAG-Retrieval. Pengambilan RAG: Jadikan kerugian MRL sebagai konfigurasi standar model vektor pelatihan (penyematan).
6/2/2024: RAG-Retrieval mengimplementasikan penyempurnaan RAG retriever yang diawasi berdasarkan preferensi LLM. RAG-Retrieval mengimplementasikan penyempurnaan RAG retriever berdasarkan pengawasan preferensi LLM
5/5/2024: Rilis pustaka python ringan RAG-Retrieval: Aplikasi RAG Anda layak mendapatkan kerangka inferensi penyortiran yang lebih baik
18/3/2024: Rilis pengenalan RAG-Retrieval Zhihu
Model pemeringkatan adalah bagian penting dari arsitektur pengambilan apa pun dan merupakan bagian penting dari RAG, namun status quo saat ini adalah:
Oleh karena itu, RAG-Retrieval telah mengembangkan pengambilan kain pustaka python yang ringan, yang menyediakan cara terpadu untuk memanggil model penyortiran RAG yang berbeda. Model ini memiliki karakteristik sebagai berikut.
Mendukung beberapa model penyortiran: mendukung model penyortiran open source umum (Cross Encoder Reranker, Decoder-Only LLM Reranker)
Ramah dokumen panjang: mendukung dua logika pemrosesan berbeda untuk dokumen panjang (pemotongan panjang maksimum, segmentasi, dan skor maksimum).
Mudah untuk diperluas: Jika ada model peringkat baru, pengguna hanya perlu mewarisi basereranker dan mengimplementasikan fungsi rank dan compute_score.
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install rag-retrieval
Untuk Cross Encoder Reranker, selama menggunakan transformator AutoModelForSequenceClassification , Anda dapat menggunakan Reranker rag_retrieval untuk penalaran. Contohnya adalah sebagai berikut.
Model Cross Encoder dari seri bge, seperti (BAAI/bge-reranker-base, BAAI/bge-reranker-large, BAAI/bge-reranker-v2-m3)
Model Cross Encoder dari SM, misalnya (maidalun1020/bce-reranker-base_v1)
Untuk LLM Reranker, Reranker rag_retrieval mendukung berbagai model peringkat LLM yang kuat. Ini juga mendukung penggunaan model obrolan LLM apa pun untuk penyortiran zero shot. Contohnya adalah sebagai berikut.
Model LLM Reranker dari seri bge, seperti (BAAI/bge-reranker-v2-gemma, BAAI/bge-reranker-v2-minicpm-layerwise, BAAI/bge-reranker-v2-m3)
Ini juga mendukung penggunaan model obrolan LLM apa pun untuk penyortiran zero shot.
Untuk detail penggunaan dan tindakan pencegahan paket pengambilan kain, silakan merujuk ke Tutorial
Kami telah melakukan banyak pengujian untuk menyelaraskan dengan kerangka pemikiran asli di bawah ini. Lihat Pengujian untuk detailnya. Pengujian tersebut memerlukan modul yang berbeda untuk dijalankan, dan rag_retrieval menggunakan antarmuka terpadu.
Seperti FlagReranker FlagEmbedding, FlagLLMReranker, LayerWiseFlagLLMReranker.
Seperti RerankerModel BCEmbedding
conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install -r requirements.txt
Mendukung penyempurnaan model penyematan sumber terbuka apa pun (bge, m3e, dll.)
Mendukung penyesuaian dua jenis data:
Sempurnakan proses penyematan model. Untuk proses detailnya, silakan merujuk ke Tutorial di direktori model.
cd ./rag_retrieval/train/embedding
bash train_embedding.sh
Sempurnakan proses model colbert. Untuk proses detailnya, silakan merujuk ke Tutorial di direktori model.
cd ./rag_retrieval/train/colbert
bash train_colbert.sh
Sempurnakan proses model reranker. Untuk proses detailnya, silakan merujuk ke Tutorial di direktori model.
cd ./rag_retrieval/train/reranker
bash train_reranker.sh
Model | Ukuran Model (GB) | Pemeringkatan ulang T2 | Peringkat MMarco | CMedQAv1 | CMedQAv2 | Rata-rata |
---|---|---|---|---|---|---|
bge-reranker-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 |
reranker pengambilan kain | 0,41 | 67.33 | 31.57 | 83.54 | 86.03 | 67.12 |
Diantaranya, rag-retrieval-reranker adalah apa yang kami gunakan kode RAG-Retrieval untuk melatih model hfl/chinese-roberta-wwm-ext, dan data pelatihan menggunakan data pelatihan model bge-rerank.
Model | Ukuran Model (GB) | Redup | Pemeringkatan ulang T2 | Peringkat MMarco | CMedQAv1 | CMedQAv2 | Rata-rata |
---|---|---|---|---|---|---|---|
bge-m3-colbert | 2.24 | 1024 | 66.82 | 26.71 | 75,88 | 76.83 | 61.56 |
pengambilan kain-colbert | 0,41 | 1024 | 66,85 | 31.46 | 81.05 | 84.22 | 65,90 |
Diantaranya, rag-retrieval-colbert adalah yang kami gunakan kode RAG-Retrieval untuk melatih model hfl/chinese-roberta-wwm-ext, dan data pelatihan menggunakan data pelatihan model bge-rerank.
Model | peringkat T2 | |
---|---|---|
bge-v1.5-penyematan | 66.49 | |
bge-v1.5-menyematkan penyempurnaan | 67.15 | +0,66 |
bge-m3-colbert | 66.82 | |
bge-m3-colbert menyempurnakan | 67.22 | +0,40 |
bge-reranker-base | 67.28 | |
penyempurnaan bge-reranker-base | 67.57 | +0,29 |
Yang memiliki finetune di bagian akhir berarti kami menggunakan RAG-Retrieval untuk terus menyempurnakan hasil berdasarkan model sumber terbuka yang sesuai. Data pelatihan menggunakan set pelatihan T2-Reranking.
Perlu dicatat bahwa ketiga model bge open source sudah menyertakan T2-Reranking dalam set pelatihan, dan datanya relatif umum, sehingga efek peningkatan kinerja dari penggunaan data ini untuk melanjutkan penyesuaian tidak signifikan Anda menggunakan kumpulan data domain vertikal untuk terus menyempurnakan model sumber terbuka, peningkatan kinerja akan lebih besar.
RAG-Retrieval dilisensikan di bawah Lisensi MIT.