Google publie LiteRT.js : un binding JavaScript pour exécuter des modèles .tflite dans le navigateur via WebGPU
Google a publié LiteRT.js, une liaison JavaScript de LiteRT, sa bibliothèque d'inférence embarquée anciennement connue sous le nom de TensorFlow Lite. Cette nouvelle bibliothèque permet d'exécuter directement dans le navigateur des modèles au format .tflite, sans passer par un serveur distant. Plutôt que de créer un nouveau format de modèle, Google a compilé son runtime natif en WebAssembly et l'a exposé en JavaScript, une approche différente de TensorFlow.js qui reposait sur des noyaux de calcul écrits en JavaScript, jugés moins performants par l'entreprise. LiteRT.js s'appuie sur trois moteurs d'exécution distincts : le CPU via XNNPACK avec support multithread, le GPU via ML Drift en s'appuyant sur l'API WebGPU, et le NPU via l'API WebNN, encore expérimentale sur Chrome et Edge. Deux règles encadrent cette répartition : un graphe de calcul ne peut pas être scindé entre CPU et GPU, et si un modèle ne peut pas être entièrement délégué à l'accélérateur choisi, l'exécution bascule automatiquement vers le CPU en WebAssembly. Les tests menés par Google sur un MacBook Pro 2024 équipé d'une puce M4 montrent des gains de performance jusqu'à 3 fois supérieurs à ceux des autres runtimes web pour la vision par ordinateur classique et le traitement audio, et des accélérations de 5 à 60 fois lorsqu'on compare le GPU ou le NPU à l'exécution CPU seule, notamment pour des tâches exigeantes comme le suivi d'objets en temps réel ou la transcription audio.
Cette avancée change la donne pour les développeurs web qui veulent intégrer de l'intelligence artificielle sans dépendre d'un serveur : confidentialité renforcée puisque les données ne quittent jamais l'appareil de l'utilisateur, coûts d'infrastructure nuls, et latence quasi instantanée. En héritant directement des optimisations développées par Google pour Android, iOS et le bureau, les applications web bénéficient désormais du même niveau de performance que les applications natives, un enjeu majeur alors que de plus en plus de produits grand public intègrent des fonctionnalités d'IA en temps réel comme la reconnaissance d'image ou la transcription vocale.
Pour intégrer un modèle existant, les développeurs peuvent utiliser LiteRT Torch, qui convertit des modèles PyTorch en .tflite en une seule étape, à condition que le modèle soit exportable via torch.export.export, sans branches conditionnelles dépendant de valeurs calculées à l'exécution ni dimensions dynamiques. Des modèles pré-entraînés sont également disponibles sur Kaggle et sur la plateforme Hugging Face de LiteRT. Un point technique mérite l'attention des développeurs : LiteRT.js ne gère pas automatiquement la mémoire des tenseurs, chacun doit être supprimé manuellement sous peine de fuite mémoire sur l'appareil, une contrainte que Google a d'ailleurs omise dans l'exemple de code publié avec l'annonce. L'utilisation de WebNN nécessite par ailleurs l'activation du drapeau JSPI, qui permet de synchroniser l'ordonnancement des calculs avec les appels asynchrones du matériel.
Dans nos dossiers
Vu une erreur factuelle dans cet article ? Signalez-la. Toutes les corrections valides sont publiées sur /corrections.




