Views
No views yet

1git lfs install
2git clone https://github.com/SHI-Labs/OLA-VLM
3cd OLA-VLM1import gradio as gr
2import os
3import torch
4import numpy as np
5
6from ola_vlm.constants import DEFAULT_IMAGE_TOKEN
7
8from ola_vlm.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN
9from ola_vlm.conversation import conv_templates, SeparatorStyle
10from ola_vlm.model.builder import load_pretrained_model
11from ola_vlm.mm_utils import tokenizer_image_token, get_model_name_from_path, process_images
12
13model_path = "shi-labs/OLA-VLM-CLIP-ViT-Llama3-8b"
14conv_mode = "llava_llama_3"
15image_path = "/path/to/OLA-VLM/assets/pb.jpg"
16input_prompt = "Describe this image."
17
18# load model
19model_name = get_model_name_from_path(model_path)
20tokenizer, model, image_processor, context_len = load_pretrained_model(model_path, None, model_name)
21
22# prepare prompt
23input_prompt = DEFAULT_IMAGE_TOKEN + '\n' + input_prompt
24
25conv = conv_templates[conv_mode].copy()
26conv.append_message(conv.roles[0], input_prompt)
27conv.append_message(conv.roles[1], None)
28prompt = conv.get_prompt()
29
30# load and preprocess image
31image = Image.open(image_path).convert('RGB')
32image_tensor = process_images([image], image_processor, model.config)[0]
33input_ids = tokenizer_image_token(prompt, tokenizer, IMAGE_TOKEN_INDEX, return_tensors='pt')
34
35input_ids = input_ids.to(device='cuda', non_blocking=True)
36image_tensor = image_tensor.to(dtype=torch.float16, device='cuda', non_blocking=True)
37
38# run inference
39with torch.inference_mode():
40 output_ids = model.generate(
41 input_ids.unsqueeze(0),
42 images=image_tensor.unsqueeze(0),
43 image_sizes=[image.size],
44 do_sample=True,
45 temperature=0.2,
46 top_p=0.5,
47 num_beams=1,
48 max_new_tokens=256,
49 use_cache=True)
50
51outputs = tokenizer.batch_decode(output_ids, skip_special_tokens=True)[0].strip()
52print(f"Image:{image_path} \nPrompt:{input_prompt} \nOutput:{outputs}")@article{jain2024ola_vlm,
title={{OLA-VLM: Elevating Visual Perception in Multimodal LLMs with Auxiliary Embedding Distillation}},
author={Jitesh Jain and Zhengyuan Yang and Humphrey Shi and Jianfeng Gao and Jianwei Yang},
journal={arXiv},
year={2024}
}