☕️ PyTorch : version native pour Windows on Arm, extensions Intel et faille critique
La semaine a été riche en actualités pour ce framework dédié à l’apprentissage automatique (machine learning), écrit en Python et s’appuyant sur Torch de Meta. C’est aujourd’hui l’une des bibliothèques les plus couramment utilisées dans ce domaine. Depuis l’automne 2022, son développement se fait sous l’égide de la fondation Linux.
Parmi les actualités, on commence avec la disponibilité de builds compilés nativement pour Arm par Microsoft, à destination des PC basés sur ces puces, dont les Snapdragon X présents dans les machines Copilot+. Il s’agit de la dernière révision de PyTorch (2.7), qui peut fonctionner avec la version 3.12 de Python.
Pour faire tourner ces builds, il faut quand même quelques composants. Il est ainsi nécessaire d’avoir soit une installation complète de Visual Studio, ou au moins la partie associée au développement avec C++, les outils C++ pour ARM64/ARM64EC et Rust, en partie par le site officiel pour ce dernier. Le reste se fait via des commandes pip fournies par Microsoft sur la page d’annonce.

Aujourd’hui, Intel a également publié sa nouvelle extension pour PyTorch 2.7. À la clé, diverses optimisations de performances pour les puces du fondeur, dont le support de la précision INT8 pour les dernières générations de Xeon. La nouvelle mouture apporte également le support de plusieurs modèles, dont DeepSeek-R1 et la famille Phi-4 de Microsoft. La nouvelle version peut être téléchargée depuis son dépôt GitHub.
Faille critique dans les anciennes versions
Enfin, dans les nouvelles moins réjouissantes, une importante faille de sécurité a été divulguée il y a quelques dans toutes les versions de PyTorch jusqu’à la 2.5.1. Estampillée CVE-2025-32434, elle possède un score CVSS de 9.3 sur 10, la catégorisant comme critique. L’exploitation peut se faire via un modèle d’IA malveillant qui, sous certaines conditions, va pouvoir déclencher l’exécution d’un code arbitraire.
Plus précisément, la faille réside dans la manière dont PyTorch gère certains paramètres. Les modèles entrainés sont stockés dans des fichiers permettant d’enregistrer les poids associés. Ces poids sont chargés via la méthode torch.load()
.
Comme l’explique notamment Kasperksy, les modèles sont souvent proposés depuis des dépôts publics. Pour éviter les problèmes de sécurité, il est recommandé d’activer le paramètre weights_only=True
, qui n’autorise que les types primitifs de données (dictionnaires, tenseurs, listes…). La faille permet de contourner cette barrière afin que le paramètre ait l’effet inverse, autorisant le chargement de tous les types de données. Y compris donc la charge malveillante.
La version 2.6.0, intégrant le correctif, est sortie le 29 janvier. Il est donc recommandé de basculer sur une version récente de PyTorch si ce n’est pas encore fait.