はじめに
Vision&Languageモデル(VLM)を使って写真の説明をしてもらいます。今回はGoogleが最近オープンソースとして公開してくれた「PaliGemma2」を使ってみました。「PaliGemma」の記事はこちらです。touch-sp.hatenablog.com
Python環境構築
pip install torch==2.4.1+cu118 --index-url https://download.pytorch.org/whl/cu118 pip install pillow accelerate
画像と結果
写真
結果
children looking at the stars
簡潔な答えが返って来ました。
Pythonスクリプト
from transformers import ( PaliGemmaProcessor, PaliGemmaForConditionalGeneration, ) from transformers.image_utils import load_image import torch model_id = "google/paligemma2-3b-pt-448" image = load_image("sample.jpg") model = PaliGemmaForConditionalGeneration.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="auto").eval() processor = PaliGemmaProcessor.from_pretrained(model_id) # Leaving the prompt blank for pre-trained models prompt = "" model_inputs = processor(text=prompt, images=image, return_tensors="pt").to(torch.bfloat16).to(model.device) input_len = model_inputs["input_ids"].shape[-1] with torch.inference_mode(): generation = model.generate(**model_inputs, max_new_tokens=200, do_sample=False) generation = generation[0][input_len:] decoded = processor.decode(generation, skip_special_tokens=True) print(decoded)