ظهر خلاف كبير بين General LLMs ومتاجر المتجهات التي تزودهم بمعلومات سياقية. يعد توحيد هذه الأنظمة خطوة مهمة في تأسيس أنظمة الذكاء الاصطناعى في المجالات الفعالة والوقائع ، حيث يتم استخدامها ليس فقط لعموميتها ، ولكن من أجل خصوصيتها وتفردها. تحقيقًا لهذه الغاية ، نحن متحمسون لفتح مصدر مجموعة أدوات ARCEE DOMED MODEL (DALL) للمطورين للبناء على قمة LLMS ARCEE OPEN SOURCE PRETRAINE (DPT). نعتقد أن جهودنا ستساعد مع بدء المرحلة التالية من نمذجة اللغة ، حيث تخصيص المنظمات العميقة من الذكاء الاصطناعي للعمل وفقًا لملكية الفكرية الفريدة ونظؤتها العالمية.
مثال الاستعلام dalms الذي أنشأه فريق Arcee.
| دلم | dalm-pubmed | Dalm-sec | dalm yours |
|---|---|---|---|
يحتوي هذا المستودع في المقام الأول على رمز لضبط بنية الجيل المعزز للاسترجاع التفاضلي تمامًا (RAG-END2END).
لأول مرة في الأدبيات ، قمنا بتعديل نموذج Rag-end2end الأولي (ورقة TACL ، تنفيذ Huggingface) للعمل مع نماذج لغة فك التشفير فقط مثل Llama أو Falcon أو GPT. قمنا أيضًا بدمج المفهوم السلبي في الدُفعة إلى جانب تهميش RAG لجعل العملية برمتها فعالة .
داخل مجلد التدريب ، ستجد رمزين لتدريب Rag-End2end و Retriever مع التعلم المتناقض.
توجد جميع التقييمات المتعلقة بـ Retriever والمولد في مجلد Eval.
بالإضافة إلى ذلك ، لدينا رموز معالجة البيانات ورمز توليد البيانات الاصطناعية داخل مجلد مجموعات البيانات.
لأداء التدريب والتقييم لكل من نموذج Retriever ونموذج RAG-E2E الجديد ، يرجى الالتزام بالخطوات التالية.
يعتمد نظام REQs النظام على نموذج المسترد ونموذج المولد وحجم الدُفعة. ولكن للرجوع (e2e rag) ، استخدمنا ما يلي لتجاربنا (نتائج تقييم أدناه):
BAAI/bge-large-enmeta-llama/Llama-2-7b-hfاستغرق هذا 7 ساعات على وحدة معالجة الرسومات A100 (80 جيجابايت).
يمكنك تثبيت هذا الريبو مباشرة عبر pip install indomain
بدلاً من ذلك ، من أجل التطوير أو البحث ، يمكنك استنساخ وإثبات الريبو محليًا:
git clone https://github.com/arcee-ai/DALM.git && cd DALM
pip install --upgrade -e .سيؤدي ذلك إلى تثبيت DELM Repo وجميع التبعيات اللازمة.
تأكد من تثبيت الأشياء بشكل صحيح عن طريق تشغيل dalm version . على جهاز MAC غير المحدود ، قد تحتاج إلى خفض مكتبة transformers : pip install transformers==4.30 .
يمكنك تشغيل dalm qa-gen <path-to-dataset> للمعالجة المسبقة لمجموعة البيانات الخاصة بك للتدريب. انظر dalm qa-gen --help لمزيد من الخيارات
إذا لم يكن لديك مجموعة بيانات ، فيمكنك البدء معنا
# Note - our dataset already has queries and answers, so you don't actually need to run this.
# replace `toy_dataset_train.csv` with your dataset of titles and passages
dalm qa-gen dalm/datasets/toy_data_train.csvPassage ، Query ( Answer إذا كان تشغيل E2E). يمكنك الاستفادة من Script require_answer_generation.py لإنشاء CSV هذا.BAAI/bge-large-en كمسترد افتراضي وتوظيف meta-llama/Llama-2-7b-hf كمولد افتراضي. تم تصميم الرمز ليكون متوافقًا مع أي نموذج التضمين أو نموذج الانحدار التلقائي المتاح في مستودع نموذج الوجه المعانقة على https://huggingface.co/Models. يمكنك الاستفادة من البرامج النصية الخاصة بنا مباشرة إذا كنت ترغب في ذلك ، أو يمكنك استخدام dalm CLI. الحجج لكلاهما متطابقة
تدريب BAAI/bge-large-en Retriever مع التعلم التباين.
python dalm/training/retriever_only/train_retriever_only.py
--dataset_path " ./dalm/datasets/toy_data_train.csv "
--retriever_name_or_path " BAAI/bge-large-en "
--output_dir " retriever_only_checkpoints "
--use_peft
--with_tracking
--report_to all
--per_device_train_batch_size 150أو
dalm train-retriever-only " BAAI/bge-large-en " " ./dalm/datasets/toy_data_train.csv "
--output-dir " retriever_only_checkpoints "
--use-peft
--with-tracking
--report-to all
--per-device-train-batch-size 150 لجميع الحجج والخيارات المتاحة ، انظر dalm train-retriever-only --help
Train Llama-2-7b Generator بشكل مشترك مع Retriever Model BAAI/bge-large-en .
python dalm/training/rag_e2e/train_rage2e.py
--dataset_path " ./dalm/datasets/toy_data_train.csv "
--retriever_name_or_path " BAAI/bge-large-en "
--generator_name_or_path " meta-llama/Llama-2-7b-hf "
--output_dir " rag_e2e_checkpoints "
--with_tracking
--report_to all
--per_device_train_batch_size 20أو
dalm train-rag-e2e
" ./dalm/datasets/toy_data_train.csv "
" BAAI/bge-large-en "
" meta-llama/Llama-2-7b-hf "
--output-dir " rag_e2e_checkpoints "
--with-tracking
--report-to all
--per-device-train-batch-size 20 لجميع الحجج والخيارات المتاحة ، انظر dalm train-rag-e2e --help
يتم تدريب المسترد بشكل عام على أن يكون جيدًا في العثور على الممرات الأكثر صلة في مجموعة من الإحساس بالاستعلام.
بالنظر إلى مجموعة بيانات اختبار الحقيقة الأرضية التي تضم CSV بسطر 200000 تحتوي على ملخصات براءات الاختراع ، والأهم من ذلك لم تكن هذه مجموعة بيانات التقييم موجودة في مجموعة بيانات التدريب ، تم اتباع الخطوات المدرجة أدناه:
hit rate recall والضرب. | نوع المسترد | يتذكر | ضرب معدل |
|---|---|---|
| مسترد عادي | 0.45984 | 0.45984 |
| المسترد بالتعلم التباين | 0.46037 | 0.46038 |
| Retriever end2end | 0.73634 | 0.73634 |
لتشغيل Retriever فقط eval (تأكد من أن لديك نقاط التفتيش في جذر المشروع)
python dalm/eval/eval_retriever_only.py
--dataset_path qa_pairs_test.csv
--retriever_name_or_path " BAAI/bge-large-en "
--passage_column_name Abstract
--query_column_name Question
--retriever_peft_model_path retriever_only_checkpointsأو
dalm eval-retriever qa_pairs_test.csv
--retriever-name-or-path " BAAI/bge-large-en "
--passage-column-name Abstract
--query-column-name Question
--retriever-peft-model-path retriever_only_checkpoints انظر dalm eval-retriever --help لجميع الحجج المتاحة
لـ E2E eval
python dalm/eval/eval_rag.py
--dataset_path qa_pairs_test_2.csv
--retriever_name_or_path " BAAI/bge-large-en "
--generator_name_or_path " meta-llama/Llama-2-7b-hf "
--passage_column_name Abstract
--query_column_name Question
--answer_column_name Answer
--evaluate_generator
--query_batch_size 5
--retriever_peft_model_path rag_e2e_checkpoints/retriever
--generator_peft_model_path rag_e2e_checkpoints/generatorأو
dalm eval-rag qa_pairs_test.csv
--retriever-name-or-path " BAAI/bge-large-en "
--generator-name-or-path " meta-llama/Llama-2-7b-hf "
--retriever-peft-model-path rag_e2e_checkpoints/retriever
--generator-peft-model-path rag_e2e_checkpoints/generator
--passage-column-name Abstract
--query-column-name Question
--answer-column-name Answer
--query-batch-size 5 انظر dalm eval-rag --help لجميع الحجج المتاحة
انظر المساهمة