こちらの続きです。マルチモーダルのモデルを動かしてみます。
いろいろ試しましたが、現時点で動作を確認できたのはHugging Face経由のものです。
モデルをダウンロードするにはリクエストが必要となります。リクエストしてからすぐに承認されました。
%pip install -U transformers
%pip install 'accelerate>=0.26.0'
%pip install numba
dbutils.library.restartPython()
# login to huggingface
from huggingface_hub import notebook_login
notebook_login()
使う画像はこちら。
OOMで困ってました。AIアシスタントにGPUメモリーをクリーンアップしたらとアドバイスいただいて、コードも書き換えてもらいました。
import requests
import torch
from PIL import Image
from transformers import MllamaForConditionalGeneration, AutoProcessor
from numba import cuda
# Clean up GPU memory
cuda.select_device(0)
cuda.close()
cuda.select_device(0)
model_id = "meta-llama/Llama-3.2-11B-Vision"
model = MllamaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
image = Image.open(requests.get(url, stream=True).raw)
# これに対して俳句を書かなくてはいけないとしたら
prompt = "<|image|><|begin_of_text|>If I had to write a haiku for this one"
inputs = processor(image, prompt, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
<|image|><|begin_of_text|>If I had to write a haiku for this one, it would be:.\nA rabbit in a blue jacket.\nHops down a country lane.\nWith a basket of carrots.\n
この画像に俳句を書くとしたら、次のようになります。\n青いジャケットを着たウサギ。\n田舎道を飛び跳ねる。\n人参の籠を持って。\n