Articles tech

Exploiter les NPUs pour de l’IA embarquée dans les applis webs

Depuis l’été, j’ai un Pixel qui intègre à la fois un TPU (Tensor Processing Unit) pour les traitements IA et un NPU (Neural Processing Unit) pour les calculs neuronaux. J’utilise aussi des MacBooks équipés de puces M, dotées d’un Neural Engine, depuis deux ans. Et pourtant, j’ai l’impression que ces processeurs ne déploient qu’une fraction de leur potentiel dans les applications du quotidien. Plus récemment, les PC ont emboîté le pas avec des processeurs Snapdragon affichant des records en TOPS. Mais à quoi tout cela sert-il, si la majorité des applications ne peut exploiter que le CPU ?

Les SDK propriétaires comme Core ML (Apple), TensorFlow Lite (Google) ou AI Engine Direct (Qualcomm) permettent de tirer parti de ces puces, ils ne sont pas accessibles aux applications web. Un chaînon manquant dans le navigateur pourrait être la solution pour unifier ces technologies et offrir une interface universelle, « l’anneau pour les gouverner tous ». Explorons ensemble cette question et en particuliers les initiatives prometteuses comme WebNN et TensorFlow.js.

Qu’est-ce qu’on pourrait faire avec un NPU ?

On est contents d’avoir des NPUs quand on veut du traitement rapide, temps réel.

Par exemple, l’iPhone 14 et sa puce A16 Bionic utilisent leur puissance de 17 000 milliards d’opérations par seconde pour … la reconnaissance faciale qui déverrouille votre téléphone plus vite que la lumière.

La retouche photo sur mon Pixel est aussi beaucoup plus rapide parce que Google a implémenté le DevKit. Et c’est vraiment impressionnant.

Un autre cas d’usage est conversationnel. Que ce soit Siri ou Gemini, ou de la traduction instantanée, c’est vraiment impressionnant quand l’agent répond plus vite que mon cerveau hyperactif. Et en répondant quelque chose d’intelligent.

On ne devrait pas tout faire dans le cloud

Aujourd’hui, on fait une requête sur OpenAI ou Gemini sur GCP pour un peu toutes sortes de tâches et c’est très questionnable. Par exemple, si vous avez de la saisie en langage naturel (une date, heure etc…) à parser, il est tentant de demander à GPT4 de le traduire en timestamp. Et c’est une mauvaise idée pour plusieurs raisons :

  • Le résultat n’est pas prévisible. ChatGPT peut se tromper sur l’heure qu’il est
  • La latence réseau sera sûrement assez grande
  • La quantité de ressources informatiques utilisée est peut-être énorme. Un modèle plus compact serait plus efficace. ChatGPT-4-mini suffit déjà.

Alors oui, le futur, c’est qu’on fasse appelle à une LLM toutes les 5 minutes, mais sûrement pas un modèle gigantesque à chaque fois. Et s’il est compact, il sera plus rapide à exécuter sur un TPU ou NPU.

Quel est l’obstacle aujourd’hui ?

Cela fait longtemps que j’étudie le sujet. J’avais déjà fait des vidéos sur TikTok à l’époque où Groq était en vogue.

Et l’adoption des DevKits c’est vraiment l’enjeu. Aujourd’hui si les cartes NVIDIA s’arrachent c’est avant tout parce que tout le monde adore les CUDAs et le DevKit est intégré partout. CUDA-X revendique plus d’un million de développeurs. Il est présent depuis plus de 10 ans et sert avant tout à la distribution des calculs en utilisant le GPU. C’est pas spécifique à l’IA.

Je ne pense pas au vu du nombre d’utilisateurs de Pixel que les développeurs ou les éditeurs aient envie d’intégrer TensorFlow Lite ou LiteRT (c’est son nouveau nom).

CoreML a déjà plus de chances de voir des développeurs iOS l’intégrer, parce qu’ils sont très déterminés (et ils ont des Apple Vision Pro)

Le fait que les PCs commencent à avoir des NPUs me laisse espérer qu’un Méta-Kit puisse les regrouper tous.

Aujourd’hui par exemple, si j’achète un Vivobook avec un Snapdragon pour le bureau, mon ou ma collègue pourra utiliser Copilot parce que le Copilot+ peut utiliser le Snapdragon NPU. Mais bon, ça ne nous aidera pas du tout à utiliser ChatGPT ou Gemini plus vite.

La majorité du travail se fait dans le navigateur. Alors, j’imagine que les consortiums peuvent se mettre d’accord pour proposer une API commune, voire un moteur commun. Et c’est le cas !

Dans les startings blocks pour le sprint final

WebNN API Une initiative du W3C pour standardiser l’accès à l’accélération matérielle dans les navigateurs. Elle promet une interface unifiée pour exploiter GPU, NPUs et TPUs. – https://www.w3.org/TR/webnn/

TensorFlow.js Déjà largement adopté, ce framework pourrait être optimisé pour tirer parti des processeurs spécialisés dans le navigateur. https://www.tensorflow.org/js?hl=fr

ONNX Runtime Un framework open source pour standardiser l’accès aux accélérateurs, facilitant l’interopérabilité entre plateformes. – https://onnxruntime.ai/

WebGPU ou WebAssembly sont peut-être les poneys sur lesquels il faut parier ? Ils sont déjà prêts et l’historique de CUDA pourrait faire la différence – Accelerating Web AI à la Google I/O – https://io.google/2024/explore/4148a1ac-c3a5-43a9-8a3d-f9c2358282e9/intl/fr/

Du coup, on fait quoi maintenant ?

Il est fort probable qu’en 2025 on se retrouve avec des sujets qui bougent très vite. Qu’est-ce qu’on peut faire aujourd’hui ?

Installer un modèle comme celui de Mistral ou un Whisper d’OpenAI sur ma machine pour voir à quoi ça ressemble du tourner un modèle en local ?

S’intéresser à l’IA pour comprendre comment marchent ces perroquets stochastiques ?

Explorez les tutoriels sur TensorFlow.js ou WebNN, et essayez d’intégrer un modèle IA dans votre navigateur en quelques lignes de code.

Passez un de nos QCMs pour les ingénieurs en IA ? https://welovedevs.com/fr/app/tests/category/ingenieur-ia

Bref, n’hésitez pas à me partager votre ressenti en commentaire. Je serais content d’approfondir ou d’explorer plus de sujets à l’occasion d’un article ou d’une vidéo courte.

Damien Cavaillès

Share
Published by
Damien Cavaillès
Tags: iaweb

Recent Posts

Qcm saison hiver 2024 : toutes les infos.

On se retrouve dans un nouvel article avec toutes les infos sur cette nouvelle saison…

2 semaines ago

L’inclusion numérique est essentielle.

Pourquoi l’inclusion numérique est essentielle : le point avec Mathieu Froidure. Dans un monde de…

3 semaines ago

Communauté Tech et féminine : Interview avec Helvira de Motiv’her

Elles sont passées où les femmes dans la tech ? Entre le manque de représentation…

4 semaines ago

Consommer des APIs HTTP en PHP comme un pro avec Nicolas Grekas.

Dans cette vidéo, on interview Nicolas Grekas, contributeur clé de Symfony, pour discuter de sa…

4 semaines ago

Trouver son job grâce à WeLoveDevs.

 Comment trouver son job dans la tech ? Marie a la réponse ! Grâce à…

4 semaines ago