Views
No views yet
conda create -n mixsense python==3.10 -y
conda activate mixsense
pip install torch transformers==4.37.2 accelerate pillow1import torch
2import transformers
3from transformers import AutoModelForCausalLM, AutoTokenizer
4from PIL import Image
5import warnings
6import os
7
8
9# disable some warnings
10transformers.logging.set_verbosity_error()
11transformers.logging.disable_progress_bar()
12warnings.filterwarnings("ignore")
13
14# set device
15device = "cuda" # or cpu
16
17# create model
18model = AutoModelForCausalLM.from_pretrained(
19 "Zero-Vision/Llama-3-MixSense",
20 torch_dtype=torch.float16, # float32 for cpu
21 device_map="auto",
22 trust_remote_code=True,
23)
24tokenizer = AutoTokenizer.from_pretrained(
25 "Zero-Vision/Llama-3-MixSense",
26 trust_remote_code=True,
27)
28
29qs = "describe the image detailly."
30input_ids = model.text_process(qs, tokenizer).to(device)
31
32image = Image.open("example.jpg")
33image_tensor = model.image_process([image]).to(dtype=model.dtype, device=device)
34
35# generate
36with torch.inference_mode():
37 output_ids = model.generate(
38 input_ids,
39 images=image_tensor,
40 max_new_tokens=2048,
41 use_cache=True,
42 eos_token_id=[
43 tokenizer.eos_token_id,
44 tokenizer.convert_tokens_to_ids(["<|eot_id|>"])[0],
45 ],
46 )
47
48print(tokenizer.batch_decode(output_ids, skip_special_tokens=True)[0].strip())