AccueilActualités informatiqueApprentissage automatique : PyTorch 1.10 apporte les API graphiques CUDA et le...

Apprentissage automatique : PyTorch 1.10 apporte les API graphiques CUDA et le nouveau SDK TorchX

La bibliothèque d’apprentissage automatique (ML) PyTorch a été publiée en version 1.10. Il apporte avec lui le nouveau SDK TorchX, mais les bibliothèques PyTorch existantes ont également reçu de nouvelles fonctionnalités. Plus de 3 400 engagements ont été pris dans la nouvelle version, qui comprend l’intégration des API CUDA Graph et la stabilisation de certaines API frontales qui étaient auparavant disponibles en version bêta.

Sommaire

Les changements incompatibles avec le passé dans PyTorch 1.10 affectent l’API Python, le paquet de différenciation automatique autograd, l’API CUDA développée par Nvidia, la gestion du format d’échange ONNX ML et d’autres composants.

Par exemple, le comportement de torch.any/torch.all a été modifié dans l’API Python afin que uint8-pour les entrées tensorielles avec dim=0 ne saisit plus accidentellement une valeur > 1 peut prendre. À titre de comparaison, l’équipe PyTorch indique le comportement précédent dans la version 1.9.1

>>> torch.all(torch.tensor(42, dtype=torch.uint8))
tensor(1, dtype=torch.uint8)
>>> torch.all(torch.tensor(42, dtype=torch.uint8), dim=0)
tensor(42, dtype=torch.uint8) # wrong, old behavior

et le nouveau comportement dans la version 1.10.0

>>> torch.all(torch.tensor(42, dtype=torch.uint8))
tensor(1, dtype=torch.uint8)
>>> torch.all(torch.tensor(42, dtype=torch.uint8), dim=0)
tensor(1, dtype=torch.uint8) # new, corrected and consistent behavior

Dans PyTorch, les API graphiques CUDA sont désormais intégrées en tant que fonction bêta. Ils sont destinés à réduire les surcharges du CPU pour les charges de travail CUDA. Une documentation détaillée sur les graphiques CUDA et leur utilisation est fournie par Nvidia. La connexion à l’API Android Neural Networks (NNAPI) est désormais également considérée comme une fonctionnalité bêta après avoir été ajoutée pour la première fois l’année dernière. Cela permet aux applications Android d’exécuter des réseaux neuronaux à forte intensité de calcul sur les parties les plus efficaces des puces des smartphones, notamment les GPU et les NPU (unités de traitement neuronal).

Certaines fonctionnalités pour la formation distribuée ne sont plus en version bêta : le module distant, le crochet de communication DDP et le ZeroRedundancyOptimizer sont désormais considérés comme stables.

Tous les détails concernant PyTorch 1.10 peuvent être trouvés dans les notes de version sur GitHub, les points forts sont présentés sur le blog de PyTorch.

Avec la sortie de PyTorch 1.10, les bibliothèques associées ont également été révisées. En version bêta, un pipeline texte-parole peut être créé dans TorchAudio 0.10 grâce au modèle Tacotron2 ajouté et aux poids pré-entraînés, et TorchVision 0.11 reçoit les nouveaux modèles stables RegNet et EfficientNet.

Le nouveau SDK TorchX est disponible pour aider à construire et déployer des applications ML plus rapidement. Les composants intégrés pour les meilleures pratiques MLOps sont destinés à rendre plus accessibles des fonctions sophistiquées telles que l’apprentissage distribué et l’optimisation des hyperparamètres.

Les fonctionnalités de la bibliothèque sont énumérées dans un article de blog séparé.

PyTorch provient à l’origine de Facebook AI, est open source et compte l’un de ses plus grands contributeurs en la personne de Microsoft. Non seulement la société travaille activement sur PyTorch et l’utilise dans Microsoft Azure, par exemple, mais elle vient également de publier PyTorch-DirectML. Si le nom vous semble familier, reportez-vous à TensorFlow-DirectML. Le principe des deux technologies est similaire.

Tout comme TensorFlow-DirectML fournit un backend DirectML pour assurer l’accélération matérielle sous tous les GPU compatibles DirectX-12 pour le processus de formation avec le framework ML TensorFlow, PyTorch-DirectML représente une intégration de l’API DirectX DirectML avec PyTorch. Le backend DirectML est également destiné dans ce cas à permettre aux modèles d’apprentissage automatique de s’exécuter sur tous les GPU DirectX-12 sous Windows et Windows Subsystem for Linux (WSL).

Cependant, le développement de TensorFlow-DirectML est déjà plus avancé : il a quitté le mode preview il y a quelques mois. PyTorch-DirectML, quant à lui, est dans sa première version préliminaire, comme le révèle un article de blog.

Plus d'articles