smallbard

Articles · IA : les modèles de langage de l'intérieur · série terminée

Smallem : une mémoire de n-grammes

Cette série prolonge la construction de Smallem, un modèle de langage écrit en Rust et CUDA à partir de zéro, et sa série sur les lois d'échelle. Elle construit la mémoire de n-grammes d'Engram, chez DeepSeek, reprise par Qwen : une table de vecteurs indexée par les deux ou trois derniers tokens, que le modèle consulte sans presque rien calculer. Elle la fait apprendre, la sort de la carte, et mesure ce que vaut un paramètre qui ne calcule pas.

Sommaire

  1. 1

    Compter les n-grammes

    Les n-grammes du corpus, le hachage, et ce qu'une table de comptes sait à elle seule

  2. 2

    Une mémoire qu'on consulte

    La lecture, la porte, la convolution, l'initialisation, et ce qui compte dans sa construction

  3. 3

    Une table hors de la carte

    Des gradients creux, un AdamW par lignes, une ligne de réserve, et 2,1 milliards de paramètres en mémoire centrale

  4. 4

    Ce que vaut un paramètre qui ne calcule pas

    La taille de la table, les courbes à calcul constant, et un creux qui se déplace

  5. 5

    Générer avec une mémoire

    Une lecture qui coûte des lancements et non des octets, ce que la table retient, et le bilan

Les chiffres en un coup d'œil

Sur une RTX 3090, aux budgets d'opérations de la série sur les lois d'échelle ; les pertes sont celles de la validation, en nats par octet.

ArticleMesureSans tableAvec table
1Trigrammes distincts dans le corpus141 millions
2Largeur 256, 3 × 10¹⁵, table de 67 millions0,95950,9258
3Débit d'entraînement xl, table creuse sur la carte49 788 tokens/s48 463 (−2,7 %)
3Débit d'entraînement xl, 2,1 milliards en mémoire centrale49 788 tokens/s44 846 (−9,9 %)
4Creux à 10¹⁶ : taille du réseau15,3 millions11,8 millions
4Creux à 10¹⁶ : perte0,89710,8683 (×1,9 de calcul)
4Largeur 448, 3 × 10¹⁶0,85240,8247
5Génération sur la carte, une séquence, table en mémoire centrale1 001 tokens/s958 (−4,3 %)
5Perte en coupant la mémoire du modèle xl+0,156 (sept fois le gain)

Bibliographie