

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Probleme bei der Bereitstellung von Disaggregated Prefill and Decode (DPD)
<a name="sagemaker-hyperpod-model-deployment-ts-dpd"></a>

**Überblick: ** Häufige Probleme, die bei der Bereitstellung von Inferenzendpunkten mit Disaggregated Prefill and Decode (DPD) auftreten können. Diese Probleme betreffen in der Regel den Pod-Start, die KV-Cache-Übertragung, das Routing-Verhalten oder die Ressourcenzuweisung.

## Probleme beim Pod-Start
<a name="sagemaker-hyperpod-model-deployment-ts-dpd-pod-startup"></a>

**Problem: ** DPD-Pods lassen sich nicht starten oder befinden sich in einem Zustand, in dem sie nicht bereit sind.

**Symptome und Lösung: **
+ **Die Schoten blieben `ContainerCreating` länger als 10 Minuten drin. ** Lauf `kubectl describe pod <pod-name>` und suche nach `Failed to pull image` oder`MountVolume.SetUp failed`. Stellen Sie sicher, dass das Worker-Image vorhanden ist und der Amazon S3-Bucket vom Cluster aus zugänglich ist.
+ **Die Pods hängen bei 2/3 Ready fest. ** Der vLLM-Worker lädt das Modell immer noch. Bei einem kalten Amazon S3-Abruf dauert Llama 3.3 70B 5—10 Minuten. Überprüfen Sie den Fortschritt:

  ```
  kubectl logs <pod-name> -c <prefill|decode>-<endpoint-name> | grep -i "engine\|loading"
  ```

  Warten Sie auf die Protokollmeldung, die besagt, dass der Motor bereit ist.
+ **Die Pods werden mit `EngineDeadError` oder neu gestartet`TimeoutError`. ** Dies weist auf eine Operatorversion hin, die älter als v3.2 ist. Aktualisieren Sie den Inferenzoperator, bevor Sie fortfahren.
+ **Alle HTTP-Anfragen geben unmittelbar nach der Bereitstellung 503 zurück. ** Pods laden das Modell immer noch. Warte, bis der `InferenceEndpointConfig` Status erreicht ist`DeploymentComplete`:

  ```
  kubectl get inferenceendpointconfig <endpoint-name> -n <namespace> -w
  ```

## Probleme bei der Übertragung des KV-Cache
<a name="sagemaker-hyperpod-model-deployment-ts-dpd-kv-transfer"></a>

**Problem: Die ** KV-Cache-Übertragung zwischen Prefill- und Decode-Pods schlägt fehl oder funktioniert schlecht.

**Symptome und Lösung: **
+ **Decoder-Protokolle werden angezeigt`Retrieved 0 out of N required tokens`. ** Die KV-Übertragung fand nicht statt und der Decoder fiel auf die lokale Neuberechnung zurück. Stellen Sie sicher, dass das korrekt `pd_role` ist (Prefiller muss aktiviert sein`sender`, Decoder muss aktiviert sein`receiver`), dass beide Pods dasselbe Worker-Image verwenden und auf beiden Pods auf gesetzt `PYTHONHASHSEED` ist. `"0"`
+ **Die Decoder-Protokolle zeigen, dass `Failed to allocate memory object, retrying...` ** der Decoder-PD-Puffer bei hoher Parallelität voll ist. Erhöhen Sie entweder `PD_BUFFER_SIZE` (versuchen Sie es `"17179869184"` mit 16 GiB oder `"34359738368"` mit 32 GiB) oder skalieren Sie. `decodingSpec.replicas`
+ **KV-Übertragungsdurchsatz unter GB/s 1. ** EFA wird nicht verwendet und die Übertragungen fallen auf die CPU zurück. Stellen Sie sicher, dass beide Pods auf EFA-capable Knoten in derselben Availability Zone geplant sind, dass auf den Knoten EFA-Ressourcen verfügbar sind (`kubectl describe node <node-name> | grep efa`) und dass das Worker-Image den EFA-Libfabric-Provider enthält.

## Routing-Probleme
<a name="sagemaker-hyperpod-model-deployment-ts-dpd-routing"></a>

**Problem: ** Anfragen werden nicht korrekt zwischen Prefill- und Decode-Pods weitergeleitet.

**Symptome und Lösung: **
+ **Alle Anfragen umgehen den Prefiller (auch lange Eingabeaufforderungen). ** Überprüfen Sie die Router-Protokolle auf Routing-Entscheidungen:

  ```
  ROUTER_POD=$(kubectl get pods -n hyperpod-inference-system -o name | grep router | head -1)
  kubectl logs $ROUTER_POD -n hyperpod-inference-system -c router-container --tail=50 \
    | grep "Conditional routing"
  ```

  Stellen Sie sicher, dass der `estimated_tokens` Wert Ihren überschreitet`routingThreshold`. Wenn die Token-Schätzung niedriger als erwartet ist, zählt der Tokenizer des Routers möglicherweise anders — versuchen Sie es mit einer Senkung. `routingThreshold`
+ **Ungleichmäßige Lastverteilung zwischen den Prefillern. ** Wenn Sie über mehrere Prefiller-Replikate verfügen und feststellen, dass eines überlastet ist, während andere inaktiv sind, stellen Sie die Routing-Strategie auf `roundrobin` für eine gleichmäßige Verteilung um. Verwenden Sie diese Option auch `kvaware` für eine Cache-fähige Verteilung, bei der der aktuelle Status jedes Prefillers berücksichtigt wird.