Qu'est-ce que Fastai ?
Fastai est une bibliothèque de deep learning open source sur PyTorch, conçue pour démocratiser l’IA en rendant le développement et le déploiement de réseaux neuronaux faciles et accessibles.
Composants principaux de Fastai
1. Bibliothèque Fastai
La bibliothèque Fastai est construite au-dessus du framework PyTorch et vise à rendre le deep learning plus accessible. Elle fournit une API de haut niveau qui abstrait de nombreuses complexités associées au deep learning, permettant aux utilisateurs de se concentrer sur les tâches applicatives plutôt que sur les détails de programmation complexes. Cette abstraction est réalisée grâce à une conception d’API en couches, offrant à la fois des composants de haut et de bas niveau pour diverses tâches de deep learning. Les fonctionnalités de la bibliothèque couvrent la vision, le traitement de texte, les données tabulaires et le filtrage collaboratif.
Fastai v2 représente une réécriture complète visant à améliorer la vitesse, la flexibilité et la facilité d’utilisation. Elle s’appuie sur des bibliothèques fondamentales comme fastcore et fastgpu, qui soutiennent les composants de haut niveau de Fastai et sont utiles pour de nombreux programmeurs et data scientists.
2. API en couches
L’API en couches de Fastai est structurée pour répondre aux besoins de différents utilisateurs — des débutants aux chercheurs avancés. L’API de haut niveau offre des fonctions prêtes à l’emploi pour entraîner des modèles dans plusieurs domaines, y compris la vision, le texte, les données tabulaires et le filtrage collaboratif. Ces fonctions sont dotées de valeurs par défaut pertinentes qui simplifient le processus de construction des modèles. L’API de niveau intermédiaire fournit les méthodes de base pour le deep learning et le traitement de données, tandis que l’API de bas niveau propose des primitives optimisées pour le développement de modèles personnalisés.
Un aspect clé de l’architecture en couches de Fastai est sa capacité à exprimer les schémas sous-jacents communs à de nombreuses techniques de deep learning et de traitement de données via des abstractions découplées. Cela est rendu possible grâce au dynamisme de Python et à la flexibilité de PyTorch, permettant un équilibre entre facilité d’utilisation, flexibilité et performances.
3. Formation “Practical Deep Learning for Coders”
Fastai propose un MOOC gratuit intitulé « Practical Deep Learning for Coders ». Ce cours offre une expérience pratique du deep learning, ne nécessitant que des connaissances en Python en prérequis. Il couvre divers sujets du deep learning tels que la classification d’images, le traitement du langage naturel et les réseaux antagonistes génératifs (GAN), avec un accent sur les applications concrètes. Le cours est complété par le livre « Deep Learning for Coders with Fastai and PyTorch », qui approfondit les applications de l’IA sans nécessiter de doctorat.
Fonctionnalités clés de Fastai
1. API de haut niveau
L’API de haut niveau de Fastai simplifie l’entraînement des modèles de deep learning en intégrant l’architecture, les données et l’optimisation dans un système cohérent. Elle sélectionne automatiquement les fonctions de perte et les algorithmes d’optimisation appropriés, réduisant ainsi les risques d’erreur utilisateur. Cette API est particulièrement utile pour les débutants et ceux qui souhaitent appliquer des méthodes existantes de deep learning sans s’immerger dans la complexité du code sous-jacent.
2. Apprentissage par transfert
L’un des points forts de Fastai est son support de l’apprentissage par transfert, qui permet d’entraîner rapidement et efficacement des modèles en s’appuyant sur des réseaux pré-entraînés. Fastai optimise ce processus grâce à des techniques telles que la normalisation par lot, le gel de couches et les taux d’apprentissage discriminants. Ces techniques accélèrent l’apprentissage et améliorent les performances des modèles sur différentes tâches.
3. API Data Block
L’API data block est un système flexible pour définir les pipelines de traitement des données. Elle permet aux utilisateurs de spécifier les sources de données, les transformations et les mécanismes de chargement de manière modulaire. Cette API est essentielle pour gérer des jeux de données complexes et garantir une préparation correcte des données pour l’entraînement des modèles. Elle assure une approche cohérente dans différents domaines, facilitant l’application du deep learning à divers types de données.
4. Système de callback bidirectionnel
Fastai introduit un nouveau système de callback bidirectionnel offrant des hooks dans la boucle d’entraînement, permettant des modifications dynamiques des données, des modèles ou des optimisateurs à tout moment de l’entraînement. Ce système améliore la flexibilité et la personnalisation du processus d’entraînement des modèles, permettant la mise en œuvre d’approches innovantes avec un minimum de code.
5. Open source et animé par la communauté
Fastai est un projet open source hébergé sur GitHub, sous licence Apache 2.0. Elle bénéficie d’une communauté dynamique de développeurs et de chercheurs qui contribuent à son développement continu. Le caractère open source de la bibliothèque garantit aux utilisateurs l’accès aux techniques les plus pointues et la possibilité de contribuer à son évolution. La communauté Fastai constitue également une source d’apprentissage collaboratif et de soutien pour les utilisateurs du monde entier.
Cas d’utilisation et applications
Vision
Fastai simplifie le développement de modèles de vision par ordinateur avec peu de code. Par exemple, un modèle ImageNet peut être adapté à un jeu de données spécifique, tel que le jeu Oxford IIT Pets, atteignant une grande précision en quelques lignes de code. L’intégration de la bibliothèque avec PyTorch permet aux utilisateurs de profiter facilement des architectures et techniques les plus avancées.
Texte
Fastai est équipée d’outils pour le traitement du langage naturel (NLP), permettant des tâches telles que l’analyse de sentiment, la classification de texte et la modélisation de langage. Son intégration avec PyTorch permet d’utiliser des architectures NLP modernes et de développer des modèles de langue robustes capables de comprendre et de générer du langage humain.
Données tabulaires
Fastai propose des composants pour le traitement des données tabulaires, prenant en charge des tâches comme la régression et la classification. Son API data block est particulièrement utile pour la transformation et le chargement de jeux de données tabulaires, garantissant un traitement efficace et précis des données lors de l’entraînement. Cette fonctionnalité est essentielle pour des applications en analytique business, santé ou finance, où les données tabulaires sont courantes.
Filtrage collaboratif
Le filtrage collaboratif est un autre domaine où Fastai excelle, offrant des outils pour construire des systèmes de recommandation. L’API de haut niveau de la bibliothèque simplifie la création et l’évaluation de modèles de filtrage collaboratif, facilitant le développement de recommandations personnalisées pour les utilisateurs selon leurs préférences et comportements.
Déploiement
Fastai prend en charge le déploiement de modèles entraînés en production, permettant aux développeurs d’intégrer aisément les capacités de l’IA dans des applications. L’approche pragmatique de la bibliothèque garantit que les considérations de déploiement sont prises en compte dès le départ, offrant des solutions efficaces et évolutives pour des applications réelles.
Fastai dans les publications scientifiques
Fastai est une bibliothèque de deep learning conçue pour fournir des composants de haut niveau permettant aux praticiens d’atteindre rapidement et facilement des résultats de pointe dans les domaines classiques du deep learning. En même temps, elle offre des composants de bas niveau pour que les chercheurs puissent concevoir de nouvelles approches sans sacrifier la facilité d’utilisation, la flexibilité ou les performances. Cette double capacité est rendue possible par une architecture soigneusement structurée qui exploite le dynamisme de Python et la flexibilité de PyTorch. La bibliothèque introduit plusieurs innovations, dont un système de dispatch par type pour Python, une bibliothèque de vision par ordinateur optimisée GPU, un optimiseur qui simplifie les algorithmes d’optimisation modernes, et un nouveau système de callback bidirectionnel. Fastai a permis de créer un cours complet sur le deep learning et est largement utilisée dans la recherche, l’industrie et l’enseignement. Pour plus de détails, vous pouvez consulter l’article sur arXiv.
Exemple en agriculture :
Dans le domaine agricole, Fastai a été utilisée efficacement pour construire un modèle de classification de maladies des plantes à partir d’un jeu d’images de feuilles de pommier. En utilisant un modèle ResNet34 pré-entraîné avec le framework Fastai, l’étude a atteint une précision de classification de 93,765 %. Cela montre la capacité de la bibliothèque à économiser du temps d’entraînement et à améliorer les performances des modèles dans des applications concrètes. Plus d’informations dans l’étude sur arXiv.Exemple de compression de modèle :
De plus, le système de callback de Fastai a été utilisé dans d’autres bibliothèques telles que FasterAI, qui se concentre sur des techniques de compression de réseaux neuronaux comme la sparsification et la pruning. Cela démontre la polyvalence de Fastai et sa facilité d’intégration avec d’autres outils pour mettre en œuvre efficacement des techniques de pointe. Les détails de cette mise en œuvre sont disponibles dans l’article FasterAI sur arXiv.
Exemples d’utilisation
Installation
Pour commencer à utiliser fastai, vous pouvez l’installer facilement via conda ou pip. Voici comment procéder :
- Conda (recommandé pour Linux ou Windows) :
conda install -c fastai fastai
- Pip (fonctionne sur toutes les plateformes) :
pip install fastai
- Google Colab :
Utilisez fastai sans installation en profitant de Google Colab, qui prend en charge l’exécution sur GPU pour des calculs plus rapides.
Les utilisateurs peuvent également consulter la documentation officielle de fastai et les forums communautaires pour résoudre les problèmes d’installation courants ou trouver des solutions à des configurations spécifiques. L’intégration de la bibliothèque avec les notebooks Jupyter et Google Colab renforce encore son accessibilité en offrant un environnement interactif pour l’expérimentation et l’apprentissage.
API de haut niveau
L’API de haut niveau de fastai est conçue pour la simplicité et le développement rapide. Elle masque une grande partie de la complexité, permettant aux utilisateurs de se concentrer sur la construction et l’entraînement de modèles avec un minimum de code. Cette API est particulièrement utile pour prototyper rapidement des modèles et itérer des idées sans se préoccuper des détails bas niveau du framework PyTorch sous-jacent.
Exemples d’utilisation de l’API de haut niveau
1. Classification d’images
from fastai.vision.all import *
path = untar_data(URLs.PETS)
dls = ImageDataLoaders.from_name_re(
path=path,
fnames=get_image_files(path/"images"),
pat=r'/([^/]+)_\d+.jpg$',
item_tfms=RandomResizedCrop(450, min_scale=0.75),
batch_tfms=[*aug_transforms(size=224, max_warp=0.), Normalize.from_stats(*imagenet_stats)]
)
learn = cnn_learner(dls, resnet34, metrics=error_rate)
learn.fit_one_cycle(4)
Cet exemple montre comment configurer et entraîner un classificateur d’images sur le jeu de données Oxford IIT Pets à l’aide de l’API haut niveau de fastai.
2. Analyse de sentiment de texte
from fastai.text.all import *
path = untar_data(URLs.IMDB)
dls = TextDataLoaders.from_folder(path, valid='test')
learn = text_classifier_learner(dls, AWD_LSTM, drop_mult=0.5, metrics=accuracy)
learn.fine_tune(1)
Ici, fastai est utilisée pour construire un modèle d’analyse de sentiment sur le jeu de données IMDB.
3. Données tabulaires
from fastai.tabular.all import *
path = untar_data(URLs.ADULT_SAMPLE)
dls = TabularDataLoaders.from_csv(
path/'adult.csv', path=path, y_names="salary",
cat_names=['workclass', 'education', 'marital-status', 'occupation', 'relationship', 'race'],
cont_names=['age', 'fnlwgt', 'education-num'],
procs=[Categorify, FillMissing, Normalize]
)
learn = tabular_learner(dls, metrics=accuracy)
learn.fit_one_cycle(3)
Cet exemple illustre l’utilisation de fastai pour les données tabulaires, en particulier le jeu de données Adult.
API de niveau intermédiaire
L’API de niveau intermédiaire de fastai offre davantage de possibilités de personnalisation que l’API de haut niveau, permettant aux utilisateurs de modifier divers aspects du processus d’entraînement sans entrer dans les moindres détails. Elle offre un équilibre entre facilité d’utilisation et flexibilité, répondant aux besoins de ceux qui souhaitent plus de contrôle tout en profitant de composants prédéfinis.
Composants de l’API de niveau intermédiaire
- Learner : Composant central qui encapsule le modèle, les données et la boucle d’entraînement. Il peut être personnalisé avec différentes architectures, optimisateurs et métriques.
- Callbacks : Fonctions permettant d’étendre la boucle d’entraînement avec des comportements personnalisés, comme la sauvegarde de checkpoints, l’ajustement des taux d’apprentissage ou l’enregistrement des métriques.
Exemple d’utilisation
learn = cnn_learner(dls, resnet18, metrics=accuracy, cbs=[SaveModelCallback(monitor='accuracy')])
learn.fine_tune(2)
Dans cet exemple, un callback est utilisé pour sauvegarder le modèle ayant la meilleure précision durant l’entraînement, illustrant la flexibilité de l’API intermédiaire.
API de bas niveau
Pour les utilisateurs avancés et les chercheurs qui ont besoin d’un contrôle total sur leurs modèles, l’API de bas niveau de fastai donne accès aux fonctionnalités sous-jacentes de PyTorch et à des primitives optimisées. Ce niveau d’API s’adresse à ceux qui souhaitent repousser les limites du deep learning en concevant de nouvelles architectures ou en implémentant des routines d’entraînement personnalisées.
Fonctionnalités de l’API de bas niveau
- Pipeline et Transforms : Séquences de traitements de données personnalisables pouvant être adaptées à des besoins spécifiques.
- Tenseurs orientés objet : Améliorations des tenseurs PyTorch pour une manipulation plus intuitive.
- Opérations optimisées : Opérations tensorielles efficaces exploitant la puissance de PyTorch.
Exemple d’utilisation
from fastai.data.all import *
pipe = Pipeline([PILImage.create, Resize(128), ToTensor])
img = pipe('path/to/image.jpg')
Ce code montre comment créer un pipeline de traitement de données personnalisé avec l’API bas niveau de fastai, en appliquant une série de transformations à une image.
Fastai en pratique : exemples publiés
Fastai : une API en couches pour le deep learning
Auteurs : Jeremy Howard, Sylvain Gugger
Fastai est une bibliothèque de deep learning conçue pour faciliter le prototypage rapide et le déploiement de modèles. Elle y parvient en fournissant des composants de haut niveau pour les tâches standards tout en permettant aux chercheurs d’accéder à des composants bas niveau pour des solutions personnalisées. Cet article détaille l’architecture de la bibliothèque, qui s’appuie sur le dynamisme de Python et la flexibilité de PyTorch pour créer des abstractions découplées pour les tâches de deep learning. Les innovations de Fastai incluent un système de dispatch par type, une bibliothèque de vision optimisée GPU, une nouvelle conception d’optimiseur et un système de callback bidirectionnel, entre autres. La facilité d’utilisation de la bibliothèque et sa capacité à générer des résultats de pointe en ont fait un outil populaire en recherche, industrie et enseignement. Lire la suiteSegmentation microvasculaire dans le Human BioMolecular Atlas Program (HuBMAP)
Auteurs : Youssef Sultan, Yongqiang Wang, James Scanlon, Lisa D’lima
Cette étude utilise Fastai pour la segmentation d’images dans le cadre du programme HuBMAP, en se concentrant sur la segmentation des structures microvasculaires dans les reins humains. La méthodologie commence par un modèle U-Net Fastai, explorant des architectures et modèles profonds alternatifs pour améliorer la précision de segmentation. Ce travail met en lumière la capacité de Fastai à servir d’outil de base en imagerie médicale, avec des perspectives sur des techniques avancées de segmentation et leur comparaison avec des modèles de référence. Lire la suiteEgglog Python : une bibliothèque Pythonique pour les E-graphs
Auteur : Saul Shanabrook
Bien que non directement axé sur Fastai, cet article présente des bindings Python pour la bibliothèque egglog, mettant l’accent sur l’intégration des techniques d’e-graph dans Python. Cette approche s’aligne sur la philosophie de Fastai qui consiste à exploiter la puissance de Python pour favoriser l’innovation en apprentissage automatique et en calcul scientifique. Elle illustre comment des API pythonic peuvent faciliter la collaboration et l’innovation entre domaines, complétant potentiellement la polyvalence de Fastai. [Lire la suite](https://arxiv.org/abs/2404
Questions fréquemment posées
- Qu'est-ce que Fastai ?
Fastai est une bibliothèque de deep learning complète et open source construite sur PyTorch. Elle simplifie la création et l'entraînement de réseaux neuronaux via des API de haut niveau, prend en charge la vision, le NLP, les données tabulaires et le filtrage collaboratif, et vise à démocratiser le deep learning pour les utilisateurs de tous niveaux.
- Qui a développé Fastai ?
Fastai a été développé par Jeremy Howard et Rachel Thomas dans le cadre d'une mission visant à rendre le deep learning accessible et pratique pour tous.
- Qu'est-ce qui rend Fastai unique ?
Fastai propose une API en couches avec des composants de haut, moyen et bas niveau, des abstractions conviviales, le support de l'apprentissage par transfert, une API de data block modulaire, et un système de callback puissant. Elle est open source et portée par une communauté dynamique.
- Quels sont les cas d'usage courants de Fastai ?
Fastai est utilisée pour la vision par ordinateur, le traitement du langage naturel (NLP), l'analyse de données tabulaires, le filtrage collaboratif (systèmes de recommandation) et le déploiement de modèles en production. Elle est populaire dans la recherche, l'industrie et l'éducation.
- Comment installer Fastai ?
Vous pouvez installer Fastai via conda avec 'conda install -c fastai fastai' ou via pip avec 'pip install fastai'. Elle fonctionne également sans problème dans Google Colab et les notebooks Jupyter.
- Fastai est-elle gratuite ?
Oui, Fastai est entièrement open source sous licence Apache 2.0. Tous les logiciels, recherches et cours sont diffusés gratuitement pour assurer une accessibilité mondiale.
Explorez Fastai et construisez des solutions d'IA
Découvrez comment les API de haut niveau et les outils open source de Fastai peuvent accélérer vos projets d'IA et votre parcours d'apprentissage. Essayez FlowHunt pour un développement IA sans couture.