Aller au contenu

Données et pré-entraînement

Le corpus

DeepSeek-V4.1-Flash est entraîné depuis zéro sur 45 000 milliards de jetons multimodaux. Le rapport détaille peu le contenu, mais quatre choix méthodologiques sont énoncés clairement.

Le filtrage du contenu généré par modèle

DeepSeek écarte le contenu produit par des modèles moins capables et les traductions automatiques de mauvaise qualité, avec une justification explicite :

Section 4.1

« Nous considérons ce contenu comme une duplication implicite, car il reformule largement une information existante et peut devenir préjudiciable sur de longs horizons d'entraînement. »

L'argument est intéressant : un texte reformulé n'apporte pas d'information nouvelle mais consomme du budget d'entraînement, et son sur-poids finit par biaiser la distribution.

L'échelle graduée

Plutôt que de valider le mélange de données par de petites expériences, DeepSeek construit une échelle graduée (scaling ladder) sur les paramètres du modèle et le volume de données, pour guider les grands entraînements. Le raisonnement avancé est que la qualité au niveau de l'échantillon ne prédit pas les interactions globales entre corpus.

Du code récent

Le corpus intègre du code issu de dépôts, commits, bibliothèques et frameworks récemment publiés, explicitement pour couvrir des langages et des pratiques contemporaines. C'est cohérent avec le positionnement agentique du modèle : un agent de codage échoue s'il ne connaît que les API d'il y a deux ans.

La déduplication et l'empaquetage

Les corpus textuel et multimodal sont traités par des chaînes distinctes puis unis. Pour les échantillons présents dans les deux, la version textuelle est remplacée par sa contrepartie multimodale, avec le plus grand nombre d'époques des deux configurations. Le corpus final présente un rapport de 7:1 entre jetons textuels et multimodaux.

Deux détails d'ingénierie : les documents ultra-longs sont pré-découpés de façon déterministe avant le mélange pour uniformiser la distribution des jetons entre partitions ; l'algorithme d'empaquetage atteint un taux de remplissage inutile inférieur à \(10^{-4}\).

Le calendrier d'entraînement

Phase Jetons Taux d'apprentissage Longueur de séquence
Échauffement 2 000 pas montée linéaire 64 K
Palier jusqu'à 28 T \(2{,}6 \times 10^{-4}\) 64 K
Décroissance cosinus 28 T → 40 T \(2{,}6 \times 10^{-4} \to 2{,}6 \times 10^{-5}\) 64 K puis 1 M à partir de 34 T
Palier final 40 T → 45 T \(2{,}6 \times 10^{-5}\) 1 M

La taille de lot reste fixe à 100,6 millions de jetons tout au long de l'entraînement, sans montée progressive.

Un point remarquable : pas d'échauffement en attention dense

L'attention creuse est entraînée depuis zéro, à une longueur de séquence de 64 K, sans aucune phase préalable en attention dense.

C'est contre-intuitif : la pratique courante consiste à entraîner d'abord en attention complète pour que le modèle apprenne « quoi regarder », puis à introduire la parcimonie. DeepSeek s'en passe et le mentionne comme un fait, sans ablation à l'appui.

L'extension du contexte

Le passage de 64 K à 1 M de jetons se fait à 34 T jetons, soit après 75 % du budget d'entraînement. L'extension repose sur YaRN avec un facteur 16 depuis une longueur d'origine de 65 536 :

"rope_scaling": {
  "rope_type": "yarn", "factor": 16,
  "beta_fast": 32, "beta_slow": 1,
  "original_max_position_embeddings": 65536
}

\(65\,536 \times 16 = 1\,048\,576\) — la fenêtre annoncée.

Un détail lisible dans config.json mérite d'être noté : la voie globale et la voie locale n'utilisent pas la même base RoPE. La voie compressée utilise compress_rope_theta: 160000 et YaRN ; les couches en fenêtre glissante pure (couches 0 et 1) utilisent rope_theta: 10000 sans YaRN. C'est cohérent — une fenêtre de 128 jetons n'a aucun besoin d'extrapolation positionnelle.

Stabilité

DeepSeek affirme avoir entraîné les 45 T jetons sans aucune instabilité. C'est une affirmation invérifiable mais notable : les divergences de perte sur des entraînements de cette taille sont un problème courant, et leur absence est généralement le fruit de choix précis d'optimiseur et de normalisation — sujet du chapitre suivant.

Deux réglages contribuent probablement à cette stabilité, lisibles dans la configuration :

  • rms_norm_eps: 1e-20, une valeur inhabituellement petite ;
  • swiglu_limit: 10.0, un écrêtage de l'activation SwiGLU, pratique reprise de gpt-oss et citée comme telle.

Le masquage d'attention au niveau de l'échantillon

Comme DeepSeek-V4, le modèle emploie un masquage d'attention au niveau de l'échantillon pendant le pré-entraînement : les documents empaquetés dans une même séquence ne s'attendent pas mutuellement. Cela évite qu'un document contamine le contexte du suivant, au prix d'un masque un peu plus complexe.


Chapitre suivant : Optimiseurs