/ Модель

Характеристики

Контекст
8 192 токена
Параметры
11,4 млрд
Архитектура
monkey · dense
Опубликована
8 янв 2024

Monkey-Chat

Генерация текстаТекст → текст8 профессий

Monkey — мультимодальная модель для описания изображений и ответов на визуальные вопросы, в том числе по документам с плотным текстом.

88скачиваний за 30 дней18лайковвеса обновлены6 апр 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Monkey — мультимодальная модель, разработанная исследователями Huazhong University of Science and Technology и Kingsoft для понимания изображений и ответов на вопросы по ним. Модель предназначена для описания изображений, визуальных вопросов и ответов, включая изображения документов с плотным текстом.

Monkey использует архитектуру MonkeyLMHeadModel, содержит 11,4 млрд параметров и принимает изображения с разрешением до 896 × 1344 пикселей. Метаданные задают контекст 8192 токена и формат PyTorch. В README отмечены внимание к мелким деталям и тексту на изображениях, а также способность описывать связи между объектами и сценами. Модель обучалась и оценивалась на широком наборе визуальных задач. Лицензия в предоставленных данных не указана.

Сценарии применения

  • создание подробных описаний изображений
  • ответы на общие вопросы по изображению
  • извлечение ответов из текста на изображении
  • ответы на вопросы по сканированным документам
  • распознавание мелких и сгруппированных объектов на изображении

Ограничения

README не сообщает лицензию; модель ограничена визуальными сценариями, описанными в карточке, а заявленные результаты представлены авторами на бенчмарках.

Для каких профессий подходит8

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

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


Monkey brings a training-efficient approach to effectively improve the input resolution capacity up to 896 x 1344 pixels without pretraining from the start. To bridge the gap between simple text labels and high input resolution, we propose a multi-level description generation method, which automatically provides rich information that can guide the model to learn the contextual association between scenes and objects. With the synergy of these two designs, our model achieved excellent results on multiple benchmarks. By comparing our model with various LMMs, including GPT4V, our model demonstrates promising performance in image captioning by paying attention to textual information and capturing fine details within the images; its improved input resolution also enables remarkable performance in document images with dense text.

Spotlights

  • Contextual associations. Our method demonstrates a superior ability to infer the relationships between targets more effectively when answering questions, which results in delivering more comprehensive and insightful results.
  • Support resolution up to 1344 x 896. Surpassing the standard 448 x 448 resolution typically employed for LMMs, this significant increase in resolution augments the ability to discern and understand unnoticeable or tightly clustered objects and dense text.
  • Enhanced general performance. We carried out testing across 16 diverse datasets, leading to impressive performance by our Monkey model in tasks such as Image Captioning, General Visual Question Answering, Text-centric Visual Question Answering, and Document-oriented Visual Question Answering.

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

Demo

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

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 
    

Dataset

We have open-sourced the data generated by the multi-level description generation method. You can download it at Detailed Caption.

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 your model weight 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'

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.

ATTENTION: Specify the path to your training data, which should be a json file consisting of a list of conversations.

Inference

from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "echo840/Monkey-Chat"
model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map='cuda', trust_remote_code=True).eval()
tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True)
tokenizer.padding_side = 'left'
tokenizer.pad_token_id = tokenizer.eod_id
img_path = ""
question = ""

#Monkey-Chat has the same prompt format for both vqa and detailed caption.
query = f'<img>{img_path}</img> {question} Answer: '

input_ids = tokenizer(query, return_tensors='pt', padding='longest')
attention_mask = input_ids.attention_mask
input_ids = input_ids.input_ids

pred = model.generate(
            input_ids=input_ids.cuda(),
            attention_mask=attention_mask.cuda(),
            do_sample=False,
            num_beams=1,
            max_new_tokens=512,
            min_new_tokens=1,
            length_penalty=1,
            num_return_sequences=1,
            output_hidden_states=True,
            use_cache=True,
            pad_token_id=tokenizer.eod_id,
            eos_token_id=tokenizer.eod_id,
            )
response = tokenizer.decode(pred[0][input_ids.size(1):].cpu(), skip_special_tokens=True).strip()
print(response)

Citing Monkey

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

@article{li2023monkey,
  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},
  journal={arXiv preprint arXiv:2311.06607},
  year={2023}
}

If you find the Monkey cute, please star. It would be a great encouragement for us.

Acknowledgement

Qwen-VL: the codebase we built upon. Thanks for the authors of Qwen for providing the framework.

Copyright

We welcome suggestions to help us improve the Monkey. For any query, please contact Dr. Yuliang Liu: ylliu@hust.edu.cn. If you find something interesting, please also feel free to share with us through email or open an issue. Thanks!

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
MonkeyLMHeadModel
Ревизия весов
8a44704

0 моделей