Macaco
TextoMonkey
Mini-Macaco
2024.11.27
? Obrigado a Fahd Mirza por compartilhar um vídeo sobre como executar o Monkey.
2024.8.13
? O código-fonte do Mini-Monkey foi lançado.
2024.8.6
? Lançamos o Mini-Macaco de papel.
2024.4.13
? O código fonte para TextMonkey é lançado.
2024.4.5
? Monkey é indicado como artigo de destaque do CVPR 2024.
2024.3.8
? Lançamos o papel TextMonkey.
2024.2.27
? Macaco é aceito pelo CVPR 2024.
2024.1.3
? Libere o pipeline básico de geração de dados. Geração de dados
2023.11.06
? Soltamos o Macaco de papel.
Macaco-Chat
Modelo | Modelo de linguagem | Transformadores (HF) | Teste MMBench | CCBench | MME | SeedBench_IMG | MathVista-MiniTest | HalllusionBench-Média | Teste AI2D | OCRBench |
---|---|---|---|---|---|---|---|---|---|---|
Macaco-Chat | Qwev-7B | ?echo840/Monkey-Chat | 72,4 | 48 | 1887,4 | 68,9 | 34,8 | 39,3 | 68,5 | 534 |
Mini-Macaco | estagiáriolm2-chat-1_8b | Mini-Macaco | --- | 75,5 | 1881,9 | 71,3 | 47,3 | 38,7 | 74,7 | 802 |
conda create -n monkey python = 3.9conda ativar clone de monkeygit https://github.com/Yuliang-Liu/Monkey.gitcd ./Monkeypip install -r requisitos.txt
Você pode baixar a versão correspondente do flash_attention em https://github.com/Dao-AILab/flash-attention/releases/ e usar o seguinte código para instalar:
pip instalar flash_attn-2.3.5+cu117torch2.0cxx11abiFALSE-cp39-cp39-linux_x86_64.whl --no-build-isolation
Também oferecemos a definição do modelo e o código de treinamento do Monkey, que você pode explorar acima. Você pode executar o código de treinamento executando finetune_ds_debug.sh
para Monkey e finetune_textmonkey.sh
para TextMonkey.
O arquivo json usado para o treinamento do Monkey pode ser baixado no Link.
Execute o código de inferência para Monkey e Monkey-Chat:
python ./inference.py --model_path MODEL_PATH --image_path IMAGE_PATH --question "YOUR_QUESTION"
A demonstração é rápida e fácil de usar. Basta fazer upload de uma imagem do seu desktop ou telefone, ou capturar uma diretamente. Demo_chat também é lançado como uma versão atualizada da demonstração original para oferecer uma experiência interativa aprimorada.
Também fornecemos o código-fonte e o peso do modelo para a demonstração original, permitindo personalizar determinados parâmetros para uma experiência mais exclusiva. As operações específicas são as seguintes:
Certifique-se de ter configurado o ambiente.
Você pode optar por usar a demonstração offline ou online:
Off-line:
python demo.py
Baixe o peso do modelo.
Modifique DEFAULT_CKPT_PATH="pathto/Monkey"
no arquivo demo.py
para o caminho de peso do seu modelo.
Execute a demonstração usando o seguinte comando:
On-line:
python demo.py -c echo840/Monkey
Execute a demonstração e baixe os pesos do modelo online com o seguinte comando:
Para TextMonkey você pode baixar o peso do modelo em Model Weight e executar o código de demonstração:
python demo_textmonkey.py -c caminho_modelo
Antes de 14/11/2023, observamos que para algumas imagens aleatórias o Monkey pode obter resultados mais precisos do que o GPT4V.
Antes de 31/01/2024, Monkey-chat alcançou a quinta posição na categoria Modelo Multimodal no OpenCompass.
Você pode baixar os dados de treinamento e teste usados pelo macaco em Monkey_Data.
O arquivo json usado para o treinamento do Monkey pode ser baixado no Link.
Os dados do nosso método de geração de descrição multinível agora são de código aberto e estão disponíveis para download no Link. Já carregamos as imagens usadas na descrição multinível. Exemplos:
Você pode baixar imagens de trem do Macaco em Train. Código de extração: 4hdh
Você pode baixar imagens de teste e jsonls do Monkey em Test. Código de extração: 5h71
As imagens são de CC3M, COCO Caption, TextCaps, VQAV2, OKVQA, GQA, ScienceQA, VizWiz, TextVQA, OCRVQA, ESTVQA, STVQA, AI2D e DUE_Benchmark. Ao utilizar os dados, é necessário cumprir os protocolos do conjunto de dados original.
Oferecemos código de avaliação para 14 conjuntos de dados de resposta visual a perguntas (VQA) no evaluate_vqa.py
, facilitando uma verificação rápida dos resultados. As operações específicas são as seguintes:
Certifique-se de ter configurado o ambiente.
Modifique sys.path.append("pathto/Monkey")
para o caminho do projeto.
Prepare os conjuntos de dados necessários para avaliação.
Execute o código de avaliação.
Veja ESTVQA como exemplo:
Prepare os dados de acordo com a seguinte estrutura de diretórios:
├── data | ├── estvqa | ├── test_image | ├── {image_path0} | ├── {image_path1} | · | · | ├── estvqa.jsonl
Exemplo do formato de cada linha do arquivo .jsonl
anotado:
{"image": "data/estvqa/test_image/011364.jpg", "question": "What is this store?", "answer": "pizzeria", "question_id": 0}
Modifique o dicionário ds_collections
:
ds_collections = { 'estvqa_test': { 'test': 'data/estvqa/estvqa.jsonl', 'metric': 'anls', 'max_new_tokens': 100, }, ... }
Execute o seguinte comando:
bash eval/eval.sh 'EVAL_PTH' 'SAVE_NAME'
Se você deseja consultar os resultados da linha de base publicados aqui, use as seguintes entradas do BibTeX:
@inproceedings{li2023monkey, title={Monkey: Resolução de imagem e rótulo de texto são coisas importantes para grandes modelos multimodais}, autor={Li, Zhang e Yang, Biao e Liu, Qiang e Ma, Zhiyin e Zhang, Shuo e Yang , Jingxu e Sun, Yabo e Liu, Yuliang e Bai, Xiang}, booktitle={procedimentos da conferência IEEE/CVF sobre visão computacional e reconhecimento de padrões}, ano={2024}}@artigo{liu2024textmonkey, title={TextMonkey: um grande modelo multimodal livre de OCR para compreensão de documentos}, autor={Liu, Yuliang e Yang, Biao e Liu, Qiang e Li, Zhang e Ma, Zhiyin e Zhang, Shuo e Bai, Xiang}, diário={pré-impressão arXiv arXiv:2403.04473}, year={2024}}@article{huang2024mini, title={Mini-Monkey: Multi-Scale Adaptive Cropping for Multimodal Large Language Models}, author={Huang, Mingxin e Liu, Yuliang e Liang, Dingkang e Jin, Lianwen e Bai , Xiang}, diário = {pré-impressão arXiv arXiv:2408.02034}, ano={2024}}@artigo{deng2024r, título={R-CoT: Geração de problemas de cadeia de pensamento reversa para raciocínio geométrico em grandes modelos multimodais}, autor={Deng, Linger e Liu, Yuliang e Li, Bohan e Luo, Dongliang e Wu, Liang e Zhang, Chengquan e Lyu, Pengyuan e Zhang, Ziyang e Zhang, Gang e Ding, Errui e outros}, diário={pré-impressão arXiv arXiv:2410.17885}, ano={2024}}
A série Monkey concentra-se principalmente na exploração de técnicas como aprimoramento de resolução de imagem e métodos de compressão de token para melhorar o desempenho de grandes modelos multimodais existentes. Por exemplo, versões anteriores do Monkey e TextMonkey eram baseadas em QwenVL, enquanto MiniMonkey é baseado em InternVL2 e miniCPM, entre outros. Agradecimentos a Qwen-VL, LLAMA, LLaVA, OpenCompass, InternLM e InternVL.
O projeto Monkey destina-se apenas ao uso não comercial. Para consultas comerciais ou para explorar versões mais avançadas dos LMMs da série Monkey (<1b, 2b, 7b, 72b), entre em contato com o Prof. Yuliang Liu em [email protected].