Réseaux neuronaux : premier brouillon au W3C pour une API exploitable par les navigateurs
Le 23 juin 2021 à 08h20
2 min
Logiciel
Logiciel
Elle se nomme sobrement Neural Network et constitue la première tentative de l’organe de standardisation pour proposer une interface commune aux navigateurs.
Avec cette API, un navigateur sera capable d’exploiter les capacités d’accélération matérielle d’un appareil pour gérer l’inférence. Microsoft et Google sont déjà sur la brèche, faisant déjà partie du groupe de réflexion sur le sujet au sein du W3C (WebNN).
Ce groupe était chargé de trouver des solutions à des thématiques courantes comme la détection de personnes, la reconnaissance faciale, l’incrustation automatique de sous-titres, l’analyse des émotions ou encore la suppression des bruits de fond au sein des navigateur, par l’utilisation de modèles de machine learning.
Il est envisagé pour l’instant que l’API soit désactivée par défaut pour des questions de sécurité. L’interface adopterait globalement les mêmes garde-fous que pour WebGPU et WebGL.
Le 23 juin 2021 à 08h20
Commentaires (9)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 23/06/2021 à 11h19
Bonjour, hormis l’incrustation des sous-titres, je n’arrive pas à comprendre en quoi le reste profiterait à l’utilisateur final (l’internaute).
À moins que je n’ai pas bien compris, quelqu’un peut-il m’indiquer les potentiels avantages svp ? merci
Le 23/06/2021 à 13h54
Ca permet d’executer de “l’IA” (terme marketeux pour l’utilisation d’algo d’apprentissage automatique) coté client.
Par exemple, on peut imaginer sur un webapp de visio comme discord ou skype que coté client, ça soit utiliser pour améliorer le son (suppression des bruits de fond&co) faire un détourrage du visage/suppression ou floutatge du fond… comme le fait actuellement NVidia Broadcast
On peut l’utiliser pour avoir une description textuelle des images.
Si ça marche pour des addons, on pourrait l’utiliser pour avoir un addon navigateur qui génére des résumés d’articles ou tout simplement surligner les parties importante du texte. Par exemple, Tensorflow.js (un mise en oeuvre javascript de la bibliothèque tensorflow, du réseau de neurone) est pas mal utilise en addon en tant que filtre NSFW.
On peut aussi l’utiliser pour faire de la traduction “offline” ou compilant plusieurs sources (google trad, bing trad… + linguee et autre sources de texte traduit pour corriger).
Ce qui est important ici, c’est que les données sont traité coté client, il n’y a donc plus forcément besoin d’envoyer des données aux serveurs. C’est l’internaute qui possède l’information brute et qui la traite, ce n’est plus le serveur. Il y a donc aussi potentiellement une meilleur réactivité (pas d’échange entre le client et le serveur, tout se fait en local.). En soit, ce que l’on peut faire avec les réseaux de neurone, c’est assez large
Le 24/06/2021 à 09h26
Merci beaucoup pour ta réponse détaillée (et intéressante!).
Du coup, mon avis si je comprends bien, et à moins que le fait que l’algorithme soit tellement bien entraîné que ce soit complètement transparent, est qu’il se peut aussi que la charge de calcul côté client puisse faire ressentir un navigateur un peu plus lourd lors de ces traitements (un peu comme une extension qui utilise trop de RAM).
Le 24/06/2021 à 05h52
lol
Lesquels ? Next INpact
Le 24/06/2021 à 06h01
Je ne sais pas si c’est fait exprès, mais à la base skype est totalement décentralisé, sans serveur en pure peer to peer. Depuis MS a racheté le bousin, a coulé le soft initial pour à la place rebrander MSN messenger sous le logo skype…
Le 24/06/2021 à 07h09
Tout en supprimant des fonctions de Messenger et rendant le tout moins ergonomique et pratique.
Le 24/06/2021 à 12h49
En soit, oui ça peut être un problème. C’est le même intérêt que Javascript (déporter coté client des calculs sans avoir à faire des transfert de donnée entre le serveur et le client) avec les même problématique. Cependant, dans le cas des réseau de neurone, l’intérêt de l’API c’est de pouvoir profiter de l’optimisation matérielle et ceux en toute transparence pour le développeur (à la manière de OneAPI de Intel).
En effet, pour le PC, il devrait être possible d’utiliser la puissance de la carte graphique (techniquement, les réseaux de neurone sont des calculs sur des tableaux/matrices/tenseur pour lequel les CG sont taillé), mais aussi et surtout de pouvoir utilisé du matériel plus spécifique comme les TPU (Tensor Process Unit) que l’on retrouve sur les smartphones, les carte NVidia RTX (les Tensor Core) et surement les futur Intel Xe (data parallel Matrix Engine) (et rien du coté d’AMD).
Comme le montre la bibliothèque tensorflow.js, il est possible déjà de faire du réseau de neurone dans le navigateur, mais ce n’est pas du tout optimisé, il y a plusieurs limite. En plus de ne pas pouvoir exploiter correctement le matériel, par exemple, il n’est pas possible de faire des calculs sur des float16 voir sur des formats numérique plus optimisé à ce genre d’usage(TF32, bfloat16, FP16).
Des réseaux de neurones, ça peut être assez transparent pour l’utilisateur, tu en utilises surement déjà avec l’appareil photo de ton smartphone. Ca fait plusieurs année que les constructeurs en utilisent pour améliorer les images. Si c’est bien optimisé aux oignons, ça peut être assez léger pour des taches basiques. Mais effectivement, sans optimisation, pour des taches complexes, sur du matos non adapté, ça peut être très lourd.
Le 25/06/2021 à 10h16
Le 25/06/2021 à 16h09
Pas de soucis, c’est normal.