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
Où part le temps d'un token
Un profil, la borne de la bande passante, et quatre fois plus de tokens par seconde
-
2
Générer à plusieurs
Des séquences sans remplissage, des tranches pour les grilles trop petites
-
3
Huit bits, puis quatre
Int8, int4, GPTQ, des valeurs aberrantes naissantes, et pas de vitesse gagnée
-
4
Deviner, puis vérifier
La règle d'acceptation, deux proposeurs, et le module multi-token enfin utile
-
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.
| Article | Mesure | Avant | Après |
|---|---|---|---|
| 1 | Tokens par seconde, une séquence | 225 | 969 |
| 2 | Tokens par seconde, 256 séquences | 44 000 | |
| 3 | Perte en int8 et en int4 (GPTQ), nats par octet | 0,8823 | 0,8824 et 0,8858 |
| 4 | Accélération du décodage spéculatif | ×1,53 | |
| 5 | Requêtes servies par seconde, à 100 par seconde | 60,0 | 92,4 |
Bibliographie
- Williams, Waterman et Patterson, Roofline: An Insightful Visual Performance Model for Multicore Architectures, 2009 → article 1.
- NVIDIA, Ampere GA102 GPU Architecture : les caractéristiques de la RTX 3090 → article 1.
- Dao, Haziza, Massa et Sizov, Flash-Decoding for long-context inference, 2023 → article 1.
- Dettmers et al., LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale, 2022 → article 3.
- Frantar et al., GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers, 2022 → article 3.
- Lin et al., AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration, 2023 → article 3.
- Leviathan, Kalman et Matias, Fast Inference from Transformers via Speculative Decoding, 2023 → article 4.
- Chen et al., Accelerating Large Language Model Decoding with Speculative Sampling, 2023 → article 4.
- Yu et al., Orca: A Distributed Serving System for Transformer-Based Generative Models, 2022 : les lots continus → article 5.
- Kwon et al., Efficient Memory Management for Large Language Model Serving with PagedAttention, 2023 : vLLM → article 5.