Projet

Projet IA - Un LLM construit from scratch, de la donnée brute à un entraînement reproductible

Tokenizer, pipeline de données, modèle et boucle d'entraînement résiliente, pensés pour être rejoués à l'identique et repris après une interruption

Contexte

Dans le cadre de ma montée en compétences, j'ai construit une ia micro, un petit modèle de langage de type Transformer, écrit en PyTorch sans dépendre d'une bibliothèque tierce pour son cœur : attention, normalisation, tokenizer, optimiseur et boucle d'entraînement sont écrits à la main.

L'objectif n'était pas d'obtenir un modèle performant, mais de construire la chaîne complète qu'exige un entraînement sérieux : des données versionnables, une configuration validée, un entraînement reproductible, des sauvegardes fiables et des métriques exploitables.
Avant de dépenser du GPU, j'ai donc validé toute la chaîne sur une version réduite, ia_micro (5,3 millions de paramètres), entraînée en local.

Les grandes étapes du projet

01

Principes d'architecture

Deux règles ont structuré tout le projet :

  • séparation des responsabilités : chaque module a une seule fonction et ignore les autres ;
  • configuration pilotant tout : aucun hyperparamètre dans le code, tout est dans des fichiers YAML.
02

Un Transformer écrit from scratch

Le modèle est assemblé à partir de briques indépendantes, chacune avec son fichier et ses tests :

Embeddings
→
Attention causale
→
Feed-forward
→
Blocs empilés
→
Sortie
03

Entraînement de bas niveau et test de santé

J'ai écrit moi-même les composants de l'entraînement :

  • fonction de perte sur le token suivant ;
  • planning de learning rate (warmup puis décroissance en cosinus) ;
  • optimiseur AdamW avec deux groupes de paramètres ;
  • accumulation de gradient, clipping, précision mixte avec mise à l'échelle des gradients.
04

Tokenizer BPE écrit from scratch

Le tokenizer fonctionne au niveau des octets : il peut donc encoder n'importe quel texte sans jamais échouer, et le décodage restitue exactement le texte d'origine (aller-retour vérifié par test).

Corpus
→
Pré-découpage
→
Apprentissage des fusions
→
Vocabulaire
05

Prochaine étape : industrialisation sur AWS (à venir)

L'infrastructure cible est définie, mais pas encore mise en œuvre :

  • entraînement du modèle de 136 millions de paramètres sur une instance GPU Spot ;
  • détection de l'interruption Spot par interrogation périodique du service de métadonnées ;
  • stockage des données et des checkpoints sur S3 ;
  • suivi des expériences avec MLflow ;
  • conteneurisation avec Docker et publication dans un registre ECR.

Ces éléments sont planifiés. Le projet est construit pour qu'ils s'ajoutent sans réécrire l'existant : la reprise après interruption, les checkpoints et la configuration sont déjà en place.

🛠 Stack technique

Langage & ML

PythonPyTorchNumPy

Modèle

TransformerAttention causaleTokenizer BPE

Entraînement

AdamWPrécision mixte (fp16)Accumulation de gradientCheckpoints atomiques

Données

Project GutenbergFichiers binaires (memmap)Reproductibilité par graine

Configuration

YAMLDataclassesValidation stricte

Qualité

pytest180+ tests

Analyse

pandasmatplotlibJupyter

Versionnement

GitGitHub

Cible cloud (à venir)

AWS EC2 SpotS3MLflowDockerECR