Views
No views yet
https://github.com/LLaVA-VL/LLaVA-NeXTtransformers library (v4.40.0).1from llava.model.builder import load_pretrained_model
2
3tokenizer, model, image_processor, max_length = load_pretrained_model(
4 model_name_or_path="inaf-oact-ai/radiollava-7b-qa",
5 model_base=None,
6 model_name="llava_qwen",
7 device_map="auto"
8)1import torch
2from PIL import Image
3from llava.model.builder import load_pretrained_model
4from llava.mm_utils import process_images, tokenizer_image_token
5from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN
6from llava.conversation import conv_templates
7
8
9# - Load model
10tokenizer, model, image_processor, max_length = load_pretrained_model(
11 model_name_or_path="inaf-oact-ai/radiollava-7b-qa",
12 model_base=None,
13 model_name="llava_qwen",
14 device_map="auto"
15)
16
17# - Load image
18image_path= ...
19image= Image.fromarray(data).convert("RGB")
20
21# - Process image
22image_tensor = process_images([image], image_processor, model.config)
23image_tensor = [_image.to(dtype=torch.float16, device=model.device) for _image in image_tensor]
24
25# - Create prompt
26query= "Describe the input image" # Replace it with your query
27question = DEFAULT_IMAGE_TOKEN + "\n" + query
28conv = copy.deepcopy(conv_templates[conv_template])
29conv.system= '<|im_start|>system\nYou are an AI assistant specialized in radio astronomical topics.'
30conv.append_message(conv.roles[0], question)
31conv.append_message(conv.roles[1], None)
32prompt_question = conv.get_prompt()
33
34# - Create model inputs
35input_ids = tokenizer_image_token(
36 prompt_question,
37 tokenizer,
38 IMAGE_TOKEN_INDEX,
39 return_tensors="pt"
40).unsqueeze(0).to(model.device)
41image_sizes = [image.size]
42
43# - Generate model response
44# Change generation parameters as you wish
45do_sample=True
46temperature= 0.3
47max_new_tokens=4096
48
49output = model.generate(
50 input_ids,
51 images=image_tensor,
52 image_sizes=image_sizes,
53 do_sample=do_sample,
54 temperature=temperature if do_sample else None,
55 max_new_tokens=max_new_tokens,
56)
57output_parsed= tokenizer.decode(
58 output[0],
59 skip_special_tokens=True,
60 clean_up_tokenization_spaces=False
61)
62
63# - Process response as you wish ...
64#response= output_parsed.strip("\n").strip()https://github.com/LLaVA-VL/LLaVA-NeXT/blob/main/docs/LLaVA_OneVision_Tutorials.ipynbhttps://github.com/SKA-INAF/radio-llava.git