DINOv3: 自己教師あり学習による汎用ビジョン基盤モデル

高精度なAIモデルの構築には、大量かつ高品質な手動アノテーションが不可欠ですが、これは時間、コスト、労力の大きなボトルネックとなっています。特に医療画像や衛星画像のような特殊なドメインでは、ラベリングが極めて困難です。

近年、大規模言語モデル(LLM)の成功が示すように、人間による監視なしに自律的に学習する自己教師あり学習(SSL)が、この課題を克服する強力なパラダイムとして注目されています。Meta AIが発表したDINOv3は、このSSLを画像認識分野で前例のない規模にスケールアップした画期的なモデルであり、ラベルなしデータのみで学習しながら、多岐にわたるビジョンタスクで既存のSOTA(State-of-the-Art)モデルを凌駕する性能を実現しています。

本稿では、DINOv3のコア技術や応用例について解説します。

DINOv3とは?

高精度なAIモデル構築には、大量かつ高品質な手動アノテーションデータが不可欠でしたが、これは時間、コスト、労力といった点で大きなボトルネックとなっていました。特に医療画像や衛星画像といった特殊なドメインでは、ラベリングの困難さが顕著です。このような課題を克服し、AIモデルが人間による介入なしに自律的に学習する強力なパラダイムとして注目されているのが、自己教師あり学習 (Self-Supervised Learning: SSL) です。

SSLの核となる概念は、データそのものが学習のための「教師信号」を生成する点にあります。モデルは、生のピクセルデータから直接学習し、画像内に存在する自然なパターンや共起関係を活用します。例えば、SSLでは「画像の一部を隠し、その残りの部分から隠された領域を予測する(インペインティング)」といった疑似タスク、あるいは「同じ画像を異なる視点やズームレベルで提示し、その特徴の一貫性を確認する」という疑似タスクを通じて、視覚的表現を自律的に学習します。DINOv3は、画像レベルの理解を促す目的とパッチレベルの潜在再構築目的を組み合わせることで、より豊かな視覚特徴の学習を実現しています。

なぜSSLがビジョンモデルの未来を拓く鍵となるのでしょうか。その理由は、主に以下の点に集約されます。

  • データスケーリングの容易さ: SSLは高価な手動アノテーションやメタデータを必要としません。これにより、事実上無制限に存在する膨大な画像コレクションからモデルが学習可能となり、訓練に必要な時間、コスト、リソースを劇的に削減します。アノテーションが不足している、あるいは不可能なドメインでの応用を可能にします。
  • 汎用性と堅牢性: SSLで訓練されたモデルは、特定のタスクに特化しないため、非常に多用途で堅牢な汎用特徴(generalist features)を生成します。入力データの分布変化にも強靭な耐性を示し、画像分類からセマンティックセグメンテーション、奥行き推定に至るまで、多岐にわたるタスクやドメインで強力なパフォーマンスを発揮します。
  • DINOv3の先進性: Meta AIが開発したDINOv3は、先行モデルであるDINOv2の成功を基盤とし、その規模をさらに拡大しました。DINOv2は11億パラメータ、1.42億枚の画像で学習されましたが、DINOv3はモデルサイズを約7倍の70億パラメータ、訓練データ量を約12倍の17億枚にまでスケールアップしています。この前例のない規模でのスケールアップにより、DINOv3はラベルなしデータのみで学習しながら、多岐にわたるビジョンタスクにおいて、既存の専門化された最先端モデルをファインチューニングなしで凌駕するという画期的な性能を実現しました。
図1. (a) SSL技術はここ数年でImageNet精度のSOTAに到達 (b) DINOv3はWSLを大きく超える性能を示す (c) 自然画像で学習したDINOv3の特徴マップ (d) 航空画像で学習したDINOv3の特徴マップ

DINOv3のコア技術

DINOv3のSOTA(State-of-the-Art)は、主に3つのシンプルながらも極めて効果的な戦略によって実現されています。

スケールアップとデータキュレーション

DINOv3は、その前身であるDINOv2と比較して、モデルとデータの規模を桁違いに拡大しました。

  • モデル規模の飛躍的拡大: DINOv2が約11億パラメータであったのに対し、DINOv3は約70億パラメータのモデルを訓練しています。これは約7倍の規模拡大に相当します。Vision Transformer (ViT) アーキテクチャのカスタムバリアントを導入することで、この大規模モデルの訓練を可能としています。
  • データ規模の拡大: 訓練データ量は、DINOv2の約1億4200万枚に対し、DINOv3では約17億枚に達し、約12倍に増加しています。
  • データキュレーション: 単純なデータ量の増加だけでなく、データの品質と多様性を重視したキュレーション手法が採用されています。Metaは、Instagramの公開投稿から得られた約170億枚の画像プールから、以下の二つの補完的なアプローチを組み合わせて、大規模データセット「LVD-1689M」を構築しました。
    • 階層的k-meansに基づく自動キュレーション: 広範な視覚的概念をバランス良くカバーするために、DINOv2を画像埋め込みとして用いた階層的k-meansクラスタリング手法を適用しています。
    • リトリーバルベースの手法: 特定のダウンストリームタスクに関連する視覚的概念を網羅するため、選択されたシードデータセットに類似する画像を大規模データプールから取得する手法が用いられています。
  • 訓練の安定性向上: DINOv2で採用されていた複数のコサインスケジュールを廃止し、定数(constant)の学習率(learning rate)、重み減衰(weight decay)、教師指数移動平均(Exponential Moving Average: EMA)モーメンタムを用いることで、訓練の複雑性を軽減し、性能が向上し続ける限り訓練を継続できる体制を確立しました。
  • Positional Embeddings(位置埋め込み)の改善: DINOv3は、現代的なaxial RoPE (Rotary Positional Embeddings)RoPE-box jitteringを導入しています。これにより、多様な入力解像度やアスペクト比に対するモデルの頑健性(robustness)が大幅に向上し、詳細で堅牢な視覚特徴の学習を可能にしています。

Gram Anchoring

大規模モデルを長時間にわたり訓練する際に、グローバルな認識性能は向上する一方で、高解像度におけるパッチレベルの密な特徴マップ(dense feature maps)の品質が劣化し、ノイズが増加するという未解決の課題が存在していました。これは、高レベルの意味的理解の目的と密な特徴マップの品質保持という目的が相反するため発生する現象です。

この問題に対し、DINOv3はGram Anchoringという新しいアプローチを提案しました。

  • Gram Anchoringのメカニズム: この手法は、画像を構成するパッチ特徴間の「Gram行列」(すべてのパッチ間のペアワイズドット積の行列)に着目します。訓練の初期段階で得られた「Gram教師」モデル(まだ密な特徴が鮮明な状態)のGram行列を目標と定め、訓練中の学生モデルのGram行列がこの目標に近づくように制約をかけます。このアプローチの画期的な点は、特徴量そのものを直接的に束縛するのではなく、パッチ間の類似性構造の一貫性(consistency)を維持する点にあります。
  • 効果: Gram Anchoringを適用することで、長時間訓練しても密な特徴マップの品質を効果的に維持し、ノイズの発生を抑制します。これにより、特に高解像度画像の詳細な特徴抽出において、大幅な性能向上が実現されました。Gram Anchoringは、高レベルなセマンティックタスクと、奥行き推定や3Dマッチングのような幾何学的タスクの両方で優れたモデルを生成することを可能にしています。

様々な解像度へのシームレスな適応

DINOv3は、訓練の最終段階で「高解像度適応ステップ(high-resolution adaptation step)」を導入しています。

  • 適応ステップの詳細: このステップでは、異なる解像度の画像ペア(グローバルクロップとローカルクロップ)を混合してサンプリングし、訓練を行います。この適応ステップにもGram Anchoringが不可欠な要素として組み込まれており、高解像度入力の複雑さが増す中でも、モデルが空間的な位置間で一貫性のある堅牢な特徴相関を維持することを促します。
  • 効果: この比較的短期間ながらも的を絞った高解像度訓練により、DINOv3モデルは訓練時の最大解像度(256ピクセル)をはるかに超えて、4096×4096ピクセルといった非常に高い解像度でも鮮明で意味のある特徴マップを生成できるようになります。これにより、実際の様々なアプリケーションにおいて、DINOv3の汎用性と実用性が大きく向上しています。
図2. DINOv3 による高解像度(4096×4096)の特徴マップを可視化。赤い十字のパッチと他の領域との類似度を示す。

DINOv3モデルファミリー

DINOv3は、単一の強力なモデルだけでなく、様々な計算リソースやデプロイシナリオに対応する柔軟なモデルスイートとして提供されています。これは主に知識蒸留テキストアラインメントという2つの手法によって実現しています。

知識蒸留による実用的なモデル群の提供

約70億パラメータを持つDINOv3基幹モデルは強力な性能を発揮しますが、多くの実用アプリケーションでは計算コストが高すぎます。そこでMetaは、この巨大な教師モデルの知識を、より小型で効率的なモデル群に蒸留しました。

蒸留されたモデル群は、以下の表に示すように、Vision Transformer (ViT) の各サイズ (S, B, L, H+)ConvNeXtベースのアーキテクチャ (T, S, B, L) で提供され、様々なリソース制約やユースケースに対応します。

モデルタイプアーキテクチャパラメータ数事前学習データセット
教師モデルViT-7B/166,716MLVD-1689M (ウェブ画像)
蒸留モデル (ViT)ViT-S/1621MLVD-1689M
ViT-S+/1629MLVD-1689M
ViT-B/1686MLVD-1689M
ViT-L/16300MLVD-1689M
ViT-H+/16840MLVD-1689M
蒸留モデル (ConvNeXt)ConvNeXt Tiny29MLVD-1689M
ConvNeXt Small50MLVD-1689M
ConvNeXt Base89MLVD-1689M
ConvNeXt Large198MLVD-1689M
衛星画像向けモデルViT-L/16300MSAT-493M (衛星画像)
ViT-7B/166,716MSAT-493M

この蒸留プロセスには、効率的な「Multi-student蒸留パイプライン」が採用されています。このパイプラインは、複数の学生モデルを同時に訓練し、教師モデルの推論コストを全てのGPUノードで共有することで、蒸留プロセス全体の計算効率と速度を大幅に向上させます。なお、蒸留プロセスではパッチレベルの一貫性の問題が観察されないため、Gram Anchoring技術は適用されません。

テキストアラインメント (dino.txt)

DINOv3モデルは、別途訓練されたテキストエンコーダーとアラインメント(dino.txt)することで、ゼロショット分類オープンボキャブラリーセグメンテーションといったマルチモーダルタスクにも対応可能となります。

このアプローチは、画像とテキスト間のグローバルなアラインメントだけでなく、Average Poolingされたパッチ埋め込みとCLSトークンを結合する工夫により、パッチレベルの局所的な対応関係も学習します。これにより、より詳細で高精度な視覚-言語理解が実現され、特に高密度予測タスクにおいて顕著な性能向上が見られます。DINOv3を用いたdino.txtは、以前のバージョンと比較して全ベンチマークで大幅に性能が向上しています。

DINOv3の応用

DINOv3は、自己教師あり学習をベースに訓練されているため、様々なコンピュータービジョン系のアプリケーションに応用できます。

  • ベンチマークにおける卓越した性能:
    • 高密度予測タスク:
      • 物体検出 (COCO, COCO-O): DINOv3は、フリーズバックボーンとPlain-DETRデコーダーの組み合わせでSOTA性能を達成。これにより、単一のバックボーンが複数のタスクをサポートし、推論コストを大幅に削減できるという実用的な利点が生まれます。
      • セマンティックセグメンテーション (ADE20k, Cityscapes, VOC): Mask2Formerのような軽量デコーダーと組み合わせることで、SOTAに匹敵する性能を発揮します。DINOv3の高品質な密な特徴マップは、ピクセルレベルの正確な予測を可能にします。
      • 単眼深度推定 (NYUv2, KITTIなど): Depth Anything V2のパイプラインにDINOv3を組み込むことで、フリーズバックボーンでも新たなSOTAを樹立しています。
      • 3D理解 (NAVI, SPair, VGGT): DINOv3の密な特徴は、3Dキーポイントマッチングやカメラ姿勢推定、マルチビュー深度推定といった3D関連タスクでも強力な性能向上をもたらします。
    • グローバルな画像理解タスク:
      • 画像分類 (ImageNet-1k, ObjectNetなど): 従来、教師あり学習モデルの強みであった分野で、DINOv3は弱教師ありモデル(SigLIP 2, PE)に匹敵するか、一部で凌駕する性能(ImageNet-Cでの堅牢性など)を達成しています。
      • インスタンス認識 (Oxford-H, Paris-Hなど): インスタンスレベルの画像検索タスクにおいて、DINOv3が圧倒的なSOTA性能を達成しています。
  • 実世界での多様な応用例:
    • 環境モニタリングWorld Resources Institute (WRI) がDINOv3を活用し、衛星画像から森林破壊を監視し、樹冠高さマッピングの精度を大幅に向上させています(例:ケニアの樹冠高さ測定誤差を4.1mから1.2mに削減)。
    • ロボット工学NASAのジェット推進研究所 (JPL) が火星探査ロボットにDINOv2を活用しており、DINOv3によって最小限の計算量で複数の視覚タスクを可能にします。
    • 医療・ライフサイエンスOrakl Oncology がDINOをオルガノイド画像の前訓練に利用し、がん治療反応予測に役立てています。また、組織病理学、内視鏡検査、医療画像処理など、ラベル付けが困難な分野での診断・研究にも貢献します。
    • 地理空間データ:ウェブ画像で訓練されたモデルに加え、衛星画像特化のDINOv3 7Bモデル(SAT-493Mデータセットで訓練)も提供され、樹冠高さ推定、分類、セグメンテーションなど、地球観測タスクでSOTA性能を達成しています。RGB入力のみでも、多バンドを利用する既存のSOTAモデルを凌駕する成果を出しています。

DINOv3の使い方

ここでは、DINOv3モデルを実際に利用するための準備と基本的なコード例を紹介します。DINOv3モデルは、PyTorch HubおよびHugging Face Transformersライブラリを通じて提供されています。

DINOv3を使うための準備

DINOv3を利用するには、まず必要なライブラリをインストールする必要があります。

PyTorchは、DINOv3モデルをロードするために必須の依存関係です。特に、CUDAをサポートするPyTorchのインストールが推奨されます。

# PyTorchのインストール
$ pip install torch torchvision

DINOv3のバックボーンはHugging Face Hubで利用可能であり、Hugging Face Transformersライブラリを通じてサポートされています。最新のDINOv3モデルに対応するためには、PyPIで提供されている安定版ではなく、GitHubリポジトリから直接インストールすることで、最新の機能とモデル定義を利用できます

# transformers (pipで提供されたバージョンではDINOv3を認識できない可能性があり、最新版を推奨)
$ pip install git+https://github.com/huggingface/transformers.git

flash-attnは、Transformerモデルの推論を高速化し、特に大規模な入力やモデルにおいてメモリ効率を向上させるためのオプションのライブラリです。必須ではありませんが、DINOv3のような大規模な視覚モデルのパフォーマンスを最適化するために推奨されます

# Flash-Attention (オプション: 推論速度向上とメモリ効率化のため)
$ pip install flash-attn --no-build-isolation

DINOv3モデルのロードと特徴抽出

DINOv3モデルを利用して画像の特徴を抽出する基本的なPythonコードは以下の通りです。Hugging Face Transformersのpipeline機能を使用することで、手軽にモデルをロードし推論を実行できます。

from transformers import pipeline
from transformers.image_utils import load_image

url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
image = load_image(url)

feature_extractor = pipeline(
    model="facebook/dinov3-convnext-tiny-pretrain-lvd1689m",
    task="image-feature-extraction",
)
features = feature_extractor(image)
print(features)

このコードは、指定されたURLから画像をロードし、facebook/dinov3-convnext-tiny-pretrain-lvd1689m というDINOv3のConvNeXt Tinyモデルを使用して画像から特徴を抽出します。pipelineは、モデルのロードから前処理、推論までを一貫して処理する便利なインターフェースを提供します。

より詳細な制御やモデルの直接的なロードには、Hugging Face TransformersのAutoImageProcessor.from_pretrainedAutoModel.from_pretrained クラスを組み合わせて使用することも可能です。

おわりに

DINOv3は、自己教師あり学習の比類なきスケーリングと、密な特徴マップの劣化を克服するGram Anchoringという革新的な技術により、視覚モデルの学習方法に革命をもたらしました。これはMLエンジニアにとって多大な意義を持ちます。手動アノテーションが不要となり、膨大なラベルなしデータから学習可能であるため、データ準備の手間とコストを大幅に削減できます。

また、フリーズしたバックボーンが多様な下流タスクで最先端の性能を発揮するため、特定のタスクごとのファインチューニングが不要になり、開発コストを低減します。さらに、単一のバックボーンで複数のアプリケーションを同時にサポートすることで、推論コストも削減可能です。これにより、これまでアノテーションが現実的でなかった医療や衛星画像といった分野でも、高精度なビジョンAIの構築が可能になります。

DINOv3はビジョン基盤モデルの新たな標準を確立し、コンピュータービジョン分野におけるさらなる進歩の道を開くものです。Meta AIは、DINOv3の訓練コードと事前学習済みバックボーンを商用ライセンスの下で公開しており、コミュニティによるさらなるイノベーションを期待しています。DINOv3のモデルやコードは、GitHubやHugging Face Hubで入手可能です。

More Information