Views
No views yet

1!pip install -q git+https://github.com/huggingface/transformers.git
2!pip install -q accelerate datasets peft bitsandbytes1import torch
2from peft import LoraConfig
3from transformers import AutoProcessor, BitsAndBytesConfig, Idefics2ForConditionalGeneration
4
5USE_QLORA = True
6DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
7print(DEVICE)
8
9processor = AutoProcessor.from_pretrained(
10 "HuggingFaceM4/idefics2-8b",
11 do_image_splitting=False
12)
13
14bnb_config = BitsAndBytesConfig(
15 load_in_4bit=True,
16 bnb_4bit_quant_type="nf4",
17 bnb_4bit_compute_dtype=torch.float16
18)
19
20model = Idefics2ForConditionalGeneration.from_pretrained(
21 "Thanhstar/Idefics2-8b-multimodal",
22 torch_dtype=torch.float16,
23 quantization_config=bnb_config if USE_QLORA else None,
24)
25
26from PIL import Image
27
28model.eval()
29
30image_path = "output.png"
31image = Image.open(image_path)
32image = image.convert("RGB")
33query = "What percentage of smokers feel the need to find more excitement and sensation in life?"
34
35
36messages = [
37 {
38 "role": "user",
39 "content": [
40 {"type": "text", "text": "Answer briefly."},
41 {"type": "image"},
42 {"type": "text", "text": query}
43 ]
44 }
45]
46
47
48text = processor.apply_chat_template(messages, add_generation_prompt=True)
49inputs = processor(text=[text.strip()], images=[image], return_tensors="pt", padding=True)
50generated_ids = model.generate(**inputs, max_new_tokens=64)
51generated_texts = processor.batch_decode(generated_ids[:, inputs["input_ids"].size(1):], skip_special_tokens=True)
52print()
53print(generated_texts) # ['70']
54image