การจัดแนว MLLM ผ่านคำติชม AI แบบโอเพ่นซอร์สเพื่อความน่าเชื่อถือระดับ Super GPT-4V
中文 | ภาษาอังกฤษ
[2024.11.26] เราสนับสนุนการฝึกอบรม LoRA ทันที!
[2024.05.28] บทความของเราเข้าถึงได้ที่ arXiv แล้วตอนนี้!
[2024.05.20] ชุดข้อมูล RLAIF-V-ของเราใช้สำหรับการฝึก MiniCPM-Llama3-V 2.5 ซึ่งแสดงถึง MLLM ระดับ GPT-4V ฝั่งท้ายชุดแรก!
[2024.05.20] เราโอเพ่นซอร์สโค้ด น้ำหนัก (7B, 12B) และข้อมูลของ RLAIF-V!
เราขอแนะนำ RLAIF-V ซึ่งเป็นเฟรมเวิร์กใหม่ที่ปรับ MLLM ให้อยู่ในกระบวนทัศน์โอเพ่นซอร์สเต็มรูปแบบเพื่อความเชื่อถือได้ระดับ Super GPT-4V RLAIF-V ใช้ประโยชน์สูงสุดจากความคิดเห็นแบบโอเพ่นซอร์สจากมุมมองหลักสองประการ รวมถึงข้อมูลคำติชมคุณภาพสูงและอัลกอริทึมการเรียนรู้คำติชมออนไลน์ คุณสมบัติเด่นของ RLAIF-V ได้แก่:
ความน่าเชื่อถือ Super GPT-4V ผ่านคำติชมแบบโอเพ่นซอร์ส ด้วยการเรียนรู้จากข้อเสนอแนะ AI แบบโอเพ่นซอร์ส RLAIF-V 12B ได้รับความน่าเชื่อถือระดับสุดยอด GPT-4V ในงานทั้งเชิงสร้างสรรค์และเชิงเลือกปฏิบัติ
ข้อมูลคำติชมทั่วไปคุณภาพสูง ข้อมูลป้อนกลับที่ใช้โดย RLAIF-V ลดอาการประสาทหลอนของ MLLM ต่างๆ ได้อย่างมีประสิทธิภาพ
⚡️ การเรียนรู้ผลตอบรับอย่างมีประสิทธิภาพด้วยการจัดตำแหน่งซ้ำ RLAIF-V แสดงให้เห็นทั้ง ประสิทธิภาพการเรียนรู้ที่ดีขึ้นและประสิทธิภาพที่สูงขึ้น เมื่อเทียบกับแนวทางที่ไม่ทำซ้ำ
ชุดข้อมูล
ติดตั้ง
น้ำหนักโมเดล
การอนุมาน
การสร้างข้อมูล
รถไฟ
การประเมิน
วัตถุ HalBench
ม้านั่ง MMHal
รีโฟเอ็มบี
การอ้างอิง
เรานำเสนอชุดข้อมูล RLAIF-V ซึ่งเป็นชุดข้อมูลการตั้งค่าที่ AI สร้างขึ้นซึ่งครอบคลุมงานและโดเมนที่หลากหลาย ชุดข้อมูลการกำหนดค่าตามความชอบแบบโอเพ่นซอร์สหลายรูปแบบนี้ประกอบด้วย คู่การเปรียบเทียบคุณภาพสูง 83,132 คู่ ชุดข้อมูลประกอบด้วยคู่การตั้งค่าที่สร้างขึ้นในการวนซ้ำการฝึกแต่ละครั้งของรุ่นต่างๆ รวมถึง LLaVA 1.5 7B, OmniLMM 12B และ MiniCPM-V
โคลนที่เก็บนี้และไปที่โฟลเดอร์ RLAIF-V
โคลนคอมไพล์ https://github.com/RLHF-V/RLAIF-V.gitcd RLAIF-V
ติดตั้งแพ็คเกจ
conda สร้าง -n rlaifv python=3.10 -y conda เปิดใช้งาน rlaifv pip ติดตั้ง -e
ติดตั้งโมเดล spaCy ที่จำเป็น
wget https://github.com/explosion/spacy-models/releases/download/en_core_web_trf-3.7.3/en_core_web_trf-3.7.3.tar.gz pip ติดตั้ง en_core_web_trf-3.7.3.tar.gz
แบบอย่าง | คำอธิบาย | ดาวน์โหลด |
---|---|---|
รีเลฟ-V 7B | ตัวแปรที่น่าเชื่อถือที่สุดใน LLaVA 1.5 | - |
รีเลฟ-วี 12B | อิงจาก OmniLMM-12B ทำให้ได้รับความน่าเชื่อถือระดับสุดยอด GPT-4V | - |
เรามีตัวอย่างง่ายๆ เพื่อแสดงวิธีใช้ RLAIF-V
จากการนำเข้าแชท RLAIFVChat, img2base64chat_model = RLAIFVChat('openBMB/RLAIF-V-7B') # หรือ 'openBMB/RLAIF-V-12B'image_path="./examples/test.jpeg"msgs = "อธิบายรายละเอียดผู้คนใน the picture."inputs = {"image": image_path, "question": msgs}answer = chat_model.chat (อินพุต) พิมพ์ (คำตอบ)
คุณยังสามารถเรียกใช้ตัวอย่างนี้ได้โดยการรันสคริปต์ต่อไปนี้:
หลาม chat.py
คำถาม:
รถในภาพหยุดเพราะเหตุใด?
ผลลัพธ์ที่คาดหวัง:
ในภาพมีรถยนต์คันหนึ่งจอดอยู่บนถนนเนื่องจากมีแกะอยู่บนถนน รถน่าจะจอดเพื่อให้แกะเคลื่อนตัวออกไปได้อย่างปลอดภัยหรือหลีกเลี่ยงอุบัติเหตุที่อาจเกิดขึ้นกับสัตว์ สถานการณ์นี้เน้นย้ำถึงความสำคัญของการระมัดระวังและเอาใจใส่ในขณะขับรถ โดยเฉพาะในพื้นที่ที่สัตว์อาจเดินเตร่ใกล้ถนน
การตั้งค่าสภาพแวดล้อม
เรามีรุ่น OmniLMM 12B และรุ่น MiniCPM-Llama3-V 2.5 สำหรับการสร้างคำติชม หากคุณต้องการใช้ MiniCPM-Llama3-V 2.5 ในการแสดงความคิดเห็น โปรดกำหนดค่าสภาพแวดล้อมการอนุมานตามคำแนะนำในพื้นที่เก็บข้อมูล MiniCPM-V GitHub
โปรดดาวน์โหลดโมเดล Llama3 8B ที่ได้รับการปรับแต่งอย่างละเอียดของเรา: โมเดลแยกและโมเดลการแปลงคำถาม และจัดเก็บไว้ในโฟลเดอร์ ./models/llama3_split
llama3_split และโฟลเดอร์ ./models/llama3_changeq
llama3_changeq ตามลำดับ
ความคิดเห็นเกี่ยวกับโมเดล OmniLMM 12B
สคริปต์ต่อไปนี้สาธิตการใช้โมเดล LLaVA-v1.5-7b เพื่อสร้างคำตอบของผู้สมัคร และโมเดล OmniLMM 12B เพื่อให้คำติชม
mkdir ./ผลลัพธ์ ทุบตี ./script/data_gen/run_data_pipeline_llava15_omni.sh
ความคิดเห็นเกี่ยวกับโมเดล MiniCPM-Llama3-V 2.5
สคริปต์ต่อไปนี้สาธิตการใช้โมเดล LLaVA-v1.5-7b เพื่อสร้างคำตอบของผู้สมัคร และโมเดล MiniCPM-Llama3-V 2.5 เพื่อให้คำติชม ขั้นแรก ให้แทนที่ minicpmv_python
ใน ./script/data_gen/run_data_pipeline_llava15_minicpmv.sh
ด้วยเส้นทาง Python ของสภาพแวดล้อม MiniCPM-V ที่คุณสร้างขึ้น
mkdir ./ผลลัพธ์ ทุบตี ./script/data_gen/run_data_pipeline_llava15_minicpmv.sh
เตรียมข้อมูล (ไม่บังคับ)
หากคุณสามารถเข้าถึงชุดข้อมูล Huggingface ได้ คุณสามารถข้ามขั้นตอนนี้ได้ เราจะดาวน์โหลดชุดข้อมูล RLAIF-V โดยอัตโนมัติ
หากคุณดาวน์โหลดชุดข้อมูลแล้ว คุณสามารถแทนที่ 'openbmb/RLAIF-V-Dataset' เป็นพาธชุดข้อมูลของคุณที่นี่ที่บรรทัด 38
การฝึกอบรม
ที่นี่ เรามีสคริปต์การฝึกเพื่อฝึกโมเดลในการวน ซ้ำ 1 ครั้ง ควรปรับพารามิเตอร์ max_step
ตามปริมาณข้อมูลของคุณ
การปรับแต่งแบบละเอียดอย่างเต็มที่
รันคำสั่งต่อไปนี้เพื่อเริ่มการปรับแต่งอย่างละเอียด
ทุบตี ./script/train/llava15_train.sh
โลรา
รันคำสั่งต่อไปนี้เพื่อเริ่มการฝึก Lora
pip ติดตั้ง peft ทุบตี ./script/train/llava15_train_lora.sh
การจัดตำแหน่งซ้ำ
หากต้องการทำซ้ำกระบวนการฝึกแบบวนซ้ำในรายงาน คุณต้องทำตามขั้นตอนต่อไปนี้ 4 ครั้ง:
S1. การสร้างข้อมูล
ปฏิบัติตามคำแนะนำในการสร้างข้อมูลเพื่อสร้างคู่การตั้งค่าสำหรับโมเดลพื้นฐาน แปลงไฟล์ jsonl ที่สร้างขึ้นเป็นไม้ปาร์เก้หน้ากอด
เอส2. เปลี่ยนการกำหนดค่าการฝึก
ในโค้ดชุดข้อมูล ให้แทนที่ 'openbmb/RLAIF-V-Dataset'
ที่นี่เป็นเส้นทางข้อมูลของคุณ
ในสคริปต์การฝึก ให้แทนที่ --data_dir
ด้วยไดเร็กทอรีใหม่ แทนที่ --model_name_or_path
ด้วยพาธโมเดลพื้นฐาน ตั้งค่า --max_step
เป็นจำนวนขั้นตอนสำหรับ 4 epoch ตั้งค่า --save_steps
เป็นจำนวนขั้นตอนสำหรับ 1/4 epoch .
S3. ทำการฝึกอบรม อ.ส.ค.
รันสคริปต์การฝึกเพื่อฝึกโมเดลพื้นฐาน
S4. เลือกรุ่นพื้นฐานสำหรับการทำซ้ำครั้งถัดไป
ประเมินแต่ละจุดตรวจสอบบน Object HalBench และ MMHal Bench เลือกจุดตรวจสอบที่มีประสิทธิภาพดีที่สุดเป็นโมเดลพื้นฐานในการวนซ้ำครั้งถัดไป
เตรียมคำอธิบายประกอบ COCO2014
การประเมิน Object HalBench ขึ้นอยู่กับคำอธิบายประกอบคำบรรยายและการแบ่งส่วนจากชุดข้อมูล COCO2014 โปรดดาวน์โหลดชุดข้อมูล COCO2014 จากเว็บไซต์ทางการของชุดข้อมูล COCO ก่อน
mkdir coco2014cd coco2014 รับ http://images.cocodataset.org/annotations/annotations_trainval2014.zip คลายซิป annotations_trainval2014.zip
การอนุมาน การประเมิน และการสรุป
โปรดแทนที่ {YOUR_OPENAI_API_KEY}
ด้วยคีย์ API ของ OpenAI ที่ถูกต้อง
หมายเหตุ: การประเมินจะขึ้นอยู่กับ gpt-3.5-turbo-0613
# cd RLAIF-Vbash ./script/eval/eval_rlaifv_objhal.sh ./RLAIF-V_weight ./results/RLAIF-V ./coco2014/คำอธิบายประกอบ {YOUR_OPENAI_API_KEY}
เตรียมข้อมูล MMHal
โปรดดาวน์โหลดข้อมูลการประเมิน MMHal ที่นี่ และบันทึกไฟล์ใน eval/data
รันสคริปต์ต่อไปนี้เพื่อสร้างสำหรับ MMHal Bench:
หมายเหตุ: การประเมินจะขึ้นอยู่กับ gpt-4-1106-preview
# cd RLAIF-Vbash ./script/eval/eval_rlaifv_mmhal.sh ./RLAIF-V_weight ./results/RLAIF-V {ของคุณ_OPENAI_API_KEY}
การตระเตรียม
หากต้องการใช้การประเมิน GPT-4 โปรดเรียกใช้ pip install openai==0.28
ก่อนเพื่อติดตั้งแพ็คเกจ openai จากนั้น เปลี่ยน openai.base
และ openai.api_key
ใน eval/gpt4.py
เป็นการตั้งค่าของคุณเอง
ข้อมูลการประเมินสำหรับชุด dev สามารถพบได้ที่ eval/data/RefoMB_dev.jsonl
คุณต้องดาวน์โหลดแต่ละภาพจากคีย์ image_url
ในแต่ละบรรทัด
การประเมินผลคะแนนโดยรวม
บันทึกคำตอบโมเดลของคุณในคีย์ answer
ของไฟล์ข้อมูลอินพุต eval/data/RefoMB_dev.jsonl
ตัวอย่างเช่น:
{ "image_url": "https://thunlp.oss-cn-qingdao.aliyuncs.com/multimodal_openmme_test_20240319__20.jpg", "question": "What is the background of the image?", "type": "Coarse Perception", "split": "dev", "answer": "The background of the image features trees, suggesting that the scene takes place outdoors.", "gt_description": "......" }
รันสคริปต์ต่อไปนี้เพื่อประเมินผลโมเดลของคุณ:
save_dir="YOUR SAVING DIR" model_ans_path="YOUR MODEL ANSWER PATH" model_name="YOUR MODEL NAME" bash ./script/eval/run_refobm_overall.sh $save_dir $model_ans_path $model_name
การประเมินคะแนนอาการประสาทหลอน
หลังจากประเมินคะแนนโดยรวมแล้ว ไฟล์ผลการประเมินจะถูกสร้างขึ้นในชื่อ A-GPT-4V_B-${model_name}.json
การใช้ไฟล์ผลการประเมินนี้คำนวณคะแนนอาการประสาทหลอนดังนี้
eval_result="EVAL RESULT FILE PATH, e.g. 'A-GPT-4V_B-${model_name}'" # Do not include ".json" in your file path! bash ./script/eval/run_refomb_hall.sh $eval_result
หมายเหตุ: เพื่อความเสถียรที่ดีขึ้น เราขอแนะนำให้คุณประเมินมากกว่า 3 ครั้ง และใช้ คะแนนเฉลี่ย เป็นคะแนนโมเดลขั้นสุดท้าย
ประกาศการใช้งานและใบอนุญาต : ข้อมูล รหัส และจุดตรวจสอบมีจุดมุ่งหมายและอนุญาตสำหรับใช้ในการวิจัยเท่านั้น นอกจากนี้ยังจำกัดการใช้งานที่เป็นไปตามข้อตกลงใบอนุญาตของ LLaMA, Vicuna และ Chat GPT ชุดข้อมูลเป็นแบบ CC BY NC 4.0 (อนุญาตเฉพาะการใช้งานที่ไม่ใช่เชิงพาณิชย์) และแบบจำลองที่ได้รับการฝึกอบรมโดยใช้ชุดข้อมูลไม่ควรนำไปใช้นอกวัตถุประสงค์การวิจัย
RLHF-V: ฐานโค้ดที่เราสร้างขึ้น
LLaVA: รุ่นคำสั่งและรุ่นเครื่องติดฉลากของ RLAIF-V-7B
MiniCPM-V: รุ่นคำสั่งและรุ่นเครื่องติดฉลากของ RLAIF-V-12B
หากคุณพบว่าโมเดล/รหัส/ข้อมูล/กระดาษของเรามีประโยชน์ โปรดพิจารณาอ้างอิงเอกสารของเราและติดดาวเรา ️!
@article{yu2023rlhf, title={Rlhf-v: Towards trustworthy mllms via behavior allowance from fine-grained Correctal Human Feedback}, ผู้แต่ง={Yu, Tianyu และ Yao, Yuan และ Zhang, Haoye และ He, Taiwen และ Han, Yifeng และ Cui, Ganqu และ Hu, Jinyi และ Liu, Zhiyuan และ Zheng, Hai-Tao และ Sun, Maosong และคนอื่นๆ}, วารสาร={arXiv preprint arXiv:2312.00849}, year={2023}}@article{yu2024rlaifv, title={RLAIF-V: Aligning MLLMs via Open-Source AI Feedback for Super GPT-4V Trustworthiness}, author={Yu, Tianyu และ Zhang, Haoye และ เหยา, หยวนและดัง, หยุนไคและเฉิน, ต้าและลู่, เสี่ยวมานและชุย, กังชูและ He, Taiwen และ Liu, Zhiyuan และ Chua, Tat-Seng และ Sun, Maosong}, Journal={arXiv preprint arXiv:2405.17220}, ปี={2024}, -