Développement web

Machine learning en JavaScript : les 7 meilleures bibliothèques

Machine learning en JavaScript : les 7 meilleures bibliothèques

    TensorFlow.js, Transformers.js, ONNX Runtime Web, MediaPipe : les bibliothèques JavaScript de machine learning utiles aujourd'hui, leur état de maintenance et comment choisir. Et ce que sont devenues ConvNetJS, Synaptic ou Deeplearn.js.

    Oui, on peut faire du machine learning en JavaScript, directement dans le navigateur ou avec Node.js. En 2026, les bibliothèques à retenir sont TensorFlow.js pour entraîner et exécuter des modèles, Transformers.js et ONNX Runtime Web pour faire tourner des modèles déjà entraînés (texte, image, audio), MediaPipe pour la vision et ml5.js pour prototyper simplement. Brain.js reste pratique pour de petits réseaux de neurones et Math.js pour le calcul. Plusieurs noms des anciens classements (ConvNetJS, Synaptic, Deeplearn.js) ne sont plus des choix raisonnables pour un nouveau projet.

    Le machine learning (apprentissage automatique) consiste à laisser un programme apprendre des règles à partir d’exemples plutôt que de les coder à la main. L’essentiel de l’entraînement se fait encore en Python, mais JavaScript a pris une vraie place pour l’exécution des modèles au plus près de l’utilisateur. On passe en revue les bibliothèques utiles aujourd’hui, ce qu’elles savent faire, leur état de maintenance vérifié sur leurs dépôts officiels, et les cas où JavaScript n’est pas le bon choix.

    machine learning agence web montpellier

    Pourquoi faire du machine learning en JavaScript ?

    JavaScript est le langage du navigateur : c’est ce qui lui donne un avantage que Python n’a pas. Un modèle exécuté côté client présente plusieurs intérêts concrets :

    • Confidentialité : les données (image de la webcam, texte saisi, son du micro) restent sur l’appareil de l’utilisateur et ne transitent pas par votre serveur. La documentation d’ONNX Runtime Web met en avant ce point, avec la réduction des échanges entre client et serveur.
    • Coût serveur réduit : le calcul est fait par la machine du visiteur, pas par une infrastructure que vous payez à chaque requête.
    • Latence faible et fonctionnement hors ligne : une fois le modèle chargé, la prédiction ne dépend plus du réseau.
    • Un seul langage : une équipe qui développe déjà son front-end et son back-end en JavaScript ou TypeScript peut intégrer une fonctionnalité d’IA sans ajouter une pile Python.

    Les navigateurs ont aussi gagné en puissance de calcul : WebAssembly permet d’exécuter du code compilé à une vitesse proche du natif sur le processeur, et WebGL puis WebGPU donnent accès à la carte graphique. Les bibliothèques ci-dessous s’appuient sur ces technologies. Pour le vocabulaire de base (apprentissage supervisé, réseau de neurones, entraînement, inférence), notre article sur le rôle du machine learning dans le développement de logiciels pose les définitions.

    Entraînement ou inférence ? L’entraînement consiste à ajuster un modèle sur des données, ce qui demande beaucoup de calcul. L’inférence consiste à utiliser un modèle déjà entraîné pour obtenir une prédiction. En JavaScript, l’inférence est le cas d’usage le plus courant ; l’entraînement reste possible, surtout pour des modèles modestes ou pour de l’ajustement (transfer learning).

    Quelles sont les meilleures bibliothèques JavaScript de machine learning ?

    machin learning bibliothèque javascript

    Voici les sept bibliothèques que l’on retient aujourd’hui. Les versions et dates citées ont été relevées sur le registre npm et les dépôts GitHub officiels en septembre 2026.

    1. TensorFlow.js : entraîner et exécuter des modèles

    TensorFlow.js est la bibliothèque open source de Google, sous licence Apache 2.0, qui se présente comme une bibliothèque JavaScript « accélérée matériellement » pour entraîner et déployer des modèles. Elle propose une API de bas niveau (tenseurs, algèbre linéaire) et une API de haut niveau, TensorFlow.js Layers, proche de Keras. Un convertisseur permet de faire tourner dans le navigateur des modèles TensorFlow entraînés en Python.

    Côté navigateur, elle dispose de plusieurs moteurs d’exécution (backends) : WebGL, que la documentation présente comme le plus puissant pour les gros modèles, WebAssembly pour les petits modèles et les appareils modestes, et un backend CPU en JavaScript pur. Sous Node.js, un backend s’appuie sur l’API C de TensorFlow et peut utiliser CUDA. C’est la solution la plus complète si vous voulez entraîner en JavaScript. À noter : la dernière version publiée sur npm (4.22.0) date d’octobre 2024, le rythme de publication a donc nettement ralenti. Pour aller plus loin sur l’écosystème, voir notre article Qu’est-ce que TensorFlow ?

    2. Transformers.js : les modèles de Hugging Face dans le navigateur

    Transformers.js, maintenue par Hugging Face, vise à être l’équivalent fonctionnel de la bibliothèque Python transformers : on utilise les mêmes modèles pré-entraînés avec une API très proche. Elle couvre le traitement du langage (classification de texte, questions-réponses, résumé, traduction, génération de texte), la vision (classification d’images, détection d’objets, segmentation), l’audio (reconnaissance vocale, synthèse vocale) et le multimodal (embeddings, par exemple pour une recherche sémantique).

    Elle s’appuie sur ONNX Runtime. Par défaut, le modèle s’exécute sur le processeur via WebAssembly ; on peut demander le GPU via WebGPU avec l’option device: 'webgpu', la documentation précisant que WebGPU reste expérimental dans de nombreux navigateurs. C’est aujourd’hui la voie la plus directe pour ajouter une fonction d’IA moderne à une page web sans serveur dédié. Version 4.3.0 publiée en septembre 2026.

    import { pipeline } from '@huggingface/transformers';
    
    // Analyse de sentiment exécutée dans le navigateur (modèle multilingue)
    const classifier = await pipeline('sentiment-analysis', 'Xenova/bert-base-multilingual-uncased-sentiment');
    const resultat = await classifier('Livraison rapide, produit conforme.');
    console.log(resultat);

    3. ONNX Runtime Web : exécuter n’importe quel modèle au format ONNX

    ONNX (Open Neural Network Exchange) est un format ouvert qui permet de passer un modèle d’un framework à l’autre : un modèle entraîné avec PyTorch, par exemple, peut être exporté en ONNX. ONNX Runtime Web, publié par Microsoft sous licence MIT, exécute ces modèles dans le navigateur et sous Node.js : WebAssembly pour le processeur, accélération graphique pour le GPU. C’est la brique à choisir quand votre équipe data entraîne en Python et que vous voulez servir le modèle côté web. Version 1.30.0 publiée en septembre 2026.

    4. MediaPipe : des tâches de vision et d’audio prêtes à l’emploi

    MediaPipe Solutions, de Google, fournit des bibliothèques et des modèles pré-entraînés pour appliquer rapidement l’IA, sur Android, iOS, Python et le Web. En JavaScript, on dispose de tâches clés en main : détection de visages, repérage des points de la main, détection d’objets, estimation de la pose, segmentation d’images, reconnaissance de gestes, classification de texte et d’audio. Pour un essayage virtuel, un filtre photo ou une interface pilotée par les gestes, c’est souvent le chemin le plus court.

    5. ml5.js : le machine learning accessible aux débutants

    ml5.js veut rendre le machine learning abordable pour les artistes, les codeurs créatifs et les étudiants. Construite au-dessus de TensorFlow.js et inspirée de p5.js, elle expose des modèles prêts à l’emploi avec une API volontairement simple, accompagnée de tutoriels et d’une documentation attentive aux biais des données. La version 1.4.0 date d’août 2026. Idéale pour un prototype ou une démonstration, moins pour une application de production exigeante.

    6. Brain.js : de petits réseaux de neurones en quelques lignes

    Brain.js est une bibliothèque de réseaux de neurones pour navigateur et Node.js, accélérée par GPU, sous licence MIT. Elle reprend un ancien projet (harthur/brain) qui n’était plus maintenu. Son intérêt : entraîner un petit réseau (perceptron, réseau récurrent, LSTM) avec très peu de code, pour apprendre ou pour des besoins simples de classification. Sa dernière version publiée reste une bêta (2.0.0-beta.24, juillet 2024) : à réserver aux projets où ce statut est acceptable.

    7. Math.js : le calcul mathématique autour du modèle

    Math.js n’est pas une bibliothèque de machine learning à proprement parler, mais une bibliothèque mathématique étendue pour JavaScript et Node.js. Elle gère nombres, grands nombres, nombres complexes, fractions, unités et matrices, avec un analyseur d’expressions et du calcul symbolique. Elle rend service pour préparer les données, normaliser des valeurs ou vérifier un calcul matriciel. Elle est activement maintenue (version 15.2.0, avril 2026).

    Laquelle choisir selon votre projet ?

    BesoinBibliothèque conseilléePourquoi
    Texte : classification, résumé, traduction, recherche sémantiqueTransformers.jsAccès direct aux modèles pré-entraînés de Hugging Face
    Modèle maison entraîné en Python (PyTorch, scikit-learn exporté)ONNX Runtime WebFormat standard, exécution WebAssembly ou GPU
    Webcam : visage, mains, pose, gestesMediaPipeTâches de vision prêtes à l’emploi
    Entraîner un modèle en JavaScriptTensorFlow.jsAPI complète, entraînement navigateur et Node.js
    Prototype, pédagogie, projet créatifml5.jsAPI simple, bonne documentation
    Petit réseau de neurones, apprentissageBrain.jsTrès peu de code, mais version bêta
    Calcul matriciel et préparation des donnéesMath.jsBibliothèque mathématique maintenue

    Deux critères à vérifier avant de vous engager : la date de la dernière version publiée (une bibliothèque sans mise à jour depuis des années accumule les incompatibilités) et la taille du modèle à télécharger, car c’est le visiteur qui le charge, souvent sur mobile.

    Que sont devenues ConvNetJS, Synaptic, Deeplearn.js et Machinelearn.js ?

    La première version de cet article recommandait ces quatre bibliothèques. Leur situation a changé, et il serait trompeur de continuer à les conseiller pour un nouveau projet :

    • ConvNetJS : bibliothèque pionnière d’Andrej Karpathy (réseaux convolutifs, démonstrations dans le navigateur). Son auteur indique dans le dépôt qu’il ne la maintient plus activement. Dernière version sur npm : 2014. Elle garde un intérêt pédagogique.
    • Synaptic : bibliothèque « sans architecture » permettant de construire des perceptrons multicouches, des LSTM ou des réseaux de Hopfield. Dernière version sur npm : octobre 2017.
    • Deeplearn.js : elle n’existe plus sous ce nom. Son dépôt a été archivé au profit de TensorFlow.js, dont elle est devenue le cœur (TensorFlow.js Core). Si vous la cherchez, utilisez TensorFlow.js.
    • Machinelearn.js : bibliothèque écrite en TypeScript, pensée pour résoudre des problèmes classiques (forêts aléatoires, etc.) tout en expliquant les algorithmes. Dernière version sur npm : août 2019.

    Quels usages concrets sur un site ou une application web ?

    Quelques fonctionnalités qu’on peut construire avec ces outils, sans prétendre qu’elles conviennent à tous les projets :

    • Recherche sémantique dans un catalogue ou une base documentaire : on compare le sens de la requête et des contenus grâce à des embeddings, plutôt que des mots exacts.
    • Tri automatique de messages : classer les demandes reçues via un formulaire (devis, support, candidature) avant qu’elles arrivent dans la bonne boîte.
    • Transcription de la voix dans un formulaire ou une application métier.
    • Vision par webcam : essayage virtuel, contrôle par gestes, détection de présence.
    • Modération ou analyse de sentiment d’avis clients avant publication.

    Dans beaucoup de cas, la solution la plus simple n’est d’ailleurs pas d’exécuter un modèle dans le navigateur mais d’appeler une API d’IA depuis votre serveur et de l’intégrer proprement à vos outils existants. C’est ce que nous faisons dans nos projets d’intégration et d’automatisation (intégration d’API simple comprise, voir nos tarifs indicatifs). Quand la fonctionnalité fait partie d’un produit plus large, elle relève plutôt d’une application web sur mesure.

    Quand JavaScript n’est-il pas le bon choix ?

    Soyons francs : pour la recherche, l’exploration de données et l’entraînement de gros modèles, l’écosystème Python (PyTorch, scikit-learn, pandas, Jupyter) reste la référence, et c’est là que sortent d’abord les nouveaux modèles. Nous détaillons ces raisons dans Python et l’IA et dans notre comparatif des langages de programmation pour l’IA.

    Évitez aussi l’exécution côté navigateur quand :

    • le modèle pèse plusieurs centaines de mégaoctets : le téléchargement dégrade l’expérience, surtout sur mobile ;
    • le modèle ou ses paramètres sont confidentiels : tout ce qui est envoyé au navigateur peut être récupéré ;
    • le résultat doit être fiable et identique pour tous : les performances varient selon l’appareil et le navigateur (WebGPU n’est pas disponible partout) ;
    • vous avez besoin des grands modèles de langage les plus performants, qui ne tiennent pas sur un poste client et s’utilisent via une API.

    Une architecture fréquente et saine : entraîner en Python, exporter le modèle (ONNX ou format TensorFlow.js), puis l’exécuter côté web seulement s’il est léger et que la confidentialité ou la latence le justifient.

    Questions fréquentes

    Peut-on entraîner un modèle de machine learning en JavaScript ?

    Oui. TensorFlow.js permet d’entraîner des modèles dans le navigateur ou sous Node.js, et Brain.js des petits réseaux de neurones. Pour de gros volumes de données, l’entraînement se fait plutôt en Python sur des machines équipées de GPU.

    TensorFlow.js ou Transformers.js : lequel choisir ?

    Transformers.js si vous voulez utiliser un modèle pré-entraîné existant (texte, image, audio) avec le moins de code possible. TensorFlow.js si vous devez construire ou entraîner votre propre modèle en JavaScript.

    Le machine learning dans le navigateur fonctionne-t-il sur mobile ?

    Oui, grâce à WebAssembly, mais les performances dépendent du téléphone. Choisissez des modèles légers (souvent quantifiés, c’est-à-dire compressés) et testez sur des appareils d’entrée de gamme.

    Ces bibliothèques sont-elles gratuites ?

    Oui, elles sont open source : TensorFlow.js, Transformers.js, MediaPipe et Math.js sous licence Apache 2.0, ONNX Runtime et Brain.js sous licence MIT. Vérifiez en revanche la licence de chaque modèle utilisé, qui peut être différente de celle de la bibliothèque.

    Faut-il savoir faire du machine learning pour utiliser ces outils ?

    Pour exécuter un modèle pré-entraîné avec Transformers.js, MediaPipe ou ml5.js, des bases solides en JavaScript suffisent. Pour concevoir, entraîner et évaluer un modèle fiable, il faut de vraies compétences en data science.

    Sources

    Continuez votre lecture

    Articles sur le même sujet : Prompt engineering : définition, techniques et exemples concrets

    Quest-ce-que-TensorFlow-La-bibliotheque-de-machin-Learning-expliquee
    Développement web

    Qu’est-ce que TensorFlow ? La bibliothèque de machine learning de Google expliquée

    TensorFlow est la bibliothèque open source de Google pour créer et déployer des modèles de machine learning. Son…

    intelligence-artificielle-8
    Développement web

    Intelligence artificielle en 2026 : l’état des lieux complet

    Python-IA-Pourquoi-Python-est-il-si-bon-pour-le-machin-learning
    Développement web

    Python IA : pourquoi Python est-il le langage de l’intelligence artificielle ?

    Écosystème de bibliothèques, syntaxe simple, calculs délégués à du code compilé : pourquoi Python domine l'IA et le…

    Limpact-de-lIA-sur-lindustrie-du-webdesign
    Développement web

    IA et web design : quel impact sur la création de sites ?

    L'IA accélère la conception et le code des sites, sans remplacer la réflexion ni la relecture humaine. Ce…