Mettre en œuvre des projets d'IA avec AWS
Introduction
Je sais ce que vous devez ressentir ! Vous vous demandez si toute la théorie que nous avons parcourue au chapitre Intelligence artificielle, mythes et réalités était bien nécessaire. En effet, est-il indispensable de connaître le fonctionnement d’un moteur à explosion pour conduire une voiture ? En théorie non, on peut très bien s’en sortir sans. En pratique, l’utilisation de services d’IA ne peut pas totalement s’apparenter à la conduite d’une voiture. En effet, la voiture est utilisée pour transporter des biens et des personnes d’un point A à un point B ; un service d’IA quant à lui prend une entrée pour fournir une sortie. Par exemple, je prends une photo et en détermine les composants, ou, j’accepte une phrase et y réponds.
Cependant, si l’on extrapole à un véhicule, on se trouve devant des choix potentiels. Je veux faire mon déménagement, il va vraisemblablement falloir une camionnette ou un camion, la voiture n’étant sans doute pas adaptée, ou tout simplement faire appel à une société spécialisée et leur laisser le choix. Si je veux faire de l’analyse d’images, je peux utiliser un service comme Rekognition et ne pas me poser trop de questions, c’est le choix...
Préparer son environnement Amazon Web Services
Nous rentrons dans le domaine des services cloud. Il est donc nécessaire que vous ouvriez un compte si vous n’en possédez aucun. Dans le cas contraire, vous pouvez vous rendre directement à la section L’IA boîte noire avec les services applicatifs.
1. Créer un compte
AWS vous permet de bénéficier d’une offre gratuite d’un an pour vous familiariser avec les services disponibles. Si tous les services ne sont pas inclus dans l’offre gratuite, ceux que nous utiliserons le sont.
Faites attention à toujours bien arrêter les services que vous démarrez dans le cadre de vos tests. AWS est un système de "pay per use" et vous facture à l’utilisation de ses services. Si vous laissez fonctionner une machine au-delà de l’offre gratuite, vous recevrez une facture dont il faudra vous acquitter. Certaines des machines utilisées par les algorithmes d’apprentissage profond sont relativement chères, ne vous retrouvez pas en difficulté. Surveillez donc bien votre consommation et arrêtez vos machines quand vous n’en avez plus besoin.
Rien de plus simple que de créer un compte sur AWS : ouvrez votre explorateur Internet favori, rendez-vous sur https://aws.amazon.com/fr et cliquez sur Créez un compte gratuit.
L’inscription est simple et rapide. Elle vous permet de préciser s’il s’agit d’un compte personnel ou professionnel. L’avantage d’un compte professionnel est de pouvoir être rattaché à votre organisation et donc de centraliser facturation et paiement. Il est important de noter que pour des questions de confidentialité et de vérification d’identité, vous devez avoir accès à un téléphone portable disposant d’un numéro joignable. AWS dispose en effet d’un système automatisé d’appel qui vous appellera pour que vous rentriez un nombre à quatre chiffres affichés à l’écran. Une fois votre compte créé, vous pouvez vous connecter à la console de gestion d’AWS.
a. Régions et zones de disponibilité
AWS est structuré en régions et zones de disponibilité (AV, Availability...
L’IA boîte noire avec les services applicatifs
J’ai évoqué l’effet boîte noire de certains services d’IA. Il ne s’agit pas uniquement, comme nous l’avons vu, de protection de la propriété intellectuelle par les sociétés de services comme Amazon, la faute en incombe à la protection de la propriété intellectuelle des sociétés de services, comme Amazon, et surtout aux algorithmes utilisés. En effet, les algorithmes basés par exemple sur les réseaux de neurones artificiels sont intrinsèquement des boîtes noires dont il est difficile, voire impossible, de comprendre le cheminement logique. Ainsi, même le plus intelligent des scientifiques ne pourra pas toujours expliquer pourquoi on obtient tel ou tel résultat ! Si cela vous effraie, je vous renvoie à ce que l’on appelle la troisième loi d’Arthur C. Clarke, l’auteur de 2001 : L’Odyssée de l’espace.
Toute technologie suffisamment avancée est indiscernable de la magie.
Vous trouverez les deux autres lois ici : https://fr.wikipedia.org/wiki/Trois_lois_de_Clarke
Nous utilisons tous les jours des dizaines d’outils, de services et de fonctions dont nous ne comprenons pas le fonctionnement : nos téléphones portables (comprenez-vous la théorie du signal qui sous-tend les télécommunications par voie aérienne ? ), le GPS de notre voiture (savez-vous que sans les horloges atomiques de satellites et la correction qui est appliquée, conséquence de l’écoulement relativiste du temps, le GPS ne fonctionnerait pas ? ) ou simplement la carte SD sur laquelle votre appareil photo numérique stocke les images que vous prenez (si vous ne savez pas comment fonctionne la mémoire flash NAND, il va être difficile de comprendre le fonctionnement interne d’une carte Secure Digital). Ce ne sont que trois exemples, je peux en trouver des dizaines, et cela ne nous empêche pas de les utiliser ni de nous considérer pieds et poings liés à des prestataires de services.
Il faut donc aborder les services cognitifs et d’IA de la même façon. On peut laisser une part de mystère (de magie ? ) et en tirer les bénéfices...
Le choix des algorithmes avec SageMaker
SageMaker nous fait rentrer de plain-pied dans le monde de l’apprentissage machine. Les services que nous avons vu jusqu’à maintenant sont des services que j’appelle clé en main. Aucun apprentissage n’est nécessaire. Vous avez besoin de traiter des images ? Rekognition vous offre une grande palette de traitements prédéfinis ! Vous voulez traduire des textes ? Translate le fait pour vous. Que dire maintenant si vous avez besoin de prévoir combien de produits à fabriquer en fonction de différents paramètres ou de combien augmenter vos prix avant que la demande ne réponde plus ? Il n’y a pas de service tout fait pour ces questions. SageMaker peut cependant vous aider à développer un modèle spécifique sans vous préoccuper de l’infrastructure nécessaire.
Il y a cependant deux éléments importants à considérer avant de vous lancer à corps perdu avec SageMaker :
-
Quel type de réponses souhaitez-vous obtenir ? Est-ce une question qui apporte une réponse discrète, du style oui/non, bleu/blanc/rouge ? Est-ce une valeur de prévision de vente ou de production en fonction de différentes heuristiques ? Voulez-vous traduire des textes scientifiques ? Voulez-vous classer des données ou des images ?
-
Quelles sont les données dont vous disposez ? Est-ce des images, des textes ou des chiffres ? Ces données sont-elles étiquetées ? Y a-t-il besoin de les étiqueter ou pas (dans le cas où vous faites de l’apprentissage non supervisé) ?
Tant que vous n’êtes pas clair sur ce que vous voulez résoudre et sur les données dont vous disposez, vous ne pouvez pas aller plus loin. Ce que vous souhaitez faire va directement influer sur l’algorithme d’apprentissage à utiliser. Les données dont vous disposez et l’algorithme que vous allez utiliser vont influer sur le traitement à faire subir à vos données.
À partir de là, SageMaker va vous assister pour :
-
Récupérer, nettoyer, étiqueter et préparer vos données.
-
Former et évaluer un modèle à partir d’algorithmes...
Juste l’infrastructure pour les professionnels de l’apprentissage machine
Si vous êtes encore avec moi à ce stade, soit vous avez sauté directement à cette page parce que ce qui vous intéresse c’est de construire votre propre environnement d’apprentissage machine, soit vous vous dites que décidément, ce monde de l’IA est fascinant et qu’il y a tant à apprendre. Dans le premier cas, je vous conseille vivement de revenir un peu en arrière et de lire la section Le choix des algorithmes avec SageMaker consacrée à SageMaker. En effet, cette partie pose les bases de nombreux concepts et outils qui vous seront nécessaires pour construire votre propre infrastructure et vos propres algorithmes.
Si vous êtes dans le second cas, cette section vous apportera de la souplesse. Je vous conseille néanmoins de revenir sur la section précédente consacrée à SageMaker, car Amazon devrait abandonner Amazon Machine Learning pour se recentrer sur SageMaker. Nous allons donc étudier MXNet et TensorFlow avec SageMaker et faire une rapide incursion dans les AMI à la fin du chapitre.
1. Apache MXNet
MXNet est un framework d’apprentissage profond développé et maintenu par la fondation Apache. La beauté de la combinaison MXNet/SageMaker est que vous n’avez rien à installer. En effet, SageMaker fournit des blocs-notes Jupyter avec l’intégralité de l’environnement d’Apache MXNet et se charge de monter et démonter le conteneur Docker en fonction des besoins.
AWS fournit aussi des machines préconfigurées (Amazon Machine Images) pour faire fonctionner MXNet. Nous verrons leur fonctionnement dans la section Les solutions SageMaker prépackagées.
Utiliser MXNet est donc relativement proche de l’utilisation des algorithmes fournis par Amazon, comme celui des k-moyennes que nous avons vu précédemment, à une différence près, et de taille : il vous faudra écrire votre propre script d’apprentissage !
Pour illustrer de manière plus significative la formation d’un modèle avec MXNet, nous allons utiliser le jeu de données CIFAR 10. Il s’agit d’un jeu de 60 000 images de 32 pixels sur 32 (donc...