MCPcopy
hub / github.com/Yuliang-Liu/Monkey

github.com/Yuliang-Liu/Monkey @main sqlite

repository ↗ · DeepWiki ↗
3,626 symbols 14,443 edges 406 files 1,172 documented · 32%
README

Monkey: Image Resolution and Text Label Are Important Things for Large Multi-modal Models

Please give us a star ⭐ for the latest update.
[![arXiv](https://img.shields.io/badge/Arxiv-2311.06607-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2311.06607) [![License](https://img.shields.io/badge/License-Apache%202.0-yellow)](https://github.com/Yuliang-Liu/Monkey/blob/main/LICENSE) [![GitHub issues](https://img.shields.io/github/issues/Yuliang-Liu/Monkey?color=critical&label=Issues)](https://github.com/Yuliang-Liu/Monkey/issues?q=is%3Aopen+is%3Aissue) [![GitHub closed issues](https://img.shields.io/github/issues-closed/Yuliang-Liu/Monkey?color=success&label=Issues)](https://github.com/Yuliang-Liu/Monkey/issues?q=is%3Aissue+is%3Aclosed)

[CVPR 2024] Monkey: Image Resolution and Text Label Are Important Things for Large Multi-modal Models

Zhang Li, Biao Yang, Qiang Liu, Zhiyin Ma, Shuo Zhang, Jingxu Yang, Yabo Sun, Yuliang Liu, Xiang Bai

arXiv Source_code Detailed Caption Model Weight Model Weight in Wisemodel

[TPAMI 2026] TextMonkey: An OCR-Free Large Multimodal Model for Understanding Document

Yuliang Liu, Biao Yang, Qiang Liu, Zhang Li, Zhiyin Ma, Shuo Zhang, Xiang Bai

arXiv Source_code Data Model Weight

[NeurIPS 2024] MoE Jetpack: From Dense Checkpoints to Adaptive Mixture of Experts for Vision Tasks

Xingkui Zhu, Yiran Guan, Dingkang Liang, Yuchao Chen, Yuliang Liu, Xiang Bai

arXiv Source_code

[ICLR 2025] Mini-Monkey: Multi-Scale Adaptive Cropping for Multimodal Large Language Models

Mingxin Huang, Yuliang Liu, Dingkang Liang, Lianwen Jin, Xiang Bai

arXiv Source_code Model Weight in Wisemodel Model Weight

[IJCV 2025] Liquid: Language Models are Scalable and Unified Multi-modal Generators

Junfeng Wu, Yi Jiang, Chuofan Ma, Yuliang Liu, Hengshuang Zhao, Zehuan Yuan, Song Bai, Xiang Bai

arXiv Source_code

[ICCV 2025] LIRA: Inferring Segmentation in Large Multi-modal Models with Local Interleaved Region Assistance

Zhang Li, Biao Yang, Qiang Liu, Shuo Zhang, Zhiyin Ma, Shuo Zhang, Liang Yin, Linger Deng, Yabo Sun, Yuliang Liu, Xiang Bai

arXiv Source_code

MonkeyOCR: Document Parsing with a Structure-Recognition-Relation Triplet Paradigm

Zhang Li, Yuliang Liu, Qiang Liu, Zhiyin Ma, Ziyang Zhang, Shuo Zhang, Zidun Guo, Jiarui Zhang, Xinyu Wang, Xiang Bai

arXiv Source_code Model Weight Demo

News

  • 2025.6.6 🚀 MonkeyOCR: Try our document parsing model — Accurate, Fast, and Easy to Use.
  • 2025.4.17 🚀 Liquid: Bridging Text‑to‑Image and Image‑to‑Text in One Framework.
  • 2024.8.6 🚀 We release the paper Mini-Monkey.
  • 2024.4.5 🚀 Monkey is nominated as CVPR 2024 Highlight paper.
  • 2024.3.8 🚀 We release the paper TextMonkey.
  • 2024.1.3 🚀 Release the basic data generation pipeline. Data Generation
  • 2023.11.06 🚀 We release the paper Monkey.

🐳 Model Zoo

Monkey-Chat | Model|Language Model|Transformers(HF) |MMBench-Test|CCBench|MME|SeedBench_IMG|MathVista-MiniTest|HallusionBench-Avg|AI2D Test|OCRBench| |---------------|---------|-----------------------------------------|---|---|---|---|---|---|---|---| |Monkey-Chat|Qwev-7B|🤗echo840/Monkey-Chat|72.4|48|1887.4|68.9|34.8|39.3|68.5|534| |Mini-Monkey|internlm2-chat-1_8b|Mini-Monkey|---|75.5|1881.9|71.3|47.3|38.7|74.7|802|

Environment

conda create -n monkey python=3.9
conda activate monkey
git clone https://github.com/Yuliang-Liu/Monkey.git
cd ./Monkey
pip install -r requirements.txt

You can download the corresponding version of flash_attention from https://github.com/Dao-AILab/flash-attention/releases/ and use the following code to install:

pip install flash_attn-2.3.5+cu117torch2.0cxx11abiFALSE-cp39-cp39-linux_x86_64.whl --no-build-isolation

Train

We also offer Monkey's model definition and training code, which you can explore above. You can execute the training code through executing finetune_ds_debug.sh for Monkey and finetune_textmonkey.sh for TextMonkey.

The json file used for Monkey training can be downloaded at Link.

Inference

Run the inference code for Monkey and Monkey-Chat:

python ./inference.py --model_path MODEL_PATH  --image_path IMAGE_PATH  --question "YOUR_QUESTION"

Demo

Demo is fast and easy to use. Simply uploading an image from your desktop or phone, or capture one directly. Demo_chat is also launched as an upgraded version of the original demo to deliver an enhanced interactive experience.

We also provide the source code and the model weight for the original demo, allowing you to customize certain parameters for a more unique experience. The specific operations are as follows: 1. Make sure you have configured the environment. 2. You can choose to use the demo offline or online: - Offline: - Download the Model Weight. - Modify DEFAULT_CKPT_PATH="pathto/Monkey" in the demo.py file to your model weight path. - Run the demo using the following command: python demo.py - Online: - Run the demo and download model weights online with the following command: python demo.py -c echo840/Monkey

For TextMonkey you can download the model weight from Model Weight and run the demo code:

python demo_textmonkey.py -c model_path

Before 14/11/2023, we have observed that for some random pictures Monkey can achieve more accurate results than GPT4V.

<img src="https://v1.ax1x.com/2024/04/13/7yS2yq.jpg" width="666"/>

Before 31/1/2024, Monkey-chat achieved the fifth rank in the Multimodal Model category on OpenCompass.

<img src="https://v1.ax1x.com/2024/04/13/7yShXL.jpg" width="666"/>

Dataset

You can download the training and testing data used by monkey from Monkey_Data.

The json file used for Monkey training can be downloaded at Link.

The data from our multi-level description generation method is now open-sourced and available for download at Link. We already upload the images used in multi-level description. Examples:

<img src="https://v1.ax1x.com/2024/04/13/7yS6Ss.jpg" width="666"/>

You can download train images of Monkey from Train. Extraction code: 4hdh

You can download test images and jsonls of Monkey from Test. Extraction code: 5h71

The images are from CC3M, COCO Caption, TextCaps, VQAV2, OKVQA, GQA, ScienceQA, VizWiz, TextVQA, OCRVQA, ESTVQA, STVQA, AI2D and DUE_Benchmark. When using the data, it is necessary to comply with the protocols of the original dataset.

Evaluate

We offer evaluation code for 14 Visual Question Answering (VQA) datasets in the evaluate_vqa.py file, facilitating a quick verification of results. The specific operations are as follows:

  1. Make sure you have configured the environment.
  2. Modify sys.path.append("pathto/Monkey") to the project path.
  3. Prepare the datasets required for evaluation.
  4. Run the evaluation code.

Take ESTVQA as an example: - Prepare data according to the following directory structure:

├── data
|   ├── estvqa
|       ├── test_image
|           ├── {image_path0}
|           ├── {image_path1}
|                 ·
|                 ·
|   ├── estvqa.jsonl
  • Example of the format of each line of the annotated .jsonl file:
{"image": "data/estvqa/test_image/011364.jpg", "question": "What is this store?", "answer": "pizzeria", "question_id": 0}
  • Modify the dictionary ds_collections:
ds_collections = {
    'estvqa_test': {
        'test': 'data/estvqa/estvqa.jsonl',
        'metric': 'anls',
        'max_new_tokens': 100,
    },
    ...
}
  • Run the following command:
bash eval/eval.sh 'EVAL_PTH' 'SAVE_NAME'

Citing Monkey

If you wish to refer to the baseline results published here, please use the following BibTeX entries:

```BibTeX @inproceedings{li2024monkey, title={Monkey: Image resolution and text label are important things for large multi-modal models}, author={Li, Zhang and Yang, Biao and Liu, Qiang and Ma, Zhiyin and Zhang, Shuo and Yang, Jingxu and Sun, Yabo and Liu, Yuliang and Bai, Xiang}, booktitle={proceedings of the IEEE/CVF conference on computer vision and pattern recognition}, pages={26763--26773}, year={2024} } @article{zhu2024moe, title={Moe jetpack: From dense checkpoints to adaptive mixture of experts for vision tasks}, author={Zhu, Xingkui and Guan, Yiran and Liang, Dingkang and Chen, Yuchao and Liu, Yuliang and Bai, Xiang}, journal={Advances in Neural Information Processing Systems}, volume={37}, pages={12094--12118}, year={2024} } @article{liu2024textmonkey, title={TextMonkey: An OCR-Free Large Multimodal Model for Understanding Document}, author={Liu, Yuliang and Yang, Biao and Liu, Qiang and Li, Zhang and Ma, Zhiyin and Zhang, Shuo and Bai, Xiang}, journal={IEEE transactions on pattern analysis and machine intelligence}, year={2026} } @article{huang2024mini, title={Mini-Monkey: Multi-Scale Adaptive Cropping for Multimodal Large Language Models}, author={Huang, Mingxin and Liu, Yuliang and Liang, Dingkang and Jin, Lianwen and Bai, Xiang}, journal={International Conference on Learning Representations}, year={2024} } @article{deng2024r, title={R-CoT: Reverse Chain-of-Thought Problem Generation for Geometric Reasoning in Large Multimodal Models}, author={Deng, Linger and Liu, Yuliang and Li, Bohan and Luo, Dongliang and Wu, Liang and Zhang, Chengquan and Lyu, Pengyuan and Zhang, Ziyang and Zhang, Gang and Ding, Errui and others}, journal={Conference on Empirical Methods in Natural Language Processing}, year={2024} } @article{wu2026liquid, title={Liquid: Language models are scalable and unified multi-modal generators}, author={Wu, Junfeng and Jiang, Yi and Ma, Chuofan and Liu, Yuliang and Zhao, Hengshuang and Yuan, Zehuan and Bai, Song and Bai, Xiang}, journal={International Journal of Computer Vision}, volume={134}, number={1}, pages={39}, year={2026}, publisher={Springer} } @inproceedings{li2025lira, title={LIRA: Inferring Segmentation in Large Multi-moda

Core symbols most depended-on inside this repo

to
called by 292
data_generation/grit/third_party/CenterNet2/detectron2/structures/boxes.py
info
called by 289
eval/vqa.py
cat
called by 153
data_generation/grit/third_party/CenterNet2/detectron2/structures/boxes.py
get
called by 123
data_generation/grit/third_party/CenterNet2/detectron2/data/catalog.py
get
called by 111
data_generation/grit/third_party/CenterNet2/demo/predictor.py
get_norm
called by 80
data_generation/grit/third_party/CenterNet2/detectron2/layers/batch_norm.py
write
called by 70
data_generation/grit/third_party/CenterNet2/detectron2/utils/events.py
load
called by 70
data_generation/grit/third_party/CenterNet2/detectron2/config/lazy.py

Shape

Method 2,162
Function 872
Class 589
Route 3

Languages

Python100%

Modules by API surface

project/mini_monkey/internvl/model/internlm2/modeling_internlm2.py71 symbols
data_generation/grit/third_party/CenterNet2/detectron2/export/shared.py63 symbols
project/mini_monkey/internvl/model/phi3/modeling_phi3.py60 symbols
monkey_model/modeling_qwen.py55 symbols
data_generation/grit/third_party/CenterNet2/detectron2/engine/hooks.py53 symbols
monkey_model/modeling_qwen_nvdia3090.py52 symbols
data_generation/grit/third_party/CenterNet2/detectron2/data/transforms/augmentation_impl.py48 symbols
data_generation/grit/third_party/CenterNet2/detectron2/utils/visualizer.py47 symbols
data_generation/grit/grit/modeling/text/modeling_bert.py42 symbols
data_generation/grit/third_party/CenterNet2/detectron2/modeling/backbone/regnet.py41 symbols
data_generation/grit/third_party/CenterNet2/projects/CenterNet2/centernet/modeling/backbone/dlafpn.py40 symbols
data_generation/grit/third_party/CenterNet2/detectron2/structures/masks.py40 symbols

Dependencies from manifests, versioned

bitsandbytes0.41.0 · 1×
deepspeed0.13.5 · 1×
docutils0.16 · 1×
einops0.6.1 · 1×
einops-exts0.0.4 · 1×
hydra-core1.1.0.dev5 · 1×
omegaconf2.1.0.dev24 · 1×
peft0.4.0 · 1×
recommonmark0.6.0 · 1×
scikit-learn1.2.2 · 1×
sentencepiece0.1.99 · 1×
sphinx3.2.0 · 1×

For agents

$ claude mcp add Monkey \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact