見出し画像

Google Colab で Japanese Stable VLM を試す

「Google Colab」で「Japanese Stable VLM」を試したので、まとめました。

【注意】Google Colab Pro/Pro+ のA100で動作確認しています。

1. Japanese Stable VLM

「Japanese Stable VLM」は、「Stability AI」が開発した商用利用可能な日本語Visionモデルです。画像内容に対して質問応答できます。

2. 利用許諾

「Japanese Stable VLM」にアクセスするには、利用許諾を承認する必要があります。

(1)  HuggingFaceの「Japanese Stable VLM」のページを開く。

(2) 各種情報を入力して、「Accept」をクリック。

3. Colabでの実行

Colabでの実行手順は、次のとおりです。

(1) Colabのノートブックを開き、メニュー「編集 → ノートブックの設定」で「GPU」の「A100」を選択。

(2) パッケージのインストール。

# パッケージのインストール
!pip install transformers accelerate sentencepiece protobuf 

(3) HuggingFaceのログイン

# HuggingFaceのログイン
!huggingface-cli login

(4) モデルとトークナイザーとプロセッサーの準備

from transformers import AutoTokenizer, AutoModelForVision2Seq, AutoImageProcessor

# モデルとトークナイザーとプロセッサーの準備
model = AutoModelForVision2Seq.from_pretrained(
    "stabilityai/japanese-stable-vlm", 
    trust_remote_code=True
).to("cuda")
tokenizer = AutoTokenizer.from_pretrained(
    "stabilityai/japanese-stable-vlm"
)
processor = AutoImageProcessor.from_pretrained(
    "stabilityai/japanese-stable-vlm"
)

(5) プロンプトと入力画像の準備。

from PIL import Image
import requests

# プロンプトの準備
prompt = """
以下は、タスクを説明する指示と、文脈のある入力の組み合わせです。要求を適切に満たす応答を書きなさい。

### 指示: 
画像を詳細に述べてください。

### 応答: 
"""

# 入力画像の準備
url = "https://assets.st-note.com/img/1699330153755-AtaoOsjEq4.jpg"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")

公式で紹介されてる指示は、次の3つです。

・画像を詳細に述べてください。
・与えられた単語を使って、画像を詳細に述べてください。
・与えられた画像を下に、質問に答えてください。

今回は、以下の画像と「画像を詳細に述べてください。」を指示するプロンプトを用意しました。

(6) 入力の準備。

# 入力の準備
inputs = processor(images=image, return_tensors="pt")
text_encoding = tokenizer(prompt, add_special_tokens=False, return_tensors="pt")
inputs.update(text_encoding)

(7) 推論の実行。

# 推論の実行
outputs = model.generate(
    **inputs.to(device=model.device),
    do_sample=False,
    num_beams=5,
    max_new_tokens=128,
    min_length=1,
    repetition_penalty=1.5,
)
generated_text = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0].strip()
print(generated_text)
猫がテレビの前のテーブルに横たわっています



この記事が気に入ったらサポートをしてみませんか?