Stellen Sie sich vor, Sie versuchen, das Fundament eines hoch aufragenden Wolkenkratzers zu renovieren, ohne seine Bewohner zu bitten, ihre Arbeit zu verlassen oder zu pausieren. Genau das tut der Checkpoint -Engine von Moonshotai für KI -Modelle. Es ermöglicht huge Sprachmodelle, ihr Gehirn, die Gewichte, die Gewichte zu aktualisieren, während Sie noch laufen, sodass es keine Ausfallzeiten gibt. Dieser Durchbruch ermöglicht es Entwicklern, ihre KI schnell und effizient zu verbessern, selbst bei Modellen mit über einen Billionen -Parametern, der auf Tausenden von GPUs ausgeführt wird. Es ist schnell, zuverlässig und so konzipiert, dass KI-Systeme reibungslos laufen und sich in Echtzeit weiterentwickeln, was es zu einem wichtigen Werkzeug für hochmoderne KI-Anwendungen macht. In diesem Artikel geht es darum, was es ist, wie er funktioniert und warum er für die Zukunft großer KI-Systeme von Bedeutung ist.
Was ist der Checkpoint -Motor von Moonshot Ai?
Die Checkpoint -Engine von Moonshot AI ist eine spezielle Middleware, mit der die Gewichte von aktualisiert werden sollen Großspracher Modelle (LLMs) in Echtzeit während der Inferenz ohne Unterbrechung der laufenden Operationen. Diese Fähigkeit ist in entscheidender Bedeutung in Verstärkungslernen Szenarien, in denen Modellgewichte häufig aktualisiert werden müssen. Die Checkpoint -Engine integriert derzeit nahtlos in VLLM -Inferenz -Frameworks und bietet optimierte Leistung durch Pipelining- und Speicherverwaltungstechniken. Es bietet auch Funktionen wie die Wiederverwendung von Gewichten aus vorhandenen Instanzen, um die Gemeinkosten in Skalierungsszenarien zu reduzieren.
Architektur
Der Kern des Checkpoint ist die Parameterserver -Klasse, die die Gewichts -Replace -Logik übernimmt und den Datenfluss orchestriert.
- H2D (Host to System): Bewegt aktualisierte Gewichte vom CPU -Speicher oder Speicher in den GPU -Speicher unter Verwendung optimierter Übertragungspipelines.
- Übertragen: Verteilt das Gewicht über alle Inferenz -Engine -Instanzen effizient und nutzt CUDA -IPC -Puffer für gemeinsame Speicherkommunikation.
- Neu laden: Jede Inferenz -Engine lädt dann relevante Gewichtsschards selektiv aus den ausgestrahlten Daten nach ihrem Sharding -Muster neu.
Diese dreistufigen Pipelines gewährleisten eine effiziente, überlappende Kommunikation und kopieren für Geschwindigkeit.
Wenn der GPU -Speicher begrenzt ist, kann das System auf die serielle Ausführung zurückgreifen, um die Zuverlässigkeit aufrechtzuerhalten.
Verwendete Methoden
Die Checkpoint -Engine verwendet zwei Hauptmethoden, um die Modellgewichte während der Inferenz zu aktualisieren.
- Rundfunkmethode: Dies ist der schnellste und Standardansatz. Dies ist ultimate, wenn eine große Anzahl von Inferenzinstanzen gleichzeitig aktualisiert werden muss. Es sendet die aktualisierten Gewichte aus dem CPU -Speicher auf alle Inferenz -GPUs synchron und stellt sicher, dass alle Instanzen mit minimaler Verzögerung perfekt synchronisiert bleiben.
- P2P (Peer-to-Peer) -Methode: Es wird verwendet, wenn Inferenzinstanzen während der Laufzeit dynamisch hinzugefügt oder entfernt werden. Es wird vermieden, dass vorhandene Inferenz-Workloads durch Senden von Gewichten direkt von CPUs in vorhandenen Instanzen in neuen Fällen über ein Peer-to-Peer-Übertragungssystem an GPUs gesendet wird und reibungslose und versatile Aktualisierungen ermöglicht.
Arbeiten
Der Checkpoint Engine organisiert den gesamten Übertragungsvorgang. Es sammelt zunächst die erforderlichen Metadaten, um einen Plan zu erstellen, einschließlich der Entscheidung der richtigen Eimergröße für die Datenübertragung. Anschließend wird die Übertragung ausgeführt und die Inferenzmotor über einen Nulomq -Socket gesteuert, um die Leistung zu maximieren. Es organisiert die Datenübertragung in Pipelines mit überlappter Kommunikation und Kopie und ermöglicht auch unter starker Arbeitsbelastung schnelle und effiziente Gewichtsaktualisierungen.
Durch die Implementierung der oben genannten Methoden und der Architektur ermöglicht die Checkpoint-Engine Stay-Gewichtsaktualisierungen für LLMs über Tausende von GPUs mit minimaler Latenz- und Service-Störung.
Set up und Verwendung
Set up
Um die schnellste Sendung zu verwenden
Code verwenden:
pip set up checkpoint-engine
Um die versatile P2P -Implementierung zu verwenden:
Code verwenden:
pip set up 'checkpoint-engine(p2p)'
Dies wird installieren mooncake-transfer-engine Unterstützung der RDMA -Übertragung zwischen verschiedenen Rängen.
Beispiel Anwendungsfall
Schritt 1:
Bereiten Sie eine H800- oder H20 -Maschine mit 8 GPUs mit dem neuesten VLLM vor. Achten Sie darauf, dass Sie aufnehmen /Collective_RPC API -Endpunkt Commit (in der Hauptzweig verfügbar), da Checkpoint-Engine diesen Endpunkt zum Aktualisieren der Gewichte verwendet.
Schritt 2:
set up checkpoint-engine
Code:
uv pip set up 'checkpoint-engine(p2p)'
Schritt 3:
Für unseren Anwendungsfall werden wir verwenden QWEN/QWEN3-235B-A22B-INSTRUCT-2507 als Testmodell.
Code:
hf obtain Qwen/Qwen3-235B-A22B-Instruct-2507 --local-dir /decide/fashions/Qwen/Qwen3-235B-A22B-Instruct-2507/
Schritt 4:
Starten Sie VLLM im Dev-Modus und setzen Sie –Load-Format-Dummy. Stellen Sie sicher, dass Sie-Arbeiter-Extension-Cls = Checkpoint_Engine.Employee.VllMcolocateWormaRextension
Code:
VLLM_SERVER_DEV_MODE=1 python3 -m vllm.entrypoints.openai.api_server --host 0.0.0.0 --port 19730 --trust-remote-code
--tensor-parallel-size=8 --max-model-len 4096 --load-format dummy
--served-model-name checkpoint-engine-demo --model /decide/fashions/Qwen/Qwen3-235B-A22B-Instruct-2507/
--worker-extension-cls checkpoint_engine.employee.VllmColocateWorkerExtension
So aktualisieren Sie Gewichte nach Checkpoint-Engine. Sie müssen nicht warten, bis sich VLLM vorbereitet. Verwenden Sie den folgenden Code.
Code:
torchrun --nproc-per-node 8 examples/replace.py --update-method all --checkpoint-path /decide/fashions/Qwen/Qwen3-235B-A22B-Instruct-2507/
Gewichte aus vorhandenen Fällen wiederverwenden
Neue Checkpoint-Engine-Instanzen können vorhandene Instanzen anschließen und ihre Gewichte wiederverwenden.
Verwenden der folgenden Methode:
Schritt 1: Starten Sie die vorhandene Instanz mit –Save-Metas-Datei Global_metas.pkl Um globale Metas in einer Datei zu speichern.
Schritt 2: Verwenden –Sep-Time 300 Um sicherzustellen, dass sie am Leben bleiben.
Code:
torchrun --nproc-per-node 8 examples/replace.py --checkpoint-path $MODEL_PATH
--sleep-time 300 --save-metas-file global_metas.pkl
Schritt 3: Nachdem ein Kontrollpunkt registriert ist
Code:
torchrun --nproc-per-node 8 examples/replace.py --load-metas-file global_metas.pkl
FP8 Quantisierung
Derzeit funktioniert die FP8 -Quantisierung bei VLLM bei der Aktualisierung der Gewichte nicht. Es verwendet einen einfachen Patch in patches/vllm_fp8.patch Um das richtige Gewichts -Replace zu verarbeiten. Außerdem wird dieser Patch nur in Deepseek-V3.1 und Kimi-K2 getestet. Es besteht additionally die Chancen, dass einige Kompatibilitätsprobleme mit anderen Modellen auftreten.
Prüfen
Führen Sie einen einfachen Korrektheitstest für Checkpoint_Engine aus
Code:
torchrun --nproc-per-node 8 checks/test_update.py
Benchmark
| Modell | Geräte -Setup | Metadaten versammeln sich | Replace (Sendung) | Replace (P2P) |
|---|---|---|---|---|
| GLM-4,5-Air (BF16) | 8x H800 TP8 | 0,17 Sekunden | 3,94 Sekunden (1,42 Gib) | 8,83 Sekunden (4,77 Gib) |
| QWEN3-235B-A22B-Instruct-2507 (BF16) | 8x H800 TP8 | 0,46 Sekunden | 6,75 Sekunden (2,69 Gib) | 16,47 Sekunden (4,05 Gib) |
| Deepseek-V3.1 (FP8) | 16x H20 TP16 | 1,44 Sekunden | 12,22 Sekunden (2,38 Gib) | 25,77 Sekunden (3,61 Gib) |
| Kimi-K2-Instruktur (FP8) | 16x H20 TP16 | 1,81 Sekunden | 15,45 Sekunden (2,93 Gib) | 36,24 Sekunden (4,46 Gib) |
| Deepseek-V3.1 (FP8) | 256x H20 TP16 | 1,40 Sekunden | 13,88 Sekunden (2,54 Gib) | 33,30 Sekunden (3,86 Gib) |
| Kimi-K2-Instruktur (FP8) | 256x H20 TP16 | 1,88 Sekunden | 21,50 Sekunden (2,99 Gib) | 34,49 Sekunden (4,57 Gib) |
Erkenntnisse
Hier sind einige Beobachtungen, die ich gemacht habe:
- Die Broadcast -Methode bietet im Allgemeinen die schnellste Aktualisierungszeit, die für synchrone Gewichtsaktualisierungen in vielen Inferenzinstanzen optimiert wird.
- Die P2P -Methode dauert länger, ermöglicht jedoch dynamische Updates, wenn Instanzen während der Laufzeit verbinden oder abreisen.
- Diese Benchmark zeigt die Skalierbarkeit von Checkpoint Engine und bearbeitet eine Billionen -Parametermodelle effizient auf Clustern im Bereich von 8 bis 256 GPUs
Einschränkungen des Checkpoint -Motors
Während Checkpoint Engine eine leistungsstarke Lösung für Stay -Gewichts -Updates in LLMs ist, hat sie derzeit einige Einschränkungen.
- Funktioniert vorerst am besten mit VLLM: Der Motor wird hauptsächlich mit dem VLLM -Framework getestet. Wenn Sie es mit anderen AI -Frameworks oder benutzerdefinierten Setups verwenden möchten, benötigen Sie möglicherweise zusätzliche Arbeit, damit sie reibungslos ausgeführt werden.
- Pipeline verbessert sich immer noch: Die ideale nahtlose Pipeline, die die Daten perfekt überlappt, ist noch nicht vollständig fertig. Dies bedeutet, dass es immer noch das Potenzial gibt, die Updates noch schneller zu gestalten.
- P2P -Replace könnte glatter sein: Die Peer-to-Peer-Methode sendet Daten über einen Engpass bei einem Hauptknoten, bevor sie sie mit anderen teilen, was die Dinge verlangsamen kann, wenn Sie viel GPUs haben.
- Braucht zusätzlichen GPU -Speicher: Das clevere Broadcast -System verwendet mehr GPU -Speicher, um die Dinge zu beschleunigen. Bei Maschinen mit weniger Speicher wechselt es zu einem langsameren, weniger effizienten Vorgang.
- Begrenzte Unterstützung für FP8 -Modelle: Wenn Sie mit den neueren quantisierten FP8 -Modellen arbeiten, benötigen Sie einige experimentelle Patches. Und selbst dann spielen nicht alle Modelle intestine, aber jenseits ein paar getesteten.
Abschluss
Die Checkpoint-Engine von Moonshot Ai ist ein Sport-Changer, um riesige KI-Modelle zu aktualisieren, ohne sie zu stoppen. Es hält alles reibungslos verlaufen, selbst wenn das „Gehirn“ des Modells in Echtzeit schlauer wird. Während es noch einige Bereiche zu verbessern ist, ist das Potenzial enorm. Wenn Sie mit großen KI -Systemen arbeiten, ist dieses Software auf jeden Fall einen Ansehen wert. Es hilft, die Zukunft der KI ohne Ausfallzeiten schneller und effizienter zu machen.
Häufig gestellte Fragen
A. Dadurch können große Sprachmodelle Gewichte in Echtzeit während der Inferenz ohne Ausfallzeiten aktualisieren, sodass KI-Systeme on-line bleiben und gleichzeitig verbessert werden.
A. Im Second ist es hauptsächlich integriert und mit dem VLLM -Inferenz -Framework getestet.
A. Die Sendung ist für synchronisierte Updates in vielen GPUs schneller, während P2P versatile Updates ermöglicht, wenn Instanzen verbinden oder gehen.
Melden Sie sich an, um weiter zu lesen und Experten-Kuratinhalte zu genießen.
