Auf dieser Seite erfahren Sie, wie Sie für das GKE Inference Gateway inkrementelle Roll-out-Vorgänge ausführen, bei denen neue Versionen Ihrer Inferenzinfrastruktur nach und nach bereitgestellt werden. Über dieses Gateway können Sie sichere und kontrollierte Updates an Ihrer Inferenzinfrastruktur vornehmen. Sie können Knoten, Basismodelle und LoRA-Adapter mit minimalen Dienstunterbrechungen aktualisieren. Auf dieser Seite finden Sie auch Informationen zur Traffic-Aufteilung und zu Rollbacks, um zuverlässige Bereitstellungen zu ermöglichen.
Diese Seite richtet sich an GKE-Identitäts- und Kontoadministratoren sowie Entwickler, die das GKE Inference Gateway einrichten möchten.
Die folgenden Anwendungsfälle werden unterstützt:
- Einführung von Knotenupdates (Rechen- und Beschleunigerknoten)
- Einführung des Basismodellupdates
- Einführung des LoRA-Adapter-Updates
Knoten-Roll-out aktualisieren
Beim Roll-out von Knotenupdates werden Inferenzarbeitslasten sicher auf neue Knotenhardware oder Beschleunigerkonfigurationen migriert. Dieser Vorgang erfolgt kontrolliert, ohne den Modelldienst zu unterbrechen. Mit der Einführung von Knotenupdates können Sie Dienstunterbrechungen bei Hardware-Upgrades, Treiberupdates oder der Behebung von Sicherheitsproblemen minimieren.
Neues
InferencePool
erstellen: Stellen Sie einInferencePool
bereit, das mit den aktualisierten Knoten- oder Hardwarespezifikationen konfiguriert ist.Traffic mit einem
HTTPRoute
aufteilen: Konfigurieren Sie einenHTTPRoute
, um den Traffic zwischen den vorhandenen und den neuenInferencePool
-Ressourcen zu verteilen. Verwenden Sie das Feldweight
inbackendRefs
, um den Prozentsatz des Traffics zu verwalten, der an die neuen Knoten weitergeleitet wird.Konsistente
InferenceModel
beibehalten: Behalten Sie die vorhandeneInferenceModel
-Konfiguration bei, um ein einheitliches Modellverhalten in beiden Knotenkonfigurationen zu gewährleisten.Ursprüngliche Ressourcen beibehalten: Lassen Sie die ursprünglichen
InferencePool
und Knoten während der Einführung aktiv, um bei Bedarf Rollbacks zu ermöglichen.
Sie können beispielsweise eine neue InferencePool
mit dem Namen llm-new
erstellen. Konfigurieren Sie diesen Pool mit derselben Modellkonfiguration wie Ihre vorhandene llm
InferencePool
. Stellen Sie den Pool auf einer neuen Gruppe von Knoten in Ihrem Cluster bereit. Verwenden Sie ein HTTPRoute
-Objekt, um den Traffic zwischen dem ursprünglichen llm
und dem neuen llm-new
InferencePool
aufzuteilen. Mit dieser Methode können Sie Ihre Modellknoten schrittweise aktualisieren.
Das folgende Diagramm zeigt, wie das GKE Inference Gateway ein Knotenupdate durchführt.

So führen Sie ein Knotenupdate durch:
Speichern Sie das folgende Beispielmanifest als
routes-to-llm.yaml
:apiVersion: gateway.networking.k8s.io/v1 kind: `HTTPRoute` metadata: name: routes-to-llm spec: parentRefs: - name: my-inference-gateway rules: backendRefs: - name: llm kind: InferencePool weight: 90 - name: llm-new kind: InferencePool weight: 10
Wenden Sie das Beispielmanifest auf Ihren Cluster an:
kubectl apply -f routes-to-llm.yaml
Die ursprüngliche llm
InferencePool
erhält den Großteil des Traffics, während die llm-new
InferencePool
den Rest des Traffics erhält. Erhöhen Sie die Gewichtung der Zugriffe für den llm-new
InferencePool
nach und nach, um die Einführung des Knotenupdates abzuschließen.
Basismodell einführen
Updates des Basismodells werden in Phasen für ein neues Basis-LLM eingeführt, wobei die Kompatibilität mit vorhandenen LoRA-Adaptern erhalten bleibt. Sie können die Einführung von Basismodellupdates nutzen, um auf verbesserte Modellarchitekturen umzustellen oder modellspezifisch auftretende Probleme zu beheben.
So führen Sie ein Update des Basismodells ein:
- Neue Infrastruktur bereitstellen: Erstellen Sie neue Knoten und eine neue
InferencePool
, die mit dem von Ihnen ausgewählten neuen Basismodell konfiguriert ist. - Traffic-Verteilung konfigurieren: Verwenden Sie eine
HTTPRoute
, um den Traffic zwischen der vorhandenenInferencePool
(mit dem alten Basismodell) und der neuenInferencePool
(mit dem neuen Basismodell) aufzuteilen. Im FeldbackendRefs weight
wird der prozentualen Anteil des Traffics festgelegt, der jedem Pool zugewiesen wird. InferenceModel
-Integrität aufrechterhalten: Lassen Sie dieInferenceModel
-Konfiguration unverändert. So wird sichergestellt, dass das System dieselben LoRA-Adapter konsistent auf beide Basismodellversionen anwendet.- Rollback-Funktion beibehalten: Behalten Sie die ursprünglichen Knoten und
InferencePool
während der Einführung bei, um bei Bedarf ein Rollback zu ermöglichen.
Sie erstellen einen neuen InferencePool
mit dem Namen llm-pool-version-2
. In diesem Pool wird eine neue Version des Basismodells auf einer neuen Gruppe von Knoten bereitgestellt. Wenn Sie einen HTTPRoute
konfigurieren, wie im Beispiel gezeigt, können Sie den Traffic schrittweise zwischen dem ursprünglichen llm-pool
und llm-pool-version-2
aufteilen. So können Sie Aktualisierungen des Basismodells in Ihrem Cluster steuern.
So führen Sie ein Update des Basismodells durch:
Speichern Sie das folgende Beispielmanifest als
routes-to-llm.yaml
:apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: routes-to-llm spec: parentRefs: - name: my-inference-gateway rules: backendRefs: - name: llm-pool kind: InferencePool weight: 90 - name: llm-pool-version-2 kind: InferencePool weight: 10
Wenden Sie das Beispielmanifest auf Ihren Cluster an:
kubectl apply -f routes-to-llm.yaml
Die ursprüngliche llm-pool
InferencePool
erhält den Großteil der Zugriffe, während die llm-pool-version-2
InferencePool
den Rest erhält. Erhöhen Sie das Gewicht des Traffics für die llm-pool-version-2
InferencePool
nach und nach, um die Einführung des aktualisierten Basismodells abzuschließen.
LoRA-Adapter-Updates einführen
Mit der Einführung von LoRA-Adapter-Updates können Sie neue Versionen optimierter Modelle in Phasen bereitstellen, ohne das zugrunde liegende Basismodell oder die Infrastruktur zu ändern. Mit der Einführung von LoRA-Adapter-Updates können Sie Verbesserungen, Fehlerkorrekturen oder neue Funktionen in Ihren LoRA-Adaptern testen.
So aktualisieren Sie einen LoRa-Adapter:
Adapter verfügbar machen: Achten Sie darauf, dass die neuen LoRA-Adapterversionen auf den Modellservern verfügbar sind. Weitere Informationen finden Sie unter Roll-out des Adapters.
InferenceModel
-Konfiguration ändern: Definieren Sie in Ihrer vorhandenenInferenceModel
-Konfiguration mehrere Versionen Ihres LoRA-Adapters. Weisen Sie jeder Version eine eindeutigemodelName
zu (z. B.llm-v1
,llm-v2
).Traffic verteilen: Mit dem Feld
weight
in derInferenceModel
-Spezifikation können Sie die Traffic-Verteilung auf die verschiedenen LoRA-Adapterversionen steuern.Einheitliche
poolRef
verwenden: Alle LoRA-Adapterversionen müssen auf dieselbeInferencePool
verweisen. Dadurch wird verhindert, dass Knoten oderInferencePool
neu bereitgestellt werden. Behalten Sie vorherige LoRA-Adapterversionen in derInferenceModel
-Konfiguration bei, um Rollbacks zu ermöglichen.
Das folgende Beispiel zeigt zwei LoRA-Adapterversionen, llm-v1
und llm-v2
.
Für beide Versionen wird dasselbe Basismodell verwendet. Sie definieren llm-v1
und llm-v2
innerhalb derselben InferenceModel
. Sie weisen Gewichte zu, um den Traffic schrittweise von llm-v1
auf llm-v2
umzuverteilen. Mit dieser Einstellung können Sie ein kontrolliertes Roll-out durchführen, ohne Änderungen an Ihren Knoten oder an der InferencePool
-Konfiguration vornehmen zu müssen.
Führen Sie den folgenden Befehl aus, um LoRA-Adapter-Updates bereitzustellen:
Speichern Sie das folgende Beispielmanifest als
inferencemodel-sample.yaml
:apiVersion: inference.networking.x-k8s.io/v1alpha2 kind: InferenceModel metadata: name: inferencemodel-sample spec: versions: - modelName: llm-v1 criticality: Critical weight: 90 poolRef: name: llm-pool - modelName: llm-v2 criticality: Critical weight: 10 poolRef: name: llm-pool
Wenden Sie das Beispielmanifest auf Ihren Cluster an:
kubectl apply -f inferencemodel-sample.yaml
Die llm-v1
-Version erhält den Großteil des Traffics, während die llm-v2
-Version den Rest erhält. Erhöhen Sie das Traffic-Gewicht für die llm-v2
-Version schrittweise, um die Einführung des LoRA-Adapterupdates abzuschließen.