대형 멀티 모달 모델 커뮤니티를 용이하게하기위한 Llava-Next 시리즈의 오픈 소스 구현.
자원 : [? huggingface]
Modelzoo.md의 자세한 내용을 참조하십시오.
| 이름 | vit | LLM | 무게 | mme | 씨앗 | SQA | MMB | MMB-CN | TextVqa | GQA |
|---|---|---|---|---|---|---|---|---|---|---|
| llava-next-vicuna-7b | 클립 L-336 | 비쿠나 -7b | SFT | 1519 | 70.2 | 70.1 | 67.4 | 60.6 | 64.9 | 64.2 |
| 개방형-llava-next-vicuna-7b | 클립 L-336 | 비쿠나 -7b | PT, SFT | 1540 | 71.1 | 70.7 | 68.5 | 60.7 | 67.2 | 64.3 |
| llava-next-llama3-8b | 클립 L-336 | llama3-8b | SFT | 1591 | 72.7 | 73.4 | 72.6 | 69.0 | 65.0 | 65.5 |
| 오픈 -llava-next-llama3-8b | 클립 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
교육 데이터 세트를 관리하려면이 명령 데이터를 따라야합니다.
Open-Llava-Next Training은 두 단계로 구성됩니다. (1) 특징 정렬 단계 : Laion-CC-SBU 데이터 세트의 558K 서브 세트를 사용하여 동결 된 사전 처리 된 시력 인코더를 동결 된 LLM 에 연결합니다. (2) 시각적 명령 튜닝 단계 : 1M 완전히 오픈 소스 데이터로 전체 모델을 미세합니다. 자세한 데이터 통계는 시각적 명령 튜닝에 제공됩니다. 우리는 교육 및 평가 세부 사항을 제시하기 위해 Vicuna-V1.5-7B 변형을 예로 들어 보겠습니다.
Open-Llava-Next 시리즈는 80GB 메모리가있는 A100 GPU에 대한 교육을받습니다. 더 적은 GPU를 훈련 시키려면 per_device_train_batch_size 줄이고 그에 따라 gradient_accumulation_steps 늘릴 수 있습니다. DeepSpeed Zero-3을 사용하면 메모리 요구 사항이 더욱 줄어들 수 있습니다. num_gpus per_device_train_batch_size 배치 크기를 동일 gradient_accumulation_steps 유지하십시오.
우리는 Finetuning에서 Llava와 동일한 과도분의 세트를 사용합니다. 사전 연상 및 미세 조정에 사용되는 두 하이퍼 파라미터는 아래에 제공됩니다.
| 초 파라미터 | 글로벌 배치 크기 | 프로젝터 LR | 에포크 | 최대 길이 | 체중 부패 |
|---|---|---|---|---|---|
| 개방형 Llava-next-7b | 256 | 1E-3 | 1 | 4096 | 0 |
| 초 파라미터 | 글로벌 배치 크기 | LLM LR | 프로젝터 LR | 비전 타워 LR | 에포크 | 최대 길이 | 체중 부패 |
|---|---|---|---|---|---|---|---|
| 개방형 Llava-next-7b | 128 | 2E-5 | 2E-5 | 2E-6 | 1 | 4096 | 0 |
Blip 캡션이있는 Laion-CC-SBU 데이터 세트의 558K 서브 세트를 여기에 다운로드하십시오.
16 x A100 (80g)에서 Open-llava-Next-7b의 경우 Pretrain이 약 5 시간이 걸립니다.
DeepSpeed 0-2 : pretrain.sh 가진 훈련 스크립트.
--mm_projector_type mlp2x_gelu : 2 층 MLP 비전 언어 커넥터.--vision_tower openai/clip-vit-large-patch14-336 : Clip vit-L/14 336px. DeepSpeed 0-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 텐서에 학습 가능한 Newline 벡터를 이미지 토큰에 삽입 함으로써이 모델은 2 차원 공간 정보를 인식하게됩니다. 이것은 이미지 토큰을 처리하는 데 사용됩니다. Evaluation.md를 참조하십시오.
이 프로젝트가 연구에 유용하다고 생각되면 인용을 고려하십시오.
@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 }
}