AI News HubLIVE
サイト内リライト3 分で読了

ローカル動画要約パイプライン:SmolVLM2-2.2Bを使用したフレーム処理

SmolVLM2-2.2Bは、能力とサイズのトレードオフ曲線において真に有用なポイントに位置し、1つのコンシューマーGPUで動作し、実際のワークフローに役立つ動画要約を生成できます。

ソースKDnuggets著者: Shittu Olumide

ほとんどの動画理解ツールは、クラウドAPI(動画をアップロードして分単位で課金)または大規模なGPUクラスター(70B+モデルには複数のA100が必要)のいずれかに依存しています。どちらのオプションも、自分のワークステーションで一日分の会議録画、講義シリーズ、または監視映像を処理したい開発者には適していません。

Hugging Faceが2025年2月20日にリリースしたSmolVLM2-2.2B-Instructは、この状況を変えます。5.2 GBのGPU VRAMで動作し、RTX 3060、MacBook Pro M2、および無料のGoogle Colab T4で実行可能です。長編動画理解ベンチマークVideo-MMEでは、既存のすべての2B規模モデルを上回ります。コンシューマーハードウェアと信頼性の高い結果の組み合わせが、この記事の中心です。

この記事で構築するプロジェクト:任意の動画ファイルを受け取り、設定可能な間隔でフレームを抽出し、SmolVLM2-2.2Bでバッチ分析し、構造化JSON要約(フレームごとのシーン記述、タイムスタンプ付きの重要な瞬間、アクションアイテム、最終的なナラティブ)を出力するローカルパイプラインです。同じパイプラインがコードを変更せずに会議録画、講義、監視映像を処理します。

SmolVLM2がRTX 3060で動作しながら、動画タスクでより大きなモデルを上回る理由は、画像のトークン化方法にあります。ほとんどの視覚言語モデルは画像を高密度でトークン化します。例えば、Qwen2-VLは1枚の画像に最大16,000トークンを使用します。SmolVLM2はピクセルシャッフル戦略を使用し、各384x384画像パッチを81トークンに圧縮します。50フレームで約4,050画像トークンとなり、単一の推論呼び出しで処理可能です。この圧縮により、SmolVLM2のプリフィルスループットはQwen2-VL-2Bの3.3〜4.5倍、生成スループットは7.5〜16倍高速です。

モデルには256M、500M、2.2Bの3つのサイズがあります。2.2Bはこのパイプラインに最適な選択であり、信頼性の高いマルチシーン要約を生成するのに十分なビデオベンチマークスコアを持っています:Video-MME 52.1、MLVU 55.2、MVBench 46.27。

SmolVLM2にはネイティブの動画エンコーダはなく、動画を画像のシーケンスとして扱います。公式リファレンスパイプラインは動画あたり最大50フレームを均一にサンプリングし、内部フレームリサイズをバイパスし、それらを単一のチャットメッセージ内のマルチ画像シーケンスとして渡します。このアプローチはCinePileで27.14%のスコアを獲得し、InternVL2 (2B)とVideo-LLaVA (7B)の間に位置します。モデルサイズと動画が唯一の訓練対象ではないことを考慮すると、強力な結果です。

環境設定: ハードウェアの最小要件は6 GB VRAM(RTX 3060)またはApple Silicon M2 8 GB、推奨は12-16 GB VRAM(RTX 4080)または16 GBシステムRAMです。ソフトウェアはPython 3.10+、Hugging Faceのv4.49.0-SmolVLM-2ブランチからのtransformers、torch、opencv-python、Pillow、numpy、num2words、accelerateなどが必要です。num2wordsは必須依存関係であり、欠けるとプロセッサのロード時にサイレントインポートエラーが発生します。

パイプラインの基盤:フレーム抽出器は動画ファイルをPIL画像のリストに変換し、タイムスタンプを添付します。均一サンプリングは全動画期間にわたってフレームを均等に分布させ、会議や講義に最適です。キーフレームサンプリングは視覚コンテンツが大幅に変化した場合にのみフレームを抽出し、監視やハイライト抽出に適しています。記事にはFrameExtractorクラスの完全なコード(uniform_sampleおよびkeyframe_sampleメソッド)が含まれています。

SmolVLM2のロードと単一フレーム推論:AutoModelForImageTextToTextクラスを使用し、CUDAではFlash Attention 2を有効にします。load_model関数とdescribe_frame関数が説明されており、チャットテンプレートは画像コンテンツをテキストコンテンツの前に配置する必要があり、トレーニングデータ形式と一致します。

ローカル動画要約パイプライン:SmolVLM2-2.2Bを使用したフレーム処理 | AI News Hub