AI・機械学習
中級
Video-LLaVA(ビデオラバ)
画像と動画を統合的に理解できるマルチモーダルLLM。視覚トークンを言語空間に整列させることで、単一モデルで画像・動画双方の質問応答を実現する。
0 回閲覧
0 いいね
2026/6/8 更新
関連タグ
マルチモーダルLLM
動画理解
視覚言語モデル
LLaVA
LanguageBind
Video-LLaVA とは
Video-LLaVA は哈爾浜工業大学(HIT)が 2023 年 11 月に発表した、画像と動画の両方を単一モデルで処理できるマルチモーダル LLM。従来は画像専用モデルと動画専用モデルが分離していたが、Video-LLaVA は共通の視覚言語空間に両モダリティを統合した点が革新的。
アーキテクチャ
LanguageBind 視覚エンコーダ
Video-LLaVA の中核は LanguageBind(言語整列型マルチモーダルエンコーダ)。異なるモダリティを言語埋め込み空間に整列させることで、画像と動画の視覚特徴が同一空間に存在するため、単一の MLP プロジェクタで LLM に接続可能。
全体構成
入力: テキスト + 画像フレーム (or 動画フレーム列)
↓
LanguageBind Encoder → 視覚トークン
↓
MLP Projector → 言語空間の視覚表現
↓
Vicuna-7B/13B LLM
↓
出力: テキスト応答
動画の処理: 動画を等間隔でサンプリングしたフレーム列(デフォルト 8 フレーム)を時系列順に結合して入力。
性能ベンチマーク
- MSVD-QA: 70.7(Video-ChatGPT 64.9 超え)
- MSRVTT-QA: 59.2(従来 SOTA を大幅更新)
- ActivityNet-QA Score: 45.3
- SeedBench Image: 66.1
使用例
from transformers import VideoLlavaProcessor, VideoLlavaForConditionalGeneration
import torch
from decord import VideoReader
model = VideoLlavaForConditionalGeneration.from_pretrained(
"LanguageBind/Video-LLaVA-7B-hf",
torch_dtype=torch.float16,
device_map="auto"
)
processor = VideoLlavaProcessor.from_pretrained("LanguageBind/Video-LLaVA-7B-hf")
vr = VideoReader("sample.mp4")
frame_indices = [int(i) for i in range(0, len(vr), len(vr)//8)][:8]
video_frames = vr.get_batch(frame_indices).asnumpy()
prompt = "USER: <video>\nこの動画の内容を日本語で説明してください。\nASSISTANT:"
inputs = processor(text=prompt, videos=video_frames, return_tensors="pt").to("cuda", torch.float16)
output = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(output[0], skip_special_tokens=True))
活用シーン
- 動画キャプション生成: 動画内容の自動要約
- 教育動画 Q&A: 講義動画への質問応答システム
- 監視カメラ解析: 異常行動の自然言語記述
- スポーツ実況: プレイ内容の自動実況生成
- マルチモーダル検索: テキストクエリによる動画シーン検索