SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
1
AIMIT #1 – Artificial Intelligence meets IT –Towards an AI Defined
& Enabled Data Center (AIDEDC) – The AI dedicated hardware.
Table des matières
AIMIT #1 – Artificial Intelligence meets IT –Towards an AI Defined & Enabled Data Center (AIDEDC) –
The AI dedicated hardware..................................................................................................................... 1
Un peu de vocabulaire ........................................................................................................................ 2
La vague de hardware dédiée à l’IA .................................................................................................... 5
GPU (Graphical Processor Unit) ...................................................................................................... 6
ASIC (Application-Specific Integrated Circuit)................................................................................. 7
FPGA (Field-Programmable Gate Arrays)........................................................................................ 7
La bataille des puces........................................................................................................................ 8
Et le CPU ? ......................................................................................................................................... 10
Les composants de mémoire. ........................................................................................................... 10
Mémoire NVDIA ............................................................................................................................ 10
Les nouveaux composants de mémorisation : les memristors..................................................... 10
Le Cloud à la rescousse.......................................................................................................................... 12
Des offres matérielles pour supporter l’IA.................................................................................... 12
L’IA as a Service ? .......................................................................................................................... 13
Les modèles de business fondés sur l’IA....................................................................................... 14
Mais où est donc passé le Web Sémantique ?.............................................................................. 14
Ces dernières années, le monde de l’IT (au sens infrastructure) a connu trois grands bouleversements
: l’introduction du Cloud couplé à des pratiques DEVOPS, le passage des applications en containers
(dockers et consorts), et l’introduction massive grandissante de l’IA dans les outils comme dans les
opérations. De plus les prédictions des grands analystes tels que Gartner ou IDC prévoient qu’entre
2018 et 2020 les applications intégreront (toutes ?) une dimension AI. En effet, un très grand nombre
d’organisations se sont penchées sur l’intelligence artificielle et plus particulièrement le domaine du
deep learning (voir définition plus avant dans cet article) en considérant que grâce à ces technologies
elles seront capables de prendre plus vite les « bonnes décisions » business, adapter rapidement leurs
modèles business et devenir ainsi plus efficaces, et pour certaines améliorer l’expérience utilisateur.
Enfin, une volonté avérée de pouvoir prédire le futur s’est à nouveau emparée des analystes métiers
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
2
qui considèrent que dans le volume (colossal) des données se trouvent des tendances dissimulées
qu’ils vont bien évidemment grâce à l’IA faire éclore.
Ainsi pour satisfaire la demande du business, l’IT doit pouvoir aussi se doter :
• de fonctions supports de l’IA au sens de fournitures d’infrastructures dédiées
• de logiciels « intelligents » : l’IT doit elle-même adopter les technologies issues de l’IA afin d’
être plus efficace dans son service rendu au business.
L’introduction massive de l’IA est intéressante sur plusieurs plans, car elle a essentiellement trois
impacts majeurs sur l’IT : le compute, le storage et les outils.
Ce premier article va s’intéresser au hardware dédié à l’AI, càd mettra en avant certains éléments
relatifs au compute. Toutefois afin de bien comprendre à quoi peuvent servir les innovations dans le
domaine du matériel, rappelons quelques éléments et concepts fondateurs.
Nota : notre propos n’est pas de dresser l’état de l’art ni d’utiliser un parallèle anthropomorphique
mais d’étudier ce qui est disponible sur le marché et plus particulièrement accessible soit pour un
datacenter soit dans le cloud. Pour avoir une vision plus large et plus prospective, rapprochez vous
d’un excellent document comme celui rédigé par Olivier d’Ezratti (cf
http://www.oezratty.net/wordpress/2017/usages-intelligence-artificielle-ebook/ ).
Un peu de vocabulaire
En 1955, John Mc Carthy, un universitaire américain introduit le terme d’IA qui sera proposé à la
première conférence éponyme de Darmouth en 1956 (cf http://www-
formal.stanford.edu/jmc/history/dartmouth/dartmouth.html) qu’il définit au travers de la notion plus
large de problème d’intelligence artificielle (en tant qu’objet de recherche) : « the artificial intelligence
problem is taken to be that of making a machine behave in ways that would be called intelligent if a
human (was) so behaving ».
L’IA globalement se structure aujourd’hui autour de 3 domaines : l’IA « classique » (au sens des
domaines de recherche historiques), le Machine Learning, le Deep Learning.
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
3
Le deep learning est la technologie de rupture actuelle et qui recouvre un nombre toujours plus grand
de domaines d’application : la classification d’images, la reconnaissance vocale, la prédiction de
maladies, la réponse à des questions, …, la liste semble inépuisable.
Les transformations amenées par l’IA peuvent se résumer en rapport à notre contexte IT :
Définissons les notions “d’apprentissage” et “d’inférence” car ils vont jouer un rôle important dans la
promotion de composants dédiés à l’IA.
Dans la topologie qui nous intéresse, il faut s’imaginer toujours avoir à reconnaître quelque chose.
Fondamentalement, l’IA est ici assimilée à un système de reconnaissance (parole, geste, image,
données arrangées d’une certaine façon). Reconnaître permettra par exemple d’informer, alerter
(imaginons que nous reconnaissions l’arrivée imminente d’une panne, il suffit d’informer un technicien
pour qu’il la répare) ou d’agir (arrêter le système, en démarrer un autre, …, et ceci automatiquement
bien évidemment).
Qu’il s’agisse de résoudre un problème de machine learning ou de deep learning, il existe toujours
deux phases distinctes :
ACCELERATEUR DU STORAGE
FACILITATEUR
ACCELERATEUR DU COMPUTE
Offrirunusage optimisé des
ressourcesconsommatrices de
compute
Optimiserle stockage etoffrirde
nouveaux axes d’utilisation
Permettre aux organisationsde développeretd’opérerdessolutionsà
base d’IA
Machine learning
Cryptographie
Compression
Indexation & Recherche
Machine learning
Charge de compute agnostique
Virtualisation
Supportdesolution matérielles efficacespourl’IA (cf offres cloud)
Authentification :Détection & Reconnaissance(vocal,visage,…)
Assistanceavancée:chatbots,systèmed’aideau diagnostic
Monitoring Prédictif & Remédiation intelligente en cas de pannes(ou
suspicion depannes)
IAclassique
Machine Learning
Deep Learning
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
4
La première phase est une phase d’apprentissage qui consiste à élaborer un modèle qui a appris à
reconnaitre un motif (une image, une séquence binaire, …). Cet apprentissage se fait soit par le biais
de statistiques dans le cas du machine learning, soit par le biais de réseaux de neurones dans le cas du
deep learning. C’est donc une phase de « build » (dite aussi « offline ») et qui ne nécessite pas d’être
exécutée sur le même matériel (ni dans le même lieu) que celui qui utilisera ce modèle « entraîné ».
La seconde phase est une phase dite d’inférence au sein de laquelle le système (d’IA) fonctionne sur
de vraies données en vue de reconnaître quelque chose de réel.
Ces phases ne sont pas les mêmes en termes d’utilisation des ressources informatiques et en
particulier en termes de hardware : la phase d’inférence (le run) nécessite toujours moins de
ressources que la phase d’apprentissage.
Si nous investiguons plus avant, le deep learning est une approche source d’innovations mais avec un
réel davantage d’un point de vue compute : elle s’appuie sur des modèles de réseaux de neurones qui
eux-mêmes reposent sur un parallélisme inhérent. Et c’est ici que le matériel spécialisé vient à notre
secours…
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
5
La vague de hardware dédiée à l’IA
Quand une technologie devient très utilisée, la relation qui existe entre le matériel et le logiciel
s’inverse : ce n’est plus le logiciel qui s’adapte au matériel mais le matériel qui devient « pensé » pour
le logiciel. C’est exactement ce qui est en train de se produire avec l’IA, le matériel est obligé de
s’adapter aux contraintes du logiciel. Dit autrement, le monde du logiciel incorporant de l’IA influence
le développement de composants et de nouvelles plates-formes dédiées.
Notons qu’avant « l’hiver de l’IA » au cours du milieu des années 90 (période où l’IA était mise au rebut
suite à trop d’aspirations déçues, c’est mon interprétation :-) ), de telles initiatives avaient
émergé durant les années 80.Il existait par exemple la famille des ordinateurs (Lisp Machine) Texas
Instruments Explorer (Lisp est un langage qui a beaucoup été utilisé en intelligence artificielle), il y avait
aussi des cartes accélératrices à base de transputers (qui se souvient d’Inmos ?) pour pallier déjà les
problèmes intrinsèques de « compute ».
L’utilisation d’hier ou d’aujourd’hui est globalement la même, un composant dédié à l’IA est couplé à
un processeur et fonctionne donc comme un accélérateur.
Trois types de composants se révèlent aujourd’hui plus rapides que des CPUs pour accomplir du
parallélisme (souvenez que c’est le problème majeur des modèles et algorithmes associés aux réseaux
de neurones au coeur du deep learning) : le GPU (Graphical Processor Unit), les ASIC (Application-
Specific Integrated Circuit) et le FPGA (Field Programmable Array). Notons qu’il existe aussi d’autres
technologies mais qu’elles sont peu ou pas disponibles sur le marché et donc ne retiendrons pas (pour
l’instant) notre attention.
Avant d’aborder chacune de ces familles et en nous répétant : le deep learning nécessite un très grand
nombre de calculs parallèles (surtout lors de la phase d’apprentissage) qui ne peuvent être offerts par
un CPU classique qui lui est surtout optimisé pour des modèles séquentiels (avec quelques incursions
dans le parallélisme généralement jugées insuffisantes pour le deep learning). Ces puces sont appelées
« neuromorphiques » (cf apparition en 1990 du terme par Mead :
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
6
https://web.stanford.edu/group/brainsinsilicon/documents/MeadNeuroMorphElectro.pdf) quand
elles imitent totalement les réseaux de neurones, bien qu’une certaine confusion marketing domine
(certaines sont dédiés à l’apprentissage, d’autres à l’inférence, parfois aux deux phases bien que
personnellement je n’en sois pas convaincu).
GPU (Graphical Processor Unit)
Le GPU a gagné ses galons en étant un composant dédié au monde des cartes graphiques en particulier
pour la vidéo en jouant le rôle d’accélérateur des calculs sur la vidéo (rendering). Leur architecture
particulière parallèle a été détournée par le monde de l’IA pour offrir des capacités de calcul
supplémentaires dans certains cas bien précis (un GPU a toutefois un nombre limité d’instructions
spécialisées). En effet, un GPU repose sur une architecture parallèle composée d’une myriade de petits
cœurs (au sens « cores ») pouvant traiter simultanément chacun une tâche (ce qui correspond à notre
besoin de calcul parallèle). Comme le précise l’un des leaders du marché, NVIDIA, le débit d’exécution
(throughput) offert par un GPU est de 10 à 100 fois plus rapide que celui offert par un CPU (cf
http://www.nvidia.co.uk/object/gpu-applications-uk.html).
L’utilisation d’un GPU doit être vue comme celle d’un coprocesseur : l’application utilise
principalement le CPU et pour les tâches nécessitant du parallélisme elle va utiliser le GPU. Une
particularité des GPUs (comme nous l’avons signalée précédemment) est qu’ils ne gèrent qu’un jeu
réduit d’instructions et qui est différent de celui du CPU, il faut donc adapter le langage machine utilisé
lors des appels au GPU. Heureusement, ceci est fait de façon transparente par de nombreux
frameworks de développements d’IA permettant ainsi d’adapter facilement l’application sans
forcément connaître le langage des GPUs (par exemple aller voir CUDNN une API de programmation
CUDA dédié aux réseaux de neurones, API utilisable sur les composants dédiés IA de NVIDIA:
https://developer.nvidia.com/cudnn).
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
7
Notons que les GPUs utilisés pour l’apprentissage en IA diffèrent des GPU graphiques : ainsi pour les
GV100, Nvidia a ajouté des « tensor cores », multiplicateurs de matrices de 4x4 qui optimisent la
parallélisation des traitements nécessaires à l’implémentation logicielle de réseaux de neurones.
ASIC (Application-Specific Integrated Circuit)
L’ASIC est une famille de composants qui sont élaborés pour un besoin précis. Ils sont donc « figés »
dans leur usage. Ils implémentent un fonctionnement donné appliqué à un domaine, dans ce qui nous
intéresse, ils vont implémenter de façon câblée certaines portions d’algorithmes d’IA liées aux réseaux
de neurones.
Google a révélé en 2016 qu’il avait mis au point des ASICs dédiés à l’intelligence artificielle, baptisés
« Tensor Processor Unit » (TPU) et qu’il les avait utilisés pendant un an dans ses data centers (cf
https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-
custom-chip.html). Notons que de tels composants ont été utilisés dans le challenge AlphaGo avec Lee
Sedol. Une nouvelle génération en 2017 appelée “Cloud TPU” a vu le jour pour être offerte comme
services supplémentaires à ses clients cloud.
IBM a mis au point des puces neuromorphiques (qui imitent les réseaux de neurones) sous l’appellation
TrueNorth. Notons qu’elles ne gèrent pas l’apprentissage et ne font qu’exécuter les modèles
neuronaux déjà entrainés (phase d’inférence).
Durant ces dernières années, plusieurs startups ont saisi l’opportunité d’annoncer la création de puces
dédiées à l’IA. Par exemple parmi ceux que je trouve les plus représentatifs :
• Nervena Systems (acquise par Intel en 2016) avait lancé son projet de développement ASIC
annoncant des gains de 10x pour la vitesse de la phase d’apprentissage, cette puce est
devenue réalité avec Intel (qui a conservé le nom Nervena).
• Graphcore a annoncé son intention de produire en 2017 une Intelligence Processing Unit avec
des annonces de 10x à 100x la vitesse. La particularité de sa solution est de mettre au point
une solution basée sur le traitement des graphes (en lieu et place des scalaires pour les CPUs
ou des vecteurs pour les GPUs).
FPGA (Field-Programmable Gate Arrays)
Les FPGA (Field-Programmable Gate Arrays) sont un type de composant électronique qui peuvent être
reconfigurés par programmation à n’importe quel moment grâce à des blocs logiques programmables
et des interconnections. Utilisés originellement pour mettre au point des composants avant de lancer
des phases d’industrialisation (de type ASICs par exemple), les chercheurs en AI se sont mis à les utiliser
pour deux raisons :
• Ils permettent d’élaborer un composant dédié à certains modèles d’IA (en utilisant leur
capacité à faire en parallèle des calculs de multiplication matricielles via des blocs
programmables DSP présents dans les FPGAs)
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
8
• Ils permettent de moins consommer qu’un GPU (mais 10 à 100 fois plus qu’un ASIC…)
Au chapitre des désavantages, les FPGAs sont onéreux et n’offrent aucun moyen simple de
programmation (les environnements de développement sont complexes à maîtriser par des
développeurs habitués à des modèles de programmation classiques fonctionnels ou objets).
Les utilisateurs de FPGA défendent le point de vue qu’ils optimisent leur hardware pour le dédier à
leur logiciel à un coût moindre grâce à la flexibilité obtenue au cours du temps par la fonctionnalité de
reconfiguration inhérente à ces composants. Ainsi le hardware évolue au gré des optimisations de
l’algorithme. C’est l’un des arguments majeurs avancés par Microsoft qui a déployé des FPGAs
massivement dans ses datacenters Bing et Azure. Notons que l’état de l’art dans le monde de
l’inférence en IA évolue très rapidement (compression, pruning, variable/limited precision sont des
thèmes très actuels d’optimisation dans les réseaux de neurones) et peuvent changer les optimisations
nécessaires pour accélérer les calculs nécessaires. Ceci milite donc en faveur des FPGA dans une
époque d’incertitude.
Microsoft a récemment dévoilé son Project Brainwave (Août 2017, cf https://www.microsoft.com/en-
us/research/blog/microsoft-unveils-project-brainwave/ ), qui utilise des pools de FPGAs pour de
l’inférence temps réel. D’autres fournisseurs de type startup offrent des puces similaires : Teradeep ou
Leapmind. Ces processeurs peuvent être 10 fois plus rapides que des GPU mais ce n’est pas la majorité
des productions.
La bataille des puces
Il existe une très grande confusion, alimentée par des vents marketing, pour distinguer ce qui est le
plus efficient en termes de performances.
La performance peut être mesurée de plusieurs façons :
• La capacité de calcul (« throughput »)
• La consommation d’énergie ramenée au calcul (« computations / Joule »)
• Le coût du calcul (« throughput / $)
Chacun de ces axes ne conduit pas au même classement pour indiquer quel composant est le plus
efficace. Il faut aussi considérer l’application cible pour le composant, ce qui s’avère encore plus délicat
(faut-il privilégier la versatilité du codage ou l’intégration d’un modèle de données, … ? ).
Une vision simplifiée basée sur le marketing des fournisseurs (nous ne cherchons pas ici une étude
scientifique mais une vision relative…) permet d’aboutir aux échelles suivantes pour l’inférence (dans
le cas de la phase d’apprentissage, il faut diviser au moins par 10 la performance relative) :
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
9
Ainsi un ASIC est 1000-10000 fois plus performant qu’un CPU simple Coeur mais a une efficacité
énergétique moins bonne.
Comme nous l’avons évoqué, si nous raisonnons en termes de flexibilité, le FPGA serait le grand
gagnant car les autres puces peuvent très vite devenir obsolètes suite à des avancées dans
l’algorithmie d’implémentation des réseaux de neurones… Le CPU et le GPU sont considérés très
efficaces pour des calculs déterministes beaucoup moins pour certains calculs probabilistes.
La course à la performance se mesure aussi en Flops (pour simplifier le nombre d’opérations/s qu’une
puce peut réaliser), une illustration de la puissance nvidia :
Plate-forme Puissance en téraFLOPS (source
Wikipedia/FLOPS)
2016 Plateforme NVIDIA DGX1 (P100) 170 (FP16) = la puissance des superordinateurs
de 2005
(cf https://www.top500.org/lists/2005/06/)
2017 Plateforme à base de NVIDIA Tesla V100 960 (FP16)= la puissance des ordinateurs de
2007 (cf
https://www.top500.org/lists/2007/11/)
Cerveau Humain (depuis quand ?) De 30 téraFLOPS à 10 yoltaFLOPS
http://www.fhi.ox.ac.uk/brain-emulation-
roadmap-report.pdf pp 84-85
.
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
10
Et le CPU ?
Le CPU n’a pas dit son dernier mot. Intel a démontré récemment qu’en utilisant des bibliothèques
optimisées pour l’IA, il était possible d’accélérer très fortement les traitements (voir en particulier
https://www.intel.com/content/www/us/en/analytics/machine-learning/the-race-for-faster-
machine-learning.html ). Ceci vient contrebalancer l’idée que seules les puces accélératrices sont un
choix crédible pour l’IA. Ainsi Intel a produit toute une série d’optimisations pour des frameworks
usuels de l’IA (voir pour le framework en reconnaissance d’images Caffe
https://software.intel.com/en-us/articles/comparison-between-intel-optimized-caffe-and-vanilla-
caffe-by-intel-vtune-amplifier , le framework Theano omniprésent dans le machine
learning https://software.intel.com/en-us/articles/tensorflow-optimizations-on-modern-intel-
architecture ).
Les composants de mémoire.
Les GPU et autres composants neuromorphiques sont performants s’ils peuvent accéder très vite aux
données en mémoire lors des phases d’apprentissage. En effet, c’est à ce moment-là que des milliards
de données changent de valeur (les fameux poids des réseaux de neurones). Donc il est évident qu’au
plus la mémoire accessible à ces composants sera rapide au plus ils seront efficaces. Nous ne traiterons
ici que des composants de mémoire en relation directe avec la fonction de « compute » pas ceux liés
au stockage à proprement parler (Disque SSD,…).
Mémoire NVDIA
un GPU n’est utilisable pour des réseaux de neurones que si la mémoire est facilement partagée entre
les coeurs de GPU. C’est ce que propose justement Nvidia avec son architecture GPUDirect RDMA et
avec son bus NVLink qui atteint la vitesse de 300 Go/s avec ses derniers GPU GV100 Volta annoncés
en mai 2017.
Les nouveaux composants de mémorisation : les memristors
Les memristors ont fait leur apparition en 2008 chez HP après avoir été conceptualisés dans les années
70 (voir Wikipédia :-). C'est une résistance analogique variable qui garde en mémoire les tensions
électriques qui lui ont été appliquées. Leur utilisation est appliquée ici aux réseaux de neurones. Dans
les FPGA ou ASIC, ces informations sont stockées soit dans les circuits eux-mêmes, soit dans des RAM
séparées, et de manière volatile. Les memristors permettent de conserver un peu à la façon d’une
NVRAM (non volative RAM : les mémoires flash) les états engendrés par un réseau de neurones
artificiels. C’est aujourd’hui un axe majeur de développement car elle est 10 fois plus rapide que la
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
11
mémoire flash (et conduirait donc à une nouvelle évolution dans les cinq ou dix ans qui viennent, nous
en reparlerons dans les technologies de stockage distribué…).
Actuellement au stade de recherche avancée ces puces se sont focalisées sur la mise en œuvre par
biomimétisme d’une fonction synaptique du cerveau humain appelée STDP (Spike timing dependent
plasticity ou en traduction semi-directe « plasticité fonction du temps d’occurrence des impulsions »),
l’idée étant que le composant simulant les synapses d’un neurone dispose de l’historique des
impulsions électriques auxquelles il a été soumis (enfin, c’est mon interprétation,).
Utiliser cette fonction STDP permet à des synapses artificielles de gérer des formes d'apprentissage
non-supervisé, et ceci sans consommer énormément d’énergie grâce à la fonction de
« mémorisation » du composant.
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
12
Le Cloud à la rescousse
Des offres matérielles pour supporter l’IA
L’IA est une très grosse consommatrice de ressources, surtout pour les phases d’apprentissage, il était
donc normal qu’elle se tourne rapidement vers le Cloud pour bénéficier de besoins ponctuels et
massifs (la fameuse élasticité du cloud) afin de diminuer la facture de possession de matériels haut de
gamme.
Tous les fournisseurs ont aujourd’hui une offre qui vise à favoriser les développements à base d’IA. La
table suivante (non exhaustive) permet de dresser un rapide constat :
Instances Avec GPU Avec ASIC Avec FPGA
Amazon
https://aws.
amazon.com
/amazon-ai
https://aws.amazon.com/e
c2/instance-types/
accélération du compute
(instances de type P2 ou P3
avec des NVIDIA GPUs
associées)
Instance de type F1
couplée avec des
Xilinx FPGA
Google Google cloud TPU en version
alpha
Microsoft Les VMs Azure de type ND
avec des NVIDIA Tesla P40
(cf http://gpu.azure.com/)
Devrait sortir en
2018 ?
Oracle GPU (deux NVIDIA P100)
sur des serveurs physiques
(cf
https://cloud.oracle.com/e
n_US/infrastructure/comp
ute )
OVH Hébergement de serveurs
NVIDIA (cf par ex. GPU G3
de 1 à 3 GPU Nvidia
GeForce GTX 1080 Ti
dédiées
https://www.ovh.com/fr/p
ublic-cloud/instances/gpu/
)
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
13
L’IA as a Service ?
La palette de services proposés autour de l’IA s’étoffe de jour en jour autour de 3 axes majeurs :
Les services Cloud d’IA (API & frameworks) sont disponibles sur étagère même si vous n’êtes pas un
docteur en IA et de bons développeurs logiciels seront tirer parti des offres cloud pour construire des
applications et systèmes « intelligents ». C’est la fameuse vague « IA ». Car trois facteurs permettent
désormais de porter l’IA :
• La fin de la limitation du tryptique matériel (mémoire, CPU, stockage) grâce à l’élasticité du
Cloud
• L’arrivée d’une nouvelle génération d’algorithmes performants qui sont rendus grand public
par des interfaces simples (aller voir par exemple tout ce que fait en peu d’appels une
bibliothèque comme Google Prophet (cf https://research.fb.com/prophet-forecasting-at-
scale/)
• L’arrivée de véritables business models associés à l’IA montrant une réelle valeur ajoutée à
utiliser de l’IA en lieu et place de technologies plus traditionnelles (statistiques, data science
traditionnelle).
Les plates-formes Cloud de Machine learning permettent d’éviter la complexité d’assemblage de telles
infrastructures matérielles et logicielles en fournissant une plate-forme opérationnelle et déjà
configurée. C’est inestimable tant le temps de configuration et d’intégration est très long pour
implémenter de telles solutions. Certes, les solutions sont propriétaires mais ils accélèrent très
fortement la mise à disposition de solutions à base d’IA.
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
14
Les modèles de business fondés sur l’IA
De nouveaux modèles mixant techniques d’IA et techniques traditionnelles sont en train d’apparaître.
Tout ce qui est répétition (de tâches et consommateur de temps (humain), càd toutes les formes
d’automatisation sont affectées. Si nous poussons la réflexion, plutôt que passer du temps à modéliser
et conceptualiser, autant faire apprendre à un système des comportements qu’il devra adopter face à
certains événements… Nous avons déjà les prémisses de telles automatisations avec les voitures sans
chauffeur par exemple, bien que la part de calculs traditionnels reste (encore) très importante. Qui dit
automatisation, dit aussi aujourd’hui beaucoup de configurations et il est fort à parier que dans un
futur proche des business models hybrides, IA et technologies traditionnelles, vont émerger dans les
domaines de l’infrastructure avec un pouvoir d’adaptation dynamique des configurations au contexte.
Ainsi l’opération d’automatisation saura s’adapter aux besoins humains face à des détections
d’incidents en proposant des solutions automatiques de correction (qui n’a pas rêvé d’un système
s’adaptant et se corrigeant sans notre intervention, c’est le mythe du robot qui se répare seul et qui a
donc besoin de la dimension de la conscience pour ce faire, donc c’est dans un futur (très) lointain).
Ces modèles ont une forte valeur ajoutée car ils éliminent le facteur humain, font appel à une mémoire
événementielle colossale, et ont appris à appliquer des solutions de contournement. Bien évidemment
les modèles de business fondés sur l’IA couvrent bien d’autres domaines que l’automatisation de l’IT…
depuis les aspects mercantiles jusqu’aux aspects SI.
Mais où est donc passé le Web Sémantique ?
La question est intéressante et posée par un de mes collègues. Il faut revenir aux fondamentaux, la
différence entre IA symbolique et IA connexionniste.
L’IA symbolique s’est fondée sur la manipulation de symboles et le monde de la logique. Elle est très
largement utilisée en classification (documents, données,…). La classification du « symbole » (un mot,
un livre…) est réalisée selon des règles strictes et formelles exprimées par une logique (au sens
mathématique). Ainsi, des logiques telles que la logique des propositions, des prédicats ou des
descriptions seront utilisées pour décrire et manipuler ces symboles. Afin de décrire le domaine de
classification à modéliser, pour obtenir une connaissance stricte et complète des concepts, des faits et
des relations, une « ontologie » est élaborée.
L’IA connexionniste suit une tout autre approche, c’est une approche calquée sur la biologie du
cerveau, les neurones qui réagissent à des stimuli. Ainsi l’IA connexionniste repose sur une multitude
de neurones mis en réseaux (de différentes façons ce qui définit les différents courants de recherche)
qui sont à mis à profit par des algorithmes d’apprentissage. Elle repose sur un traitement statistique
de l’information et non structural. Ce type d’IA est très efficace pour identifier des corrélations entre
des observations sans liens apparents. Ainsi il n’est pas nécessaire d’avoir une connaissance du
domaine donc d’avoir une modélisation.
Ainsi l’IA connexionniste supplante l’IA symbolique dans les mises en œuvre de l’IA car la dernière
phrase, à elle seule, résume la simplicité de l’approche. L’absence du modèle évite une modélisation
AIMIT #1 Jean-Louis BAUDOIN 2017/2018
15
coûteuse et complexe, et elle est donc bien en adhésion avec un time to market de plus en plus court.
Il faut trouver, classifier vite, pas de temps pour théoriser. C’est à notre avis la raison de la mise en
sommeil de nombreux projets ontologiques. En synthèse (abusive j’en conviens), les business case de
l’IA connexionniste sont très grands publics, facile à implémenter, pas ceux de l’IA symbolique.
Ainsi, l’IA symbolique s’est effacée au profit de l’IA connexionniste qui permet des victoires (quick wins)
immédiates et sans haut niveau en mathématiques car un courant portant de frameworks simples à
mettre en œuvre a permis de nourrir une approche rapide de l’implémentation.

Más contenido relacionado

Similar a Aimit 1 v1.2 fr

Introduction a IA(The first course of IA).pptx
Introduction a IA(The first course of IA).pptxIntroduction a IA(The first course of IA).pptx
Introduction a IA(The first course of IA).pptx
whatinspiremyworld
 
dt_medecine_personalis.pptx
dt_medecine_personalis.pptxdt_medecine_personalis.pptx
dt_medecine_personalis.pptx
nour91922
 
Bluemix Paris Meetup : Big data et Analytics - 15 avril 2015
Bluemix Paris Meetup :  Big data et Analytics - 15 avril 2015Bluemix Paris Meetup :  Big data et Analytics - 15 avril 2015
Bluemix Paris Meetup : Big data et Analytics - 15 avril 2015
IBM France Lab
 
Impact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketingImpact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketing
Romain Bouilloud
 

Similar a Aimit 1 v1.2 fr (20)

Mobile First to AI First
Mobile First to AI FirstMobile First to AI First
Mobile First to AI First
 
Intelligence Artificielle - Comment change-t-elle le mode ? JBU2018
Intelligence Artificielle - Comment change-t-elle le mode ? JBU2018Intelligence Artificielle - Comment change-t-elle le mode ? JBU2018
Intelligence Artificielle - Comment change-t-elle le mode ? JBU2018
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
 
iA Générative : #ChatGPT #MidJourney
iA Générative : #ChatGPT #MidJourney iA Générative : #ChatGPT #MidJourney
iA Générative : #ChatGPT #MidJourney
 
EXTRA-Présentation generale 180923.pptx
EXTRA-Présentation generale 180923.pptxEXTRA-Présentation generale 180923.pptx
EXTRA-Présentation generale 180923.pptx
 
Decentralised Control of Intelligent Devices: A Healthcare Facility Study
Decentralised Control of Intelligent Devices: A Healthcare Facility Study Decentralised Control of Intelligent Devices: A Healthcare Facility Study
Decentralised Control of Intelligent Devices: A Healthcare Facility Study
 
Les Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence ArtificielleLes Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence Artificielle
 
Introduction a IA(The first course of IA).pptx
Introduction a IA(The first course of IA).pptxIntroduction a IA(The first course of IA).pptx
Introduction a IA(The first course of IA).pptx
 
Digital.pdf
Digital.pdfDigital.pdf
Digital.pdf
 
La coopération des intelligences
La coopération des intelligencesLa coopération des intelligences
La coopération des intelligences
 
Quel quotidien bercé d'IA créons-nous ?
Quel quotidien bercé d'IA créons-nous ?Quel quotidien bercé d'IA créons-nous ?
Quel quotidien bercé d'IA créons-nous ?
 
dt_medecine_personalis.pptx
dt_medecine_personalis.pptxdt_medecine_personalis.pptx
dt_medecine_personalis.pptx
 
COURS INTELLIGENCE ARTIFICIELLE.pptx
COURS INTELLIGENCE ARTIFICIELLE.pptxCOURS INTELLIGENCE ARTIFICIELLE.pptx
COURS INTELLIGENCE ARTIFICIELLE.pptx
 
Bluemix Paris Meetup : Big data et Analytics - 15 avril 2015
Bluemix Paris Meetup :  Big data et Analytics - 15 avril 2015Bluemix Paris Meetup :  Big data et Analytics - 15 avril 2015
Bluemix Paris Meetup : Big data et Analytics - 15 avril 2015
 
Intro IA CJD
Intro IA CJDIntro IA CJD
Intro IA CJD
 
Cyberstrategia
CyberstrategiaCyberstrategia
Cyberstrategia
 
L'avent de la super intelligence artificielle et ses impacts
L'avent de la super intelligence artificielle et ses impactsL'avent de la super intelligence artificielle et ses impacts
L'avent de la super intelligence artificielle et ses impacts
 
Impact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketingImpact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketing
 
[Livre blanc] « Gouvernance de l’Intelligence Artificielle dans les entrepris...
[Livre blanc] « Gouvernance de l’Intelligence Artificielle dans les entrepris...[Livre blanc] « Gouvernance de l’Intelligence Artificielle dans les entrepris...
[Livre blanc] « Gouvernance de l’Intelligence Artificielle dans les entrepris...
 
8 trend dsi pharma vf
8 trend dsi pharma vf8 trend dsi pharma vf
8 trend dsi pharma vf
 

Aimit 1 v1.2 fr

  • 1. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 1 AIMIT #1 – Artificial Intelligence meets IT –Towards an AI Defined & Enabled Data Center (AIDEDC) – The AI dedicated hardware. Table des matières AIMIT #1 – Artificial Intelligence meets IT –Towards an AI Defined & Enabled Data Center (AIDEDC) – The AI dedicated hardware..................................................................................................................... 1 Un peu de vocabulaire ........................................................................................................................ 2 La vague de hardware dédiée à l’IA .................................................................................................... 5 GPU (Graphical Processor Unit) ...................................................................................................... 6 ASIC (Application-Specific Integrated Circuit)................................................................................. 7 FPGA (Field-Programmable Gate Arrays)........................................................................................ 7 La bataille des puces........................................................................................................................ 8 Et le CPU ? ......................................................................................................................................... 10 Les composants de mémoire. ........................................................................................................... 10 Mémoire NVDIA ............................................................................................................................ 10 Les nouveaux composants de mémorisation : les memristors..................................................... 10 Le Cloud à la rescousse.......................................................................................................................... 12 Des offres matérielles pour supporter l’IA.................................................................................... 12 L’IA as a Service ? .......................................................................................................................... 13 Les modèles de business fondés sur l’IA....................................................................................... 14 Mais où est donc passé le Web Sémantique ?.............................................................................. 14 Ces dernières années, le monde de l’IT (au sens infrastructure) a connu trois grands bouleversements : l’introduction du Cloud couplé à des pratiques DEVOPS, le passage des applications en containers (dockers et consorts), et l’introduction massive grandissante de l’IA dans les outils comme dans les opérations. De plus les prédictions des grands analystes tels que Gartner ou IDC prévoient qu’entre 2018 et 2020 les applications intégreront (toutes ?) une dimension AI. En effet, un très grand nombre d’organisations se sont penchées sur l’intelligence artificielle et plus particulièrement le domaine du deep learning (voir définition plus avant dans cet article) en considérant que grâce à ces technologies elles seront capables de prendre plus vite les « bonnes décisions » business, adapter rapidement leurs modèles business et devenir ainsi plus efficaces, et pour certaines améliorer l’expérience utilisateur. Enfin, une volonté avérée de pouvoir prédire le futur s’est à nouveau emparée des analystes métiers
  • 2. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 2 qui considèrent que dans le volume (colossal) des données se trouvent des tendances dissimulées qu’ils vont bien évidemment grâce à l’IA faire éclore. Ainsi pour satisfaire la demande du business, l’IT doit pouvoir aussi se doter : • de fonctions supports de l’IA au sens de fournitures d’infrastructures dédiées • de logiciels « intelligents » : l’IT doit elle-même adopter les technologies issues de l’IA afin d’ être plus efficace dans son service rendu au business. L’introduction massive de l’IA est intéressante sur plusieurs plans, car elle a essentiellement trois impacts majeurs sur l’IT : le compute, le storage et les outils. Ce premier article va s’intéresser au hardware dédié à l’AI, càd mettra en avant certains éléments relatifs au compute. Toutefois afin de bien comprendre à quoi peuvent servir les innovations dans le domaine du matériel, rappelons quelques éléments et concepts fondateurs. Nota : notre propos n’est pas de dresser l’état de l’art ni d’utiliser un parallèle anthropomorphique mais d’étudier ce qui est disponible sur le marché et plus particulièrement accessible soit pour un datacenter soit dans le cloud. Pour avoir une vision plus large et plus prospective, rapprochez vous d’un excellent document comme celui rédigé par Olivier d’Ezratti (cf http://www.oezratty.net/wordpress/2017/usages-intelligence-artificielle-ebook/ ). Un peu de vocabulaire En 1955, John Mc Carthy, un universitaire américain introduit le terme d’IA qui sera proposé à la première conférence éponyme de Darmouth en 1956 (cf http://www- formal.stanford.edu/jmc/history/dartmouth/dartmouth.html) qu’il définit au travers de la notion plus large de problème d’intelligence artificielle (en tant qu’objet de recherche) : « the artificial intelligence problem is taken to be that of making a machine behave in ways that would be called intelligent if a human (was) so behaving ». L’IA globalement se structure aujourd’hui autour de 3 domaines : l’IA « classique » (au sens des domaines de recherche historiques), le Machine Learning, le Deep Learning.
  • 3. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 3 Le deep learning est la technologie de rupture actuelle et qui recouvre un nombre toujours plus grand de domaines d’application : la classification d’images, la reconnaissance vocale, la prédiction de maladies, la réponse à des questions, …, la liste semble inépuisable. Les transformations amenées par l’IA peuvent se résumer en rapport à notre contexte IT : Définissons les notions “d’apprentissage” et “d’inférence” car ils vont jouer un rôle important dans la promotion de composants dédiés à l’IA. Dans la topologie qui nous intéresse, il faut s’imaginer toujours avoir à reconnaître quelque chose. Fondamentalement, l’IA est ici assimilée à un système de reconnaissance (parole, geste, image, données arrangées d’une certaine façon). Reconnaître permettra par exemple d’informer, alerter (imaginons que nous reconnaissions l’arrivée imminente d’une panne, il suffit d’informer un technicien pour qu’il la répare) ou d’agir (arrêter le système, en démarrer un autre, …, et ceci automatiquement bien évidemment). Qu’il s’agisse de résoudre un problème de machine learning ou de deep learning, il existe toujours deux phases distinctes : ACCELERATEUR DU STORAGE FACILITATEUR ACCELERATEUR DU COMPUTE Offrirunusage optimisé des ressourcesconsommatrices de compute Optimiserle stockage etoffrirde nouveaux axes d’utilisation Permettre aux organisationsde développeretd’opérerdessolutionsà base d’IA Machine learning Cryptographie Compression Indexation & Recherche Machine learning Charge de compute agnostique Virtualisation Supportdesolution matérielles efficacespourl’IA (cf offres cloud) Authentification :Détection & Reconnaissance(vocal,visage,…) Assistanceavancée:chatbots,systèmed’aideau diagnostic Monitoring Prédictif & Remédiation intelligente en cas de pannes(ou suspicion depannes) IAclassique Machine Learning Deep Learning
  • 4. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 4 La première phase est une phase d’apprentissage qui consiste à élaborer un modèle qui a appris à reconnaitre un motif (une image, une séquence binaire, …). Cet apprentissage se fait soit par le biais de statistiques dans le cas du machine learning, soit par le biais de réseaux de neurones dans le cas du deep learning. C’est donc une phase de « build » (dite aussi « offline ») et qui ne nécessite pas d’être exécutée sur le même matériel (ni dans le même lieu) que celui qui utilisera ce modèle « entraîné ». La seconde phase est une phase dite d’inférence au sein de laquelle le système (d’IA) fonctionne sur de vraies données en vue de reconnaître quelque chose de réel. Ces phases ne sont pas les mêmes en termes d’utilisation des ressources informatiques et en particulier en termes de hardware : la phase d’inférence (le run) nécessite toujours moins de ressources que la phase d’apprentissage. Si nous investiguons plus avant, le deep learning est une approche source d’innovations mais avec un réel davantage d’un point de vue compute : elle s’appuie sur des modèles de réseaux de neurones qui eux-mêmes reposent sur un parallélisme inhérent. Et c’est ici que le matériel spécialisé vient à notre secours…
  • 5. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 5 La vague de hardware dédiée à l’IA Quand une technologie devient très utilisée, la relation qui existe entre le matériel et le logiciel s’inverse : ce n’est plus le logiciel qui s’adapte au matériel mais le matériel qui devient « pensé » pour le logiciel. C’est exactement ce qui est en train de se produire avec l’IA, le matériel est obligé de s’adapter aux contraintes du logiciel. Dit autrement, le monde du logiciel incorporant de l’IA influence le développement de composants et de nouvelles plates-formes dédiées. Notons qu’avant « l’hiver de l’IA » au cours du milieu des années 90 (période où l’IA était mise au rebut suite à trop d’aspirations déçues, c’est mon interprétation :-) ), de telles initiatives avaient émergé durant les années 80.Il existait par exemple la famille des ordinateurs (Lisp Machine) Texas Instruments Explorer (Lisp est un langage qui a beaucoup été utilisé en intelligence artificielle), il y avait aussi des cartes accélératrices à base de transputers (qui se souvient d’Inmos ?) pour pallier déjà les problèmes intrinsèques de « compute ». L’utilisation d’hier ou d’aujourd’hui est globalement la même, un composant dédié à l’IA est couplé à un processeur et fonctionne donc comme un accélérateur. Trois types de composants se révèlent aujourd’hui plus rapides que des CPUs pour accomplir du parallélisme (souvenez que c’est le problème majeur des modèles et algorithmes associés aux réseaux de neurones au coeur du deep learning) : le GPU (Graphical Processor Unit), les ASIC (Application- Specific Integrated Circuit) et le FPGA (Field Programmable Array). Notons qu’il existe aussi d’autres technologies mais qu’elles sont peu ou pas disponibles sur le marché et donc ne retiendrons pas (pour l’instant) notre attention. Avant d’aborder chacune de ces familles et en nous répétant : le deep learning nécessite un très grand nombre de calculs parallèles (surtout lors de la phase d’apprentissage) qui ne peuvent être offerts par un CPU classique qui lui est surtout optimisé pour des modèles séquentiels (avec quelques incursions dans le parallélisme généralement jugées insuffisantes pour le deep learning). Ces puces sont appelées « neuromorphiques » (cf apparition en 1990 du terme par Mead :
  • 6. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 6 https://web.stanford.edu/group/brainsinsilicon/documents/MeadNeuroMorphElectro.pdf) quand elles imitent totalement les réseaux de neurones, bien qu’une certaine confusion marketing domine (certaines sont dédiés à l’apprentissage, d’autres à l’inférence, parfois aux deux phases bien que personnellement je n’en sois pas convaincu). GPU (Graphical Processor Unit) Le GPU a gagné ses galons en étant un composant dédié au monde des cartes graphiques en particulier pour la vidéo en jouant le rôle d’accélérateur des calculs sur la vidéo (rendering). Leur architecture particulière parallèle a été détournée par le monde de l’IA pour offrir des capacités de calcul supplémentaires dans certains cas bien précis (un GPU a toutefois un nombre limité d’instructions spécialisées). En effet, un GPU repose sur une architecture parallèle composée d’une myriade de petits cœurs (au sens « cores ») pouvant traiter simultanément chacun une tâche (ce qui correspond à notre besoin de calcul parallèle). Comme le précise l’un des leaders du marché, NVIDIA, le débit d’exécution (throughput) offert par un GPU est de 10 à 100 fois plus rapide que celui offert par un CPU (cf http://www.nvidia.co.uk/object/gpu-applications-uk.html). L’utilisation d’un GPU doit être vue comme celle d’un coprocesseur : l’application utilise principalement le CPU et pour les tâches nécessitant du parallélisme elle va utiliser le GPU. Une particularité des GPUs (comme nous l’avons signalée précédemment) est qu’ils ne gèrent qu’un jeu réduit d’instructions et qui est différent de celui du CPU, il faut donc adapter le langage machine utilisé lors des appels au GPU. Heureusement, ceci est fait de façon transparente par de nombreux frameworks de développements d’IA permettant ainsi d’adapter facilement l’application sans forcément connaître le langage des GPUs (par exemple aller voir CUDNN une API de programmation CUDA dédié aux réseaux de neurones, API utilisable sur les composants dédiés IA de NVIDIA: https://developer.nvidia.com/cudnn).
  • 7. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 7 Notons que les GPUs utilisés pour l’apprentissage en IA diffèrent des GPU graphiques : ainsi pour les GV100, Nvidia a ajouté des « tensor cores », multiplicateurs de matrices de 4x4 qui optimisent la parallélisation des traitements nécessaires à l’implémentation logicielle de réseaux de neurones. ASIC (Application-Specific Integrated Circuit) L’ASIC est une famille de composants qui sont élaborés pour un besoin précis. Ils sont donc « figés » dans leur usage. Ils implémentent un fonctionnement donné appliqué à un domaine, dans ce qui nous intéresse, ils vont implémenter de façon câblée certaines portions d’algorithmes d’IA liées aux réseaux de neurones. Google a révélé en 2016 qu’il avait mis au point des ASICs dédiés à l’intelligence artificielle, baptisés « Tensor Processor Unit » (TPU) et qu’il les avait utilisés pendant un an dans ses data centers (cf https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with- custom-chip.html). Notons que de tels composants ont été utilisés dans le challenge AlphaGo avec Lee Sedol. Une nouvelle génération en 2017 appelée “Cloud TPU” a vu le jour pour être offerte comme services supplémentaires à ses clients cloud. IBM a mis au point des puces neuromorphiques (qui imitent les réseaux de neurones) sous l’appellation TrueNorth. Notons qu’elles ne gèrent pas l’apprentissage et ne font qu’exécuter les modèles neuronaux déjà entrainés (phase d’inférence). Durant ces dernières années, plusieurs startups ont saisi l’opportunité d’annoncer la création de puces dédiées à l’IA. Par exemple parmi ceux que je trouve les plus représentatifs : • Nervena Systems (acquise par Intel en 2016) avait lancé son projet de développement ASIC annoncant des gains de 10x pour la vitesse de la phase d’apprentissage, cette puce est devenue réalité avec Intel (qui a conservé le nom Nervena). • Graphcore a annoncé son intention de produire en 2017 une Intelligence Processing Unit avec des annonces de 10x à 100x la vitesse. La particularité de sa solution est de mettre au point une solution basée sur le traitement des graphes (en lieu et place des scalaires pour les CPUs ou des vecteurs pour les GPUs). FPGA (Field-Programmable Gate Arrays) Les FPGA (Field-Programmable Gate Arrays) sont un type de composant électronique qui peuvent être reconfigurés par programmation à n’importe quel moment grâce à des blocs logiques programmables et des interconnections. Utilisés originellement pour mettre au point des composants avant de lancer des phases d’industrialisation (de type ASICs par exemple), les chercheurs en AI se sont mis à les utiliser pour deux raisons : • Ils permettent d’élaborer un composant dédié à certains modèles d’IA (en utilisant leur capacité à faire en parallèle des calculs de multiplication matricielles via des blocs programmables DSP présents dans les FPGAs)
  • 8. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 8 • Ils permettent de moins consommer qu’un GPU (mais 10 à 100 fois plus qu’un ASIC…) Au chapitre des désavantages, les FPGAs sont onéreux et n’offrent aucun moyen simple de programmation (les environnements de développement sont complexes à maîtriser par des développeurs habitués à des modèles de programmation classiques fonctionnels ou objets). Les utilisateurs de FPGA défendent le point de vue qu’ils optimisent leur hardware pour le dédier à leur logiciel à un coût moindre grâce à la flexibilité obtenue au cours du temps par la fonctionnalité de reconfiguration inhérente à ces composants. Ainsi le hardware évolue au gré des optimisations de l’algorithme. C’est l’un des arguments majeurs avancés par Microsoft qui a déployé des FPGAs massivement dans ses datacenters Bing et Azure. Notons que l’état de l’art dans le monde de l’inférence en IA évolue très rapidement (compression, pruning, variable/limited precision sont des thèmes très actuels d’optimisation dans les réseaux de neurones) et peuvent changer les optimisations nécessaires pour accélérer les calculs nécessaires. Ceci milite donc en faveur des FPGA dans une époque d’incertitude. Microsoft a récemment dévoilé son Project Brainwave (Août 2017, cf https://www.microsoft.com/en- us/research/blog/microsoft-unveils-project-brainwave/ ), qui utilise des pools de FPGAs pour de l’inférence temps réel. D’autres fournisseurs de type startup offrent des puces similaires : Teradeep ou Leapmind. Ces processeurs peuvent être 10 fois plus rapides que des GPU mais ce n’est pas la majorité des productions. La bataille des puces Il existe une très grande confusion, alimentée par des vents marketing, pour distinguer ce qui est le plus efficient en termes de performances. La performance peut être mesurée de plusieurs façons : • La capacité de calcul (« throughput ») • La consommation d’énergie ramenée au calcul (« computations / Joule ») • Le coût du calcul (« throughput / $) Chacun de ces axes ne conduit pas au même classement pour indiquer quel composant est le plus efficace. Il faut aussi considérer l’application cible pour le composant, ce qui s’avère encore plus délicat (faut-il privilégier la versatilité du codage ou l’intégration d’un modèle de données, … ? ). Une vision simplifiée basée sur le marketing des fournisseurs (nous ne cherchons pas ici une étude scientifique mais une vision relative…) permet d’aboutir aux échelles suivantes pour l’inférence (dans le cas de la phase d’apprentissage, il faut diviser au moins par 10 la performance relative) :
  • 9. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 9 Ainsi un ASIC est 1000-10000 fois plus performant qu’un CPU simple Coeur mais a une efficacité énergétique moins bonne. Comme nous l’avons évoqué, si nous raisonnons en termes de flexibilité, le FPGA serait le grand gagnant car les autres puces peuvent très vite devenir obsolètes suite à des avancées dans l’algorithmie d’implémentation des réseaux de neurones… Le CPU et le GPU sont considérés très efficaces pour des calculs déterministes beaucoup moins pour certains calculs probabilistes. La course à la performance se mesure aussi en Flops (pour simplifier le nombre d’opérations/s qu’une puce peut réaliser), une illustration de la puissance nvidia : Plate-forme Puissance en téraFLOPS (source Wikipedia/FLOPS) 2016 Plateforme NVIDIA DGX1 (P100) 170 (FP16) = la puissance des superordinateurs de 2005 (cf https://www.top500.org/lists/2005/06/) 2017 Plateforme à base de NVIDIA Tesla V100 960 (FP16)= la puissance des ordinateurs de 2007 (cf https://www.top500.org/lists/2007/11/) Cerveau Humain (depuis quand ?) De 30 téraFLOPS à 10 yoltaFLOPS http://www.fhi.ox.ac.uk/brain-emulation- roadmap-report.pdf pp 84-85 .
  • 10. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 10 Et le CPU ? Le CPU n’a pas dit son dernier mot. Intel a démontré récemment qu’en utilisant des bibliothèques optimisées pour l’IA, il était possible d’accélérer très fortement les traitements (voir en particulier https://www.intel.com/content/www/us/en/analytics/machine-learning/the-race-for-faster- machine-learning.html ). Ceci vient contrebalancer l’idée que seules les puces accélératrices sont un choix crédible pour l’IA. Ainsi Intel a produit toute une série d’optimisations pour des frameworks usuels de l’IA (voir pour le framework en reconnaissance d’images Caffe https://software.intel.com/en-us/articles/comparison-between-intel-optimized-caffe-and-vanilla- caffe-by-intel-vtune-amplifier , le framework Theano omniprésent dans le machine learning https://software.intel.com/en-us/articles/tensorflow-optimizations-on-modern-intel- architecture ). Les composants de mémoire. Les GPU et autres composants neuromorphiques sont performants s’ils peuvent accéder très vite aux données en mémoire lors des phases d’apprentissage. En effet, c’est à ce moment-là que des milliards de données changent de valeur (les fameux poids des réseaux de neurones). Donc il est évident qu’au plus la mémoire accessible à ces composants sera rapide au plus ils seront efficaces. Nous ne traiterons ici que des composants de mémoire en relation directe avec la fonction de « compute » pas ceux liés au stockage à proprement parler (Disque SSD,…). Mémoire NVDIA un GPU n’est utilisable pour des réseaux de neurones que si la mémoire est facilement partagée entre les coeurs de GPU. C’est ce que propose justement Nvidia avec son architecture GPUDirect RDMA et avec son bus NVLink qui atteint la vitesse de 300 Go/s avec ses derniers GPU GV100 Volta annoncés en mai 2017. Les nouveaux composants de mémorisation : les memristors Les memristors ont fait leur apparition en 2008 chez HP après avoir été conceptualisés dans les années 70 (voir Wikipédia :-). C'est une résistance analogique variable qui garde en mémoire les tensions électriques qui lui ont été appliquées. Leur utilisation est appliquée ici aux réseaux de neurones. Dans les FPGA ou ASIC, ces informations sont stockées soit dans les circuits eux-mêmes, soit dans des RAM séparées, et de manière volatile. Les memristors permettent de conserver un peu à la façon d’une NVRAM (non volative RAM : les mémoires flash) les états engendrés par un réseau de neurones artificiels. C’est aujourd’hui un axe majeur de développement car elle est 10 fois plus rapide que la
  • 11. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 11 mémoire flash (et conduirait donc à une nouvelle évolution dans les cinq ou dix ans qui viennent, nous en reparlerons dans les technologies de stockage distribué…). Actuellement au stade de recherche avancée ces puces se sont focalisées sur la mise en œuvre par biomimétisme d’une fonction synaptique du cerveau humain appelée STDP (Spike timing dependent plasticity ou en traduction semi-directe « plasticité fonction du temps d’occurrence des impulsions »), l’idée étant que le composant simulant les synapses d’un neurone dispose de l’historique des impulsions électriques auxquelles il a été soumis (enfin, c’est mon interprétation,). Utiliser cette fonction STDP permet à des synapses artificielles de gérer des formes d'apprentissage non-supervisé, et ceci sans consommer énormément d’énergie grâce à la fonction de « mémorisation » du composant.
  • 12. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 12 Le Cloud à la rescousse Des offres matérielles pour supporter l’IA L’IA est une très grosse consommatrice de ressources, surtout pour les phases d’apprentissage, il était donc normal qu’elle se tourne rapidement vers le Cloud pour bénéficier de besoins ponctuels et massifs (la fameuse élasticité du cloud) afin de diminuer la facture de possession de matériels haut de gamme. Tous les fournisseurs ont aujourd’hui une offre qui vise à favoriser les développements à base d’IA. La table suivante (non exhaustive) permet de dresser un rapide constat : Instances Avec GPU Avec ASIC Avec FPGA Amazon https://aws. amazon.com /amazon-ai https://aws.amazon.com/e c2/instance-types/ accélération du compute (instances de type P2 ou P3 avec des NVIDIA GPUs associées) Instance de type F1 couplée avec des Xilinx FPGA Google Google cloud TPU en version alpha Microsoft Les VMs Azure de type ND avec des NVIDIA Tesla P40 (cf http://gpu.azure.com/) Devrait sortir en 2018 ? Oracle GPU (deux NVIDIA P100) sur des serveurs physiques (cf https://cloud.oracle.com/e n_US/infrastructure/comp ute ) OVH Hébergement de serveurs NVIDIA (cf par ex. GPU G3 de 1 à 3 GPU Nvidia GeForce GTX 1080 Ti dédiées https://www.ovh.com/fr/p ublic-cloud/instances/gpu/ )
  • 13. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 13 L’IA as a Service ? La palette de services proposés autour de l’IA s’étoffe de jour en jour autour de 3 axes majeurs : Les services Cloud d’IA (API & frameworks) sont disponibles sur étagère même si vous n’êtes pas un docteur en IA et de bons développeurs logiciels seront tirer parti des offres cloud pour construire des applications et systèmes « intelligents ». C’est la fameuse vague « IA ». Car trois facteurs permettent désormais de porter l’IA : • La fin de la limitation du tryptique matériel (mémoire, CPU, stockage) grâce à l’élasticité du Cloud • L’arrivée d’une nouvelle génération d’algorithmes performants qui sont rendus grand public par des interfaces simples (aller voir par exemple tout ce que fait en peu d’appels une bibliothèque comme Google Prophet (cf https://research.fb.com/prophet-forecasting-at- scale/) • L’arrivée de véritables business models associés à l’IA montrant une réelle valeur ajoutée à utiliser de l’IA en lieu et place de technologies plus traditionnelles (statistiques, data science traditionnelle). Les plates-formes Cloud de Machine learning permettent d’éviter la complexité d’assemblage de telles infrastructures matérielles et logicielles en fournissant une plate-forme opérationnelle et déjà configurée. C’est inestimable tant le temps de configuration et d’intégration est très long pour implémenter de telles solutions. Certes, les solutions sont propriétaires mais ils accélèrent très fortement la mise à disposition de solutions à base d’IA.
  • 14. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 14 Les modèles de business fondés sur l’IA De nouveaux modèles mixant techniques d’IA et techniques traditionnelles sont en train d’apparaître. Tout ce qui est répétition (de tâches et consommateur de temps (humain), càd toutes les formes d’automatisation sont affectées. Si nous poussons la réflexion, plutôt que passer du temps à modéliser et conceptualiser, autant faire apprendre à un système des comportements qu’il devra adopter face à certains événements… Nous avons déjà les prémisses de telles automatisations avec les voitures sans chauffeur par exemple, bien que la part de calculs traditionnels reste (encore) très importante. Qui dit automatisation, dit aussi aujourd’hui beaucoup de configurations et il est fort à parier que dans un futur proche des business models hybrides, IA et technologies traditionnelles, vont émerger dans les domaines de l’infrastructure avec un pouvoir d’adaptation dynamique des configurations au contexte. Ainsi l’opération d’automatisation saura s’adapter aux besoins humains face à des détections d’incidents en proposant des solutions automatiques de correction (qui n’a pas rêvé d’un système s’adaptant et se corrigeant sans notre intervention, c’est le mythe du robot qui se répare seul et qui a donc besoin de la dimension de la conscience pour ce faire, donc c’est dans un futur (très) lointain). Ces modèles ont une forte valeur ajoutée car ils éliminent le facteur humain, font appel à une mémoire événementielle colossale, et ont appris à appliquer des solutions de contournement. Bien évidemment les modèles de business fondés sur l’IA couvrent bien d’autres domaines que l’automatisation de l’IT… depuis les aspects mercantiles jusqu’aux aspects SI. Mais où est donc passé le Web Sémantique ? La question est intéressante et posée par un de mes collègues. Il faut revenir aux fondamentaux, la différence entre IA symbolique et IA connexionniste. L’IA symbolique s’est fondée sur la manipulation de symboles et le monde de la logique. Elle est très largement utilisée en classification (documents, données,…). La classification du « symbole » (un mot, un livre…) est réalisée selon des règles strictes et formelles exprimées par une logique (au sens mathématique). Ainsi, des logiques telles que la logique des propositions, des prédicats ou des descriptions seront utilisées pour décrire et manipuler ces symboles. Afin de décrire le domaine de classification à modéliser, pour obtenir une connaissance stricte et complète des concepts, des faits et des relations, une « ontologie » est élaborée. L’IA connexionniste suit une tout autre approche, c’est une approche calquée sur la biologie du cerveau, les neurones qui réagissent à des stimuli. Ainsi l’IA connexionniste repose sur une multitude de neurones mis en réseaux (de différentes façons ce qui définit les différents courants de recherche) qui sont à mis à profit par des algorithmes d’apprentissage. Elle repose sur un traitement statistique de l’information et non structural. Ce type d’IA est très efficace pour identifier des corrélations entre des observations sans liens apparents. Ainsi il n’est pas nécessaire d’avoir une connaissance du domaine donc d’avoir une modélisation. Ainsi l’IA connexionniste supplante l’IA symbolique dans les mises en œuvre de l’IA car la dernière phrase, à elle seule, résume la simplicité de l’approche. L’absence du modèle évite une modélisation
  • 15. AIMIT #1 Jean-Louis BAUDOIN 2017/2018 15 coûteuse et complexe, et elle est donc bien en adhésion avec un time to market de plus en plus court. Il faut trouver, classifier vite, pas de temps pour théoriser. C’est à notre avis la raison de la mise en sommeil de nombreux projets ontologiques. En synthèse (abusive j’en conviens), les business case de l’IA connexionniste sont très grands publics, facile à implémenter, pas ceux de l’IA symbolique. Ainsi, l’IA symbolique s’est effacée au profit de l’IA connexionniste qui permet des victoires (quick wins) immédiates et sans haut niveau en mathématiques car un courant portant de frameworks simples à mettre en œuvre a permis de nourrir une approche rapide de l’implémentation.