Theano est une bibliothèque Python et un compilateur optimisant conçus pour manipuler et évaluer des expressions mathématiques, en particulier celles impliquant des matrices. Elle a été développée principalement par l'Institut des algorithmes d'apprentissage de Montréal (MILA) à l'Université de Montréal, son nom faisant référence à la philosophe antique Théano, associée à la moyenne d'or. La bibliothèque permettait d'exprimer des calculs avec une syntaxe de type NumPy et de les compiler pour une exécution efficace sur architectures CPU ou GPU, ce qui en faisait un outil fondamental dans la recherche précoce en apprentissage profond.
Theano a joué un rôle significatif dans le développement des modèles de apprentissage automatique et de réseaux neuronaux, offrant aux chercheurs un cadre flexible pour construire et entraîner des opérations mathématiques complexes. Sa conception a influencé les cadres d'apprentissage profond ultérieurs, et elle a été largement utilisée dans les milieux académiques et industriels durant ses années d'activité.
Historique et développement
Theano a été publiée pour la première fois en 2007, issue de l'environnement de recherche du MILA, dirigé par Yoshua Bengio. Le projet était open source, permettant des contributions d'une communauté mondiale de développeurs et de chercheurs. Au fil des ans, elle est devenue un outil standard pour la recherche en intelligence artificielle, en particulier dans le domaine de l'apprentissage profond, où elle servait à implémenter et à expérimenter diverses architectures de réseaux neuronaux.
Le 28 septembre 2017, Pascal Lamblin a publié un message de Yoshua Bengio, chef du MILA, annonçant que le développement majeur de Theano cesserait après la version 1.0. Cette décision a été attribuée à l'émergence de concurrents solides issus des acteurs industriels du logiciel d'apprentissage profond. Theano 1.0.0 a ensuite été publiée le 15 novembre 2017, marquant la fin de sa phase de développement principal.
Après l'arrêt, l'équipe de développement de PyMC a pris en charge la maintenance du code. Le 17 mai 2018, Chris Fonnesbeck a écrit au nom de l'équipe PyMC qu'ils assumeraient officiellement le contrôle de la maintenance de Theano une fois que l'équipe du MILA se retirerait. Le 29 janvier 2021, les développeurs de PyMC ont commencé à utiliser le nom Aesara pour leur fork de Theano. Plus tard, le 29 novembre 2022, l'équipe PyMC a annoncé un autre fork sous le nom de PyTensor, poursuivant l'évolution du code original de Theano.
Fonctionnalités principales
La principale force de Theano résidait dans sa capacité à optimiser les expressions mathématiques grâce à la différenciation symbolique et à la compilation. Elle pouvait calculer automatiquement les gradients, ce qui était essentiel pour entraîner les réseaux neuronaux via la rétropropagation. La bibliothèque prenait également en charge la diffusion, permettant des opérations entre des tableaux de formes différentes sans remodelage explicite, et pouvait cibler à la fois les architectures CPU et GPU pour une exécution efficace.
L'approche par graphe computationnel utilisée par Theano permettait des optimisations sophistiquées, telles que le repliement de constantes et les simplifications algébriques, améliorant les performances d'exécution. Cela la rendait particulièrement adaptée aux applications de recherche où l'expérimentation avec de nouvelles architectures de modèles était courante.
Exemple de code et utilisation
L'utilisation de Theano impliquait généralement la définition de variables symboliques et d'opérations, puis leur compilation en fonctions exécutables. Par exemple, un graphe computationnel simple pouvait être créé avec deux variables scalaires a et b de type double, une opération d'addition entre elles, et une fonction Python f qui effectuait le calcul réel. Ce modèle était étendu à des opérations plus complexes, notamment la multiplication matricielle, le calcul de gradient et la construction de réseaux neuronaux simples.
La multiplication matricielle, une opération fondamentale dans de nombreuses tâches de apprentissage automatique, pouvait être implémentée directement à l'aide des opérations tensorielles de Theano. Le calcul de gradient, crucial pour l'entraînement des modèles, était géré par les capacités de différenciation automatique de la bibliothèque, permettant aux chercheurs de calculer les dérivées des opérations par rapport aux entrées avec un code minimal. Theano prenait également en charge la construction de réseaux neuronaux de base avec des couches cachées, démontrant son utilité pour construire des modèles de apprentissage profond.
Héritage et impact
L'influence de Theano a dépassé sa propre durée de vie, car elle a posé les bases des cadres d'apprentissage profond ultérieurs et a contribué au domaine plus large de la IA générative et au développement moderne des grands modèles de langage. Ses principes de conception, en particulier l'utilisation de graphes computationnels et de différenciation automatique, ont été adoptés et affinés par des outils ultérieurs. L'arrêt de la bibliothèque en 2017 reflétait l'évolution rapide de l'écosystème logiciel d'apprentissage profond, avec des acteurs industriels tels que Google DeepMind et d'autres développant des solutions plus spécialisées et évolutives.
Malgré sa fin, Theano reste historiquement significative en tant que l'un des premiers catalyseurs de la recherche moderne en apprentissage profond. Son code, à travers les forks Aesara et PyTensor, continue d'être maintenu et utilisé dans certains contextes, garantissant que ses contributions au domaine ne sont pas entièrement perdues. L'histoire de Theano illustre la nature dynamique du développement logiciel open source dans le domaine en évolution rapide de l'intelligence artificielle.
Voir aussi
- Comparaison des logiciels d'apprentissage profond
- Comparaison des logiciels d'apprentissage automatique
- Programmation différentiable
Références
- Faits sources fournis par Wikipédia, CC BY-SA.
Liens externes
- Site officiel (GitHub)
- Theano à l'Université de Montréal, apprentissage profond