Hands-On Large Language Models : le dépôt de code d'un livre O'Reilly, pas une bibliothèque
Official code repo for the O'Reilly Book - "Hands-On Large Language Models"
En bref
- De quoi s’agit-il ?
- Le dépôt accompagne le livre de Jay Alammar et Maarten Grootendorst avec douze chapitres de notebooks, pensés pour Google Colab et un GPU T4. Utile pour apprendre en exécutant, inadapté comme dépendance de production.
- À qui s’adresse-t-il ?
- Ce dépôt s'adresse à des développeurs ou des étudiants qui veulent manipuler des modèles de langage chapitre par chapitre, en acceptant de dépendre de Colab et d'un GPU T4. Il ne convient pas à une équipe qui cherche une bibliothèque à importer ou un pipeline reproductible en CI : rien ici ne ressemble à un paquet versionné, et le README ne documente aucune procédure d'exécution hors Colab.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 145 jours.
- En quel langage est-il écrit ?
- Principalement Jupyter Notebook, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un support de cours exécutable, pas un paquet installable
Le dépôt porte le nom du livre Hands-On Large Language Models, signé Jay Alammar et Maarten Grootendorst, et se présente comme le code de tous les exemples du livre. Cette formulation suffit à fixer le périmètre : ce n'est pas une bibliothèque avec une API stable, c'est une collection de notebooks Jupyter organisés par chapitre. Le README annonce presque 300 figures réalisées pour l'ouvrage, ce qui donne le ton : l'objectif est pédagogique et visuel, pas industriel. Le public visé est donc celui qui apprend en exécutant, pas celui qui cherche une dépendance à ajouter dans un requirements.txt. Un lecteur qui cherche un composant à importer dans son propre code se trompe de dépôt. Un lecteur qui veut comprendre le fonctionnement des modèles de langage en modifiant des cellules est au bon endroit.
Douze chapitres, du token à l'ajustement fin
Le sommaire du README liste douze notebooks, un par chapitre, et la progression est cohérente. Les chapitres 1 à 3 posent les bases : introduction aux modèles de langage, tokens et embeddings, puis inspection de l'intérieur d'un transformer. Les chapitres 4 et 5 traitent la classification de texte, le clustering et la modélisation de sujets. Les chapitres 6 et 7 couvrent l'ingénierie de prompt et les techniques avancées de génération. Le chapitre 8 porte sur la recherche sémantique et le RAG, le chapitre 9 sur les modèles multimodaux. Les chapitres 10 à 12 vont plus loin dans l'entraînement : création de modèles d'embeddings, ajustement fin de modèles de représentation pour la classification (le notebook s'appelle Chapter 11 - Fine-Tuning BERT.ipynb), puis ajustement fin de modèles de génération. Chaque notebook est lié à un badge Colab qui pointe vers le fichier correspondant sur la branche main. La structure du dépôt suit donc le plan du livre, et non une architecture logicielle.
Colab comme environnement de référence, et ce que cela implique
La recommandation du README est explicite : exécuter les exemples via Google Colab, qui donne accès gratuitement à un GPU T4 avec 16 Go de VRAM. Le texte précise que les exemples ont été principalement construits et testés sur Colab, et que ce sera donc la plateforme la plus stable, tout autre fournisseur cloud devant fonctionner. Cette phrase est plus contraignante qu'elle n'en a l'air. Elle signifie que les chemins de fichiers, le montage de Google Drive et les versions de bibliothèques préinstallées dans l'image Colab font partie de l'environnement implicite des notebooks. Un lecteur qui exécute le même notebook sur une machine locale avec un GPU différent devra probablement ajuster l'installation des dépendances et la gestion des fichiers. Le dépôt ne fournit pas, d'après le README, de fichier d'environnement figé ni de procédure d'installation locale. C'est un choix assumé au service de la simplicité, mais c'est aussi la première source de friction pour qui veut reproduire les exemples ailleurs.
Comment démarrer concrètement
Le chemin le plus court est celui indiqué par le projet : ouvrir le badge Colab du chapitre souhaité depuis le tableau du README. L'URL a la forme https://colab.research.google.com/github/HandsOnLLM/Hands-On-Large-Language-Models/blob/main/chapterNN/... et pointe directement vers le notebook sur la branche main. Par exemple, le chapitre 8 correspond à chapter08/Chapter 8 - Semantic Search.ipynb et le chapitre 11 à chapter11/Chapter 11 - Fine-Tuning BERT.ipynb. Une fois le notebook ouvert dans Colab, il faut sélectionner un runtime GPU pour disposer du T4 mentionné dans le README. Si vous préférez cloner le dépôt, l'opération standard git clone du dépôt puis l'ouverture des fichiers .ipynb dans Jupyter fonctionne, mais c'est une déduction du format des fichiers, pas une procédure décrite dans le README. Les noms de chapitres comportent des espaces, il faut donc les échapper ou les encadrer de guillemets dans un shell. Aucune clé de configuration ni variable d'environnement n'est documentée dans le matériel fourni.
La limite principale : un dépôt qui suit un livre, pas un cycle de publication
Le matériel ne mentionne aucune release. Le README ne décrit pas de versionnage, pas de changelog, pas de politique de compatibilité. Un dépôt de notebooks adossé à un ouvrage imprimé évolue au rythme des corrections et des mises à jour du livre, pas au rythme des besoins de ses utilisateurs. Concrètement, les modèles et les bibliothèques appelés dans les cellules vieillissent : une API qui change casse un notebook sans qu'aucun numéro de version ne signale la rupture. Le lecteur qui épingle un commit obtient un état figé, mais perd les corrections ultérieures. Celui qui suit main obtient les corrections, mais subit les changements. Il n'existe pas de voie intermédiaire documentée ici. Autre limite : la dépendance à Colab rend difficile l'intégration de ces notebooks dans une chaîne d'intégration continue, puisque l'environnement d'exécution n'est pas décrit par un fichier du dépôt. Ce n'est pas un défaut du livre, c'est une inadéquation entre l'outil et un usage de production.
Face à un cours en ligne ou à une documentation officielle
L'alternative la plus directe est un cours vidéo ou interactif, du type de celui que le README associe au projet via DeepLearning.AI. La différence d'approche est nette : un cours guide pas à pas et masque les détails d'installation, tandis que ces notebooks laissent le code visible et modifiable, ce qui permet de casser volontairement une cellule pour voir ce qui se passe. L'autre alternative est la documentation officielle des bibliothèques utilisées, par exemple celle de Hugging Face pour les transformers. Elle est plus à jour et plus précise sur chaque API, mais elle n'offre aucune progression pédagogique : elle suppose que vous savez déjà ce que vous cherchez. Le dépôt se situe entre les deux. Il donne une trame ordonnée et un code exécutable, sans le confort d'un instructeur ni la fraîcheur d'une documentation de référence. Pour quelqu'un qui apprend seul, cette position intermédiaire est utile. Pour quelqu'un qui doit résoudre un problème précis demain, la documentation officielle sera plus rapide.
Licence Apache-2.0 et coût de suivi
Le dépôt est publié sous Apache-2.0, une licence permissive qui autorise la réutilisation, la modification et la redistribution du code, y compris dans un contexte commercial, à condition de conserver les mentions de copyright et de licence et de signaler les modifications. Elle comporte aussi une clause de brevets. Cela concerne le code des notebooks. Le texte du livre, les figures et les images restent couverts par leurs propres droits, et le README ne dit rien d'une licence sur ces éléments. Ne confondez pas les deux : réutiliser une cellule est une chose, reproduire une figure du livre en est une autre. Sur le coût de maintenance, le matériel ne fournit aucun indicateur de fréquence des mises à jour autre que la date du dernier push. Il n'y a pas de release à suivre, donc pas de mise à niveau planifiée : vous décidez vous-même quand resynchroniser votre fork avec main, et ce que vous cassez en le faisant.
Conclusion éditoriale
Ce dépôt s'adresse à des développeurs ou des étudiants qui veulent manipuler des modèles de langage chapitre par chapitre, en acceptant de dépendre de Colab et d'un GPU T4. Il ne convient pas à une équipe qui cherche une bibliothèque à importer ou un pipeline reproductible en CI : rien ici ne ressemble à un paquet versionné, et le README ne documente aucune procédure d'exécution hors Colab. Avant de vous engager, ouvrez le notebook du chapitre 8 (Chapter 8 - Semantic Search.ipynb) et vérifiez que les versions de modèles et de bibliothèques qu'il télécharge sont toujours disponibles.
Notes de la communauté