PROJET MINILAB · PRÉPARER L’ENVIRONNEMENT / 01
Architecture et outils.
Pendant seize leçons, vous avez observé un modèle de langage de l’intérieur. Place à la pratique : dans le projet MiniLab, vous allez construire le vôtre, de la première ligne de code jusqu’au serveur qui répond en streaming.
Votre modèle sera petit, mais complet : un vrai Transformer d’environ 940 000 paramètres, entraîné de bout en bout sur votre propre processeur, sans carte graphique, à partir du roman « Le Tour du monde en quatre-vingts jours ». Vous l’alignerez ensuite en assistant par fine-tuning supervisé, puis vous le servirez en streaming SSE, comme une vraie API.
Toute la chaîne, de l’entraînement du tokenizer jusqu’au premier token affiché, tourne en moins de deux minutes sur un ordinateur portable récent.
Six fichiers, six étapes
Le projet tient dans un dossier, packages/minilab/, un fichier par étape. Chaque étape transforme en code les leçons que vous avez étudiées, et chacune s’appuie sur la précédente : le modèle utilise le tokenizer, l’entraînement utilise le modèle, et ainsi de suite.
packages/
minilab/
tokenizer.py étape 1 · tokenizer BPE au niveau des octets leçons 01, 02, 13, 16
model.py étape 2 · le Transformer causal leçons 03 à 08
train.py étape 3 · le pré-entraînement leçons 10, 11
generate.py étape 4 · le sampling et le cache KV leçons 09, 15
chat.py étape 5 · le chat template et le SFT leçons 12, 14
server.py étape 6 · le serveur en streaming SSE leçon 16
data/sft_fr.jsonl les dialogues du fine-tuning (fourni)
minillm/data/
verne_tour_du_monde.txt le corpus (fourni)
tests/minilab/ les tests qui valident chaque étape (fournis)
checkpoints/minilab/ les fichiers produits : tokenizer, poids du modèleCe que vous écrivez, ce qui est fourni
Le dépôt d’exercice vous donne le corpus, les dialogues du fine-tuning et les tests. Vous écrivez les six fichiers Python. Le dossier checkpoints/minilab/ se remplit tout seul quand vous lancez les étapes : il contient le tokenizer entraîné et les poids du modèle. Il est ignoré par Git, car on ne versionne pas des fichiers produits par un calcul.
Chaque page de la section « Construire le projet » vous donne le code complet de son fichier, découpé en blocs expliqués un par un. Vous pouvez le recopier, le taper vous-même pour mieux le retenir, ou essayer d’abord de l’écrire seul et vous servir du cours pour vérifier. L’aide d’une IA reste facultative : les explications, les commandes et les tests suffisent.
Python 3.12 et uv
Python est le langage de tout le projet. Il faut la version 3.12 ou plus récente. uv gère à la fois la version de Python, l’environnement virtuel du projet et ses paquets. Une seule commande, uv sync, installe exactement les versions décrites dans le fichier uv.lock ; uv run lance ensuite une commande dans cet environnement, sans avoir à l’activer.
PyTorch, en version CPU
PyTorch fournit trois choses que l’on n’écrit pas soi-même : les tenseurs (des tableaux de nombres rapides à multiplier), le calcul automatique des gradients, loss.backward(), vu à la leçon 10, et l’optimiseur AdamW, vu à la leçon 11. Tout le reste, vous l’écrivez à la main : l’attention multi-têtes avec son masque causal, les blocs pre-norm, le cache KV, le sampling et le BPE. Aucune boîte noire comme nn.MultiheadAttention ou nn.TransformerEncoder.
La version CPU de PyTorch suffit : avec un million de paramètres, le processeur entraîne le modèle en un peu plus d’une minute. Le dépôt d’exercice est configuré pour l’installer partout, y compris sous Linux, où la version par défaut embarquerait plusieurs gigaoctets de bibliothèques pour cartes graphiques.
FastAPI, Uvicorn et pytest
FastAPI décrit les routes de votre serveur et vérifie les requêtes ; Uvicorn le fait tourner et répond aux navigateurs. C’est la dernière étape : servir votre modèle en streaming. pytest lance les tests fournis : à chaque étape, ils vérifient que votre code fait exactement ce qu’il doit faire, avec de tout petits modèles qui s’exécutent en une seconde.
Le dépôt d’exercice
Le projet se construit dans un dépôt Git à part, distinct de celui du cours : https://github.com/stephanemalho/minilab-projet. La page suivante explique comment l’installer sur macOS, Linux ou Windows.
VÉRIFIER SES CONNAISSANCES
Valider cette étape
Répondez aux trois questions pour débloquer la suite. Vous pouvez réessayer autant de fois que nécessaire.
Chargement de la progression…
Mise en ligne le