Description
V-JEPA, ou Video Joint Embedding Predictive Architecture, est une base de code PyTorch officielle développée par Meta AI Research (FAIR) pour l'apprentissage auto-supervisé de représentations visuelles à partir de vidéos. Cette méthode se concentre sur l'apprentissage de représentations visuelles robustes en observant passivement des pixels vidéo issus de jeux de données tels que VideoMix2M. Contrairement aux modèles génératifs qui s'appuient sur la reconstruction de pixels, V-JEPA emploie un objectif de prédiction de caractéristiques non supervisé. Il ne nécessite pas d'encodeurs d'images pré-entraînés, de texte, d'exemples négatifs, d'annotations humaines ou de reconstruction au niveau du pixel, ce qui en fait une approche purement non supervisée.
Le cœur de la méthodologie de V-JEPA implique un prédicteur qui opère dans un espace latent, plutôt qu'un décodeur de pixels. Ce prédicteur fait des prédictions pour les régions manquantes d'une vidéo en se basant sur les parties observées. Pour visualiser ces prédictions, un modèle de diffusion conditionnel est utilisé pour décoder les prédictions de l'espace latent en pixels interprétables. De manière cruciale, lors de ce processus de décodage, les réseaux d'encodeur et de prédicteur V-JEPA pré-entraînés restent figés, garantissant que les représentations apprises sont préservées.
La base de code est structurée pour faciliter à la fois le pré-entraînement et l'évaluation. Les fichiers de configuration dans le répertoire `configs` spécifient les paramètres de l'expérience, permettant aux utilisateurs de personnaliser les chemins pour les logs, les checkpoints et les données d'entraînement. Le répertoire `app` contient les boucles d'entraînement, avec `main.py` pour le débogage local et `main_distributed.py` pour le lancement de l'entraînement distribué sur des clusters à l'aide d'outils comme submitit et SLURM. Le répertoire `evals` contient les scripts d'évaluation pour des tâches telles que la classification d'images et de vidéos, prenant également en charge l'exécution locale et distribuée.
La préparation des données implique la création de fichiers CSV pour les jeux de données vidéo, où chaque ligne spécifie le chemin absolu d'un fichier vidéo et une étiquette de classe entière (qui est ignorée pendant le pré-entraînement non supervisé mais utilisée pour les évaluations supervisées). Les jeux de données d'images sont préparés à l'aide de la classe standard PyTorch ImageFolder, nécessitant une structure de répertoire spécifique. Le projet fournit des modèles pré-entraînés, y compris des variantes ViT-L et ViT-H, ainsi que des sondes attentives pour diverses tâches en aval telles que K400, SSv2, ImageNet1K, Places205 et iNat21, démontrant la polyvalence des représentations apprises.
Fonctionnalités principales de V-JEPA
Apprentissage auto-supervisé à partir de vidéos utilisant l'architecture prédictive à joint-embedding (JEPA)
Objectif de prédiction de caractéristiques non supervisé dans l'espace latent
Aucune dépendance à la reconstruction au niveau du pixel ou aux annotations humaines
Représentations visuelles polyvalentes pour les tâches vidéo et image en aval
Base de code PyTorch officielle avec modèles et configurations fournis
Prend en charge l'entraînement et l'évaluation locaux et distribués
Inclut des modèles pré-entraînés (ViT-L, ViT-H) et des sondes attentives
Préparation flexible des données pour les jeux de données vidéo et image
La base de code inclut des scripts pour le pré-entraînement et l'évaluation
Visualisations via des modèles de diffusion conditionnels dans l'espace latent
Premiers pas avec V-JEPA
Cloner le dépôt : Obtenez la base de code V-JEPA depuis GitHub.
Installer les dépendances : Configurez un environnement Python (par exemple, en utilisant conda) et installez les paquets requis.
Configurer les expériences : Mettez à jour les chemins dans les fichiers de configuration du répertoire `configs` pour les données, les logs et les checkpoints.
Préparer les données : Formatez les jeux de données vidéo et image selon la structure CSV ou ImageFolder spécifiée.
Lancer le pré-entraînement : Exécutez le pré-entraînement local ou distribué en utilisant `app/main.py` ou `app/main_distributed.py`.
Lancer les évaluations : Exécutez les évaluations locales ou distribuées pour les tâches en aval en utilisant `evals/main.py` ou `evals/main_distributed.py`.
Utiliser les modèles pré-entraînés : Téléchargez et intégrez les modèles V-JEPA pré-entraînés fournis pour vos applications.
Cas d'utilisation de V-JEPA
- Apprentissage de représentations vidéo
- Classification d'images
- Classification vidéo
- Adaptation aux tâches en aval
- Recherche et développement
- Prédiction de caractéristiques








