Views
No views yet

| Ovis-Clip-Qwen1.5-7B | Ovis-Clip-Llama3-8B | Ovis-Clip-Qwen1.5-14B | |
|---|---|---|---|
| ViT | Clip | Clip | Clip |
| LLM | Qwen1.5-7B-Chat | Llama3-8B-Instruct | Qwen1.5-14B-Chat |
| Download | Huggingface | Huggingface | Huggingface |
| MMStar | 44.3 | 49.5 | 48.5 |
| MMB-EN | 75.1 | 77.4 | 78.4 |
| MMB-CN | 70.2 | 72.8 | 76.6 |
| MMMU-Val | 39.7 | 44.7 | 46.7 |
| MMMU-Test | 37.7 | 39.0 | 40.7 |
| MathVista-Mini | 41.4 | 40.8 | 43.4 |
| MME | 1882 | 2009 | 1961 |
| HallusionBench | 56.4 | 61.1 | 57.6 |
| RealWorldQA | 60.0 | 57.9 | 62.7 |
pip install torch==2.1.0 transformers==4.41.1 deepspeed==0.14.0 pillow==10.3.01import torch
2from PIL import Image
3from transformers import AutoModelForCausalLM
4
5# load model
6model = AutoModelForCausalLM.from_pretrained("AIDC-AI/Ovis-Clip-Qwen1_5-7B",
7 torch_dtype=torch.bfloat16,
8 multimodal_max_length=8192,
9 trust_remote_code=True).cuda()
10text_tokenizer = model.get_text_tokenizer()
11visual_tokenizer = model.get_visual_tokenizer()
12conversation_formatter = model.get_conversation_formatter()
13
14# enter image path and prompt
15image_path = input("Enter image path: ")
16image = Image.open(image_path)
17text = input("Enter prompt: ")
18query = f'<image> {text}'
19prompt, input_ids = conversation_formatter.format_query(query)
20input_ids = torch.unsqueeze(input_ids, dim=0).to(device=model.device)
21attention_mask = torch.ne(input_ids, text_tokenizer.pad_token_id).to(device=model.device)
22pixel_values = [visual_tokenizer.preprocess_image(image).to(
23 dtype=visual_tokenizer.dtype, device=visual_tokenizer.device)]
24
25# print model output
26with torch.inference_mode():
27 kwargs = dict(
28 pixel_values=pixel_values,
29 attention_mask=attention_mask,
30 do_sample=False,
31 top_p=None,
32 temperature=None,
33 top_k=None,
34 repetition_penalty=None,
35 max_new_tokens=512,
36 use_cache=True,
37 eos_token_id=text_tokenizer.eos_token_id,
38 pad_token_id=text_tokenizer.pad_token_id
39 )
40 output_ids = model.generate(input_ids, **kwargs)[0]
41 input_token_len = input_ids.shape[1]
42 output = text_tokenizer.decode(output_ids[input_token_len:], skip_special_tokens=True)
43 print(f'Output: {output}')@article{lu2024ovis,
title={Ovis: Structural Embedding Alignment for Multimodal Large Language Model},
author={Shiyin Lu and Yang Li and Qing-Guo Chen and Zhao Xu and Weihua Luo and Kaifu Zhang and Han-Jia Ye},
year={2024},
journal={arXiv:2405.20797}
}