IA locale · Actualité

ExecuTorch 1.5 : un kit C++ dans le paquet Python et plus de modèles de langage embarqués

Le moteur de PyTorch pour téléphones, objets connectés et microcontrôleurs livre désormais ses bibliothèques C++ avec son paquet Python. La version 1.5 étend aussi la prise en charge des puces AMD, Arm et Qualcomm. Ce que cela change pour un projet d'IA embarquée.

Par Kayzen AI · · 3 min de lecture

Photo d'illustration : Raspberry Pi Pico 2 microcontroller development board 001
Image : Raspberry Pi Pico 2 microcontroller development board 001 — Shoot stufz, CC BY-SA 4.0, via Wikimedia Commons

ExecuTorch est le moteur d'exécution de l'écosystème PyTorch pour les appareils : téléphones, cartes embarquées, microcontrôleurs. Un modèle entraîné avec PyTorch y est converti en un fichier compact, puis confié à la puce disponible sur l'appareil. La version 1.5.0 est sortie le 16 septembre, suivie d'une version 1.5.1 le 23 septembre.

Un kit C++ livré avec le paquet Python

C'est le changement le plus structurant. Jusqu'ici, intégrer ExecuTorch dans une application écrite en C++ supposait de compiler le moteur soi-même. Le paquet Python contient désormais un kit de développement C++, avec des bibliothèques prêtes à lier pour plusieurs accélérateurs : CUDA, Core ML, MLX, OpenVINO et Qualcomm.

Autour de ce kit, les notes signalent des paquets allégés, des paquets CUDA publiés sur Pytorch.org, une compilation vérifiée pour Windows sur Arm64 et la compatibilité retrouvée avec les versions 3.26 à 3.28 de l'outil de construction CMake.

Des modèles de langage mieux servis

La version ajoute plusieurs mécanismes pour faire tourner un modèle de langage sur l'appareil : regroupement des requêtes, annulation d'une génération en cours, et nouvelles façons de ranger le cache de contexte. De nouveaux parcours documentés concernent Qwen3.5, Muse Glimmer, ainsi que Voxtral et Supertonic pour la voix.

Matériel : ce qui s'élargit

  • AMD : prise en charge optionnelle de ROCm, la pile de calcul d'AMD, dans le moteur CUDA.
  • Arm : prise en charge de l'Ethos-U65, export du cache de contexte pour l'Ethos-U85, et de nouvelles démonstrations sur microcontrôleurs Cortex-M, dont SmolLM2 et la détection de voix Silero VAD.
  • Qualcomm : activation du modèle de texte Gemma 4, distillation pour la quantification des modèles de langage, et un guide pour utiliser le moteur QNN sous Windows.
  • Apple : bibliothèques Core ML et MLX à lier, utilisables avec le gestionnaire de paquets Swift, et outils de profilage.
  • NXP : passage du kit eIQ Neutron à la version 3.2.1.

Et la version 1.5.1

Ce correctif met à jour la bibliothèque CMSIS-NN en version 8.0.0, ajoute une fonction publique pour connaître le nombre de fils d'exécution utilisés et complète la prise en charge des formes dynamiques sur Arm.

Les limites

Les notes de version sont un inventaire, pas un guide. Elles ne donnent ni commande d'installation pour le kit C++, ni mesure de vitesse, ni liste de ruptures de compatibilité. Plusieurs ajouts sont optionnels et doivent être activés explicitement, comme ROCm ou certains parcours Cortex-M. Enfin, qu'un modèle soit « activé » sur une puce ne garantit pas qu'il y soit assez rapide pour votre usage.

Points à vérifier avant de migrer

  • la présence, dans la documentation du dépôt, d'un exemple de liaison C++ correspondant à votre accélérateur ;
  • la compatibilité de vos fichiers de modèle existants : la version introduit un contrôle de la version de schéma des fichiers PTE et PTD, avec des messages d'erreur plus explicites ;
  • la version de CMake de votre chaîne de compilation.

Notre lecture

ExecuTorch s'adresse aux équipes qui embarquent un modèle dans un produit : une application mobile, un boîtier industriel, un capteur. Pour elles, le kit C++ préassemblé retire une étape pénible et rend les mises à jour plus simples à suivre. Pour une PME qui veut seulement utiliser un assistant sur ses postes de travail, ce n'est pas le bon outil : un serveur local classique suffit. Si vous faites développer un produit embarqué par un prestataire, demandez-lui sur quelle version d'ExecuTorch il s'appuie et comment il gérera les montées de version.

Sources

  1. PyTorch — ExecuTorch v1.5.0, notes de version (GitHub) — source primaire
  2. PyTorch — pytorch/executorch, liste des versions (GitHub)