التفكير في نماذج RAG Reranker المختلفة بطريقة موحدة | ضبط نموذج RAG Reranker الكامل |
يوفر RAG-Retrieval ضبطًا دقيقًا لاسترجاع RAG كامل الارتباط (القطار)، والاستدلال (الاستدلال)، ورمز التقطير (التقطير).
انضم إلى دردشة WeChat الجماعية
21/10/2024: أصدرت RAG-Retrieval طريقتين مختلفتين للقيام بمهام Reranker بناءً على LLM، بالإضافة إلى طريقة لتقطيرها في bert. ما هي أفضل الممارسات لـ LLM في مهام Reranker؟ تقرير تجربة بسيط (مع الكود)
5/06/2024: تنفيذ خسارة MRL لنموذج التضمين الخاص بـ RAG-Retrieval. RAG-Retrieval: اجعل فقدان MRL هو التكوين القياسي لنماذج متجهات التدريب (التضمين).
2/06/2024: تطبق RAG-Retrieval الضبط الدقيق لمسترد RAG الخاضع للإشراف بناءً على تفضيلات LLM. تطبق RAG-Retrieval الضبط الدقيق لمسترد RAG بناءً على الإشراف على تفضيلات LLM
5/5/2024: إصدار مكتبة python خفيفة الوزن RAG-Retrieval: يستحق تطبيق RAG الخاص بك إطارًا أفضل لاستدلال الفرز
18/03/2024: إصدار RAG-Retrieval مقدمة Zhihu لاسترداد RAG
يعد نموذج التصنيف جزءًا مهمًا من أي بنية استرجاعية وجزءًا مهمًا من RAG، ولكن الوضع الراهن هو:
لذلك، طورت RAG-Retrieval مكتبة بايثون خفيفة الوزن لاسترجاع البيانات، والتي توفر طريقة موحدة لاستدعاء أي نموذج فرز RAG مختلف.
يدعم نماذج الفرز المتعددة: يدعم نماذج الفرز الشائعة مفتوحة المصدر (Cross Encoder Reranker، Decoder-Only LLM Reranker)
متوافق مع المستندات الطويلة: يدعم منطقين مختلفين للمعالجة للمستندات الطويلة (الحد الأقصى للاقتطاع والتجزئة والحد الأقصى للنتيجة).
سهولة التوسع: إذا كان هناك نموذج تصنيف جديد، فلن يحتاج المستخدم إلا إلى وراثة أداة التصنيف الأساسية وتنفيذ وظائف التصنيف وحساب النقاط.
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install rag-retrieval
بالنسبة إلى Cross Encoder Reranker، طالما أنه يستخدم AutoModelForSequenceClassification للمحولات، يمكنك استخدام Reranker's rag_retrival للاستدلال. الأمثلة هي كما يلي.
نماذج التشفير المتقاطع لسلسلة bge، مثل (BAAI/bge-reranker-base، BAAI/bge-reranker-large، BAAI/bge-reranker-v2-m3)
نموذج التشفير المتقاطع لـ bce، على سبيل المثال (maidalun1020/bce-reranker-base_v1)
بالنسبة إلى LLM Reranker، يدعم Reranker الخاص بـ rag_retrieval مجموعة متنوعة من نماذج تصنيف LLM القوية. كما أنه يدعم استخدام أي نموذج دردشة LLM لفرز اللقطات الصفرية. الأمثلة هي كما يلي.
نماذج LLM Reranker من سلسلة bge، مثل (BAAI/bge-reranker-v2-gemma، BAAI/bge-reranker-v2-minicpm-layerwise، BAAI/bge-reranker-v2-m3)
كما أنه يدعم استخدام أي نموذج دردشة LLM لفرز اللقطات الصفرية.
للحصول على تفاصيل الاستخدام والاحتياطات الخاصة بحزمة استرجاع قطعة القماش، يرجى الرجوع إلى البرنامج التعليمي
لقد أجرينا الكثير من الاختبارات للتوافق مع إطار عمل الاستدلال الأصلي أدناه، راجع الاختبارات للحصول على التفاصيل، وهي تتطلب وحدات مختلفة للتنفيذ، ويستخدم rag_retrieval واجهة موحدة.
مثل FlagEmbedding's FlagReranker، وFlagLLMReranker، وLayerWiseFlagLLMReranker.
مثل RerankerModel الخاص بـ BCEmbedding
conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install -r requirements.txt
دعم الضبط الدقيق لأي نموذج تضمين مفتوح المصدر (bge، m3e، إلخ.)
يدعم الضبط الدقيق لنوعين من البيانات:
قم بضبط عملية نموذج التضمين للحصول على العمليات التفصيلية، يرجى الرجوع إلى البرنامج التعليمي في دليل النموذج.
cd ./rag_retrieval/train/embedding
bash train_embedding.sh
قم بضبط عملية نموذج كولبير للحصول على تفاصيل العمليات، يرجى الرجوع إلى البرنامج التعليمي في دليل النموذج.
cd ./rag_retrieval/train/colbert
bash train_colbert.sh
قم بضبط عملية نموذج إعادة الترتيب للحصول على العمليات التفصيلية، يرجى الرجوع إلى البرنامج التعليمي في دليل النموذج.
cd ./rag_retrieval/train/reranker
bash train_reranker.sh
نموذج | حجم النموذج (جيجابايت) | إعادة ترتيب T2 | إعادة ترتيب MMarco | كميدكافي1 | CMedQAv2 | متوسط |
---|---|---|---|---|---|---|
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 |
استرجاع خرقة-إعادة ترتيب | 0.41 | 67.33 | 31.57 | 83.54 | 86.03 | 67.12 |
من بينها، rag-retrieval-reranker هو ما نستخدمه رمز RAG-Retrieval للتدريب على نموذج hfl/chinese-roberta-wwm-ext، وتستخدم بيانات التدريب بيانات التدريب الخاصة بنموذج bge-rerank.
نموذج | حجم النموذج (جيجابايت) | خافت | إعادة ترتيب T2 | إعادة ترتيب MMarco | كميدكافي1 | CMedQAv2 | متوسط |
---|---|---|---|---|---|---|---|
bge-m3-كولبرت | 2.24 | 1024 | 66.82 | 26.71 | 75.88 | 76.83 | 61.56 |
خرقة استرجاع كولبير | 0.41 | 1024 | 66.85 | 31.46 | 81.05 | 84.22 | 65.90 |
من بينها، rag-retrieval-colbert هو ما نستخدمه رمز RAG-Retrieval للتدريب على نموذج hfl/chinese-roberta-wwm-ext، وتستخدم بيانات التدريب بيانات التدريب الخاصة بنموذج bge-rerank.
نموذج | تصنيف T2 | |
---|---|---|
bge-v1.5-التضمين | 66.49 | |
bge-v1.5-التضمين الدقيق | 67.15 | +0.66 |
bge-m3-كولبرت | 66.82 | |
bge-m3-كولبيرت غرامة | 67.22 | +0.40 |
bge-reranker-base | 67.28 | |
bge-reranker-base Finetune | 67.57 | +0.29 |
تعني تلك التي تم ضبطها في النهاية أننا نستخدم RAG-Retrieval لمواصلة ضبط النتائج بناءً على نموذج مفتوح المصدر المقابل. تستخدم بيانات التدريب مجموعة تدريب T2-Reranking.
تجدر الإشارة إلى أن نماذج bge الثلاثة مفتوحة المصدر تتضمن بالفعل إعادة ترتيب T2 في مجموعة التدريب، والبيانات عامة نسبيًا، لذا فإن تأثير تحسين الأداء لاستخدام هذه البيانات لمواصلة الضبط ليس مهمًا إذا كنت تستخدم مجموعات بيانات المجال الرأسي لمواصلة ضبط نموذج مفتوح المصدر، فسيكون تحسين الأداء أكبر.
تم ترخيص RAG-Retrieval بموجب ترخيص MIT.