Singe
TextMonkey
Mini-singe
2024.11.27
? Merci à Fahd Mirza d'avoir partagé une vidéo sur la façon d'exécuter Monkey.
2024.8.13
? Le code source pour Mini-Monkey est publié.
2024.8.6
? Nous sortons le papier Mini-Monkey.
2024.4.13
? Le code source pour TextMonkey est publié.
2024.4.5
? Monkey est nominé comme article phare du CVPR 2024.
2024.3.8
? Nous publions le document TextMonkey.
2024.2.27
? Monkey est accepté par CVPR 2024.
2024.1.3
? Libérez le pipeline de génération de données de base. Génération de données
2023.11.06
? Nous sortons le papier Monkey.
Chat de singe
Modèle | Modèle de langage | Transformateurs (HF) | Test MMBench | CCBench | MME | SeedBench_IMG | MathVista-MiniTest | HallusionBench-Moyenne | Test AI2D | Banc OCR |
---|---|---|---|---|---|---|---|---|---|---|
Chat de singe | Qwev-7B | ?echo840/Monkey-Chat | 72,4 | 48 | 1887.4 | 68,9 | 34,8 | 39.3 | 68,5 | 534 |
Mini-singe | internelm2-chat-1_8b | Mini-singe | --- | 75,5 | 1881.9 | 71.3 | 47.3 | 38,7 | 74,7 | 802 |
conda create -n singe python=3.9conda activer le clone de singegit https://github.com/Yuliang-Liu/Monkey.gitcd ./Monkeypip install -r conditions.txt
Vous pouvez télécharger la version correspondante de flash_attention depuis https://github.com/Dao-AILab/flash-attention/releases/ et utiliser le code suivant pour l'installer :
pip install flash_attn-2.3.5+cu117torch2.0cxx11abiFALSE-cp39-cp39-linux_x86_64.whl --no-build-isolation
Nous proposons également la définition du modèle et le code de formation de Monkey, que vous pouvez explorer ci-dessus. Vous pouvez exécuter le code de formation en exécutant finetune_ds_debug.sh
pour Monkey et finetune_textmonkey.sh
pour TextMonkey.
Le fichier json utilisé pour la formation Monkey peut être téléchargé sur Link.
Exécutez le code d'inférence pour Monkey et Monkey-Chat :
python ./inference.py --model_path MODEL_PATH --image_path IMAGE_PATH --question "YOUR_QUESTION"
La démo est rapide et facile à utiliser. Téléchargez simplement une image depuis votre ordinateur ou votre téléphone, ou capturez-en une directement. Demo_chat est également lancé en tant que version améliorée de la démo originale pour offrir une expérience interactive améliorée.
Nous fournissons également le code source et le poids du modèle pour la démo originale, vous permettant de personnaliser certains paramètres pour une expérience plus unique. Les opérations spécifiques sont les suivantes :
Assurez-vous d'avoir configuré l'environnement.
Vous pouvez choisir d'utiliser la démo hors ligne ou en ligne :
Hors ligne :
python demo.py
Téléchargez le poids du modèle.
Modifiez DEFAULT_CKPT_PATH="pathto/Monkey"
dans le fichier demo.py
en fonction du chemin de poids de votre modèle.
Exécutez la démo à l'aide de la commande suivante :
En ligne:
python demo.py -c echo840/Monkey
Exécutez la démo et téléchargez les poids du modèle en ligne avec la commande suivante :
Pour TextMonkey, vous pouvez télécharger le poids du modèle à partir de Model Weight et exécuter le code de démonstration :
python demo_textmonkey.py -c model_path
Avant le 14/11/2023, nous avons observé que pour certaines images aléatoires, Monkey peut obtenir des résultats plus précis que GPT4V.
Avant le 31/01/2024, Monkey-chat atteignait le cinquième rang dans la catégorie Modèle Multimodal sur OpenCompass.
Vous pouvez télécharger les données d'entraînement et de test utilisées par Monkey depuis Monkey_Data.
Le fichier json utilisé pour la formation Monkey peut être téléchargé sur Link.
Les données de notre méthode de génération de descriptions à plusieurs niveaux sont désormais open source et disponibles en téléchargement sur Link. Nous téléchargeons déjà les images utilisées dans la description multi-niveaux. Exemples :
Vous pouvez télécharger des images de train de Monkey depuis Train. Code d'extraction : 4hdh
Vous pouvez télécharger des images de test et des jsonls de Monkey à partir de Test. Code d'extraction : 5h71
Les images proviennent de CC3M, COCO Caption, TextCaps, VQAV2, OKVQA, GQA, ScienceQA, VizWiz, TextVQA, OCRVQA, ESTVQA, STVQA, AI2D et DUE_Benchmark. Lors de l’utilisation des données, il est nécessaire de respecter les protocoles de l’ensemble de données d’origine.
Nous proposons un code d'évaluation pour 14 ensembles de données Visual Question Answering (VQA) dans le fichier evaluate_vqa.py
, facilitant une vérification rapide des résultats. Les opérations spécifiques sont les suivantes :
Assurez-vous d'avoir configuré l'environnement.
Modifiez sys.path.append("pathto/Monkey")
vers le chemin du projet.
Préparez les ensembles de données requis pour l’évaluation.
Exécutez le code d’évaluation.
Prenons l'exemple d'ESTVQA :
Préparez les données selon la structure de répertoire suivante :
├── data | ├── estvqa | ├── test_image | ├── {image_path0} | ├── {image_path1} | · | · | ├── estvqa.jsonl
Exemple du format de chaque ligne du fichier .jsonl
annoté :
{"image": "data/estvqa/test_image/011364.jpg", "question": "What is this store?", "answer": "pizzeria", "question_id": 0}
Modifier le dictionnaire ds_collections
:
ds_collections = { 'estvqa_test': { 'test': 'data/estvqa/estvqa.jsonl', 'metric': 'anls', 'max_new_tokens': 100, }, ... }
Exécutez la commande suivante :
bash eval/eval.sh 'EVAL_PTH' 'SAVE_NAME'
Si vous souhaitez faire référence aux résultats de base publiés ici, veuillez utiliser les entrées BibTeX suivantes :
@inproceedings{li2023monkey, title={Monkey : la résolution de l'image et l'étiquette du texte sont des éléments importants pour les grands modèles multimodaux}, author={Li, Zhang et Yang, Biao et Liu, Qiang et Ma, Zhiyin et Zhang, Shuo et Yang , Jingxu et Sun, Yabo et Liu, Yuliang et Bai, Xiang}, booktitle={actes de la conférence IEEE/CVF sur la vision par ordinateur et la reconnaissance de formes}, year={2024}}@article{liu2024textmonkey, title={TextMonkey : un grand modèle multimodal sans OCR pour comprendre le document}, author={Liu, Yuliang et Yang, Biao et Liu, Qiang et Li, Zhang et Ma, Zhiyin et Zhang, Shuo et Bai, Xiang}, journal={arXiv preprint arXiv:2403.04473}, year={2024}}@article{huang2024mini, title={Mini-Monkey : recadrage adaptatif à plusieurs échelles pour les grands modèles de langage multimodaux}, author={Huang, Mingxin et Liu, Yuliang et Liang, Dingkang et Jin, Lianwen et Bai , Xiang}, journal={préimpression arXiv arXiv:2408.02034}, year={2024}}@article{deng2024r, title={R-CoT : génération de problèmes de chaîne de pensée inversée pour le raisonnement géométrique dans les grands modèles multimodaux}, author={Deng, Linger et Liu, Yuliang et Li, Bohan et Luo, Dongliang et Wu, Liang et Zhang, Chengquan et Lyu, Pengyuan et Zhang, Ziyang et Zhang, Gang et Ding, Errui et autres}, journal={préimpression arXiv arXiv:2410.17885}, année={2024}}
La série Monkey se concentre principalement sur l'exploration de techniques telles que l'amélioration de la résolution d'image et les méthodes de compression de jetons pour améliorer les performances des grands modèles multimodaux existants. Par exemple, les versions antérieures de Monkey et TextMonkey étaient basées sur QwenVL, tandis que MiniMonkey est basé sur InternVL2 et miniCPM, entre autres. Merci à Qwen-VL, LLLAMA, LLaVA, OpenCompass, InternLM et InternVL.
Le projet Monkey est destiné à un usage non commercial uniquement. Pour toute demande commerciale ou pour explorer des versions plus avancées des LMM de la série Monkey (<1b, 2b, 7b, 72b), veuillez contacter le professeur Yuliang Liu à [email protected].