Traduit de l'anglais

Torch Release (2002) était une bibliothèque open-source d’apprentissage automatique et un cadre de calcul scientifique basé sur Lua, développé par l’Institut de recherche Idiap. Il fournissait des interfaces LuaJIT aux algorithmes d’apprentissage profond en C et servait de précurseur à PyTorch, qui lui a succédé en 2017.

Torch est une bibliothèque open-source de apprentissage automatique et un cadre de calcul scientifique construit sur le langage de script Lua. Publiée en 2002 par l'Institut de recherche Idiap, elle offrait des interfaces LuaJIT pour des algorithmes d'apprentissage profond implémentés en C, ce qui en faisait un outil précoce notable pour les chercheurs travaillant sur des modèles d'intelligence artificielle et de réseau neuronal. La conception de la bibliothèque mettait l'accent sur la flexibilité et la modularité, ce qui a contribué à son adoption dans des contextes académiques et industriels. En 2017, le développement de Torch a été transféré à PyTorch, un portage de la bibliothèque vers Python, qui est depuis devenu un cadre dominant dans la recherche en apprentissage profond.

Paquet principal : torch

Le paquet central de Torch est le paquet torch, qui fournit un tableau N-dimensionnel flexible appelé Tensor. Ce Tensor prend en charge des routines de base pour l'indexation, le découpage, la transposition, le changement de type, le redimensionnement, le partage de stockage et le clonage, formant l'objet central utilisé par la plupart des autres paquets. Au-delà de ces opérations structurelles, le Tensor prend en charge des fonctions mathématiques telles que max, min et sum, des distributions statistiques incluant uniforme, normale et multinomiale, ainsi que des opérations de base de sous-programmes d'algèbre linéaire (BLAS) comme le produit scalaire, la multiplication matrice-vecteur et la multiplication matrice-matrice.

Le paquet torch simplifie également la programmation orientée objet et la sérialisation grâce à des fonctions de commodité utilisées dans tout son écosystème. La fonction torch.class(classname, parentclass) crée des fabriques d'objets ou des classes, permettant aux développeurs de définir des structures de données personnalisées. Lorsqu'un constructeur est appelé, Torch initialise une table Lua avec une métatable définie par l'utilisateur, transformant la table en objet. Les objets créés via cette fabrique peuvent être sérialisés tant qu'ils ne contiennent pas de références à des entités non sérialisables comme les coroutines Lua ou les userdata bruts ; cependant, les userdata peuvent être sérialisés s'ils sont enveloppés dans une table avec des méthodes read() et write().

Paquet de réseau neuronal : nn

Le paquet nn est conçu pour construire des architectures de réseau neuronal. Il est composé d'objets modulaires qui partagent une interface Module commune, avec des méthodes forward() et backward() permettant respectivement la propagation avant et la rétropropagation. Ces modules peuvent être combinés à l'aide de composites tels que Sequential, Parallel et Concat pour créer des graphes spécifiques à une tâche. Des composants de base comme Linear, Tanh et Max sont inclus comme éléments de construction. Cette interface modulaire fournit une différenciation automatique de premier ordre, permettant aux chercheurs de construire des modèles sans dériver manuellement les gradients.

Les fonctions de perte sont implémentées comme des sous-classes de Criterion, qui reflète l'interface Module avec des méthodes forward() et backward() pour calculer la perte et propager les gradients. Les critères courants incluent MSECriterion pour l'erreur quadratique moyenne et ClassNLLCriterion pour la perte d'entropie croisée, qui facilitent l'entraînement sur des tâches typiques. Le paquet inclut également une classe StochasticGradient pour appliquer la descente de gradient stochastique, bien que le paquet optim offre des options supplémentaires telles que l'élan et la régularisation par décroissance du poids.

Paquets supplémentaires et écosystème

Au-delà des paquets officiels, de nombreuses bibliothèques tierces étendent les capacités de Torch, couvrant des domaines comme le parallélisme, les entrées-sorties asynchrones et le traitement d'images. Ces paquets sont généralement installés via LuaRocks, le gestionnaire de paquets Lua inclus avec les distributions Torch. La modularité de l'écosystème a encouragé l'expérimentation, et la disponibilité d'outils spécialisés a rendu Torch adaptable à divers besoins de recherche.

Applications et adoption

Torch a trouvé une utilisation dans des contextes académiques et industriels. Il a été adopté par le groupe de recherche en IA de Facebook, IBM, Yandex et l'Institut de recherche Idiap, Facebook publiant un ensemble de modules d'extension en tant que logiciel open-source. La bibliothèque a également été étendue pour un déploiement sur les plateformes Android et iOS, et elle a été utilisée pour construire des implémentations matérielles pour les flux de données dans les réseaux neuronaux. Ces applications ont mis en évidence la polyvalence de Torch dans le traitement de tâches réelles d'apprentissage automatique, des prototypes de recherche aux systèmes de production.

Héritage et succession

Le développement de Torch a cessé en 2017 lorsque le projet a été transféré à PyTorch, un portage basé sur Python qui a conservé de nombreux concepts fondamentaux de Torch tout en tirant parti de l'écosystème plus large de Python. PyTorch est depuis devenu une pierre angulaire de la recherche moderne en apprentissage automatique, alimentant des avancées dans des domaines comme les modèles transformeur et les systèmes IA générative à grande échelle. En tant que précurseur, Torch a posé un travail fondamental dans les opérations sur tenseurs et la conception modulaire de réseaux neuronaux qui a influencé les cadres ultérieurs. Son accent sur Lua, cependant, a limité son adoption plus large par rapport aux alternatives basées sur Python, un facteur qui a contribué à la transition éventuelle.

Héritage et influence

L'impact de Torch s'étend au-delà de ses successeurs directs. Son architecture modulaire et son accent sur la flexibilité ont informé la conception de bibliothèques ultérieures de apprentissage automatique, et son utilisation d'algorithmes soutenus par C avec un script de haut niveau a établi un précédent pour les cadres orientés performance. La transition vers PyTorch a consolidé les contributions de Torch dans un outil largement utilisé, cimentant son rôle dans l'histoire du développement de logiciels d'intelligence artificielle. Aujourd'hui, PyTorch alimente de nombreuses applications, y compris l'entraînement de grands modèles de langage et les systèmes IA générative, s'appuyant sur les concepts fondamentaux introduits par Torch.

Voir aussi

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Catégories:machine-learning·open-source-software·scientific-computing·lua-libraries
Cette page a été modifiée pour la dernière fois le 7 sept. 2026 par AI Wiki Bot · Historique