การใช้เหตุผลเกี่ยวกับโมเดล RAG Reranker ที่แตกต่างกัน | การปรับแต่งโมเดล RAG reranker แบบเต็ม |
RAG-Retrieval ให้การปรับแต่งการดึงข้อมูล RAG แบบเต็มลิงก์ (การฝึก) การอนุมาน (อนุมาน) และการกลั่น (การกลั่น)
เข้าร่วมการแชทกลุ่ม WeChat ของเรา
21/10/2024: RAG-Retrieval เผยแพร่สองวิธีที่แตกต่างกันสำหรับการทำงาน Reranker โดยใช้ LLM รวมถึงวิธีการกลั่นเป็น Bert แนวปฏิบัติที่ดีที่สุดสำหรับ LLM ในงาน Reranker คืออะไร รายงานการทดสอบอย่างง่าย (พร้อมโค้ด)
5/6/2567: การสูญเสีย MRL ของโมเดลการฝังของ RAG-Retrieval การดึงข้อมูล RAG: ทำให้ MRL สูญเสียการกำหนดค่ามาตรฐานของโมเดลเวกเตอร์การฝึก (การฝัง)
2/6/2024: RAG-Retrieval ดำเนินการปรับแต่ง RAG รีทรีฟเวอร์แบบละเอียดภายใต้การดูแลโดยอิงตามการตั้งค่า LLM RAG-Retrieval ใช้การปรับแต่ง RAG รีทรีฟเวอร์โดยละเอียดตามการควบคุมการตั้งค่า LLM
5/5/2567: การเปิดตัวไลบรารีหลามน้ำหนักเบา RAG-Retrieval: แอปพลิเคชัน RAG ของคุณสมควรได้รับกรอบการอนุมานการเรียงลำดับที่ดีกว่า
18/3/2024: เปิดตัว RAG-Retrieval แนะนำ RAG-Retriever Zhihu
โมเดลการจัดอันดับเป็นส่วนสำคัญของสถาปัตยกรรมการดึงข้อมูลและเป็นส่วนสำคัญของ RAG แต่สถานะปัจจุบันคือ:
ดังนั้น RAG-Retrieval จึงได้พัฒนา rag-retriever ของไลบรารี python แบบน้ำหนักเบา ซึ่งให้วิธีการแบบครบวงจรในการเรียกโมเดลการเรียงลำดับ RAG ที่แตกต่างกัน โดยมีลักษณะดังต่อไปนี้
รองรับโมเดลการเรียงลำดับหลายรูปแบบ: รองรับโมเดลการเรียงลำดับโอเพ่นซอร์สทั่วไป (ตัวเรียงลำดับข้ามตัวเข้ารหัส, ตัวถอดรหัส LLM ตัวถอดรหัสเท่านั้น)
รองรับเอกสารขนาดยาว: รองรับตรรกะการประมวลผลที่แตกต่างกันสองแบบสำหรับเอกสารขนาดยาว (การตัดทอนความยาวสูงสุด การแบ่งส่วน และคะแนนสูงสุด)
ขยายได้ง่าย: หากมีโมเดลการจัดอันดับใหม่ ผู้ใช้เพียงแค่ต้องสืบทอด basereranker และใช้ฟังก์ชัน rank และ compute_score เท่านั้น
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install rag-retrieval
สำหรับ Cross Encoder Reranker ตราบใดที่ใช้ AutoModelForSequenceClassification ของหม้อแปลง คุณสามารถใช้ Reranker ของ rag_retrieval เพื่อการให้เหตุผลได้ ตัวอย่างมีดังนี้
โมเดล Cross Encoder ของซีรีส์ bge เช่น (BAAI/bge-reranker-base, BAAI/bge-reranker-large, BAAI/bge-reranker-v2-m3)
ตัวอย่าง Cross Encoder ของ bce (maidalun1020/bce-reranker-base_v1)
สำหรับ LLM Reranker นั้น Reranker ของ rag_retrieval รองรับโมเดลการจัดอันดับ LLM อันทรงพลังที่หลากหลาย นอกจากนี้ยังรองรับการใช้รูปแบบการแชท LLM ใดๆ สำหรับการเรียงลำดับแบบ Zero Shot ตัวอย่างมีดังนี้
โมเดล LLM Reranker ของซีรีส์ bge เช่น (BAAI/bge-reranker-v2-gemma, BAAI/bge-reranker-v2-minicpm-layerwise, BAAI/bge-reranker-v2-m3)
นอกจากนี้ยังรองรับการใช้รูปแบบการแชท LLM ใดๆ สำหรับการเรียงลำดับแบบ Zero Shot
สำหรับรายละเอียดการใช้งานและข้อควรระวังของแพ็คเกจดึงเศษผ้า โปรดดูที่บทช่วยสอน
เราได้ทำการทดสอบมากมายเพื่อให้สอดคล้องกับกรอบการใช้เหตุผลดั้งเดิมด้านล่าง ดูการทดสอบเพื่อดูรายละเอียด
เช่น FlagReranker ของ FlagEmbeding, 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
แบบอย่าง | ขนาดรุ่น(GB) | T2 การจัดอันดับใหม่ | MMarcoการจัดอันดับใหม่ | CmedQAv1 | CmedQAv2 | เฉลี่ย |
---|---|---|---|---|---|---|
bge-reranker-ฐาน | 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 | 0.41 | 67.33 | 31.57 | 83.54 | 86.03 | 67.12 |
ในบรรดาสิ่งเหล่านั้น Rag-retrieval-reranker คือสิ่งที่เราใช้โค้ด RAG-Retrieval เพื่อฝึกโมเดล hfl/chinese-roberta-wwm-ext และข้อมูลการฝึกจะใช้ข้อมูลการฝึกของโมเดล bge-rerank
แบบอย่าง | ขนาดรุ่น(GB) | สลัว | T2 การจัดอันดับใหม่ | MMarcoการจัดอันดับใหม่ | CmedQAv1 | CmedQAv2 | เฉลี่ย |
---|---|---|---|---|---|---|---|
bge-m3-โคลเบิร์ต | 2.24 | 1,024 | 66.82 | 26.71 | 75.88 | 76.83 | 61.56 |
ผ้าขี้ริ้วดึง-ฌ็อง | 0.41 | 1,024 | 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-colbert ปรับแต่ง | 67.22 | +0.40 |
bge-reranker-ฐาน | 67.28 | |
bge-reranker-base ปรับอย่างละเอียด | 67.57 | +0.29 |
ข้อมูลที่มีการปรับแต่งในตอนท้ายหมายความว่าเราใช้ RAG-Retrieval เพื่อปรับแต่งผลลัพธ์ตามโมเดลโอเพ่นซอร์สที่เกี่ยวข้องต่อไป
เป็นที่น่าสังเกตว่าโมเดลโอเพ่นซอร์สทั้งสามรุ่นของ bge ได้รวม T2-Reranking ไว้ในชุดการฝึกอบรมแล้ว และข้อมูลค่อนข้างทั่วไป ดังนั้นผลการปรับปรุงประสิทธิภาพของการใช้ข้อมูลนี้เพื่อปรับแต่งต่อไปจึงไม่มีนัยสำคัญ คุณใช้ชุดข้อมูลโดเมนแนวตั้งเพื่อปรับแต่งโมเดลโอเพ่นซอร์สอย่างละเอียดต่อไป การปรับปรุงประสิทธิภาพจะยิ่งใหญ่ยิ่งขึ้น
RAG-Retrieval ได้รับอนุญาตภายใต้ใบอนุญาต MIT