Frameworks : La Guerre des Moteurs (2002–aujourd’hui)
3.1. Torch (2002–2017)
Langage : Lua
Créateur : Ronan Collobert (IDIAP)
Année : 2002
Torch est le premier framework scientifique majeur pour le machine learning. Il offre :
- Calcul tensoriel efficace avec support GPU (CUDA dès 2011)
- Réseaux de neurones modulaires via le package
nn - Adoption par Facebook AI Research (FAIR) et NYU
Limite : Lua est un langage de niche. La communauté Python est 100× plus grande.
“Torch was great, but Lua killed it.”
3.2. Theano (2007–2017)
Langage : Python
Créateur : Yoshua Bengio (MILA, Université de Montréal)
Année : 2007
Theano est le premier framework Python pour le calcul symbolique et la différentiation automatique.
Innovations :
grad()— différentiation automatique symbollique- Optimisation du graphe de calcul (fusion de kernels GPU)
- Pionnier de l’écosystème Python ML
Héritage : Theano a directement inspiré TensorFlow (Google) et PyTorch (FAIR). Abandonné en 2017 (dernière version 1.0), remplacé par PyTorch.
3.3. TensorFlow (2015–aujourd’hui)
Langage : Python (C++ backend)
Créateur : Google Brain (Jeff Dean, etc.)
Année : 2015
TensorFlow est le framework de Google, conçu pour la production à grande échelle.
Forces :
- Scalabilité horizontale (distributed training natif)
- TFX (TensorFlow Extended) — pipeline production complet
- TPU (Tensor Processing Unit) — hardware custom Google
- TensorBoard — visualisation
- TFLite — déploiement mobile/embarqué
- TF.js — déploiement navigateur
Faiblesses :
- API statique (graph) — debug difficile
tf.Session.run()— verbeux, loop Python parasite
Versions clés :
- TF1 (2015) : graphe statique,
tf.Session - TF2 (2019) : mode eager par défaut, Keras comme API officielle
TensorFlow gagne la production, PyTorch gagne la recherche.
3.4. PyTorch (2016–aujourd’hui)
Langage : Python (C++ backend, Cuda)
Créateur : Facebook AI Research (Soumith Chintala, Adam Paszke, etc.)
Année : 2016
Innovations :
- Eager execution — debug Python natif (
print()fonctionne) - Define-by-Run — le graphe de calcul est construit dynamiquement
- Autograd — différentiation automatique tape-based
torch.nn,torch.optim,torch.utils.data,torchvision,torchtext,torchaudio
Moments clés :
- 2016 : Release de PyTorch (décembre)
- 2018 : TorchScript — compilation de modèles pour production
- 2019 : PyTorch Lightning — trainer modulaire (William Falcon)
- 2020 : PyTorch dépasse TensorFlow en publications de recherche
- 2022 : TorchDynamo /
torch.compile— compilation JIT - 2023 : PyTorch 2.0 —
torch.compile, AOTAutograd, TorchInductor - 2024 : PyTorch devient la norme de facto en recherche et industrie
“PyTorch: research-first, production-second. But in 2024, production caught up.”
3.5. JAX (2018–aujourd’hui)
Langage : Python (XLA compiler)
Créateur : Google DeepMind
Année : 2018
JAX n’est pas un framework DL classique — c’est un compilateur de transformations numériques.
Innovations :
jax.grad()— différentiation via XLAjax.jit()— compilation JITjax.vmap()— vectorisation automatiquejax.pmap()— parallélisation sur plusieurs GPUs/TPUs- Fonctionnel pur (pas de state global) — les tenseurs sont immutables
Adoption :
- DeepMind l’utilise en interne
- Hugging Face
transformerscompatible JAX
“JAX is not a framework. It’s a compiler that happens to be good at ML.”
← L’essor des Réseaux (1989–2012) • 03 • L’Ère des Transformers →