Voir Le Monde Informatique

L’intelligence artificielle et le Machine Learning ouvrent de nouvelles possibilités pour les entreprises de tous les secteurs. Ces technologies nécessitent l’expertise de Data Scientists et autres spécialistes dotés de connaissance en programmation.
Or, à l’échelle mondiale, on déplore une véritable pénurie de tels experts. Fort heureusement, pour faciliter l’adoption de l’IA en entreprise et dans les administrations, plusieurs géants de la technologie proposent des plateformes open source et des outils permettant de faciliter l’utilisation et l’exploitation des algorithmes.

I. Scikit-learn, Google TensorFlow, Keras, Facebook PyTorch, etc., ces frameworks IA deviennent incontournables pour entrainer des modèles de machine learning ou de deep learning.

Ces boîtes à outils, aussi appelées librairie, permettent d’exécuter du code informatique de manière optimisée. C’est un gain de temps non-négligeable pour le Data Scientist. Cependant, pour avoir de meilleures performances, il faut coupler ces algorithmes à du matériel puissant. C’est pourquoi les fournisseurs de composants font toujours évoluer leurs équipements pour les rendre plus performants.
Grâce aux librairies et à des composants toujours plus performants et moins cher, la démocratisation de l’IA en est facilitée. Quelques exemples, Netflix exploite l’un de ses librairies pour faire de la recommandation de contenu à ses clients, Airbus arrive, quant à lui, à dissocier les nuages de la neige des cimes sur les images satellites. Bien d’autres usages exploitent ces librairies comme la lutte contre la fraude, la reconnaissance de la parole, la compréhension des images, la gestion des data, etc.

Afin de démocratiser l’intelligence artificielle auprès d’un large public et plus seulement à quelques spécialistes très pointus comme c’était le cas auparavant, des laboratoires de recherche et des géants du web ont créé des librairies dédiées. Une librairie IA est en quelque sorte une boîte à outils permettant de poser les fondations dans la création d’applications IA. La librairie Scikit-learn regroupe plus de 160 méthodes différentes d’apprentissage statistique dont l’objectif est d’ajuster des modèles sur des données pour résoudre des tâches telles que la prédiction de caractéristiques de ces données. Sur le marché, il existe une multitude de frameworks IA, mais les plus utilisés sont : Scikit-learn, TensorFlow, PyTorch ou encore Keras. A titre indicatif, Dataiku, l’éditeur Français de la plateforme collaborative de datascience, exploite entre autres les librairies Scikit-learn, TensorFlow ou encore Keras.

La majorité de ces librairies est disponible en open source et le plus souvent basée sur les langages de programmation Python et C++. Les librairies existantes ne sont pas toutes identiques, elles répondent à des besoins précis et sont souvent complémentaires. Par exemple, si Scikit-learn est livré avec des algorithmes standards ou plutôt généralistes de machine learning, TensorFlow, Caffe ou encore PyTorch sont, quant à eux, plus orientés vers l’apprentissage en profondeur (deep learning), ainsi une librairie apporte des algorithmes pré-écrit et le plus souvent optimisés. Ainsi Scikit-learn va proposer des algorithmes de machine learning tandis que TensorFlow ou PyTorch proposeront une optimisation des réseaux de neurones pour le Deep Learning. La différence de l’utilisation d’une librairie ou d’une autre est une question de performances.

La différence se fait aussi dans l’approche et la structure même de la librairie, par exemple si TensorFlow propose des objets de type « tenseurs » (ou tables de données multidimensionnelles) pour évoluer dans un modèle de réseau neuronal. Keras, quant à lui, se concentre sur la définition des couches (API) pour le réseau neuronal via une écriture plus simple avec moins de code. Il se présente comme une surcouche de Tensorflow. Bien sûr, une concurrence directe existe entre certaines librairies à l’image des deux géants du web : Google avec TensorFlow et Facebook avec PyTorch, et ce, même si leur architecture n’est pas tout à fait identique. PyTorch se basant sur des graphiques dynamiques alors que TensorFlow sur des graphes statiques.
Ces libraires IA (téléchargeables depuis GitHub) sont aujourd’hui utilisés par un grand nombre d’entreprises, d’universitaires ou étudiants.

 

IA ventes détection émotions

II. Les machines virtuelles (VM)

Les VM sont de plus en plus utilisées par les entreprises. Une VM est un environnement de travail accessible par une machine physique. Elle permet à l’utilisateur de profiter de la même expérience que sur une machine physique, avec plusieurs avantages.
Il est notamment possible de lancer plusieurs environnements d’OS sur la même machine, en les isolant les uns des autres. De même, la virtualisation permet de réduire les coûts en diminuant le nombre de machines virtuelles nécessaires. Les besoins en énergie s’en trouvent aussi atténués. Les backups et les restaurations s’en trouvent aussi simplifiés.
Cependant, les orchestrateurs d’applications contenus dans les machines virtuelles reposent sur une émulation du hardware, et requièrent donc beaucoup de puissance de calcul. Pour remédier à ce problème, de nombreuses firmes se tournent vers les containers, et par extension vers Docker.

III. Docker est la plateforme de containers la plus populaire et la plus utilisée.
Avant d’aborder Docker, il est indispensable de rappeler ce qu’est une image container. Il s’agit d’un ensemble de processus logiciels léger et indépendant, regroupant tous les fichiers nécessaires à l’exécution des processus : code, runtime, outils système, bibliothèque et paramètres. Ils peuvent être utilisés pour exécuter des applications Linux ou Windows.
Les containers sont donc proches des machines virtuelles, mais présentent un avantage important. Alors que la virtualisation consiste à exécuter de nombreux systèmes d’exploitation sur un seul conteneur, ceux-ci se partagent le même noyau de système d’exploitation et isolent les processus de l’application du reste du système.

Docker est une plateforme logicielle open source permettant de créer, de déployer et de gérer des containers d’applications virtualisées sur un système d’exploitation. Les services ou fonctions de l’application et ses différentes bibliothèques, fichiers de configuration, dépendances et autres composants sont regroupés au sein du container. Chaque container exécuté partage les services du système d’exploitation.

La plateforme de conteneurisation repose sur sept composants principaux. Le Docker Engine est un outil client-serveur sur lequel repose la technologie de container pour prendre en charge les tâches de création d’applications basées container. Le moteur crée un processus permettant d’héberger les images, les containers, les réseaux et les volumes de stockage. Il fournit aussi une interface permettant aux utilisateurs d’interagir avec le processus via l’API de la plateforme.