SmolVLM リリースノート / 新機能
Hugging Faceは、効率性、速度、ローカルデプロイメントのために設計された2BパラメータのVision Language Model(VLM)であるSmolVLMをリリースしました。このモデルはフルオープンソースであり、すべてのチェックポイント、データセット、トレーニングレシピ、ツールがApache 2.0ライセンスの下でリリースされています。
モデルバリアントとエコシステム
SmolVLMは、異なるユースケースをサポートするために3つの異なるバージョンで提供されます:
- SmolVLM-Base: ダウンストリームファインチューニングのために設計されています。
- SmolVLM-Synthetic: 合成データでファインチューニングされたバリアントです。
- SmolVLM-Instruct: インタラクティブなエンドユーザーアプリケーションに備えたインストラクションチューニング済みバージョンです。
エコシステムには、transformers ライブラリへの統合、教師ありファインチューニングスクリプト、およびパブリックデモが含まれます。これらのモデルは、The CauldronとDocmatixというオープンソースデータセットを使用してトレーニングされました。
テクニカルアーキテクチャ
SmolVLMのアーキテクチャはIdefics3に基づいていますが、メモリと計算要件を削減するためのいくつかの最適化が導入されています:
- Language Backbone: Llama 3.1 8BをSmolLM2 1.7Bに置き換えます。
- Visual Compression: パッチ化された視覚情報を9x圧縮するピクセルシャッフル戦略を採用します(Idefics3では4x)。
- Image Patching: 364x364の代わりに384x384パッチを使用します(ピクセルシャッフル戦略のため3で割り切れます)。
- Vision Backbone: 384x384パッチと14x14の内部パッチを持つシェイプ最適化されたSigLIPを利用します。
パフォーマンスと効率
ベンチマーク
SmolVLMは、他の2Bクラスモデルよりもはるかに低いメモリフットプリントを維持しながら、いくつかのマルチモーダルベンチマークで競争力のあるパフォーマンスを示します:
| モデル | MMMU (val) | MathVista (testmini) | MMStar (val) | DocVQA (test) | TextVQA (val) | 最小GPU RAM (GB) |
|---|---|---|---|---|---|---|
| SmolVLM | 38.8 | 44.6 | 42.1 | 81.6 | 72.7 | 5.02 |
| Qwen2-VL 2B | 41.1 | 47.8 | 47.5 | 90.1 | 79.7 | 13.70 |
| InternVL2 2B | 34.3 | 46.3 | 49.8 | 86.9 | 73.4 | 10.52 |
| PaliGemma 3B | 34.9 | 28.7 | 48.3 | 32.2 | 56.0 | 6.72 |
| moondream2 | 32.4 | 24.3 | 40.3 | 70.5 | 65.2 | 3.87 |
メモリとスループット
SmolVLMは画像エンコードにおいて高い効率を示し、各384x384画像パッチをわずか81トークンに変換します。単一の画像とプロンプトに対して、SmolVLMは約1.2kトークンを使用し、それに対しQwen2-VLは16kトークンを使用します。この効率により、以下が得られます:
- RAM削減:
transformersにおける既存のVLMスイートの中で最も低いメモリ使用量。 - スループット向上: プリフィルスループットはQwen2-VLより3.3〜4.5倍速く、生成スループットは7.5〜16倍速くなります。
ビデオ分析
SmolVLMは、最大50フレームの均等にサンプリングされたフレームを抽出することで、基本的なビデオ分析に使用できます。CinePileベンチマークのテストでは、27.14%のスコアを達成し、そのパフォーマンスはInternVL2 (2B)とVideo LlaVa (7B)の間に位置します。
トレーニングとファインチューニング
コンテキスト拡張
複数の画像と長いシーケンスをサポートするため、SmolLM2のプリトレーニングコンテキストウィンドウは16kトークンに拡張されました。これは、RoPEベース値を10kから273kに増加させ、長コンテキスト(Dolmaの書籍とThe Stackのコード)と短コンテキスト(FineWeb-Edu、DCLM、および数学データセット)の混合データでファインチューニングすることによって達成されました。
チェックポイント選択
最適なチェックポイントは、MMMU、MMStar、DocVQA、TextVQA、MathVista、AI2D全体での重み付きメトリックを使用して選択されました。チームは、一般的なパフォーマンスは通常より多くのトレーニングで向上するものの、DocVQAでのパフォーマンスは時間とともに低下する傾向があることに言及しました。
カスタマイズ
SmolVLMは、transformers とTRLライブラリを使用してファインチューニングできます。提供されるノートブックでは、LoRAまたはQLoRAを使用してVQAv2データセットでのファインチューニングが示されています。8ビットローディングとグラディエントチェックポイントを使用すると、コンシューマーGPU(例えばL4)で約16GBのVRAMを使用してモデルをファインチューニングできます。