Googleが公開しているVision&Languageモデル(VLM)の「PaliGemma2」を使ってみる

はじめに

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)




このエントリーをはてなブックマークに追加