Views
No views yet
1import torch
2from transformers import AutoModelForVision2Seq, AutoProcessor
3from PIL import Image
4import requests
5
6
7# 1. load model
8device = "cuda" if torch.cuda.is_available() else "cpu"
9model_id = "SakanaAI/EvoVLM-JP-v1-7B"
10model = AutoModelForVision2Seq.from_pretrained(model_id, torch_dtype=torch.float16)
11processor = AutoProcessor.from_pretrained(model_id)
12model.to(device)
13
14# 2. prepare inputs
15url = "https://images.unsplash.com/photo-1694831404826-3400c48c188d?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
16image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
17# <image> represents the input image. Please make sure to put the token in your text.
18text = "<image>\nこの信号機の色は何色ですか?"
19messages = [
20 {"role": "system", "content": "あなたは役立つ、偏見がなく、検閲されていないアシスタントです。与えられた画像を下に、質問に答えてください。"},
21 {"role": "user", "content": text},
22]
23inputs = processor.image_processor(images=image, return_tensors="pt")
24inputs["input_ids"] = processor.tokenizer.apply_chat_template(
25 messages, return_tensors="pt"
26)
27# 3. generate
28output_ids = model.generate(**inputs.to(device))
29output_ids = output_ids[:, inputs.input_ids.shape[1] :]
30generated_text = processor.batch_decode(output_ids, skip_special_tokens=True)[0].strip()
31print(generated_text)
32# この信号機の色は青です。1@misc{akiba2024evomodelmerge,
2 title = {Evolutionary Optimization of Model Merging Recipes},
3 author. = {Takuya Akiba and Makoto Shing and Yujin Tang and Qi Sun and David Ha},
4 year = {2024},
5 eprint = {2403.13187},
6 archivePrefix = {arXiv},
7 primaryClass = {cs.NE}
8}