Skip to main content
AI & Machine Learning

Model Compression

Technieken om AI-modelgrootte en rekenvereisten te verminderen met behoud van prestaties, voor efficiënte deployment.

Ook bekend als: Modeloptimalisatie, Model efficiëntie, Neurale netwerkcompressie

Definitie

Modelcompressie is een familie van technieken ontworpen om de grootte, geheugenvoetafdruk en rekenvereisten van machine learning-modellen te verminderen met behoud van acceptabele prestatieniveaus. Dit omvat kwantisatie (verminderen van numerieke precisie), snoeien (verwijderen van onnodige parameters), kennisdestillatie (kleinere modellen trainen om grotere na te bootsen), en architecturale optimalisaties. Het doel is om AI-deployment praktisch te maken op apparaten met beperkte resources of op schaal in productie.

Waarom het belangrijk is

Modelcompressie is essentieel voor real-world AI:

  • Kostenverlaging — serveer AI tegen 10-100x lagere infrastructuurkosten
  • Latentieverbetering — snellere respons voor betere gebruikerservaring
  • Edge deployment — draai modellen op telefoons, browsers, IoT-apparaten
  • Milieu-impact — verminder energieverbruik en CO2-voetafdruk
  • Democratisering — maak geavanceerde AI toegankelijk zonder enorme budgetten

Zonder compressie zouden state-of-the-art modellen opgesloten blijven in dure datacenters.

Hoe het werkt

┌────────────────────────────────────────────────────────────┐
│              MODELCOMPRESSIE TECHNIEKEN                     │
├────────────────────────────────────────────────────────────┤
│                                                            │
│  HET COMPRESSIELANDSCHAP:                                  │
│  ────────────────────────                                  │
│                                                            │
│  ┌─────────────────┐  ┌─────────────────┐                 │
│  │  KWANTISATIE    │  │    SNOEIEN      │                 │
│  │                 │  │                 │                 │
│  │ FP32 → FP16     │  │ Verwijder       │                 │
│  │ FP32 → INT8     │  │ ongebruikte     │                 │
│  │ FP32 → INT4     │  │ gewichten       │                 │
│  │                 │  │                 │                 │
│  │ 2-8x kleiner    │  │ Gestructureerd  │                 │
│  │ 2-4x sneller    │  │ vs Ongestr.     │                 │
│  └─────────────────┘  └─────────────────┘                 │
│                                                            │
│  ┌─────────────────┐  ┌─────────────────┐                 │
│  │  DESTILLATIE    │  │ ARCHITECTUUR    │                 │
│  │                 │  │ OPTIMALISATIE   │                 │
│  │ Groot → Klein   │  │                 │                 │
│  │ Teacher→Student │  │ MobileNets      │                 │
│  │                 │  │ EfficientNets   │                 │
│  │ Transfer        │  │ Depthwise conv  │                 │
│  │ kennis          │  │ Attention optim │                 │
│  └─────────────────┘  └─────────────────┘                 │
│                                                            │
│                                                            │
│  COMPRESSIE PIPELINE:                                      │
│  ────────────────────                                      │
│                                                            │
│  ┌────────────────────────────────────────────────────┐   │
│  │                                                     │   │
│  │  Origineel Model (GPT-3 175B, FP32)                │   │
│  │  Grootte: 700GB    Inferentie: €€€€€              │   │
│  │                                                     │   │
│  │         │                                           │   │
│  │         ▼                                           │   │
│  │  ┌──────────────┐                                  │   │
│  │  │ DESTILLATIE  │  → Teacher-Student training      │   │
│  │  └──────────────┘                                  │   │
│  │         │                                           │   │
│  │         ▼                                           │   │
│  │  Kleiner Model (7B parameters)                     │   │
│  │  Grootte: 28GB     Inferentie: €€                 │   │
│  │                                                     │   │
│  │         │                                           │   │
│  │         ▼                                           │   │
│  │  ┌──────────────┐                                  │   │
│  │  │   SNOEIEN    │  → Verwijder 30-50% gewichten    │   │
│  │  └──────────────┘                                  │   │
│  │         │                                           │   │
│  │         ▼                                           │   │
│  │  Gesnoeid Model                                     │   │
│  │  Grootte: 14GB     Inferentie: €                  │   │
│  │                                                     │   │
│  │         │                                           │   │
│  │         ▼                                           │   │
│  │  ┌──────────────┐                                  │   │
│  │  │ KWANTISATIE  │  → FP32 → INT4                   │   │
│  │  └──────────────┘                                  │   │
│  │         │                                           │   │
│  │         ▼                                           │   │
│  │  Finaal Gecomprimeerd Model                        │   │
│  │  Grootte: 3.5GB    Inferentie: ¢                  │   │
│  │                                                     │   │
│  │  TOTALE COMPRESSIE: 200x grootte, 50x kosten!     │   │
│  │                                                     │   │
│  └────────────────────────────────────────────────────┘   │
│                                                            │
│                                                            │
│  COMPRESSIE TRADE-OFFS:                                    │
│  ──────────────────────                                    │
│                                                            │
│  Prestaties                                                │
│       ▲                                                    │
│  100% │████████████░░░░░░░░░ Origineel                    │
│   97% │██████████░░░░░░░░░░░ Gedestilleerd                │
│   95% │████████░░░░░░░░░░░░░ + Gesnoeid                   │
│   92% │██████░░░░░░░░░░░░░░░ + Gekwantiseerd (INT8)       │
│   85% │████░░░░░░░░░░░░░░░░░ + Gekwantiseerd (INT4)       │
│       └────────────────────────────────▶                  │
│                                         Compressieratio    │
│             1x    5x   10x   25x   100x  200x              │
│                                                            │
│  Sweet spot: 90-95% prestatie bij 10-50x compressie       │
│                                                            │
└────────────────────────────────────────────────────────────┘

Compressietechnieken vergeleken:

TechniekGroottereductieSnelheidswinstKwaliteitsverliesInspanning
FP16 kwantisatie2x2x~0%Triviaal
INT8 kwantisatie4x3x1-3%Laag
INT4 kwantisatie8x4x5-15%Medium
Snoeien (30%)1.4x1.3x1-2%Medium
Destillatie10-25x10x5-15%Hoog
Gecombineerd50-200x20-50x5-20%Hoog

Veelgestelde vragen

V: Welke compressietechniek moet ik eerst gebruiken?

A: Begin met kwantisatie—het is het makkelijkst en biedt vaak de beste efficiëntiewinst met minimaal kwaliteitsverlies. FP16 is essentieel gratis. INT8 werkt voor de meeste toepassingen. Ga alleen naar INT4 als je agressieve compressie nodig hebt. Voeg snoeien en destillatie toe als je verdere groottereductie nodig hebt.

V: Kan ik elk model comprimeren?

A: Ja, maar resultaten variëren. Grotere modellen comprimeren vaak beter omdat ze meer redundantie hebben. Sommige architecturen zijn comprimeervriendelijker dan andere. Transformers comprimeren goed. Meet altijd de kwaliteit op je specifieke use case voor en na compressie.

V: Geven gecomprimeerde modellen dezelfde outputs?

A: Nee. Compressie introduceert kleine verschillen. Voor de meeste toepassingen zijn deze verschillen onmerkbaar. Echter, voor toepassingen die exacte reproduceerbaarheid of extreme precisie vereisen, gebruik minimale compressie. Test altijd op je specifieke taken.

V: Hoeveel kwaliteitsverlies is acceptabel?

A: Het hangt volledig af van je use case. Voor chatbots kan 5-10% kwaliteitsverlies onmerkbaar zijn. Voor medische diagnose kan zelfs 1% te veel zijn. Benchmark altijd op je werkelijke taken, niet alleen algemene benchmarks.

Gerelateerde termen

  • Quantization — verminderen van numerieke precisie
  • Pruning — verwijderen van onnodige parameters
  • Distillation — kleinere modellen trainen van grotere
  • LLM — modellen die vaak gecomprimeerd worden

Referenties

Han et al. (2015), “Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding”, ICLR. [Fundamentele compressie paper]

Dettmers et al. (2022), “LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale”, NeurIPS. [Grootschalige LLM kwantisatie]

Frantar & Alistarh (2023), “GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers”, ICLR. [Praktische LLM kwantisatie]

Zhu et al. (2023), “A Survey on Model Compression for Large Language Models”, arXiv. [Uitgebreid compressie-overzicht]

References

Han et al. (2015), “Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding”, ICLR. [Foundational compression paper]

Dettmers et al. (2022), “LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale”, NeurIPS. [Large-scale LLM quantization]

Frantar & Alistarh (2023), “GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers”, ICLR. [Practical LLM quantization]

Zhu et al. (2023), “A Survey on Model Compression for Large Language Models”, arXiv. [Comprehensive compression survey]