원숭이
텍스트몽키
미니 원숭이
2024.11.27
? Monkey 실행 방법에 대한 비디오를 공유해 주신 Fahd Mirza에게 감사드립니다.
2024.8.13
? 미니몽키의 소스코드가 공개되었습니다.
2024.8.6
? 종이 미니몽키를 출시합니다.
2024.4.13
? TextMonkey의 소스 코드가 공개되었습니다.
2024.4.5
? Monkey는 CVPR 2024 하이라이트 논문으로 지명되었습니다.
2024.3.8
? 우리는 TextMonkey 종이를 공개합니다.
2024.2.27
? Monkey는 CVPR 2024에 승인되었습니다.
2024.1.3
? 기본 데이터 생성 파이프라인을 해제합니다. 데이터 생성
2023.11.06
? 우리는 종이 원숭이를 공개합니다.
원숭이 채팅
모델 | 언어 모델 | 트랜스포머(HF) | MMBench 테스트 | CC벤치 | MME | SeedBench_IMG | MathVista-MiniTest | HallusionBench 평균 | AI2D 테스트 | OCR벤치 |
---|---|---|---|---|---|---|---|---|---|---|
원숭이 채팅 | Qwev-7B | ?echo840/몽키채팅 | 72.4 | 48 | 1887.4 | 68.9 | 34.8 | 39.3 | 68.5 | 534 |
미니 원숭이 | internlm2-chat-1_8b | 미니 원숭이 | --- | 75.5 | 1881.9 | 71.3 | 47.3 | 38.7 | 74.7 | 802 |
conda create -n Monkey python=3.9conda activate Monkeygit clone https://github.com/Yuliang-Liu/Monkey.gitcd ./Monkeypip install -r 요구사항.txt
https://github.com/Dao-AILab/flash-attention/releases/에서 해당 버전의 flash_attention을 다운로드하고 다음 코드를 사용하여 설치할 수 있습니다.
pip install flash_attn-2.3.5+cu117torch2.0cxx11abiFALSE-cp39-cp39-linux_x86_64.whl --no-build-isolation
또한 위에서 살펴볼 수 있는 Monkey의 모델 정의와 학습 코드도 제공합니다. Monkey의 경우 finetune_ds_debug.sh
, TextMonkey의 경우 finetune_textmonkey.sh
를 실행하여 학습 코드를 실행할 수 있습니다.
Monkey 훈련에 사용되는 json 파일은 Link에서 다운로드할 수 있습니다.
Monkey 및 Monkey-Chat에 대한 추론 코드를 실행합니다.
python ./inference.py --model_path MODEL_PATH --image_path IMAGE_PATH --question "YOUR_QUESTION"
데모는 빠르고 사용하기 쉽습니다. 데스크톱이나 휴대폰에서 이미지를 업로드하거나 직접 캡처하면 됩니다. Demo_chat은 향상된 대화형 경험을 제공하기 위해 원본 데모의 업그레이드 버전으로도 출시되었습니다.
또한 원본 데모의 소스 코드와 모델 가중치를 제공하므로 보다 독특한 경험을 위해 특정 매개변수를 사용자 정의할 수 있습니다. 구체적인 작업은 다음과 같습니다.
환경을 구성했는지 확인하십시오.
데모를 오프라인으로 사용할지 온라인으로 사용할지 선택할 수 있습니다.
오프라인:
python demo.py
모델 체중을 다운로드하세요.
demo.py
파일의 DEFAULT_CKPT_PATH="pathto/Monkey"
모델 가중치 경로로 수정하세요.
다음 명령을 사용하여 데모를 실행하십시오.
온라인:
python demo.py -c echo840/Monkey
다음 명령을 사용하여 데모를 실행하고 온라인으로 모델 가중치를 다운로드하십시오.
TextMonkey의 경우 Model Weight에서 모델 가중치를 다운로드하고 데모 코드를 실행할 수 있습니다.
파이썬 데모_textmonkey.py -c model_path
2023년 11월 14일 이전에 우리는 일부 무작위 사진에서 Monkey가 GPT4V보다 더 정확한 결과를 얻을 수 있다는 것을 관찰했습니다.
2024년 1월 31일 이전에 Monkey-chat은 OpenCompass의 다중 모드 모델 카테고리에서 5위를 차지했습니다.
Monkey_Data에서 Monkey가 사용하는 학습 및 테스트 데이터를 다운로드할 수 있습니다.
Monkey 훈련에 사용되는 json 파일은 Link에서 다운로드할 수 있습니다.
다단계 설명 생성 방법의 데이터는 이제 오픈 소스이며 Link에서 다운로드할 수 있습니다. 다단계 설명에 사용되는 이미지는 이미 업로드되어 있습니다. 예:
Train에서 Monkey의 기차 이미지를 다운로드할 수 있습니다. 추출 코드: 4hdh
Test에서 Monkey의 테스트 이미지와 jsonls를 다운로드할 수 있습니다. 추출 코드: 5h71
이미지의 출처는 CC3M, COCO Caption, TextCaps, VQAV2, OKVQA, GQA, ScienceQA, VizWiz, TextVQA, OCRVQA, ESTVQA, STVQA, AI2D 및 DUE_Benchmark입니다. 데이터를 사용할 때는 원본 데이터세트의 프로토콜을 준수해야 합니다.
우리는 evaluate_vqa.py
파일에 14개의 VQA(Visual Question Answering) 데이터 세트에 대한 평가 코드를 제공하여 결과를 빠르게 확인할 수 있습니다. 구체적인 작업은 다음과 같습니다.
환경을 구성했는지 확인하십시오.
sys.path.append("pathto/Monkey")
프로젝트 경로로 수정합니다.
평가에 필요한 데이터세트를 준비합니다.
평가 코드를 실행합니다.
ESTVQA를 예로 들어보겠습니다.
다음 디렉터리 구조에 따라 데이터를 준비합니다.
├── data | ├── estvqa | ├── test_image | ├── {image_path0} | ├── {image_path1} | · | · | ├── estvqa.jsonl
주석이 달린 .jsonl
파일의 각 줄 형식 예:
{"image": "data/estvqa/test_image/011364.jpg", "question": "What is this store?", "answer": "pizzeria", "question_id": 0}
ds_collections
사전을 수정합니다.
ds_collections = { 'estvqa_test': { 'test': 'data/estvqa/estvqa.jsonl', 'metric': 'anls', 'max_new_tokens': 100, }, ... }
다음 명령을 실행하십시오.
bash eval/eval.sh 'EVAL_PTH' 'SAVE_NAME'
여기에 게시된 기본 결과를 참조하려면 다음 BibTeX 항목을 사용하십시오.
@inproceedings{li2023monkey, title={원숭이: 이미지 해상도와 텍스트 레이블은 대형 다중 모드 모델에 중요한 요소입니다}, 작성자={Li, Zhang and Yang, Biao and Liu, Qiang and Ma, Zhiyin and Zhang, Shuo and Yang , Jingxu 및 Sun, Yabo 및 Liu, Yuliang 및 Bai, Xiang}, booktitle={컴퓨터 비전에 관한 IEEE/CVF 회의 간행물 및 패턴 인식}, year={2024}}@article{liu2024textmonkey, title={TextMonkey: 문서 이해를 위한 OCR 없는 대규모 다중 모달 모델}, 저자={Liu, Yuliang and Yang, Biao and Liu, Qiang and Li, Zhang 및 Ma, Zhiyin 및 Zhang, Shuo 및 Bai, Xiang}, 저널={arXiv preprint arXiv:2403.04473}, year={2024}}@article{huang2024mini, title={Mini-Monkey: 다중 모드 대형 언어 모델을 위한 다중 규모 적응형 자르기}, 저자={Huang, Mingxin 및 Liu, Yuliang 및 Liang, Dingkang 및 Jin, Lianwen 및 Bai , Xiang}, 저널={arXiv preprint arXiv:2408.02034}, year={2024}}@article{deng2024r, title={R-CoT: 대규모 다중 모달 모델의 기하학적 추론을 위한 역사고 사슬 문제 생성}, 작성자={Deng, Linger 및 Liu, Yuliang 및 Li, Bohan 및 Luo, Dongliang 및 Wu, Liang 및 Zhang, Chengquan 및 Lyu, Pengyuan 및 Zhang, Ziyang 및 Zhang, Gang 및 Ding, Errui 및 기타}, 저널={arXiv preprint arXiv:2410.17885}, 연도={2024}}
Monkey 시리즈는 주로 기존 다중 모드 대형 모델의 성능을 향상시키기 위해 이미지 해상도 향상 및 토큰 압축 방법과 같은 기술을 탐색하는 데 중점을 둡니다. 예를 들어 이전 버전의 Monkey 및 TextMonkey는 QwenVL을 기반으로 한 반면 MiniMonkey는 InternVL2 및 miniCPM 등을 기반으로 했습니다. Qwen-VL, LLAMA, LLaVA, OpenCompass, InternLM 및 InternVL에게 감사드립니다.
Monkey 프로젝트는 비상업적 용도로만 사용됩니다. 상업적인 문의가 있거나 Monkey 시리즈 LMM(<1b, 2b, 7b, 72b)의 고급 버전을 살펴보려면 Yuliang Liu 교수([email protected])에게 문의하세요.