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 XLA
  • jax.jit() — compilation JIT
  • jax.vmap() — vectorisation automatique
  • jax.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 transformers compatible JAX

“JAX is not a framework. It’s a compiler that happens to be good at ML.”

← L’essor des Réseaux (1989–2012)03L’Ère des Transformers →