การใช้งานโอเพนซอร์ซของซีรี่ส์ LLAVA-Next เพื่ออำนวยความสะดวกในชุมชนโมเดลหลายโมเดลขนาดใหญ่
แหล่งข้อมูล: [? HuggingFace]
ดูรายละเอียดเพิ่มเติมใน Modelzoo.md
| ชื่อ | ความรู้สึก | llm | น้ำหนัก | mme | เมล็ด | SQA | MMB | MMB-CN | textvqa | GQA |
|---|---|---|---|---|---|---|---|---|---|---|
| llava-next-vicuna-7b | Clip-L-336 | Vicuna-7b | SFT | ค.ศ. 1519 | 70.2 | 70.1 | 67.4 | 60.6 | 64.9 | 64.2 |
| Open-llava-next-vicuna-7b | Clip-L-336 | Vicuna-7b | pt, sft | ค.ศ. 1540 | 71.1 | 70.7 | 68.5 | 60.7 | 67.2 | 64.3 |
| llava-next-llama3-8b | Clip-L-336 | LLAMA3-8B | SFT | ค.ศ. 1591 | 72.7 | 73.4 | 72.6 | 69.0 | 65.0 | 65.5 |
| Open-llava-next-llama3-8b | Clip-L-336 | LLAMA3-8B | pt, sft | ค.ศ. 1552 | 74.4 | 77.3 | 74.4 | 70.4 | 69.8 | 65.9 |
git clone https://github.com/xiaoachen98/Open-LLaVA-NeXT.git
cd Open-LLaVA-NeXTconda create -n llava-next python=3.10 -y
conda activate llava-next
pip install --upgrade pip # enable PEP 660 support
pip install -e . pip install -e ".[train]"
pip install flash-attn --no-build-isolation
คุณควรติดตามข้อมูลคำสั่งนี้ MD เพื่อจัดการชุดข้อมูลการฝึกอบรม
การฝึกอบรมแบบเปิด-llava-next ประกอบด้วยสองขั้นตอน: (1) คุณลักษณะการจัดตำแหน่งขั้นตอน: ใช้ชุดย่อย 558K ของชุดข้อมูล LAION-CC-SBU เพื่อเชื่อมต่อตัวเข้ารหัสวิสัยทัศน์ ที่ผ่านการฝึกฝนแช่แข็ง เข้ากับ LLM แช่แข็ง ; (2) ขั้นตอนการปรับแต่งคำแนะนำด้วยภาพ: Finetune ทั้งรุ่นด้วย 1m Open Source Data สถิติข้อมูลโดยละเอียดมีให้ในการปรับแต่งคำสั่งภาพ เราใช้ตัวแปร Vicuna-V1.5-7B เป็นตัวอย่างเพื่อนำเสนอรายละเอียดการฝึกอบรมและการประเมินผล
ซีรีย์ Open-Llava-Next ได้รับการฝึกฝนบน A100 GPU ด้วยหน่วยความจำ 80GB ในการฝึกอบรม GPU ที่น้อยลงคุณสามารถลด per_device_train_batch_size และเพิ่มการไล่ gradient_accumulation_steps ตาม และการใช้ DeepSpeed Zero-3 สามารถลดความต้องการหน่วยความจำได้อีก รักษาขนาดแบทช์ทั่วโลกไว้เสมอ: per_device_train_batch_size x gradient_accumulation_steps x num_gpus
เราใช้ชุดพารามิเตอร์ชุดเดียวกันกับ LLAVA ในการ finetuning ทั้งพารามิเตอร์ hyperparameters ที่ใช้ในการเตรียมการและการปรับแต่งมีให้ด้านล่าง
| พารามิเตอร์ไฮเปอร์ | ขนาดแบทช์ทั่วโลก | โปรเจคเตอร์ LR | ยุค | ความยาวสูงสุด | การสลายตัวของน้ำหนัก |
|---|---|---|---|---|---|
| Open-llava-next-7b | 256 | 1E-3 | 1 | 4096 | 0 |
| พารามิเตอร์ไฮเปอร์ | ขนาดแบทช์ทั่วโลก | LLM LR | โปรเจคเตอร์ LR | Vision Tower LR | ยุค | ความยาวสูงสุด | การสลายตัวของน้ำหนัก |
|---|---|---|---|---|---|---|---|
| Open-llava-next-7b | 128 | 2e-5 | 2e-5 | 2e-6 | 1 | 4096 | 0 |
โปรดดาวน์โหลดชุดย่อย 558K ของชุดข้อมูล LAION-CC-SBU พร้อมคำอธิบายภาพ BLIP ที่นี่
Pretrain ใช้เวลาประมาณ 5 ชั่วโมงสำหรับ Open-LLAVA-NEXT-7B บน 16 x A100 (80G)
สคริปต์การฝึกอบรมด้วย Deepspeed Zero-2: pretrain.sh
--mm_projector_type mlp2x_gelu : ตัวเชื่อมต่อภาษา MLP สองชั้น--vision_tower openai/clip-vit-large-patch14-336 : Clip Vit-L/14 336px สคริปต์การฝึกอบรมด้วย DeepSpeed Zero-2: finetune.sh
ตัวเลือกใหม่ที่ควรทราบ:
--unfreeze_mm_vision_tower True : Finetune Vision Tower--mm_vision_tower_lr 2e-6 : อัตราการเรียนรู้ของหอวิสัยทัศน์--image_aspect_ratio anyres : ประมวลผลภาพที่มีความละเอียดตัวแปร--mm_patch_merge_type spatial_unpad : สิ่งนี้ไม่ได้เป็นเทนเซอร์ pytorch ของภาพเบาะและปรับขนาดและโดยการแทรกเวกเตอร์บรรทัดใหม่ที่เรียนรู้ลงในโทเค็นภาพโมเดลจะตระหนักถึงข้อมูลเชิงพื้นที่สองมิติ สิ่งนี้ใช้ในการประมวลผลโทเค็นภาพ ดูการประเมินผล
หากคุณพบว่าโครงการนี้มีประโยชน์ในการวิจัยของคุณโปรดพิจารณาอ้างอิง:
@misc { chen2024open ,
title = { Open-LLaVA-NeXT: An open-source implementation of LLaVA-NeXT series for facilitating the large multi-modal model community. } ,
author = { Chen, Lin and Xing, Long } ,
howpublished = { url{https://github.com/xiaoachen98/Open-LLaVA-NeXT} } ,
year = { 2024 } ,
doi = { 10.5281/zenodo.13935471 }
}