Depuis un peu plus de quatre ans, beaucoup de sociétés investissent dans l’intelligence artificielle et plus particulièrement dans le Deep Learning et le Edge Computing. Alors que la théorie avance à grands pas et que de nouveaux algorithmes voient le jour, le matériel doit également évoluer.


La société Nvidia, connue pour son matériel graphique, s’est imposée comme le leader actuel en ce qui concerne le matériel supportant les logiciels de Machine Learning et il est en effet rare d’entendre parler d’un projet d’IA dans lequel Nvidia n’est pas impliqué de près ou de loin.

On peut d’ailleurs se demander comment une entreprise spécialisée dans le matériel graphique a pu obtenir une position dominante sur le marché de l’IA. La raison tient au fait que les algorithmes utilisés sont tous hautement parallélisables. Il s’agit d’un grand nombre de calculs à effectuer mais ceux-ci peuvent être faits en même temps, ce que la technologie GPU permet, là où un CPU aurait eu plus de difficultés. On peut à ce sujet noter que la technologie GPU est intéressante pour tout projet nécessitant la parallélisation des calculs.

La technologie GPU est donc adaptée aux problèmes posés par le Deep Learning, mais le volume de calcul ne cesse d’augmenter. Aujourd’hui les modèles de Deep Learning sont entraînés sur des fermes entières de serveurs graphiques. Le Cloud Computing a énormément bénéficié au machine learning, cela pose toutefois certains problèmes que nous détaillerons.

Jetson

La gamme Jetson présentée par Nvidia est une série de micro-ordinateurs, conçus pour l’intelligence artificielle, la dernière version en date est le Jetson TX2, et la fiche technique laisse rêveur: 256 cœurs CUDA, 8 GB LPDDR4 de mémoire vive, un HMP Dual Denver 2/2 MB L2 + Quad ARM® A57/2 MB L2 en CPU. Et 32GB d’espace disque. Le tout dans une carte miniaturisée au possible: 50 mm x 87 mm. Ce sont des caractéristiques très intéressantes pour exécuter des algorithmes de machine learning. Le prix avoisine les 470$, un investissement donc, mais un prix très compétitif considérant les caractéristiques énoncées.

img

Edge Computing

Comme nous l’avons vu, la Pipeline constituant l’entraînement et la mise en production de modèles intelligents se déroule essentiellement dans le Cloud. Ces algorithmes sont généralement gourmands et demandent une quantité importe de données pour s’entraîner. C’est notamment pour cette raison que le monde de l’Intelligence Artificielle est aujourd’hui intimement lié à celui du Big Data. De plus comme nous venons d’en parler, ces algorithmes doivent leur performance en grande partie aux GPUs. Seulement, lorsque l’on met à disposition des services utilisant de l’IA, tous les clients ne possèdent pas nécessairement la puissance nécessaire pour les exécuter sur leurs appareils. De manière générale, il est donc préférable de mettre ces modèles en production sur des Serveurs GPUs. Cela impose donc à la donnée cliente d’être transmise au modèle dans le cloud, l’exposant donc à de possibles failles de sécurité. De plus, pour des applications exigeant un temps de réponse faible, voire du temps réel, l’utilisation d’un service cloud n’est pas possible en raison de la latence. Enfin, dans certains cas d’usage, une connexion fiable au cloud n’est simplement pas possible. (Certaines technologies embarquées par exemple).

La technologie Jetson permet donc de répondre en grande partie à ces questions en permettant aux programmes d’Intelligence Artificielle, et plus particulièrement au Deep Learning, d’être embarqués directement sur des objets électroniques. Le module Jetson permet donc de faire des inférences, c’est à dire de récupérer la donnée en sortie du modèle en lui fournissant des données d’entrée, sans que la donnée ne quitte l’objet électronique. Il est donc plus facile de la sécuriser, le client s’en trouve rassuré et les performances ne sont plus handicapées par la latence inhérente à une connexion à un serveur de calcul.

S’il est possible de faire des inférences de manière embarquée, il est néanmoins toujours impossible d’entraîner certains modèles avec ce type de ressources. L’entraînement dans le Cloud demeure donc une nécessité. Cela donne donc lieu à une nouvelle Pipeline de production. Le modèle passe donc ainsi par plusieurs étapes que voici:

  • Conception du modèle grâce aux frameworks de Deep Learning (Tensorflow, Keras, Pytorch, Caffee, … Pour ne citer qu’eux)
  • Entraînement du modèle dans le Cloud via des serveurs GPUs (Souvent sur plusieurs GPUs à la fois)
  • Optimisation du modèle grâce au framework fourni par Nvidia: TensorRT
  • Déploiement sur l’objet électronique possédant un module Jestson
  • Inférences embarquées

Comme vous avez pu le remarquer, une étape supplémentaire s’insère entre la phase d’entraînement et de déploiement: l’optimisation. Il est en effet nécessaire de réduire la taille (le poids) du modèle pour qu’il puisse loger sur l’objet électronique en question et effectuer des inférences de manière plus rapide. Pour ce faire, Nvidia nous fournit un framework, TensorRT qui s’occupera de transformer le modèle issu de votre framework de Deep Learning pour en réduire la taille tout en essayant de limiter la perte de précision. La profondeur et donc la taille du modèle ont une incidence directe sur sa rapidité de chargement et d’exécution, cette étape d’optimisation n’est donc pas à négliger.

Cas d’usage

La gamme Jetson de Nvidia est d’ores et déjà utilisée dans des projets et fait preuve d’efficacité. Voici quelques exemples:

  • Skydio R1 (caméra autonome):
    Le quadrocopter R1 de chez Skydio est entièrement autonome. Utilisant la puissance du module Jetson et de l’intelligence artificielle, ce drone est capable de filmer une personne en la suivant de manière intelligente tout en esquivant les obstacles. Il est capable de se déplacer dans des forêts à pleine vitesse permettant à de petites équipes ou à des amateurs de se passer d’un pilote professionnel pour filmer.
  • Unsupervisedai Maryam (Robots d’entrepôt intelligent):
    Les robots Maryam permettent aux entrepôts de franchir le pas vers une industrie 4.0. Ces robots profitent également de la puissance du module Jetson et de l’Intelligence artificielle pour esquiver les obstacles, se représenter leur environnement et être opérationnel sans ajout de détecteurs dans les entrepôts. Ils sont ainsi plus efficaces que des robots spécialisés d’ancienne génération et sont déployable sans transition. Ces robots sont aussi modulables et peuvent s’adapter à différentes tâches.
  • Pixevia (Information à partir de caméras):
    Pixevia fait parti de ce mouvement et utilise le module Jetson couplé à l’Intelligence Artificielle pour extraire des informations à partir de vidéos. Ils sont ainsi capables de détecter des places de parkings et les véhicules ou objets occupant ses places afin d’indiquer le nombre de places vides et leur location mais aussi d’identifier la plaque du véhicule. Pixevia est aussi actif dans le domaine des commerces, capable de compter les clients, de les repérer sur caméra que ce soit pour des solutions de sécurité ou autre application. Ils mettent en oeuvre ces solutions non seulement sur des caméras intelligentes mais aussi sur des drones tous deux équipés de la technologie Jetson.