Views
No views yet
1import requests
2import torch
3from PIL import Image
4from io import BytesIO
5
6from transformers import AutoProcessor, AutoModelForVision2Seq
7from transformers.image_utils import load_image
8
9DEVICE = "cuda:0"
10
11image1 = load_image("https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg")
12image2 = load_image("https://cdn.britannica.com/59/94459-050-DBA42467/Skyline-Chicago.jpg")
13image3 = load_image("https://cdn.britannica.com/68/170868-050-8DDE8263/Golden-Gate-Bridge-San-Francisco.jpg")
14
15processor = AutoProcessor.from_pretrained("GeorgeBredis/ruIdefics2-ruLLaVA-merged")
16model = AutoModelForVision2Seq.from_pretrained(
17 "GeorgeBredis/ruIdefics2-ruLLaVA-merged",
18).to(DEVICE)
19
20messages = [
21 {
22 "role": "user",
23 "content": [
24 {"type": "image"},
25 {"type": "text", "text": "Что изображено на данной картинке?"},
26 ]
27 }
28]
29prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
30inputs = processor(text=prompt, images=[image1], return_tensors="pt")
31inputs = {k: v.to(DEVICE) for k, v in inputs.items()}
32
33
34generated_ids = model.generate(**inputs, max_new_tokens=500)
35generated_texts = processor.batch_decode(generated_ids, skip_special_tokens=True)
36
37print(generated_texts)1import requests
2import torch
3from PIL import Image
4from io import BytesIO
5
6from peft import LoraConfig
7from transformers import AutoProcessor, BitsAndBytesConfig, Idefics2ForConditionalGeneration
8from transformers.image_utils import load_image
9
10DEVICE = "cuda:0"
11
12image1 = load_image("https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg")
13image2 = load_image("https://cdn.britannica.com/59/94459-050-DBA42467/Skyline-Chicago.jpg")
14image3 = load_image("https://cdn.britannica.com/68/170868-050-8DDE8263/Golden-Gate-Bridge-San-Francisco.jpg")
15
16processor = AutoProcessor.from_pretrained(
17 "GeorgeBredis/ruIdefics2-ruLLaVA-merged",
18 do_image_splitting=False
19)
20
21quantization_config = BitsAndBytesConfig(
22 load_in_4bit=True,
23 bnb_4bit_quant_type="nf4",
24 bnb_4bit_use_double_quant=True,
25 bnb_4bit_compute_dtype=torch.float16
26)
27model = Idefics2ForConditionalGeneration.from_pretrained(
28 "GeorgeBredis/ruIdefics2-ruLLaVA-merged",
29 torch_dtype=torch.float16,
30 quantization_config=quantization_config,
31)
32# не нужно переносить на карту, так как в int4/8 заводятся сразу на них
33
34messages = [
35 {
36 "role": "user",
37 "content": [
38 {"type": "image"},
39 {"type": "text", "text": "Что изображено на данной картинке?"},
40 ]
41 }
42]
43prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
44inputs = processor(text=prompt, images=[image1], return_tensors="pt")
45inputs = {k: v.to(DEVICE) for k, v in inputs.items()}
46
47
48generated_ids = model.generate(**inputs, max_new_tokens=500)
49generated_texts = processor.batch_decode(generated_ids, skip_special_tokens=True)
50
51print(generated_texts)
52