Présentation du cours

Sebastian Raschka publie une série de huit vidéos totalisant environ 11 heures d’enseignement. Le programme, intitulé Build a Reasoning Model (From Scratch), s’adresse aux développeurs familiers avec Python et PyTorch et propose de passer d’un modèle de langage pré‑entraîné à un modèle de raisonnement complet. Chaque leçon couvre un aspect précis : installation de l’environnement, chargement du modèle de base, mise en place du cache KV, mise à l’échelle de l’inférence, apprentissage par renforcement et distillation. Le cours se veut autonome ; il n’est pas indispensable d’avoir suivi la formation « Build LLMs from the Ground Up », même si elle constitue un prérequis recommandé.

Contenu technique et implémentation

Le point de départ est le modèle Qwen3 0.6B, un petit LLM pré‑entraîné dont les poids sont chargés directement depuis le dépôt public. Raschka montre comment initialiser le modèle en PyTorch, puis ajoute un générateur de texte en flux continu et un mécanisme de key‑value caching pour réduire le coût de l’inférence. Un extrait de code typique apparaît dans la vidéo :

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-0.6B")
model = torch.compile(model)  # compilation JIT pour accélérer l'inférence

Après la mise en place du pipeline de génération, les vidéos introduisent trois techniques d’amélioration : l’échelle d’inférence (exécution en mode batch, utilisation de la compilation TorchDynamo), le renforcement avec des récompenses vérifiables (RLHF simplifié) et la distillation du modèle enrichi vers une version plus légère. Chaque technique est illustrée par des expériences mesurées : le temps moyen de génération passe de 1,8 s à 0,9 s par token après compilation, le score de résolution de problèmes mathématiques augmente de 12 % grâce au RL, et la version distillée conserve 94 % de la précision tout en réduisant la taille de 30 %.

Analyse des exigences et limites

Le cours précise les ressources matérielles nécessaires. Les premières étapes (chargement, génération simple) fonctionnent sur CPU, mais les phases d’entraînement RL et de distillation requièrent un GPU compatible CUDA ou Apple Silicon. Raschka recommande au moins une carte RTX 3060 avec 12 Go de VRAM pour reproduire les expériences sans temps d’attente excessif. Un module supplémentaire décrit l’utilisation d’un GPU distant via VS Code Remote SSH, incluant la configuration du tunnel et la vérification de la disponibilité de CUDA.

Sur le plan méthodologique, le choix d’un petit modèle pré‑entraîné évite le coût prohibitif d’un entraînement complet, mais limite la généralisation aux tâches complexes. Raschka souligne que les gains observés proviennent surtout de l’ingénierie d’inférence et du fine‑tuning ciblé ; un modèle plus grand aurait probablement offert de meilleures performances de base, mais aurait rendu la reproduction locale difficile. Enfin, l’absence de benchmarks publics détaillés (par exemple, scores sur BIG‑BENCH) constitue une lacune : les évaluations restent internes à la série et ne permettent pas de comparer directement avec d’autres implémentations de modèles de raisonnement.