Aide

Besoin d’aide ?

Posez votre question sur le Discord de MiniLab, dans le salon de cette page :

#questions-demarrage

Ouvrir le salon ↗

Pas encore membre ? Rejoindre le Discord, puis revenez sur ce bouton.

Ma progression

Sauvegarder ma progression

Chargement…

Votre progression est enregistrée dans ce navigateur, pour cette adresse seulement. Gardez ce code : il la restaure dans un autre navigateur, sur un autre ordinateur, ou si les données du site ont été effacées.

MINILAB-0-1C
Mentions légales
Affichage

Personnaliser l’affichage

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.

01

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.

L’arborescence du projet
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èle
02

Ce 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.

03

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.

04

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.

05

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.

06

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