รอยแยกที่ยอดเยี่ยมเกิดขึ้นระหว่าง LLM ทั่วไปและร้านค้าเวกเตอร์ที่ให้ข้อมูลตามบริบท การรวมระบบเหล่านี้เป็นขั้นตอนสำคัญในการลงดินระบบ AI ในโดเมนที่มีประสิทธิภาพและเป็นข้อเท็จจริงที่พวกเขาใช้ไม่เพียง แต่สำหรับความเป็นไปได้ของพวกเขาเท่านั้น แต่เพื่อความจำเพาะและเอกลักษณ์ของพวกเขา ด้วยเหตุนี้เราจึงรู้สึกตื่นเต้นที่จะโอเพ่นซอร์สชุดเครื่องมือ Language Language (DALM) ของ Arcee Domain (DALM) สำหรับนักพัฒนาเพื่อสร้างบนโดเมนโอเพนซอร์ส Arcee ของเรา Pretraned (DPT) LLMS เราเชื่อว่าความพยายามของเราจะช่วยเมื่อเราเริ่มต้นการสร้างแบบจำลองภาษาในระยะต่อไปซึ่งองค์กรต่างๆปรับ AI ให้ทำงานตามทรัพย์สินทางปัญญาและโลกทัศน์ที่เป็นเอกลักษณ์ของพวกเขาอย่างลึกซึ้ง
ตัวอย่างแบบสอบถาม DALMS สร้างโดยทีม Arcee
| ผู้มีอำนาจ | Dalm-pubmed | Dalm-sec | Dalm-yours |
|---|---|---|---|
พื้นที่เก็บข้อมูลนี้ส่วนใหญ่มีรหัสสำหรับการปรับแต่งการปรับเปลี่ยนการดึงข้อมูลการดึง (RAG-END2END) ที่แตกต่างกันอย่างสมบูรณ์
เป็นครั้งแรกในวรรณคดีเราได้ปรับเปลี่ยนรูปแบบ rag-end2end เริ่มต้น (กระดาษ tacl, การใช้งาน HuggingFace) เพื่อทำงานกับโมเดลภาษาแบบถอดรหัสอย่างเดียวเช่น Llama, Falcon หรือ GPT นอกจากนี้เรายังได้รวม แนวคิดเชิงลบในชุด ไว้ข้างชายขอบของผ้าขี้ริ้วเพื่อให้กระบวนการทั้งหมด มีประสิทธิภาพ
ภายในโฟลเดอร์การฝึกอบรมคุณจะพบรหัสสองรหัสเพื่อฝึก Rag-End2end และ Retriever ด้วยการเรียนรู้แบบตรงกันข้าม
การประเมินทั้งหมดที่เกี่ยวข้องกับรีทรีฟเวอร์และเครื่องกำเนิดไฟฟ้าอยู่ในโฟลเดอร์ Eval
นอกจากนี้เรามีรหัสการประมวลผลข้อมูลและรหัสการสร้างข้อมูลสังเคราะห์ภายในโฟลเดอร์ชุดข้อมูล
ในการดำเนินการฝึกอบรมและการประเมินผลสำหรับทั้งแบบจำลอง Retriever และรุ่น RAG-E2E ใหม่โปรดปฏิบัติตามขั้นตอนต่อไปนี้
ระบบ reqs ขึ้นอยู่กับรุ่น Retriever รุ่นเครื่องกำเนิดไฟฟ้าและขนาดแบทช์ แต่สำหรับการอ้างอิง (E2E RAG) เราใช้สิ่งต่อไปนี้สำหรับการทดลองของเรา (ผลการประเมินด้านล่าง):
BAAI/bge-large-enmeta-llama/Llama-2-7b-hfใช้เวลา 7 ชั่วโมงใน A100 GPU เดียว (80GB)
คุณสามารถติดตั้ง repo นี้ได้โดยตรงผ่าน pip install indomain
หรือสำหรับการพัฒนาหรือการวิจัยคุณสามารถโคลนและติดตั้ง repo ในพื้นที่:
git clone https://github.com/arcee-ai/DALM.git && cd DALM
pip install --upgrade -e .สิ่งนี้จะติดตั้ง Dalm Repo และการพึ่งพาที่จำเป็นทั้งหมด
ตรวจสอบให้แน่ใจว่ามีการติดตั้งอย่างถูกต้องโดยใช้ dalm version บน Mac ที่ไม่ใช่ Intel คุณอาจต้องลดระดับไลบรารี 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) คุณสามารถใช้สคริปต์ question_answer_generation.py เพื่อสร้าง CSV นี้BAAI/bge-large-en เป็น retriever เริ่มต้นและใช้ meta-llama/Llama-2-7b-hf เป็นเครื่องกำเนิดเริ่มต้น รหัสได้รับการออกแบบให้เข้ากันได้กับรูปแบบการฝังหรือโมเดล Autoregressive ที่มีอยู่ในที่เก็บโมเดล Hugging Face ที่ https://huggingface.co/models คุณสามารถใช้ประโยชน์จากสคริปต์ของเราโดยตรงหากคุณต้องการหรือคุณสามารถใช้ dalm CLI อาร์กิวเมนต์สำหรับทั้งคู่เหมือนกัน
รถไฟ Retriever BAAI/bge-large-en ที่มีการเรียนรู้ที่แตกต่างกัน
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 เครื่องกำเนิดไฟฟ้าร่วมกับรุ่น Retriever 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
โดยทั่วไปแล้ว Retriever ได้รับการฝึกฝนให้ดีในการค้นหาข้อความที่เกี่ยวข้องมากที่สุดในคลังข้อมูลที่ได้รับการสืบค้น
ด้วยชุดข้อมูลการทดสอบความจริงพื้นดินที่เป็น CSV 200,000 บรรทัดที่มีบทคัดย่อสิทธิบัตรและที่สำคัญกว่านั้นชุดข้อมูลการประเมินนี้ไม่ได้อยู่ในชุดข้อมูลการฝึกอบรม
recall และ hit rate | ประเภทของ Retriever | ระลึกถึง | อัตราการตี |
|---|---|---|
| รีทรีฟเวอร์ธรรมดา | 0.45984 | 0.45984 |
| Retriever ด้วยการเรียนรู้แบบตัดกัน | 0.46037 | 0.46038 |
| retriever end2end | 0.73634 | 0.73634 |
ในการเรียกใช้ retriever enald เท่านั้น (ตรวจสอบให้แน่ใจว่าคุณมีจุดตรวจในรูทโครงการ)
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 สำหรับอาร์กิวเมนต์ที่มีอยู่ทั้งหมด
เห็นการมีส่วนร่วม