รุ่น/ลิงค์ข้อมูล | การติดตั้ง | การใช้งาน | ลีดเดอร์บอร์ด | อ้างถึง |
พื้นที่เก็บข้อมูลอย่างเป็นทางการสำหรับรายงาน FollowIR: การประเมินและการสอนแบบจำลองการดึงข้อมูลเพื่อปฏิบัติตามคำแนะนำ การประเมินอย่างเป็นทางการสามารถทำได้โดยการติดตั้งไลบรารี mteb
และประเมินโมเดลที่เข้ากันได้กับ MTEB ของคุณโดยมีการเปลี่ยนแปลงโค้ดเป็นศูนย์ (หรือเพียงไม่กี่บรรทัด)
ไบนารี่ | คำอธิบาย |
---|---|
ติดตามIR-7B | โมเดลพารามิเตอร์ 7B ที่ทำการจัดอันดับเอกสารใหม่ตามแบบสอบถามและคำแนะนำ ได้รับการปรับแต่งอย่างละเอียดจาก Mistral-7B บนชุดข้อมูลด้านล่าง |
ติดตาม IR-รถไฟ | ชุดข้อมูลที่ใช้ในการฝึก FollowIR-7B ประกอบด้วยคำสั่งและคำถามของ TREC และ GPT สร้างเอกสารสังเคราะห์ที่ถูกกรองแล้ว |
FollowIR-รถไฟดิบ | รถไฟเวอร์ชันกรองล่วงหน้าที่ตั้งไว้ข้างต้น สิ่งนี้ไม่ได้ใช้ในการฝึกโมเดลเนื่องจากข้อมูลที่สร้างโดย GPT บางส่วนไม่ถูกต้อง |
คุณยังสามารถค้นหาข้อมูลการทดสอบที่มีคำอธิบายประกอบแต่ละรายการได้ (Robust04, Core17 และ News21) แม้ว่ารูปแบบนี้จะใช้ดีที่สุดกับโค้ดประเมินผลของ MTEB
หากคุณต้องการทำซ้ำการทดลองในรายงาน คุณสามารถใช้โค้ดต่อไปนี้:
git clone https://github.com/orionw/FollowIR.git
cd FollowIR/
conda create -n followir python=3.9 -y
conda activate followir
pip install -r requirements.txt
bash launch_all_jobs.sh
หากโมเดลของคุณเข้ากันได้กับ SentenceTransformer
และไม่ต้องใช้โทเค็นพิเศษในการเชื่อมโยงการสืบค้นและคำแนะนำ คุณสามารถใช้คำสั่งบรรทัดเดียวต่อไปนี้:
mteb -m $MODEL_NAME -t $DATASET
สำหรับแต่ละชุดข้อมูลใน {Robust04InstructionRetrieval, Core17InstructionRetrieval, News21InstructionRetrieval}
หากคุณมีโมเดลตัวเข้ารหัสคู่ แต่ต้องการทำสิ่งที่แตกต่างจากการเติมคำสั่งต่อท้ายแบบสอบถามด้วยการเว้นวรรค คุณสามารถขยาย DenseRetrievalExactSearch
และตรวจสอบ instructions
ใน kwargs ได้ ดู (ดู models/base_sentence_transformers/ เป็นจุดเริ่มต้นสำหรับการแก้ไขเล็กน้อย และ models/e5/ สำหรับตัวอย่างที่มีการแก้ไขที่ใหญ่กว่า)
เพิ่มผู้จัดอันดับใหม่ใน MTEB แล้ว! หากคุณกำลังใช้โมเดลการจัดอันดับใหม่ คุณจะต้องขยายคลาส DenseRetrievalExactSearch
และกำหนด __init__
และฟังก์ชัน predict
(ดูส่วนโมเดล/การจัดอันดับใหม่ สำหรับตัวอย่างต่างๆ ของการจัดอันดับใหม่) ฟังก์ชันทำนายของคุณควรอยู่ใน input_to_rerank
ซึ่งจะเป็นสิ่งอันดับของแบบฟอร์ม:
# if there are no instructions, instructions will be a list of Nones
# Instructions will be present for all of the FollowIR datasets
queries , passages , instructions = list ( zip ( * input_to_rerank ))
ฟังก์ชัน predict
ของคุณควรใช้สิ่งเหล่านี้และส่งคืนรายการที่มีคะแนนสำหรับแต่ละรายการทูเพิล
หากคุณพบว่าโค้ด ข้อมูล หรือโมเดลมีประโยชน์ คุณสามารถอ้างอิงได้ฟรี:
@misc { weller2024followir ,
title = { FollowIR: Evaluating and Teaching Information Retrieval Models to Follow Instructions } ,
author = { Orion Weller and Benjamin Chang and Sean MacAvaney and Kyle Lo and Arman Cohan and Benjamin Van Durme and Dawn Lawrie and Luca Soldaini } ,
year = { 2024 } ,
eprint = { 2403.15246 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.IR }
}