samedi, 25 juin 2022

Qu’est-ce que PyTorch ? Apprentissage automatique Python sur les GPU

PyTorch est un framework d’apprentissage automatique open source utilisé à la fois pour le prototypage de recherche et la mise en production. Selon son référentiel de code source, PyTorch fournit deux fonctionnalités de haut niveau :

  • Calcul de tenseur (comme NumPy) avec une forte vitesse GPU.
  • Réseaux de neurones profonds construits sur une bande

Développé à l’origine à l’Idiap Research Study Institute, NYU, NEC Laboratories America, et Deepmind Technologies, avec la contribution des projets Torch et Caffe2, PyTorch a maintenant une croissance quartier open source. PyTorch 1.10, lancé en octobre 2021, compte 426 contributeurs et le référentiel compte actuellement 54 000 étoiles.

Ce court article est une introduction à PyTorch, composé de toutes nouvelles fonctionnalités de PyTorch 1.10 et d’un guide rapide pour débuter avec PyTorch. J’ai déjà examiné PyTorch 1.0.1 et comparé TensorFlow et PyTorch. Je recommande de lire la critique pour une discussion approfondie de l’architecture de PyTorch et du fonctionnement de la bibliothèque.

L’évolution de PyTorch

Au début, les universitaires et les scientifiques étaient attiré par PyTorch en raison du fait qu’il était beaucoup plus facile à utiliser que TensorFlow pour le développement de modèles avec des systèmes de traitement graphique (GPU). PyTorch utilise par défaut le mode d’exécution excité, suggérant que ses appels d’API s’exécutent lorsqu’ils sont invoqués, au lieu d’être contribués à un graphique à exécuter plus tard. TensorFlow a depuis amélioré son assistance pour le mode d’exécution excité, mais PyTorch est toujours populaire dans les communautés universitaires et de recherche.

Pour le moment, PyTorch est prêt pour la production, vous permettant de basculer facilement entre les modes excité et graphique avec TorchScript, et d’accélérer le chemin vers la production avec TorchServe. Le back-end torch.distributed permet une formation dispersée évolutive et une optimisation de l’efficacité dans la recherche et la production, et un écosystème abondant d’outils et de bibliothèques étend PyTorch et prend en charge les progrès de la vision des systèmes informatiques, du traitement du langage naturel, etc.

Enfin, PyTorch est bien pris en charge sur les principales plates-formes cloud, à savoir Alibaba, Amazon Web Services (AWS), Cloud Platform (GCP) et Microsoft Azure. L’assistance cloud permet un développement sans friction et une mise à l’échelle facile.

Quelles sont les nouveautés de PyTorch 1.10

Selon le PyTorch, les mises à jour de PyTorch 1.10 se sont concentrées sur l’amélioration de la formation et les performances ainsi que la convivialité pour les développeurs. Consultez les notes de publication de PyTorch 1.10 pour plus d’informations. Voici quelques points forts de cette version :

  1. Les API CUDA Graphs sont intégrées pour réduire les frais généraux du processeur pour les charges de travail CUDA.
  2. Plusieurs API frontales telles que FX, torch.special et la paramétrisation nn.Module ont été déplacés de la version bêta à la version stable. FX est une plate-forme Pythonic pour transformer les programmes PyTorch ; torch.special implémente des fonctions spéciales telles que les fonctions gamma et Bessel.
  3. Un nouveau compilateur JIT basé sur LLVM prend en charge la fusion automatique dans les CPU en plus des GPU. Le compilateur JIT basé sur LLVM peut fusionner des séries de bibliothèques torch nous contacte pour améliorer les performances.
  4. La prise en charge d’Android NNAPI est désormais proposée en version bêta. NNAPI (Android’s Neural Networks API) permet aux applications Android d’exécuter des réseaux de neurones à forte intensité de calcul sur les parties les plus puissantes et les plus efficaces des puces qui alimentent les téléphones portables, composées de GPU et de systèmes de traitement neuronal (NPU) spécialisés.

La version 1.10 de PyTorch comprenait plus de 3 400 dévots, indiquant un projet actif et concentré sur l’amélioration de l’efficacité grâce à une variété de techniques.

Comment démarrer avec PyTorch

La lecture des notes de mise à jour de la variation de mise à jour ne vous dira pas grand-chose si vous ne comprenez pas les principes fondamentaux de la tâche ou comment commencer à l’utiliser, alors remplissons cela.

La page du guide PyTorch propose 2 pistes : une pour ceux qui connaissent d’autres frameworks d’apprentissage en profondeur et une pour les débutants. Si vous avez besoin de la nouvelle piste, qui présente les tenseurs, les ensembles de données, l’autogradation et d’autres idées importantes, je vous recommande de la suivre et d’utiliser l’alternative Exécuter dans Microsoft Learn, comme illustré à la figure 1.

IDG

Figure 1. La piste  » newb  » pour apprendre PyTorch.

Si vous connaissez déjà les concepts d’apprentissage en profondeur, je vous recommande d’exécuter le bloc-notes de démarrage rapide illustré à la figure 2. Vous pouvez également cliquer sur Exécuter dans Microsoft Learn ou Exécuter dans Colab, ou vous pouvez exécuter le bloc-notes localement.

IDG

Figure 2. La piste innovante (de démarrage rapide) pour apprendre PyTorch.

Tâches PyTorch à apprécier

Comme indiqué sur le côté gauche de la capture d’écran de la figure 2, PyTorch propose de nombreuses recettes et tutoriels. Il propose également de nombreux modèles et exemples d’utilisation, généralement comme blocs-notes. Trois projets dans l’environnement PyTorch me semblent particulièrement intrigants : Captum, PyTorch Geometric (PyG) et skorch.

Captum

Comme indiqué sur la fiche de ce projet Référentiel GitHub, le mot captum comprend les méthodes en latin. Comme expliqué sur la page du référentiel et à d’autres endroits, Captum est « une bibliothèque d’interprétabilité de conception pour PyTorch ». Elle contient une gamme d’algorithmes d’attribution basés sur les gradients et les perturbations qui peuvent être utilisés pour traduire et comprendre les conceptions PyTorch. Il a également une intégration rapide pour les conceptions construites avec des bibliothèques spécifiques à un domaine telles que torchvision, torchtext et autres.

La Figure 3 révèle tous les algorithmes d’attribution actuellement pris en charge par Captum.

IDG

Figure 3. Algorithmes d’attribution Captum sous forme de tableau.

PyTorch Géométrique (PyG)

PyTorch Géométrique (PyG) est une bibliothèque que les scientifiques de l’information et d’autres peuvent utiliser pour écrire et former des réseaux de neurones graphiques pour des applications associées à des informations structurées. Comme expliqué sur sa page de référentiel GitHub :

PyG utilise des techniques de connaissance approfondie sur les graphiques et autres structures irrégulières, également appelées apprentissage profond géométrique. En outre, il comprend des chargeurs de mini-lots conviviaux pour fonctionner sur de nombreux petits et simples graphiques géants, une prise en charge multi-GPU, la découverte de graphiques distribués via Quiver, de nombreux ensembles de données standard typiques (basés sur des interfaces simples pour développer les vôtres), le superviseur de l’expérience GraphGym et des modifications utiles, à la fois pour découvrir des graphiques arbitraires ainsi que des ajustements 3D ou des nuages ​​de points.

La figure 4 est un résumé de l’architecture de PyTorch Geometric.

IDG

Figure 4. L’architecture de PyTorch Geometric.

skorch

skorch est une bibliothèque de réseaux neuronaux compatible scikit-learn qui couvre PyTorch. Le but de skorch est de rendre possible l’utilisation de PyTorch avec sklearn. Si vous connaissez sklearn et PyTorch, vous n’avez pas à découvrir de nouvelles idées et la syntaxe devrait être populaire. De plus, skorch supprime la boucle de formation, rendant une grande partie du code passe-partout obsolète. Un simple net.fit(X, y) suffit, comme le montre la Figure 5.

IDG

Figure 5. Spécification et formation d’un classificateur de réseau neuronal avec skorch.

Conclusion

En général, PyTorch fait partie d’une poignée de frameworks de premier plan pour les réseaux de neurones profonds avec assistance GPU. Vous pouvez l’utiliser pour le développement et la production de conceptions, vous pouvez l’exécuter sur site ou dans le cloud, et vous pouvez trouver de nombreuses conceptions PyTorch prédéfinies à utiliser comme point de départ pour vos propres conceptions.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici