⭐️ 우리 시리즈 작품: [ MMStar ] [ ShareGPT4Video ] [ ShareGPT4Omni ]
??? ShareGPT4V의 공식 구현: ECCV 2024에서 더 나은 캡션으로 대규모 다중 모드 모델 개선 .
저자 : Lin Chen*, Jinsong Li*, Xiaoyi Dong, Pan Zhang, Conghui He, Jiaqi Wang, Feng Zhao?, Dahua Lin?
기관 : 중국 과학기술대학교; 상하이 AI 연구소
자료 : [논문] [프로젝트 페이지] [ GPT4V 데이터세트 공유]
모델 : [ShareGPT4V-7B] [ShareCaptioner]
ShareGPT4V-7B 데모 [OpenXLab] [?HuggingFace] [Colab]
공유 캡션 데모 [OpenXlab] [?HuggingFace]
? 설명이 풍부한 대규모 이미지-텍스트 데이터세트
? 100K GPT4-Vision 생성 캡션, 120만 개의 고품질 캡션
? GPT4-Vision의 캡션 기능에 접근하는 일반 이미지 캡션 작성자 입니다.
? 우수한 대형 멀티모달 모델, ShareGPT4V-7B
[2024/7/2] ShareGPT4V가 ECCV 2024에서 승인되었음을 알려드리게 되어 기쁘게 생각합니다!
[2024년 5월 8일] 우리는 GPT4V로 주석이 달린 40K 캡션과 ShareCaptioner-Video로 주석이 달린 480만 캡션이 포함된 대규모 비디오 캡션 데이터세트인 ShareGPT4Video를 출시했습니다. 총 영상 길이는 300 시간, 3000 시간으로 나누어져 있어요!
[2024/4/1] 엘리트 비전에 필수적인 다중 모드 벤치마크인 MMStar를 출시했습니다. 재미있게 보내세요!?
[2023/12/14] ShareGPT4V-13B 모델을 출시했습니다. 재미있게 보내세요!?
[2023/12/13] 교육 및 평가 코드를 사용할 수 있습니다.
[2023/12/13] 이제 Local ShareCaptioner를 사용할 수 있습니다! 이를 활용하면 tools/share-cap_batch_infer.py
직접 실행하여 일괄 추론을 통해 데이터 세트에 대한 고품질 캡션을 생성할 수 있습니다.
[2023/11/23] 일반 공유캡셔너 웹데모를 공개합니다!?
[2023/11/23] ShareGPT4V-7B의 로컬 데모를 구축하기 위한 코드를 공개합니다!?
[2023/11/22] 웹데모와 체크포인트가 공개되었습니다!?
[2023/11/21] ShareGPT4V 데이터세트를 지금 사용할 수 있습니다!?
[2023/11/20] 논문과 프로젝트 페이지가 공개되었습니다!
ShareGPT4V-7B용 교육 및 평가 코드
로컬 공유Captioner
ShareGPT4V-7B의 웹 데모 및 로컬 데모
ShareGPT4V-7B의 체크포인트
ModelZoo.md에서 자세한 내용을 확인하세요.
이름 | 법학대학원 | 검문소 | LLaVA-벤치-와일드 | MME 인식 | MME 인식 | MMBench | MMBench-CN | SEED 이미지 | MM-수의사 | Q벤치 | SQA 이미지 | VQA-v2 | 비즈위즈 | GQA | 텍스트VQA |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
공유GPT4V-7B | 비쿠나-7B | 공유GPT4V-7B | 72.6 | 1567.4 | 376.4 | 68.8 | 62.2 | 69.7 | 37.6 | 63.4 | 68.4 | 80.6 | 57.2 | 63.3 | 60.4 |
공유GPT4V-13B | 비쿠나-13B | 공유GPT4V-13B | 79.9 | 1618.7 | 303.2 | 68.5 | 63.7 | 70.8 | 43.1 | 65.2 | 71.2 | 81.0 | 55.6 | 64.8 | 62.2 |
share4v.model.builder import load_pretrained_modelfrom share4v.mm_utils import get_model_name_from_pathfrom share4v.eval.run_share4v import eval_modelmodel_path = "Lin-Chen/ShareGPT4V-7B"tokenizer, model, image_processor, context_len = load_pretrained_model( model_path=model_path, model_base=None, model_name=get_model_name_from_path(모델_경로) )
share4v/model/builder.py
의 load_pretrained_model
함수에 대한 자세한 내용을 확인하세요.
share4v/eval/run_llava.py
의 eval_model
함수를 사용하여 쉽게 출력을 얻을 수도 있습니다. 이렇게 하면 이 저장소를 다운로드한 후 바로 Colab에서 이 코드를 사용할 수 있습니다.
model_path = "Lin-Chen/ShareGPT4V-7B"prompt = "오른쪽 캐릭터의 가장 일반적인 캐치프레이즈는 무엇입니까?"image_file = "examples/breaking_bad.png"args = type('Args', (), { " model_path": 모델_경로, "model_base": 없음, "model_name": get_model_name_from_path(model_path), "query": 프롬프트, "conv_mode": 없음, "image_file": image_file, "sep": ",", "온도": 0, "top_p": 없음, "num_beams": 1, "max_new_tokens": 512})()eval_model (인수)
자식 복제 https://github.com/InternLM/InternLM-XComposer --깊이=1cd 프로젝트/ShareGPT4V conda create -n share4v python=3.10 -y 콘다는 share4v를 활성화합니다 pip 설치 - pip 업그레이드 pip install -e .pip install -e ".[train]"pip install flash-attn --no-build-isolation
다음을 통해 로컬 데모를 구축할 수 있습니다.
# run script python tools/app.py
데이터세트를 관리하려면 Data.md 지침을 따라야 합니다. 현재 우리는 웹 데이터에 대한 직접 다운로드 액세스를 제공합니다. 그러나 잠재적인 분쟁을 피하기 위해 가까운 시일 내에 원시 데이터가 아닌 이러한 데이터 세트에 대한 URL을 공개할 계획입니다.
ShareGPT4V 모델 교육은 두 단계로 구성됩니다. (1) 기능 정렬 단계: ShareGPT4V-PT 데이터 세트를 120만 ShareCaptioner에서 생성된 고품질 이미지-텍스트 쌍과 함께 사용하여 비전 인코더, 프로젝터 및 LLM을 미세 조정하여 텍스트와 텍스트를 정렬합니다. 시각적 양식; (2) 시각적 지침 조정 단계: 모델이 다중 모드 지침을 따르도록 가르치기 위해 프로젝터와 LLM을 미세 조정합니다.
더 적은 수의 GPU로 훈련하려면 per_device_train_batch_size
를 줄이고 그에 따라 gradient_accumulation_steps
늘릴 수 있습니다. 전역 배치 크기를 항상 동일하게 유지하십시오: per_device_train_batch_size x gradient_accumulation_steps x num_gpus
.
우리는 미세 조정에서 ShareGPT4V-7B와 유사한 하이퍼파라미터 세트를 사용합니다. 사전 훈련과 미세 조정에 사용되는 하이퍼파라미터는 모두 아래에 나와 있습니다.
사전 훈련
초매개변수 | 글로벌 배치 크기 | 학습률 | 시대 | 최대 길이 | 체중 감소 |
---|---|---|---|---|---|
공유GPT4V-7B | 256 | 2e-5 | 1 | 2048년 | 0 |
미세 조정
초매개변수 | 글로벌 배치 크기 | 학습률 | 시대 | 최대 길이 | 체중 감소 |
---|---|---|---|---|---|
공유GPT4V-7B | 128 | 2e-5 | 1 | 2048년 | 0 |
먼저 LAION-CC-SBU-558K를 사용하여 LLaVA-1.5로 사전 학습된 MLP 프로젝터를 다운로드해야 합니다. 왜냐하면 모달리티 정렬을 위해 고품질의 세부 캡션을 사용하기 전에 대략적인 모달리티 정렬 프로세스가 유익하기 때문입니다.
projects/ShareGPT4V/scripts/sharegpt4v/slurm_pretrain_7b.sh
실행하여 모델을 사전 학습할 수 있습니다. 스크립트에서 프로젝터 경로를 지정하는 것을 잊지 마세요. 이 단계에서는 비전 인코더의 블록, 프로젝터 및 LLM의 후반부를 미세 조정했습니다.
우리 설정에서는 16개의 A100(80G) GPU를 사용했으며 전체 사전 훈련 프로세스는 약 12시간 동안 지속되었습니다. 그라디언트 누적 단계 수를 조정하여 GPU 수를 줄일 수 있습니다.
이 단계에서는 sharegpt4v_mix665k_cap23k_coco-ap9k_lcs3k_sam9k_div2k.json을 사용하여 프로젝터와 LLM을 미세 조정합니다.
projects/ShareGPT4V/scripts/sharegpt4v/slurm_finetune_7b.sh
실행하여 모델을 미세 조정할 수 있습니다.
우리 설정에서는 16개의 A100(80G) GPU를 사용했으며 전체 사전 훈련 프로세스는 약 7시간 동안 지속되었습니다. 그라디언트 누적 단계 수를 조정하여 GPU 수를 줄일 수 있습니다.
재현성을 보장하기 위해 탐욕스러운 디코딩으로 모델을 평가합니다. 우리는 실시간 출력의 채팅 데모와 일치하는 추론 프로세스를 만들기 위해 빔 검색을 사용하는 것을 평가하지 않습니다.
Evaluation.md를 참조하세요.
LLaVA: 우리가 구축한 코드베이스입니다. 그들의 훌륭한 작업에 감사드립니다.
Vicuna: 놀라운 오픈 소스 대규모 언어 모델!
우리의 연구가 귀하의 연구에 도움이 되었다고 생각하시면 별점 ⭐과 인용 ?
@article{chen2023sharegpt4v, title={ShareGPT4V: 더 나은 캡션으로 대규모 다중 모드 모델 개선}, 작성자={Chen, Lin 및 Li, Jisong 및 Dong, Xiaoyi 및 Zhang, Pan 및 He, Conghui 및 Wang, Jiaqi 및 Zhao, Feng 및 Lin, Dahua}, 저널={arXiv 사전 인쇄 arXiv:2311.12793}, year={2023}}@article{chen2024sharegpt4video, title={ShareGPT4Video: 더 나은 캡션으로 비디오 이해 및 생성 개선}, 작성자={Chen, Lin 및 Wei, Xilin 및 Li, Jinsong 및 Dong, Xiaoyi 및 Zhang, Pan 및 Zang , Yuhang 및 Chen, Zehui 및 Duan, Haodong 및 Lin, Bin 및 Tang, Zhenyu 및 기타}, 저널={arXiv preprint arXiv:2406.04325}, year={2024}}@article{chen2024we, title={우리는 대규모 비전 언어 모델을 평가하는 올바른 길을 가고 있습니까?}, 저자={Chen, Lin 및 Li, Jinsong 및 Dong, Xiaoyi 및 Zhang, Pan 및 Zang, Yuhang 및 Chen, Zehui 및 Duan, Haodong 및 Wang, Jiaqi 및 Qiao, Yu 및 Lin, Dahua 외}, 저널={arXiv 사전 인쇄 arXiv:2403.20330}, 연도={2024}}
사용 및 라이선스 고지 : 데이터 및 체크포인트는 연구 용도로만 사용이 허가되고 허가되었습니다. 또한 LLaMA, Vicuna 및 GPT-4의 라이센스 계약을 따르는 사용으로 제한됩니다. 데이터 세트는 CC BY NC 4.0(비상업적 사용만 허용)이며 데이터 세트를 사용하여 훈련된 모델은 연구 목적 외에는 사용해서는 안 됩니다.