Definition

Qu'est-ce que PyTorch ?

PyTorch est un cadre d'apprentissage machine (ML) open source basé sur le langage de programmation Python et la bibliothèque Torch. Torch est une bibliothèque ML open source utilisée pour créer des réseaux neuronaux profonds et écrite dans le langage de script Lua. C'est l'une des plateformes préférées pour la recherche sur l'apprentissage profond. Le cadre est conçu pour accélérer le processus entre le prototypage et le déploiement de la recherche.

Le cadre PyTorch prend en charge plus de 200 opérations mathématiques différentes. La popularité de PyTorch ne cesse de croître, car il simplifie la création de modèles de réseaux neuronaux artificiels. PyTorch est principalement utilisé par les scientifiques des données pour la recherche et les applications d'intelligence artificielle (IA). PyTorch est publié sous une licence BSD modifiée.

PyTorch était initialement un projet de stage pour Adam Paszke, qui était à l'époque un étudiant de Soumith Chintala, l'un des développeurs de Torch. Paszke et plusieurs autres ont travaillé avec des développeurs de différentes universités et entreprises pour tester PyTorch. Soumith Chintala travaille actuellement comme chercheur chez Meta (anciennement Facebook), qui utilise PyTorch comme plateforme sous-jacente pour piloter toutes les charges de travail d'IA.

Comment fonctionne PyTorch ?

PyTorch est de nature pythonique, ce qui signifie qu'il suit le style de codage qui utilise les caractéristiques uniques de Python pour écrire un code lisible. Python est également populaire pour son utilisation des graphes de calcul dynamiques. Il permet aux développeurs, aux scientifiques et aux débogueurs de réseaux neuronaux d'exécuter et de tester une partie du code en temps réel au lieu d'attendre que le programme entier soit écrit.

PyTorch offre les fonctionnalités clés suivantes :

  • Calcul tensoriel. À l'instar du tableau NumPy, une bibliothèque open source de Python qui prend en charge les grands tableaux multidimensionnels, les tenseurs sont des tableaux n-dimensionnels génériques utilisés pour des calculs numériques arbitraires et accélérés par les unités de traitement graphique. Ces structures multidimensionnelles peuvent être exploitées et manipulées à l'aide d'interfaces de programmes d'application (API).
  • TorchScript. Il s'agit de l'environnement de production de PyTorch qui permet aux utilisateurs de passer d'un mode à l'autre en toute transparence. TorchScript optimise les fonctionnalités, la vitesse, la facilité d'utilisation et la flexibilité.
  • Calcul dynamique des graphes. Cette fonction permet aux utilisateurs de modifier le comportement du réseau à la volée, plutôt que d'attendre que tout le code soit exécuté.
  • Différenciation automatique. Cette technique est utilisée pour créer et former des réseaux neuronaux. Elle calcule numériquement la dérivée d'une fonction en effectuant des passages en arrière dans les réseaux neuronaux.
  • Prise en charge de Python. PyTorch étant basé sur Python, il peut être utilisé avec des bibliothèques et des paquets populaires tels que NumPy, SciPy, Numba et Cynthon.
  • Variable. La variable est enfermée à l'extérieur du tenseur pour contenir le gradient. Elle représente un nœud dans un graphe de calcul.
  • Paramètre. Les paramètres sont enroulés autour d'une variable. Ils sont utilisés lorsqu'un paramètre doit être utilisé comme un tenseur, ce qui n'est pas possible avec une variable.
  • Module. Les modules représentent des réseaux neuronaux et sont les éléments constitutifs du calcul avec état. Un module peut contenir d'autres modules et paramètres.
  • Les fonctions. Il s'agit des relations entre deux variables. Les fonctions n'ont pas de mémoire pour stocker un état ou un tampon et n'ont pas de mémoire propre.

Avantages de PyTorch

L'utilisation de PyTorch présente les avantages suivants :

  • Offre aux développeurs une structure facile à apprendre et à coder, basée sur Python.
  • Permet un débogage facile avec les outils Python les plus courants.
  • Il offre une grande évolutivité et est bien pris en charge par les principales plateformes d'informatique dématérialisée.
  • Fournit une petite communauté axée sur l'open source.
  • Exporte les modèles d'apprentissage vers le format standard Open Neural Network Exchange (ONNX).
  • Offre une interface conviviale.
  • Fournit une option d'interface frontale en C++.
  • Inclut un ensemble riche d'API puissantes qui étendent la bibliothèque PyTorch.

PyTorch vs. TensorFlow

PyTorch est souvent comparé à TensorFlow, un framework d'apprentissage automatique profond développé par Google. Comme TensorFlow existe depuis plus longtemps, il dispose d'une plus grande communauté de développeurs et d'une documentation plus complète.

PyTorch présente toutefois des avantages par rapport à TensorFlow. PyTorch définit dynamiquement des graphes de calcul, contrairement à l'approche statique de TensorFlow. Les graphes dynamiques peuvent être manipulés en temps réel. En outre, la courbe d'apprentissage de TensorFlow est plus raide que celle de PyTorch, qui repose sur le langage intuitif Python.

TensorFlow peut être mieux adapté aux projets qui nécessitent des modèles de production et une évolutivité, car il a été créé dans l'intention d'être prêt pour la production. Cependant, PyTorch est plus facile et plus léger à utiliser, ce qui en fait une bonne option pour créer rapidement des prototypes et mener des recherches.

Principaux cas d'utilisation de PyTorch

PyTorch est l'un des frameworks d'apprentissage profond les plus populaires en raison de sa flexibilité et de sa puissance de calcul. Il est facile à apprendre et est utilisé dans de nombreuses applications, notamment le traitement du langage naturel (NLP) et la classification d'images.

Voici quelques cas d'utilisation courants de PyTorch :

NLP ou PNL. Le NLP est une technologie comportementale qui permet à un ordinateur de comprendre le langage humain tel qu'il est parlé ou écrit. Les principaux éléments du NLP sont la traduction automatique, la recherche d'informations, l'analyse des sentiments, l'extraction d'informations et la réponse aux questions.


Les 5 éléments clés de la PNL

Les réseaux neuronaux profonds sont à l'origine de plusieurs avancées dans la compréhension des langues naturelles par les machines, comme Siri et Google Translate. Mais la plupart de ces modèles utilisent une méthode de réseau neuronal récurrent pour traiter le langage comme une séquence plate de mots, alors que de nombreux linguistes soutiennent le modèle de réseau neuronal récursif, car ils pensent que le langage est mieux compris lorsqu'il est présenté sous la forme d'un arbre hiérarchique de phrases. PyTorch facilite la compréhension de ces modèles linguistiques complexes. Par exemple, en 2018, Salesforce a développé un modèle d'apprentissage NLP multitâche qui effectue 10 tâches à la fois.

Apprentissage par renforcement. La bibliothèque Python connue sous le nom de Pyqlearning est utilisée pour exécuter l'apprentissage par renforcement (RL), qui est un sous-ensemble de la ML. Dans le cadre de l'apprentissage par renforcement, une machine est amenée à tirer des enseignements de son expérience afin de pouvoir prendre les bonnes décisions pour obtenir la meilleure récompense possible. L'apprentissage par renforcement est principalement utilisé pour développer la robotique à des fins d'automatisation, de contrôle des mouvements des robots ou de planification de la stratégie commerciale, et utilise l'architecture d'apprentissage Deep Q de Python pour construire un modèle.

Classification d'images. Ce processus permet de classer une image en fonction de son contenu visuel à l'aide d'un algorithme de classification d'images. Par exemple, l'algorithme peut indiquer à une application de vision par ordinateur si une certaine image contient un chat ou un chien. Si la détection d'objets est un jeu d'enfant pour l'œil humain, elle peut s'avérer difficile pour les applications de vision par ordinateur. En utilisant PyTorch, un développeur peut traiter des images et des vidéos pour créer un modèle de vision par ordinateur précis.

Le framework PyTorch joue un rôle important dans le monde du NLP. Voici cinq raisons pour lesquelles les chatbots ont besoin du NLP et comment un NLP sophistiqué, y compris l'analyse des intentions et des sentiments, peut améliorer leurs performances.

Pour approfondir sur IA appliquée, GenAI, IA infusée