English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

invité
1 / ?
retour aux leçons

Ce qu'un Modèle de Langue Prédit

Un Moteur de Continuation Probabiliste

Un modèle de langue prend une séquence de tokens & assigne une distribution de probabilité sur le token qui vient ensuite. Fournissez-lui the cat sat on the & il produit des probabilités sur tout le vocabulaire : forte masse sur mat, floor, couch ; faible masse sur xylophone, Tuesday.


Échantillonner cette distribution, ajouter un token, & le renvoyer : cette boucle génère du texte token par token. Génération autorégressive, nommée ainsi car chaque étape régresse sur sa propre sortie précédente.


Trois nombres définissent un modèle de langage


Taille du vocabulaire (V). Combien de tokens distincts un modèle peut produire. ANDREA-12M utilise 4 353 tokens ; ANDREA-120M utilise 8 449.


Fenêtre de contexte (T). Combien de tokens rentrent dans un passage avant. Les modèles ANDREA utilisent T = 1 024.


Nombre de paramètres (P). Combien de poids appris se trouvent à l'intérieur. 12M, 120M et 480M nomment une famille par P.


Une famille de trois


Varianted_modelTêtesCouchesContexteParams
ANDREA-12M384126102412,8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

Trois molettes de réglage : d_model (largeur de chaque vecteur interne), n_layer (profondeur des blocs transformer empilés), n_head (projections d'attention parallèles). Le vocabulaire et le contexte restent fixes dans la famille.

Lecture du tableau de la famille

Comparez ANDREA-12M (d_model=384, 6 couches, 12 têtes) à ANDREA-120M (d_model=768, 12 couches, 12 têtes). Nommez deux axes architecturaux qui scalent de 12M à 120M, & un qui reste constant. Une raison en une phrase pour chaque choix de scaling aide.

Pourquoi le petit compte

La contrainte comme libération

Les grands modèles de langage avec des centaines de milliards de paramètres nécessitent des milliers de GPU, des ensembles de données propriétaires et des budgets d'entreprise. Peu de personnes peuvent en entraîner un. Peu de personnes peuvent en réparer un.


Un petit modèle de langage sur un seul GPU renverse cela. N'importe qui avec une 4090 (ou une 3060) peut reproduire ANDREA à partir de données ouvertes. La recette d'entraînement fait aussi office de fiche modèle. Code ouvert, poids ouverts, données ouvertes ; traçabilité complète en 72 heures de calcul.


Capacité vs Qualité

Les modèles plus petits ne peuvent pas mémoriser leur corpus d'entraînement. ANDREA-12M, avec 12,8M de paramètres, manque de capacité pour stocker du contenu factuel ; il apprend la structure des tours, la distribution du vocabulaire et la forme des réponses. ANDREA-120M, avec une capacité 10× supérieure, apprend le rappel factuel, la cohérence multi-paragraphes et l'étendue du domaine (vérifié par évaluation externe à 9,5/10 sur des échantillons de biologie et de traitement du signal).


Le point clé : la capacité fixe un plafond. Le curriculum décide si le plafond est atteint. Les activités 14-23 couvrent le curriculum. [TITLE decoder_only/]

Trois saveurs de Transformer

Encodeur, Décodeur, Les deux

Le Transformer original (Vaswani et al., 2017) incluait un encodeur & un décodeur, collés ensemble pour la traduction. Trois lignées architecturales descendent de cet article :


Encodeur uniquement (lignée BERT). Attention bidirectionnelle, pas de masque causal. Optimisé pour la classification, pas pour la génération. Un token voit à la fois son passé & son futur pendant l'entraînement.


Encodeur-décodeur (T5, BART). L'encodeur lit l'entrée ; le décodeur génère la sortie, en se référant à l'encodeur via une attention croisée. Utilisé pour la traduction, la summarisation.


Décodeur uniquement (GPT, ANDREA). Masque causal : chaque token ne voit que son passé. Entraîné à prédire le token suivant. La génération est gratuite ; l'entraînement & l'inférence partagent le même passage avant.


Pourquoi le Décodeur Uniquement Gagne sur un GPU

Trois raisons :


1. Objectif unique. La prédiction du token suivant fonctionne sur n'importe quel texte. Pas besoin de source/cible appariée.

2. Symétrie entraînement & inférence. Même passage avant, pas de logique de génération spéciale.

3. Simplicité mémoire. Pas d'attention croisée ; une pile de couches ; un flux d'activations.


ANDREA hérite du choix decoder-only de microGPT, qui l'a hérité de nanoGPT, qui l'a hérité de GPT-2. La lignée reste standard ; ce qui change réside dans la tokenisation, l'infrastructure d'entraînement, & le curriculum.

Pourquoi Decoder-Only pour ANDREA

Donnez une raison du point de vue des données d'entraînement & une raison du point de vue du comportement d'inférence pourquoi ANDREA utilise un transformer decoder-only au lieu d'un encoder-decoder comme T5.

Ce qui tient dans 24 GB

Octets Par Paramètre

Une RTX 4090 est livrée avec 24 GB de VRAM. L'entraînement d'ANDREA-12M a utilisé 1,4 GB. ANDREA-120M en a utilisé beaucoup plus. L'écart provient d'un simple exercice comptable : chaque paramètre apparaît plusieurs fois en mémoire pendant l'entraînement.


Pour chaque paramètre, l'entraînement conserve :

- Le poids lui-même (1× poids)

- Premier moment Adam (m) : même forme que le poids (1× poids)

- Deuxième moment Adam (v) : même forme que le poids (1× poids)

- Gradients : même forme que le poids (1× poids)

- Activations & temporaires : ~2-4× poids (varie selon le batch & contexte)


Total : ~6-8× le nombre de poids, en octets déterminés par la précision.


La Précision Multiplie Tout


PrécisionOctets/paramTotal pour 120M poidsNotes
FP324480 MoBase ; le plus sûr, le plus lent
FP162240 MocuBLAS, moitié de mémoire
FP8 E4M31120 MoCœurs tenseurs, risque NaN

Multiplier par 6-8× pour l'empreinte complète à l'entraînement. ANDREA-120M s'entraîne confortablement en FP16 (~2 Go pour poids + optimiseur + grads) ; FP8 E4M3 divise le temps d'entraînement par deux sur les cœurs tenseurs RTX 4090.


L'activité 13 (grow_a_language_model_precision) détaille les compromis de précision FP.

Dimensionnement de l'état de l'optimiseur d'ANDREA-120M

ANDREA-120M contient ~120 000 000 paramètres. Chaque poids FP32 occupe 4 octets. AdamW stocke deux flottants supplémentaires d'état d'optimiseur par poids (m, v). Calculez : (a) poids seuls en FP32, en Mo ; (b) poids + état d'optimiseur en FP32, en Mo ; (c) poids + état d'optimiseur en FP16, en Mo. Montrez vos calculs.

Vingt-Cinq Activités

Deux Moitiés

Ce cours se divise clairement. La première moitié couvre ce que microGPT a enseigné au domaine : un transformateur qui s'exécute sur un seul GPU. La seconde moitié couvre la véritable contribution d'ANDREA : un curriculum qui apprend.


Moitié 1 : Un Transformateur sur Un GPU (activités 2-13)


#ActivitéProgression
2Tokeniseur de morphèmes Harrissegmentation distributionnelle, vocab 256+N+1
3Alignement tokenizer-dietpoint de saturation, pourquoi 12M gaspillés 63,6 %
4Embeddings & positionlookup token + position appris
5Attention produit scalaireQ·Kᵀ/√d, masque causal, softmax
6Attention multi-têtesdivisions des têtes, projections parallèles
7Bloc TransformerMLP, résiduels, normalisation de couche
8Entropie croisée & perplexitélog-vraisemblance, perte SMMA
9Backprop dans CUDA personnalisérègle de la chaîne à travers microgpt_cuda.cu
10AdamWdécroissance de poids découplée ; pourquoi l'Adam vanilla a échoué
11Échauffement LR + décroissance cosinusrampe de 2000 étapes ; pourquoi un pic instantané détruit 120M
12Limitation des gradientsnorme L2 globale ; 3 noyaux CUDA
13FP32 / FP16 / FP8 E4M3compromis de précision ; cœurs tenseurs

Moitié 2 : Un Curriculum Qui Apprend (activités 14-24)


#ActivitéAstuce
14Multi-armed banditsUCB1, exploration vs exploitation
15Contrôle des dés par phasesphases 7/14/21/28/42, dés 1d3/1d4
16Attribution des récompenses & EMAEMA de perte par source, mise à l'échelle 1000×
17Planchers par source & pénalité d'époque1/(1+époques) empêche la mémorisation
18Bonus de couverturesuivi au niveau document, fraîcheur 1.3×
19Échauffement par curriculum7 sources chat/prose premières 20K étapes
20Filtrage par forme, pas par caractèreshas_system_prompt_shape()
21Arrêt anticipé à cohérence ferméebigram/trigram/word/char auto-halt
22Point de contrôle, reprise, signauxformat, SIGTERM/SIGUSR1, continuité loss.json
23Audit d'échantillon & notation externelecture d'une exécution, territoire 9.5/10
24De microGPT à ANDREA-120Meffondrement v1, corrections v2, patch v2.5, polissage v3

Plus un compagnon : geometry_of_andrea considère chaque couche comme une géométrie (espace d'intégration, attention comme projection, surface de perte, bandit comme une marche sur un simplexe discret).


Ordre suggéré

Les activités 2-13 permettent de construire un transformeur fonctionnel. Passez directement à la moitié 2 si vous avez déjà entraîné des transformeurs ; revenez quand la curiosité vous prendra.


Chaque activité est autonome autant que possible. Les références mathématiques renvoient aux activités précédentes par leur nom (voir activité 5 : attention scaled dot-product). Les références de code pointent vers microgpt/microgpt_cuda.cu & microgpt/training_proxy.py dans ~/git/uncloseai-cli/.

Par où allez-vous commencer ?

En regardant les 24 activités + le compagnon géométrie, nommez une activité par laquelle vous voulez commencer & une raison : lacune de connaissances antérieures, pertinence professionnelle, ou pure curiosité. Il n'y a pas de mauvaise réponse ; le chemin à travers le cours vous appartient.