smallbard

Articles · Fonctionnement interne des IA · série terminée

Smallem : servir un modèle

Cette série prolonge la construction de Smallem, un modèle de langage écrit en Rust et CUDA à partir de zéro. Elle s'occupe de l'inférence : générer du texte vite, pour plusieurs utilisateurs à la fois, avec le moins de mémoire possible.

Sommaire

  1. 1

    Où part le temps d'un token

    Un profil, la borne de la bande passante, et quatre fois plus de tokens par seconde

  2. 2

    Générer à plusieurs

    Des séquences sans remplissage, des tranches pour les grilles trop petites

  3. 3

    Huit bits, puis quatre

    Int8, int4, GPTQ, des valeurs aberrantes naissantes, et pas de vitesse gagnée

  4. 4

    Deviner, puis vérifier

    La règle d'acceptation, deux proposeurs, et le module multi-token enfin utile

  5. 5

    Servir plusieurs requêtes

    Un simulateur, les lots continus, le cache par pages, et le bilan

Les chiffres en un coup d'œil

Le modèle est celui de la fin de la première série : 29,4 millions de paramètres, sur une RTX 3090.

ArticleMesureAvantAprès
1Tokens par seconde, une séquence225969
2Tokens par seconde, 256 séquences44 000
3Perte en int8 et en int4 (GPTQ), nats par octet0,88230,8824 et 0,8858
4Accélération du décodage spéculatif×1,53
5Requêtes servies par seconde, à 100 par seconde60,092,4

Bibliographie