CoreNet : bibliothèque pour l’apprentissage de réseaux neuronaux profonds
(github.com/apple)Présentation de CoreNet, un framework de deep learning développé par Apple
- CoreNet est un framework de deep learning développé par Apple, capable d’entraîner des modèles à grande échelle standard ou nouveaux sur diverses tâches
- Prise en charge de tâches comme les Foundation Models (CLIP, LLM), la classification d’objets, la détection d’objets, la segmentation sémantique, etc.
- La récente mise à jour v0.1.0 inclut notamment OpenELM, CatLIP et des exemples MLX
Résultats de recherche d’Apple obtenus avec CoreNet
- OpenELM : un Language Model efficace et open source, pouvant être entraîné et utilisé en inférence
- CatLIP : atteint des performances de niveau CLIP avec un préentraînement 2,7 fois plus rapide sur des données image-texte à l’échelle du Web
- FastVit : un Vision Transformer hybride rapide exploitant la reparamétrisation structurelle
- Bytes Are All You Need : un Transformer opérant directement au niveau des octets des fichiers
- MobileOne : un réseau backbone mobile avec une latence de 1 ms
- RangeAugment : une technique efficace d’augmentation en ligne exploitant le Range Learning
- MobileViT : un Vision Transformer léger pensé pour les environnements mobiles
- Présentation de nombreux autres résultats de recherche
Installation et configuration de l’environnement de développement
- Installation de Git LFS requise (nécessaire pour les tests, l’exécution des notebooks Jupyter et les contributions)
- Sous Linux, Python 3.10+ et PyTorch v2.1.0+ sont recommandés
- Sous macOS, Python 3.9+ suffit
- Les paquets de dépendances optionnels sont nécessaires pour contribuer ou exécuter les tests
- Explications détaillées sur les méthodes d’installation sous Linux et macOS, ainsi que sur l’installation des paquets pour le traitement audio/vidéo
Structure des répertoires de CoreNet
tutorials: exemples d’introduction- Entraîner un modèle depuis zéro sur un nouveau jeu de données
- Guide pour l’entraînement multi-nœuds avec SLURM
- Exemples pour CLIP, la segmentation sémantique et la détection d’objets
projects: fournit des recipes d’entraînement par tâche ainsi que des poids préentraînés et des checkpointsREADME.mdcontient la documentation, les liens vers les poids préentraînés et les informations de citation- Les fichiers
<task_name>/<model_name>.yamlfournissent des configurations reproductibles d’entraînement/évaluation
mlx_example: exemples pour exécuter efficacement les modèles CoreNet sur Apple Siliconcorenet/modeling/models: implémentations de modèles organisées par tâche- Utilisation de décorateurs pour définir le nom de la tâche et du modèle
- Explication de la manière de spécifier la classe de modèle à utiliser dans les fichiers de configuration YAML
corenet/data/datasets: jeux de données organisés par tâche- Explication d’autres répertoires d’implémentation de classes référencés dans les configurations YAML
loss_fn,metrics,optims,data, etc.
Informations sur le projet CoreNet
- Le développement a été initié par Sachin ; aujourd’hui, la maintenance est assurée par Sachin, Maxwell Horton, Mohammad Sekhavat et Yanzi Jin
- Les contributions de la communauté via Pull Request sont les bienvenues. Voir la documentation de contribution.
- CoreNet est un projet issu de l’évolution de CVNets, étendu au-delà de la vision pour prendre en charge l’entraînement de Foundation Models comme les LLM
Avis de GN⁺
-
CoreNet semble être un framework de deep learning complet couvrant les modèles SOTA les plus récents. En plus de fournir les implémentations des modèles SOTA, il propose aussi les pipelines d’entraînement, ce qui devrait faciliter la reproduction des résultats de recherche existants.
-
S’agissant d’un framework développé par Apple, on peut s’attendre à une exécution optimisée sur les appareils Apple Silicon. Les exemples MLX permettent notamment d’entrevoir les pistes d’optimisation sur Apple Silicon.
-
Sa capacité à prendre en charge non seulement les tâches de vision, mais aussi l’entraînement de Foundation Models comme les LLM, constitue un point distinctif. Cela dit, la version actuellement publiée est la 0.1.0, ce qui donne l’impression d’un projet encore à un stade initial. Les futurs plans de mise à jour et la feuille de route suscitent la curiosité.
-
En tant que framework basé sur PyTorch, il devrait pouvoir tirer parti des nombreuses fonctionnalités de l’écosystème PyTorch. En revanche, au vu de la structure actuelle du projet, l’interopérabilité avec d’autres frameworks semble difficile.
-
Il serait souhaitable qu’une fonction d’export de modèles via ONNX ou TorchScript soit proposée. Il pourrait aussi être intéressant d’envisager des passerelles avec l’écosystème Apple, comme la conversion vers CoreML lors du développement d’applications iOS et macOS.
1 commentaires
Commentaire Hacker News
default_trainer.pyde CoreNet, on voit qu’il utilise les tenseurs de PyTorch mais implémente sa propre méthode d’entraînement. Il implémente son propre planificateur de LR et son propre optimiseur, et l’appelant peut utiliser Adam de PyTorch de manière optionnelle.