Nous utilisons des cookies sur nos sites web. Des informations sur les cookies et sur la manière dont vous pouvez vous opposer à leur utilisation à tout moment ou mettre fin à leur utilisation sont disponibles dans notre déclaration de protection des données.

8 min de lecture 4 Commentaires

IA et Machine Learning : voilà comment nos appareils deviennent de plus en plus intelligents

Intelligence Artificielle (IA) et Machine Learning (ML) sont des mots qui apparaissent depuis quelques temps à chaque nouvelle présentation de smartphone. Certains smartphones possèdent même une puce dédiée à l'IA qui est censée rendre le smartphone plus intelligent. Nous nous intéressons dans cet article aux domaines d'application et aux puces AI afin de séparer les faits et les idées reçues.

Avec sa filiale Hisilicon, Huawei a présenté lors de l'IFA le premier processeur pour smartphone qui s'intéresse à l'intelligence Artificielle. Cette puce Neural Processing Unit (NPU) est responsable des fonctions en lien avec l'IA, elles visent à rendre le tout plus rapide qu'avec un processeur classique. Ceci se voit actuellement surtout sur la photographie, la reconnaissance et le traitement d'image.

L'IA n'est en vérité pas la véritable star, la vraie vedette est le Machine Learning. Ce Convolutional Neural Network (CNN) apprend à reconnaître des schémas grâce à de très nombreuses données, sans besoin d'assistance extérieure. Pour ce faire, il utilise une immensité de données qui se trouvent sur des serveurs. Une application utilisant cette technologie peut donc utiliser ce processus, c'est à dire les schémas appris, pour créer de nouvelles données. Ceci porte le nom d'Inférence. C'est bien sûr le résultat final qui nous intéresse sur smartphone, puisqu'avec cette technologie le réseau neuronal est en mesure de reconnaître un objet ou un visage sur une photo.

Généralement, les calculs nécessaires peuvent également être effectués par le processeur. En soi, les calculs sont simples mais tellement nombreux que même un processeur octocore peine devant la tâche. Plus il y a de coeurs, mieux c'est. Une puce avec de nombreux petits organes de calcul sera donc plus efficace qu'un processeur normal pour l'utilisation d'application de Machine Learning.

qualcomm snapdragon
Qualcomm s'intéresse lui aussi au Machine Learning dans certaines de ses puces. © Qualcomm

Les puces graphiques sont faites pour le Machine Learning

Où trouve-t-on ces coeurs ? Exactement, dans la carte graphique, c'est à dire la GPU. Bien sûr, elle est elle-aussi sollicitée lors de l'utilisation au quotidien, c'est pourquoi les unités NPU sont créées comme une puce graphique supplémentaire : de nombreux coeurs travaillent en parallèle sur de nombreuses opérations, ce qui permet plusieurs avantages au niveau des performances dans les applications de Machine Learning.

Mais en fait, pourquoi avons-nous besoin de cela sur un smartphone ? Ces calculs pourraient être effectués sur les immenses serveurs et les données partagées sur le cloud. Bien sûr, c'est possible, mais le cloud présente des inconvénients qui s'appliquent également au Machine Learning : une connexion stable est nécessaire et le transfert d'information entraînerait rapidement des problèmes de lag. Par exemple, l'application de l'appareil photo devrait en permanence charger les images sur les serveurs pour y effectuer la reconnaissance. De plus, ceci soulève un problème de gestion des données privées.

En bref, utiliser le Machine Learning directement sur l'appareil est pour la plupart des applications la meilleure alternative.

Que font les smartphones avec cette puce ?

Actuellement, il existe déjà plusieurs smartphones qui utilisent une puce NPU. Il est même possible que le vôtre en ait une car beaucoup de puces de Qualcomm adoptent cette technologie.

Il est ainsi possible qu'une tâche soit exécutée sur le composant le mieux adapté. Cela peut être le CPU classique, la GPU et le processeur de signal. Toutes ces puissances de calcul ont des forces différentes : le CPU excelle dans les calculs compliqués, la GPU peut booster la vitesse des calculs qui peuvent être effectués en même temps. Le processeur de signal, lui, est optimisé pour les calculs en temps réel. Ainsi, les applications Machine Learning peuvent toujours être accomplies par le meilleur composant.

huawei kirin 970 apple a11 bionic
Apple A11 (à gauche) et Kirin 970 (à droite) : les puces NPUs ne doivent pas forcément être grosses. © TechInsights.com

Nous avons parlé plus haut du Kirin 970. Peu de temps après sa présentation, Apple a présenté ses nouveaux iPhone dans lesquels se trouve la puce A11 qui, vous l'aurez compris, dispose d'un NPU. On la voit en action avec FaceID, par exemple. En dehors de FaceID, nous ne savons pas vraiment ce qu'Apple réserve pour cette puce mais nous devrions en savoir plus sur le moyen terme. Dans l'image ci-dessus, vous pouvez voir que la puce NPU du Kirin 970 semble bien petite, alors qu'Apple a lui réservé une bonne partie du composant pour sa puce NPU.

Dans le Google Pixel 2 (XL), nous trouvons le Pixel Visual Core qui est capable d'effectuer 3 milliards d'opérations de calcul en une seconde. Le Visual Core est une puce NPU classique mais elle a une histoire intéressante : au début la puce n'était pas activée, il a fallu attendre qu'Android 8.1 pour qu'elle puisse fonctionner, mais seulement pour que des applications tierces HDR+ puissent l'utiliser. L'application d'appareil photo ne l'utilise pas.

pixel visual core
Pixel Visual Core : un NPU pour deux générations de Pixel. © Google

Neural Networks API (NN-API), qui existe depuis Android 8.1, permet aux développeurs d'applications d'accéder aux NPU sans avoir à connaître les spécifications techniques. Si le smartphone ne possède pas de NPU, alors le CPU est utilisé. L'accès n'est possible alors que grâce au savoir-faire spécifique au constructeur. Dans le Pixel, il n'y a qu'un chemin par le NN-API. Google a présenté une bibliothèque abstraite qui supporte totalement la NN-API: Tensorflow Lite. Cette bibliothèque permet de mettre en place des réseaux neuronaux sur smartphones. Elle pourrait bien devenir par défaut dans de nombreuses applications Android. 

Huawei utilise le Machine Learning pour quatre fonctions

Les Huawei Mate 10 Pro et Honor View 10 ont une configuration technique identique et le fabricant chinois utilise le NPU à quatre niveaux. Le premier, le plus évident pour l'utiliser, est la reconnaissance de motif lors des photographies : les paramètres de l'appareil photo sont adaptés au motif qui est devant la lentille. Un petit symbole dans l'application montre ce que l'appli a reconnu grâce au Machine Learning.

AndroidPIT HTC U11 LG V30 Galaxy Note8 Pixel2 plus Huawei Mate10 pro 1969
Tous les smartphones n'ont pas une technologie de Machine Learning vraiment prometteuse. © AndroidPIT

Huawei utilise le NPU de son Kirin 970 pour mieux comprendre l'utilisation du propriétaire de l'appareil, et il tente de prévoir ses actions. Ainsi, il est plus simple de préparer les ressources et d'optimiser l'énergie, tout au moins en théorie. De telles promesses sont vite faites mais en pratique c'est toute une histoire car pour vérifier cela il faudrait avoir deux appareils, l'un avec NPU et l'autre sans (ou avec la NPU désactivée).

Le troisième usage se trouve dans une coopération avec Microsoft. Il s'agit d'une application de Microsoft qui est préinstallée sur les appareils. Elle utilise la puce NPU pour traduire plus vite, notamment hors ligne. 

Il est également prouvé que les CNNs sont très bons au niveau de la réduction de bruit. Un réseau neuronal bien entraîné pourrait donc par exemple faire office de filtre du bruit dans un environnement bruyant, ce qui permettrait entre autres choses d'améliorer la reconnaissance de commandes vocales. Hisilicon a confié que l'assurance de reconnaissance peut augmenter de 80 à 92% dans des environnements bruyants. 

Comparatif des puces AI

Trois smartphones possèdent une puce NPU, bien d'autres encore peut-être avec la technologie de Heterogen Computing de Qualcomm. La question se pose : quel CPU est le plus rapide ? Ceci soulève également une autre question : quel CPU consomme le moins d'énergie ? Tout ceci pour une même tâche, bien évidemment.

Il est difficile de répondre à cette question puisque les NPU sont uniques en leur genre. Ceci dit, selon la suite de Benchmark Master Lu, nous avons des éléments de réponses. Anandtech a testé un Mate 10 Pro, un Google Pixel 2 XL et un LG V30.

S'il n'y a pas eu de souci avec la puce du Mate 10 Pro et avec le processeur Snapdragon 835 et la technologie Heterogen Computing  du LG V30, les choses sont différentes pour le Pixel 2 XL. Cet appareil n'est pas compatible avec la technologie de Qualcomm, et le Benchmark ne l'est pas avec la NN-API. Autrement dit, le Pixel 2 montre les valeurs obtenues. à partir des efforts du CPU.

Master Lu affiche les valeurs en Frames par seconde. Alors que le Pixel 2 affiche dans le premier test 0,7 image par seconde, le LG V30 affiche lui 5,3 fps. Le Mate 10 Pro, lui, atteint 15,1 fps. Les valeurs sont similaires au niveau de la consommation d'électricité : le Mate 10 Pro a besoin de 106 millijoule (mJ) par inférence, le V30 un peu plus avec 130 mJ. Le Pixel (sans Machine Learning, n'oublions pas), consomme 5847 mJ. Si vous désirez davantage de détails, allez voir du côté d'Anandtech

Ceci montre que, dans le cadre du Machine Learning, calculer avec des composants spécialisés permet vraiment de faire une différence. Reconnaissance d'image, réduction de bruit, reconnaissance de voix améliorée : tout ceci représente des domaines d'applications pour la technologie NPU. 

Est-ce que j'ai besoin d'une puce NPU ?

Il ne faut pas se voiler la face : à ce stade d'évolution on peut très bien vivre sans NPU. Les fonctionnalités que cette puce rend possible sont certes intéressantes mais pas indispensables.

Les choses pourraient évoluer plus vite qu'on ne le pense. Les smartphones qui ont le matériel requis peuvent recevoir une mise à jour et plonger beaucoup de monde dans cette aventure. Les développeurs d'application pourront bientôt accéder aux composants de calcul grâce à NN-API et Tensorflow Lite. Si vous possédez déjà un smartphone avec NPU, vous avez la chance d'être un petit pionnier de cette technologie. 

Que pensez-vous du Machine Learning sur smartphone ? Est-il important pour vous d'avoir une puce NPU dans votre appareil ou cela vous indiffère ?


Cet article a été écrit en collaboration avec Hans-Georg.

87 partages

4 Commentaires

Ecrire un nouveau commentaire :
Tous les changements seront sauvegardés. Aucun brouillon n'est enregistré pendant l'édition

  • Ce matin (jeudi 25) l'invité principal des Matins de France-Culture abordait l'enjeu, le rôle et la place pour l'IA et ses capacités envisageables.
    Un complément possible par rapport à cet article.


  • Cette technologie a du potentiel mais perso je vais attendre qu'elle soit plus mure avant de m'y interesser de plus près


    • Dès lors que le smartphone est sous Oreo et a le Treble, il n'y a pas de raison d'attendre (si on garde son smartphone assez longtemps), et ce même si les fonctionnalités ne sont pas très nombreuses à l'heure actuelle. Les choses devraient (rien n'est jamais garanti) vite évoluer et les fonctionnalités s'étendre rapidement par micro mises à jour logicielles (du constructeur, indépendantes des mises à jour majeures d'Android).
      Sauf si on en change très souvent, évidemment, dans ce cas là rien n'oblige à choisir un smartphone avec NPU (mais les SoC avec NPU vont se multiplier, le S845 en aura un, reste en gros Mediatek mais celui-ci utilise déjà l'intelligence artificielle et le machine learning mais procède différemment...) mais cette architecture va, visiblement, très vite s'imposer, alors...


    • @ Archibald Haddock

      Sage réflexion, laissons passer devant les plus enthousiastes. Il faut laisser aux fruits le temps de mûrir, c'est comme ça qu'on peut les apprécier vraiment.