コース進捗 コース目次 34レッスン中 34件を公開中
第0部―まず地図を広げる
第1部―簡単な目的で、なぜ動画が分かるのか
第2部―一本の動画を一台のエンコーダーへ
第3部―実験を読めてこそ、論文を読んだと言える
第4部―公式リポジトリから自分の実験へ
第5部―表現を世界モデル構想へ戻す
付録―必要なときに開く技術リュック
リポジトリを五つの引き出しへ
- README入口と範囲
- main.py部品をつなぐ
- module.pyエンコーダーと SIGReg
- data/長編から動画窓
- conf/実験設定
先に引き出しへラベルを貼る
「動画を見られる工具箱」を開けても、いきなりねじは回しません。main.py は主電源、module.py は中核、data/loader.py は材料係、conf/ は設定表です。故障したとき、闇雲に全部を触らず、正しい引き出しから調べられます。
動く main より固定住所
本シリーズが確認したリポジトリの HEAD は、**2026-09-05時点でもコミット 3ea0dda**です。次で同じコードへ戻れます。
git clone https://github.com/MLO-lab/LeVJEPA.git
cd LeVJEPA
git checkout 3ea0dda16030bc0fd6472bf809fc0a0ad836a812
git rev-parse HEAD
uv sync
最後の出力が完全なハッシュと一致することを確認します。Python 3.12+ が必要で、uv.lock が依存を固定します。データ構築は uv sync --extra data、二つのノートブックは uv sync --extra notebook。Python パッケージではないため、コマンドはリポジトリ最上位から実行します。
main.py はデータ読み込み器、共有エンコーダー、投影器、SIGReg、最適化器、Lightning の学習器を組み立てます。module.py は ViT、無作為トークン削減、RoPE、ブロック因果マスク、投影器、SIGReg を定義します。data/loader.py は Lance から動画窓を取り、一つの大域と複数の局所視点を作ります。callbacks.py は重み減衰スケジュールと評価専用 EMAを扱います。conf/config.yaml は Hydra の既定設定、conf/data/ はデータの場所、scripts/ は取得と変換、slurm/ は計算クラスタの入口です。training_workshop.ipynb は小モデルで学習をほどき、feature_visualization.ipynb は公開重みのパッチ特徴を見せます。
最初のコード読解は一本に絞ります。main() → build_video_loader()。変換後は大域 [B,T,C,H,W]、局所 [B,V,T,C,H,W]。multiview_forward() が [B,C,T,H,W] へ移し、局所視点を標本軸へ畳み、共有エンコーダーの0番、つまり [CLS] だけを取ります。投影器後に視点 MSE と 0.02 × SIGReg。この道にブレークポイントを置けば、データ整合、エンコーダー、損失のどこが壊れたか分けられ、大域側に .detach() がないことも見えます。
ノートブックは学習入口であって論文評価スクリプトではありません。実習版は小型モデル、少フレーム、高い保持率へ縮小します。特徴ノートブックは凍結特徴の可視化です。変更値を実験記録へ残し、教材出力を大見出しに掲げる再現と呼びません。paper.md は原稿の複製で TODO が残ることもあるため、正式な主張は arXiv v1 と公開ページへ戻って照合します。
ライセンスはファイルごとに確認します。リポジトリ本体は MIT ですが、Meta V-JEPA を改変した module.py は CC BY-NC 4.0、公開モデル重みも同じです。依存物と Walking Tours のリンク先動画にも別条項があります。最上位の MIT だけで商用可能とは判断できません。
最初の二コマンド
チェックアウト直後の git status --short は空のはずです。続いて:
uv run python -c "from module import SIGReg, vit_tiny; print('imports ok')"
imports ok は環境と読み込みの確認にすぎず、学習結果の証明ではありません。
地図の原本
三枚の道標
- 再現ではコミット全長を固定し、「最新 main」だけを書きません。
main.pyは組み立て、module.pyは中核計算、conf/は変更可能な設定です。- 全ファイルが MIT ではなく、中核改変ファイルと重みは非商用 CC BY-NC 4.0 です。
地図を閉じる前に
- 完全なコミットハッシュを記録する理由は。
- EMA はどのファイル群にあり、目標エンコーダーですか。
- 最上位に MIT があれば重みも商用にできますか。
答え
- コード、設定、結論へ正確に戻るためです。
callbacks.py。評価重みの平均で、学習目標ではありません。- 判断できません。
module.pyと公開重みは CC BY-NC 4.0 で、データ/依存物も別途確認します。