Modelle ausliefern
Von der Datei zum Dienst: Laufzeitumgebungen, Formate, Kontingente und die Betriebsfragen, die vor der ersten Anfrage geklärt sein müssen.
Die Idee
Ein trainiertes Modell ist eine Datei. Ein Dienst ist etwas anderes: Er nimmt Anfragen entgegen, verteilt sie, beantwortet sie in zugesagter Zeit, meldet Fehler und lässt sich abschalten, ohne dass laufende Anfragen verloren gehen.
Die Wahl der Umgebung
| Umgebung | Wofür | Stärke |
|---|---|---|
| Ollama, llama.cpp | Einzelplatz, Erprobung, Randgeräte | Sehr einfach, CPU-tauglich |
| vLLM | Mehrbenutzerbetrieb auf GPU | Kontinuierliches Batching, PagedAttention |
| TGI | Mehrbenutzerbetrieb auf GPU | Gute Integration, Streaming |
| Triton | Gemischte Modelltypen | Sehr flexibel, aufwendiger |
| ONNX Runtime | Kleine Modelle, CPU, Randgeräte | Schlank, plattformunabhängig |
Was vor der ersten Anfrage stehen muss
- Gesundheitsprüfung getrennt für „Prozess lebt" und „Modell ist geladen und bereit".
- Aufwärmphase: Die erste Anfrage nach dem Start ist um Größenordnungen langsamer, weil Kernel kompiliert und Speicher belegt wird.
- Kontingente je Nutzer und je Mandant, in Token je Minute und gleichzeitigen Anfragen.
- Warteschlange mit Obergrenze: Über der Grenze wird abgelehnt, nicht angenommen und langsam beantwortet.
- Sauberes Abschalten: Keine neuen Anfragen annehmen, laufende zu Ende führen, dann beenden.
- Streaming: Die Zeit bis zum ersten Zeichen ist die wahrgenommene Antwortzeit.
Kontingente auslegen
Kapazität einer Karte: 1.200 Token/s Durchsatz
Zusage je Nutzer: 25 Token/s
Theoretisch gleichzeitig: 48 Nutzer
Sicherheitsabschlag 30 %: 33 Nutzer
Kontingent je Nutzer: 60.000 Token/Stunde
Der Sicherheitsabschlag ist kein Beiwerk. Ohne ihn ist jede Lastspitze eine Verletzung der Zusage, und die Warteschlange wächst schneller, als sie abgebaut wird.
Warteschlangenverhalten
| Auslastung ρ | Verweilzeit gegenüber Leerlauf |
|---|---|
| 0,50 | 2,0-fach |
| 0,70 | 3,3-fach |
| 0,80 | 5,0-fach |
| 0,90 | 10,0-fach |
| 0,95 | 20,0-fach |
Das ist die Begründung für den Sicherheitsabschlag oben: Eine Auslastung über etwa 70 Prozent ist bei schwankender Last nicht mehr planbar. Wer eine Zusage zur Antwortzeit gibt, plant mit 60 bis 70 Prozent und nicht mit 90.
Mehrere Modelle auf einer Karte
Drei Wege, jeweils mit anderem Kompromiss:
| Weg | Isolation | Auslastung |
|---|---|---|
| Ein Modell je Karte | Vollständig | Niedrig bei ungleicher Last |
| Mehrere Modelle in einem Prozess | Keine | Hoch |
| Aufteilung der Karte in Instanzen | Hardwareseitig | Mittel, feste Aufteilung |
Für mandantengetrennte Systeme ist die dritte Variante meist die einzige, die sich belegen lässt: Eine gemeinsame Prozessumgebung ohne Speichertrennung ist gegenüber einer Aufsichtsbehörde schwer als Trennung zu begründen. Siehe Datenresidenz.
Was protokolliert werden muss
- Modellversion und Prüfsumme je Anfrage, nicht je Tag.
- Anzahl Eingabe- und Ausgabetoken, für Abrechnung und Kapazität.
- Zeit bis zum ersten Token und Gesamtzeit, getrennt.
- Abbruchgrund, wenn eine Anfrage nicht vollständig beantwortet wurde.
- Kein Klartext der Eingaben, sofern nicht ausdrücklich als Zweck festgelegt und mit Löschfrist versehen.
Die letzte Zeile wird regelmäßig falsch entschieden. Ein vollständiges Protokoll aller Prompts ist verlockend für die Fehlersuche und regelmäßig eine eigene Verarbeitung personenbezogener Daten mit eigener Rechtsgrundlage. Siehe Protokollierung.
Passende Kurse und Quellen
Netron
Öffnet eine Modelldatei und zeichnet ihren Aufbau. Die schnellste Art zu sehen, was in einem gelieferten Modell tatsächlich steckt.
Für den schnellen Blick in ein geliefertes Modell, bevor man es in Betrieb nimmt.
Ollama
Offene Modelle lokal ausführen, mit einem Befehl je Modell. Der einfachste Weg, den Betrieb ohne Anbieter überhaupt einmal auszuprobieren.
Für den ersten Versuch mit einem lokalen Modell, ohne Anbieter und ohne Konto.
vLLM
Server für hohen Durchsatz mit fortlaufender Stapelverarbeitung und Seitenspeicher für den Zwischenspeicher. Der Grund, warum Eigenbetrieb bei Volumen wirtschaftlich wird.
Für den Eigenbetrieb bei Volumen; der Grund, warum er sich überhaupt rechnen kann.