Fastai | Comment commencer ?

Pourquoi cette question ?

La question «Comment commencer avec Fastai?» Peut sembler incongrue.

Il suffit de regarder la première vidéo, non? Non.

J'ai une double expérience avec Fastai. J'ai d'abord été membre de son programme de bourses internationales (parties 1 et 2) en tant qu'étudiant à partir d'octobre 2017. Puis, avec d'autres collègues, j'ai lancé en 2018 le premier groupe d'étude Deep Learning à Brasilia utilisant le cours Fastai (partie 1, puis aujourd’hui la partie 2 et celle sur ML). Donc, je suis aussi devenu instructeur en utilisant le contenu Fastai.

C’est sur la base de cette double expérience avec Fastai que je publie aujourd’hui ce guide de démarrage pour les nouveaux participants de notre cours à Brasilia ainsi que pour tous ceux qui souhaitent commencer leur voyage vers l’Intelligence Artificielle (IA) en utilisant Bibliothèque Fastai.

Apprentissage automatique en quelques mots

Le jour où le premier bébé doté d’une intelligence artificielle viendra au monde n’est pas pour demain. Pour le moment, chaque IA doit être créée par l'homme… et nous avons besoin de code pour cela!

En dehors des manipulations robotiques et génétiques, l'IA prend la forme d'un algorithme qui doit être formé pour apprendre (souvent un modèle de réseaux de neurones artificiels).

En pratique, les paramètres de l'algorithme (également appelés poids) ont initialement des valeurs aléatoires qui sont mises à jour à l'aide d'observations (également appelées exemples) fournies à l'algorithme. Cette méthode s'appelle «apprendre à partir d'un jeu de données» ou Machine Learning (les méthodes de Deep Learning aujourd'hui très populaires et largement utilisées sont le Machine Learning avec une grande profondeur de calcul).

En effet, chaque observation fournie à l'algorithme lui permet de calculer un résultat prédictif (souvent une probabilité) de la nature de cette observation, via des opérations mathématiques effectuées avec ses paramètres (par exemple, si l'observation est une image d'un chat, le prédictif le résultat doit indiquer la classe correspondant à un chat). L'erreur par rapport à la valeur réelle de l'observation permet alors une mise à jour des valeurs des paramètres (souvent par l'utilisation de la méthode de BackPropagation du gradient de l'erreur).

La formation se poursuivra ensuite avec une nouvelle observation et ainsi de suite.

Bibliothèques pour implémenter le Machine Learning

Le Machine Learning (ML) consiste donc à disposer de données, d'une capacité de calcul… et d'algorithmes. Il faut donc utiliser un langage de codage pour mettre en œuvre ces algorithmes, les former, les tester puis les utiliser en production.

Depuis le début des années 2010, date du début de l'utilisation à grande échelle de l'intelligence artificielle, le langage Python est devenu le langage de développement des algorithmes ML et Deep Learning (DL) dans les cahiers Jupyter.

Les architectures de ces algorithmes étant sur le point d'être normalisées, des bibliothèques ont été développées pour faciliter leur utilisation sous TensorFlow (Google) avec Keras, puis PyTorch (Facebook) avec Fastai.

Fastai, plus qu'une bibliothèque

Fastai est à la fois une bibliothèque d’implémentation des algorithmes ML et DL et le titre d’un cours qui a commencé au Data Institute de l’Université de San Francisco et est maintenant disponible en ligne (1 cours sur le ML et 2 cours sur le DL).

Mais ses créateurs Jeremy HOWARD et Rachel THOMAS sont allés plus loin. C'est aussi une nouvelle méthode d'apprentissage descendante qui permet d'apprendre par la pratique, ainsi que dans une communauté de plus de 10 000 personnes aujourd'hui (lisez «Launching fast.ai» de Jeremy Howard, octobre 2016).

Chaque cours comporte une vidéo, des fils de forum et des cahiers jupyter téléchargeables gratuitement qui passent à travers la bibliothèque fastai.

Comment commencer avec Fastai? Le guide en 4 étapes

J'ai vu trop de participants à notre cours à Brasilia soit pour arrêter, soit pour être incapable de vraiment en tirer avantage pour 4 raisons principales: python, cahiers Jupyter, GPU et devoirs.

1) Python

Python est le langage de programmation utilisé dans le cours Fastai et ses cahiers. S'il n'est pas indispensable d'être un spécialiste du python pour suivre le cours Fastai, il est nécessaire d'avoir une pratique minimale.

Cours en ligne:

  • Premier cahier python
  • Didacticiels Python Data Science
  • Cours de python sur Coursera
  • Livre: Apprendre en profondeur avec Python (François Chollet)

Les 2 bibliothèques Python suivantes sont très utilisées dans les cahiers Fastai mais vous pouvez les apprendre au cours du cours (elles ne sont pas des préalables).

NumPy

NumPy est le paquet fondamental du calcul scientifique avec Python. Il permet des opérations mathématiques sur les tableaux, les matrices, les vecteurs et les tenseurs de grande dimension, comme s'il s'agissait de variables Python.

Cours en ligne: Numpy Tutorial et Python Numpy Tutorial.

Pandas

Pandas est une bibliothèque Open Source sous licence BSD fournissant des structures de données hautes performances et faciles à utiliser (ex: fichiers csv) ainsi que des outils d'analyse des données pour le langage de programmation Python. Les pandas fonctionnent très bien avec NumPy.

  • Curse d'Introduction à Análise de Dados (en portugais)
  • Cours en ligne: liste de tutoriels sur les pandas.

2) cahier Jupyter

Le projet Jupyter a pour objectif de développer des logiciels, des standards ouverts et des services à code source ouvert destinés à l’informatique interactive dans des dizaines de langages de programmation, en particulier Python. Vous utiliserez un bloc-notes Jupyter pour implémenter tous vos algorithmes ML ou DL.

Cours en ligne :

  • 1: 30: 521: Introduction aux carnets de notes Jupyter
  • Commandes et raccourcis de Jupyter Notebook
    - Commandes et raccourcis Jupyter Notebook1
    - 28 astuces, astuces et raccourcis pour ordinateur portable Jupyter
  • Usar “Cellules Jupyter repliables / extensibles” dans les cahiers Jupyter
  • Une galerie de carnets de notes Jupyter intéressants: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1

3) GPU

Une fois que vous connaissez au moins Python et savez comment utiliser un ordinateur portable Jupyter, vous devez installer la bibliothèque Fastai et ses ordinateurs portables sur un serveur doté d'un processeur graphique.

Remarque: si vous n’avez pas de GPU NVIDIA local et si vous ne souhaitez pas en utiliser un en ligne, vous pouvez installer Fastai sur votre ordinateur et utiliser uniquement votre processeur. Dans ce cas, le résultat de la formation de votre ML peut prendre un certain temps. / Modèle DL…

Pourquoi un GPU? Vous en avez besoin lorsque vous entraînez un algorithme ML ou DL pour réduire le temps d’entraînement. Sans GPU, vous ne pourrez pas former «facilement» un algorithme ML ou DL avec des millions de données.

Outre l'installation locale du processeur, vous avez 2 possibilités: soit configurer votre GPU local si votre ordinateur en est équipé, tel qu'un GPU NVIDIA, ou vous pouvez en louer un en ligne à l'aide de Google Cloud, Google Colab, PaperSpace, AWS ou autres.

Guides en ligne: lisez le paragraphe «GPU (Graphic Processing Units)» de l'article «Deep Learning Brasilia - Revisão» ou links seguintes.

CPU local

Lisez le document README.md mais suivez les étapes ci-dessous:

  1. installer Anaconda pour Windows
  2. Ouvre le terminal «Anaconda Prompt» (installé par Anaconda) et tape les commandes suivantes dans ce terminal.
  3. mkdir fastai (pour créer un dossier fastai)
  4. cd fastai (pour entrer dans le dossier fastai)
  5. git clone https://github.com/fastai/fastai.git (pour télécharger les fichiers Fastai, y compris les cahiers et les fichiers d'installation de l'environnement virtuel fastai-cpu: pytorch, bibliothèques numpy, pandas, bcolz, etc.)
  6. conda env update -f environment-cpu.yml (IMPORTANT: utilisez le fichier environment-cpu.yml car vous souhaitez utiliser votre processeur et non un GPU)
  7. conda active fastai-cpu (pour activer l'environnement virtuel fastai-cpu)
  8. cours cd \ ml1 (entrez dans le dossier ml1 par exemple)
  9. del fastai (supprime le lien symbolique fastai créé pour s'exécuter dans l'environnement bash)
  10. mklink / d fastai .. \ .. \ fastai (créez le lien symbolique windows fastai vers le dossier fastai contenant les fichiers de la bibliothèque Fastai)
  11. cd .. \ .. (quittez le dossier ml1 pour revenir à la racine du dossier créée à l'étape 3)
  12. jupyter notebook (lance le cahier jupyter qui s'ouvrira dans un navigateur web)

«Et voilà»: la bibliothèque Fastai (et ses blocs-notes) est installée sur votre ordinateur avec CPU et vous pouvez exécuter tous les blocs-notes du dossier ml1.

GPU local

  • Howto: installation sous Windows

GPU en ligne

  • Google Cloud Platform (crédit de 300 $)
  • Espace papier (crédit de 15 $)
  • Clouderizer + Google Colab (GRATUIT !!!)
  • Amazon Web Services (AWS)
  • Crestle

N'oubliez pas d'éteindre votre machine virtuelle !!!

4) devoirs

Jeremy Howard parle d'environ 10 heures de travail personnel pour chaque vidéo de sa classe… et il a raison!

En effet, si vous voulez apprendre à faire le ML et le DL et que vous ne comprenez pas seulement les principes, vous devez vous PRATIQUER.

Les éléments présentés ci-dessus (en résumé, connaître le langage Python, savoir utiliser un ordinateur portable Jupyter et installer la bibliothèque Fastai sur un processeur graphique) sont des conditions préalables NECESSAIRES, mais non suffisantes.

Pour vraiment apprendre, vous devez regarder plusieurs fois des vidéos, utiliser les cahiers Fastai, étudier les codes, poser des questions sur le forum Fastai lorsque vous ne comprenez pas, répondre aux questions posées par d'autres et publier des articles pour améliorer votre compréhension. C'est un véritable apprentissage!

Un mot de plus: ENJOY! :-)