243 000 textes pour un petit modèle de 29 millions de paramètres : comment l'auteur a sélectionné des données de Wikipédia et de livres de psychologie
Dans la deuxième partie de sa série sur Habr, un auteur qui n'est pas programmeur explique comment il a réuni 243 412 textes pour entraîner un petit modèle de 29 millions de paramètres. Il a pris 200 000 paragraphes de Wikipédia en russe et 50 000 paragraphes de ses propres livres de psychologie. Après suppression des doublons, il en restait 248 379, dont 4 967 mis de côté pour contrôler la qualité. Le modèle apprend à reproduire les embeddings (les vecteurs de nombres en lesquels un texte est converti) d'un grand modèle, une technique appelée distillation. Le code a été écrit par le réseau de neurones DeepSeek ; l'auteur s'est contenté de le déboguer. Wikipédia apporte l'étendue des sujets, la psychologie sert la tâche cible. Un seul fragment de 380 Mo du dump (archive) de Wikipédia a donné 1,24 million de paragraphes. Après filtrage sur la longueur et la part de lettres, puis suppression des doublons, le corpus complet atteint 1 359 942 textes. L'entraînement en utilise 5,6 fois moins : il est moins coûteux de calculer les embeddings avec le grand modèle et d'entraîner le petit sur un GPU T4 dans Colab. • L'analyse de Wikipédia a tourné à environ 1185 articles par seconde : 76 000 articles en 64 secondes. • Corpus de psychologie : 587 fichiers, 382 327 paragraphes, environ 18,9 millions de mots. • Dans le jeu d'entraînement, la psychologie représente environ 20 % : 48 477 lignes sur 243 412.
Traité par IA depuis Habr AI ; édité par Hamidun News
L'auteur d'une série sur Habr, qui ne se considère pas comme programmeur, prépare les données d'un petit modèle de 29 millions de paramètres. Le chiffre du titre, 243 000, correspond au nombre de textes qui restent dans le jeu d'entraînement. L'auteur prend 200 000 paragraphes de Wikipédia en russe et 50 000 paragraphes de livres de psychologie ; après suppression des doublons, il en obtient 248 379, dont 4 967 vont à la validation de la qualité et 243 412 restent pour l'entraînement.
À quoi servent ces textes. Un embedding est un vecteur de nombres en lequel un texte est converti pour qu'une machine puisse comparer les textes selon leur sens. Le petit modèle (l'élève) apprend à produire les mêmes vecteurs que le grand (le professeur).
Cette technique s'appelle la distillation. L'objectif final de la série, qui compte dix parties, ce sont les embeddings isotropes : des vecteurs qui remplissent l'espace de façon uniforme au lieu de se tasser en un faisceau étroit. Dans la deuxième partie, l'auteur examine les données : où les prendre, comment les nettoyer et combien il en faut réellement.
Tout le code a été écrit par le réseau de neurones DeepSeek, tandis que l'auteur s'est chargé du débogage et de la correction des erreurs.
Wikipédia depuis une archive de 380
Mo : analyse en une minute
Il faut deux types de textes. Le corpus général offre à l'élève une large couverture thématique : sans lui, le modèle surapprendrait sur un domaine étroit et se comporterait mal sur des textes étrangers. Le corpus de domaine, en psychologie, enseigne les spécificités de la tâche pour laquelle tout a été lancé.
Le dump complet de Wikipédia en russe pèse environ 5,5 Go compressé, ce qui est beaucoup pour Colab et son disque limité. La version multistream règle le problème : le même dump, mais découpé en centaines de petits fichiers. L'auteur en a téléchargé un, ruwiki-latest-pages-articles-multistream1.xml-p1p224167.bz2, de 380 Mo. Pour 250 000 textes, 100 à 200 Mo de texte propre auraient suffi, mais le résultat est de 1,24 million de paragraphes et 835,9 Mo.
Le texte a été extrait avec l'utilitaire WikiExtractor, avec l'option --no-templates pour ne pas récupérer les modèles wiki, et quatre processus. Vitesse : 1185 articles par seconde, environ 76 000 articles en 64 secondes.
Il reste ensuite trois types de déchets :
- des titres de section du type == История ==;
- des parenthèses vides () à la place des modèles supprimés ;
- la première ligne à l'intérieur de <doc>, qui répète le titre de l'article.
Le script nettoie tout cela avec des expressions régulières et écarte les paragraphes de moins de 40 caractères. Effet secondaire : au lieu de « Площадь — 65 300 км² », il reste « Площадь — км² ». L'auteur juge cela sans conséquence : les nombres sont de toute façon découpés en sous-tokens (petits fragments de mots), et pour un embedding, le contexte de la phrase compte davantage.
Psychologie : 587 fichiers et un seuil de dix mots
Le corpus de domaine provient d'une collection personnelle de livres au format .md : psychologie, psychothérapie, psychiatrie, statistiques mathématiques pour psychologues, anatomie et physiologie. L'auteur ne publie pas les textes eux-mêmes. Le script supprime le balisage Markdown et les balises HTML, recolle les mots coupés par un trait d'union en fin de ligne et ne garde que les lignes d'au moins dix mots. Cela élimine numéros de page, en-têtes répétés et titres isolés.
Résultat :
- 587 fichiers ;
- 382 327 paragraphes ;
- environ 18,9 millions de mots ;
- 258,4 Mo.
Pourquoi 243 000 textes sur 1,36 million
Vient d'abord un filtre sur la longueur (60–800 caractères) et la part de lettres (au moins 55 %), qui écarte les bribes de tableaux et de formules. Ensuite, il reste 1 056 981 paragraphes pour Wikipédia et 330 714 pour la psychologie. L'auteur conserve le corpus complet de 1 359 942 textes uniques en réserve : si les données manquent, il n'aura pas à retraiter Wikipédia.
Le jeu d'entraînement est volontairement réduit : 200 000 paragraphes de Wikipédia et 50 000 de psychologie, avec un seed fixe (valeur initiale du générateur de nombres aléatoires). Après déduplication, c'est-à-dire suppression des doublons, il reste 248 379 textes, dont 49 484 de psychologie. Si une ligne figure dans les deux sources, elle est rattachée à la psychologie.
Ensuite, 2 % (4 967 textes) partent en validation, c'est-à-dire en contrôle de la qualité, et 243 412 restent à l'entraînement. Les indices des lignes de domaine dans la partie d'entraînement sont stockés dans un tableau distinct, domain_indices.npy : il y en a 48 477, les autres se sont retrouvées en validation.
Cela permet d'évaluer plus tard la qualité séparément sur la psychologie.
La raison de cette réduction, c'est le coût. Un élève à trois couches s'entraîne sur un GPU T4 dans Colab. Une époque (un passage complet sur les données) avec batch_size=64 sur le volume total prend 15 à 20 minutes, et avec 3 à 10 époques on arrive à des heures. Le principal poste de dépense est le professeur : il doit calculer les embeddings de chaque texte d'entraînement, et même sur GPU, avec 1,33 million d'exemples, cela prend des dizaines de minutes. Un échantillon de 243 000 textes coûte 5 à 6 fois moins et suffit pour un premier cycle.
Ce qu'un ingénieur peut en retenir
- Les petites parties du dump multistream de Wikipédia évitent de télécharger 5,5 Go et conviennent à un disque limité.
- Garder le corpus complet sur disque coûte peu : le rééchantillonner avec d'autres quotas prend 28 secondes.
- Une part de domaine d'environ 20 % dans l'entraînement est un repère raisonnable pour une distillation sur une tâche étroite.
- L'approche a des défauts. Le premier script garde environ 800 Mo en mémoire, et la taille de corpus.txt est indiquée dans le texte par deux chiffres différents (753,8 et 718,9 Mo). Pour une expérience sur Colab, c'est tolérable.
La suite de la série portera sur les embeddings du professeur et l'entraînement de l'élève.
- 1 nov. 2026Test de 16 modèles sur 7 moteurs de recherche : Exa obtient en moyenne 10,5 points sur 14, SearXNG environ 3
- 1 nov. 2026La couche de protection MoneyGate n'a laissé passer aucune des 42 demandes frauduleuses adressées à des IA locales
- 31 oct. 2026DeepSeek-V4.1-Flash ramène le cache KV en HBM à 890 octets par token, contre 3514
- 30 oct. 2026Mistral ouvre les poids de Large 4 : fort en code, mais les modèles chinois affichent 32 points contre 26
Questions clés sur cet article
Que sait-on sur Wikipédia depuis une archive de 380 Mo : analyse en une minute ?
Il faut deux types de textes. Le corpus général offre à l'élève une large couverture thématique : sans lui, le modèle surapprendrait sur un domaine étroit et se comporterait mal sur des textes étrangers. Le corpus de domaine, en psychologie, enseigne les spécificités de la tâche pour laquelle tout a été lancé. Le dump complet de Wikipédia en russe pèse environ 5,5 Go compressé, ce qui est beaucoup pour Colab et son disque limité. La version multistream règle le problème : le même dump, mais découpé en centaines de petits fichiers. L'auteur en a téléchargé un, ruwiki-latest-
Que sait-on sur Psychologie : 587 fichiers et un seuil de dix mots ?
Le corpus de domaine provient d'une collection personnelle de livres au format .md : psychologie, psychothérapie, psychiatrie, statistiques mathématiques pour psychologues, anatomie et physiologie. L'auteur ne publie pas les textes eux-mêmes. Le script supprime le balisage Markdown et les balises HTML, recolle les mots coupés par un trait d'union en fin de ligne et ne garde que les lignes d'au moins dix mots. Cela élimine numéros de page, en-têtes répétés et titres isolés. Résultat : 587 fichiers ; 382 327 paragraphes ; environ 18,9 millions de mots ; 258,4 Mo.
Pourquoi 243 000 textes sur 1,36 million?
Vient d'abord un filtre sur la longueur (60–800 caractères) et la part de lettres (au moins 55 %), qui écarte les bribes de tableaux et de formules. Ensuite, il reste 1 056 981 paragraphes pour Wikipédia et 330 714 pour la psychologie. L'auteur conserve le corpus complet de 1 359 942 textes uniques en réserve : si les données manquent, il n'aura pas à retraiter Wikipédia. Le jeu d'entraînement est volontairement réduit : 200 000 paragraphes de Wikipédia et 50 000 de psychologie, avec un seed fixe (valeur initiale du générateur de nombres aléatoires). Après déduplication, c'
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.