# KI auf einer CPU ausführen: Quantisierung, ONNX und warum kleine Modelle gewinnen

> Nicht immer braucht man eine GPU. Wie int8-Quantisierung, ONNX Runtime und die richtige Größe ein Modell auf der CPU in Millisekunden antworten lassen.

Source: https://www.vigimod.com/de/learn/running-ai-on-a-cpu · VigiMod (https://www.vigimod.com) · aktualisiert am 2026-11-11 · 7 min

## Kurz gesagt

- Ein Modell besteht vor allem aus Multiplikationen von Zahlen; weniger und kleinere Zahlen bedeuten mehr Tempo.
- Quantisierung speichert Gewichte als 8-Bit-Ganzzahlen statt als 32-Bit-Gleitkommazahlen: etwa viermal kleiner, oft 2- bis 4-mal schneller.
- ONNX Runtime führt Modelle effizient auf CPUs aus und nutzt deren Vektorbefehle (AVX-512, AMX).
- Nach dem Quantisieren müssen die Schwellen neu geprüft werden: Die Werte verschieben sich leicht.

## Warum Tempo zählt

Eine Chat-Moderations-API muss antworten, während der Nutzer noch auf den Bildschirm schaut: höchstens ein paar hundert Millisekunden. GPUs sind schnell, aber teuer; gewöhnliche Server haben CPUs. Ein Modell auf der CPU schnell zu machen, macht einen Moderationsdienst bezahlbar.

## Was ein Modell berechnet

Ein neuronales Netz besteht vor allem aus **Matrixmultiplikationen**: Die Zahlen, die den Text darstellen, werden Schicht für Schicht mit den Gewichten des Modells multipliziert. Das Tempo hängt davon ab, wie viele Multiplikationen es gibt (Größe des Modells und Länge des Textes) und wie schnell jede einzelne ist.

## Quantisierung

Gewichte werden normalerweise als 32-Bit-Gleitkommazahlen gespeichert. **Quantisierung** speichert sie als 8-Bit-Ganzzahlen (int8), mit einem Skalierungsfaktor pro Zeile oder Kanal:

| Format | Größe eines Modells mit 560 Millionen Parametern | Typisches Tempo auf der CPU |
|---|---|---|
| float32 | etwa 2,2 GB | Ausgangswert |
| int8 | etwa 0,6 GB | oft 2- bis 4-mal schneller |

Moderne CPUs haben Befehle, die viele 8-Bit-Zahlen gleichzeitig multiplizieren (VNNI, AVX-512, Intel AMX): Daher kommt das Tempo.

Der Preis ist ein winziger Präzisionsverlust. Mit **dynamischer Quantisierung pro Kanal** verliert ein guter Klassifikator meist kaum Messbares, aber die Werte verschieben sich leicht. Deshalb müssen die Schwellen nach dem Quantisieren **neu abgeglichen** werden: Jede Schwelle wird so verschoben, dass das quantisierte Modell auf einem Kalibrierungsdatensatz denselben Anteil an Nachrichten markiert wie das Original.

## ONNX und ONNX Runtime

**ONNX** ist ein offenes Format, um ein Modell als Graph von Operationen zu speichern, unabhängig vom Framework, mit dem es trainiert wurde. **ONNX Runtime** führt diesen Graphen aus und ist für CPUs optimiert: Es fasst Operationen zusammen, nutzt alle Kerne und wählt die schnellsten verfügbaren Befehle.

## Ein echtes Beispiel

VigiMod 1.2.1 hat etwa 560 Millionen Parameter. Auf 4 CPU-Kernen:

| Version | Zeit pro Paar aus Nachricht und Kategorie |
|---|---|
| Volle Präzision | etwa 113 ms |
| int8 ONNX | **etwa 32 ms** (3,5-mal schneller) |

Nach dem Abgleich der Schwellen lag der auf Validierungsdaten gemessene Qualitätsverlust unter 0,005 F1, also im Rauschen.

## Weitere Tricks

- **Kürzere Eingaben:** Begrenze den Kontext auf die letzten Nachrichten, die zählen.
- **Batching:** Bewerte mehrere Nachrichten auf einmal, wenn sie zusammen ankommen.
- **Den festen Teil cachen** (zum Beispiel eine lange Richtlinie) bei Modellen, die das unterstützen.
- **Kleineres Modell, bessere Daten:** Ein kleines Modell mit den richtigen Beispielen schlägt oft ein großes allgemeines, zu einem Bruchteil der Kosten.

## Wann man doch eine GPU braucht

Fürs Training und für sehr große Modelle, die lange Antworten erzeugen. Ein übliches Design ist eine **Kaskade**: ein schnelles kleines Modell für jede Nachricht, ein größeres nur für die wenigen unsicheren Fälle.

## Quiz

1. Was ändert die int8-Quantisierung?
   Antwort: Gewichte werden als 8-Bit-Ganzzahlen statt als 32-Bit-Gleitkommazahlen gespeichert. Kleinere Zahlen ergeben ein kleineres, schnelleres Modell.
2. Warum müssen die Schwellen nach dem Quantisieren neu geprüft werden?
   Antwort: Die Werte verschieben sich leicht. Der Abgleich hält den Anteil markierter Nachrichten wie beim Original.
3. Was ist ONNX Runtime?
   Antwort: Eine Engine, die Modelle effizient ausführt, auch auf CPUs. Sie führt den Modellgraphen mit den schnellsten CPU-Befehlen aus.
4. Was ist eine Kaskade?
   Antwort: Ein schnelles Modell für jede Nachricht, ein großes nur für unsichere Fälle. So bleiben die meisten Anfragen schnell und günstig.
