Was ist Modellresidenz, und wann sollte ein lokaler KI-Dienst die Gewichte geladen lassen?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Modellresidenz bedeutet, Modellgewichte zwischen Anfragen im Host- oder Beschleunigerspeicher zu behalten, sodass die nächste Inferenz einen Teil oder den gesamten Ladevorgang überspringen kann.

Ein alle paar Minuten verwendeter Heimassistent fühlt sich ganz anders an, wenn ein acht Gigabyte großes Modell im GPU-Speicher verbleibt, statt jedes Mal aus dem Speicher gelesen zu werden. Residenz kann auf mehreren Ebenen bestehen: als Dateisystem-Cache, gemappte Host-Seiten, gepinnter RAM oder für Kernel bereiter VRAM. Das Warmhalten der Gewichte verkürzt die Startverzögerung, beansprucht jedoch knappen Speicher und kann verhindern, dass andere Modelle oder Workloads ausgeführt werden.

Residenz beschreibt, wo wiederverwendbarer Modellstatus verbleibt

Ein kaltes Modell befindet sich ausschließlich im Speicher und muss vor der Inferenz gelesen, allokiert, transformiert und kopiert werden. Im Host-Speicher residente Gewichte vermeiden das Lesen aus dem Speicher, während im Beschleunigerspeicher residente Gewichte zusätzlich die Übertragung vom Host zum Gerät und den Initialisierungspfad der Laufzeitumgebung vermeiden. Dieser Unterschied bleibt bei späteren Tests im Haushalt sichtbar.

NVIDIAs Analyse zum Modell-Streaming trennt den Modellladepfad von Übertragungs- und Initialisierungsarbeiten und zeigt, warum der Speicherort der Gewichte viele Kaltstarts dominiert. Ein warmer Prozess muss möglicherweise trotzdem Tokenizer, Graph, Adapter oder Cache initialisieren. Das Zwischenergebnis muss überprüfbar bleiben, bevor die Automatisierung fortgesetzt wird.

Residenz ist nicht dasselbe wie eine aktive Anfrage. Ein Modell kann ohne KV-Cache oder Nutzerdaten geladen bleiben und sofort Anfragen bedienen, während es Speicher und einige Hintergrundressourcen beansprucht. Diese Grenze sollte unter realistischen Betriebsbedingungen separat gemessen werden.

Wärme besteht über eine Speicherhierarchie hinweg

Das Betriebssystem kann Modellseiten auch nach dem Beenden eines Prozesses in seinem Page-Cache behalten, Memory-Mapping kann Seiten verzögert einlesen, und ein Serving-Prozess kann Tensoren im RAM oder VRAM halten. Jede wärmere Ebene verringert normalerweise die Latenz, beansprucht jedoch eine stärker begrenzte Ressource.

ServerlessLLM untersucht mehrstufiges Modellladen über Speicher, Host-Speicher und GPU-Speicher hinweg und plant das Laden, um die Kaltstartkosten zu reduzieren. Die Hierarchie erklärt, warum ein scheinbar entladenes Modell schnell neu starten kann, bis Speicherdruck seine Seiten aus dem Cache verdrängt.

Quantisierung verringert die für die Residenz benötigte Byte-Anzahl und kann das gleichzeitige Bestehen mehrerer spezialisierter Modelle ermöglichen. Sie kann jedoch auch Ausführungskernel und Qualität verändern, weshalb Speichereinsparungen nicht als kostenloser Kapazitätszuwachs betrachtet werden sollten. Die praktische Folge zeigt sich, wenn mehrere Quellen um begrenzten Kontext konkurrieren.

Die Verdrängungsstrategie verwandelt Speicherdruck in Startverzögerung

Ein Dienst kann häufig verwendete Modelle resident halten und weniger häufig genutzte Modelle nach Aktualität, erwarteter Nachfrage, Priorität oder Ladekosten verdrängen. Multi-Modell-Routing benötigt Aufnahmeregeln, damit Hintergrundarbeit nicht das Sprachmodell verdrängt, das sofort antworten muss.

FlexGen demonstriert das Auslagern von Gewichten über GPU, CPU und Speicher für eingeschränkte Inferenz. Obwohl der Ansatz auf Durchsatz ausgerichtet ist, macht er den zentralen Zielkonflikt deutlich: Das Verschieben von Gewichten zwischen Ebenen spart knappen Speicher, verursacht jedoch zusätzliche Übertragungs- und Planungskosten.

Die Fehlergrenze ist ein Speicherdruck, der Swapping, OOM-Neustarts oder Verdrängungsthrashing auslöst. Zu viele geladene Gewichte können jedes Modell langsamer und unzuverlässiger machen, als wenn bewusst eine kleinere Arbeitsmenge warmgehalten wird. Diese Abhängigkeit sollte in der finalen Oberfläche ausdrücklich erhalten bleiben.

Residenz anhand von Wiederverwendungsabstand und Speicherspielraum festlegen

Messen Sie für jedes Modell die Startzeit im kalten, im Host-warmen und im Beschleuniger-warmen Zustand und erfassen Sie anschließend Anfrageintervall, geladene Byte-Anzahl, VRAM- und RAM-Footprint, Leerlaufleistung, Anzahl der Verdrängungen und die Nachfrage konkurrierender Workloads. Das Ergebnis muss daher mit den ursprünglichen Belegen abgeglichen werden.

Vergleichen Sie den Startmechanismus mit dem Memory-Mapped-Start. Spielen Sie die Ankünfte einer Woche unter verschiedenen Keep-Alive-Zeitfenstern und Prioritäten erneut ab, einschließlich Lastspitzen, längerer Leerlaufzeiten und gleichzeitiger Modellanfragen. Dieser Unterschied bleibt bei späteren Tests im Haushalt sichtbar.

Halten Sie ein Modell resident, wenn die vermiedene Ladelatenz und die Wiederverwendungshäufigkeit seinen geschützten Speicher rechtfertigen. Verdrängen Sie es, wenn die reservierte Kapazität Warteschlangen oder Thrashing verursacht, und bewahren Sie eine Notfallreserve für den KV-Cache und vorübergehende Allokationen.

Tech- & KI-Zentrum

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.