

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 分解預填充和解碼 (DPD) 部署問題
<a name="sagemaker-hyperpod-model-deployment-ts-dpd"></a>

**概觀：**使用分解預先填充和解碼 (DPD) 部署推論端點時可能發生的常見問題。這些問題通常涉及 Pod 啟動、KV 快取傳輸、路由行為或資源配置。

## Pod 啟動問題
<a name="sagemaker-hyperpod-model-deployment-ts-dpd-pod-startup"></a>

**問題：**DPD Pod 無法啟動或保持未就緒狀態。

**徵狀和解決方案：**
+ **Pod 卡在 中`ContainerCreating`超過 10 分鐘。**執行 `kubectl describe pod <pod-name>`並尋找 `Failed to pull image`或 `MountVolume.SetUp failed`。確認工作者映像存在，而且可從叢集存取 Amazon S3 儲存貯體。
+ **Pod 停滯在 2/3 就緒。**vLLM 工作者仍在載入模型。Llama 3.3 70B 從冷 Amazon S3 擷取需要 5-10 分鐘。檢查進度：

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

  等待指示引擎已就緒的日誌訊息。
+ **Pod 使用 `EngineDeadError`或 重新啟動`TimeoutError`。**這表示早於 v3.2 的運算子版本。升級推論運算子再繼續。
+ **所有 HTTP 請求都會在部署後立即傳回 503。**Pod 仍在載入模型。等待`InferenceEndpointConfig`狀態達到 `DeploymentComplete`：

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

## KV 快取傳輸問題
<a name="sagemaker-hyperpod-model-deployment-ts-dpd-kv-transfer"></a>

**問題：**預先填充和解碼 Pod 之間的 KV 快取傳輸失敗或效能不佳。

**徵狀和解決方案：**
+ **解碼器日誌會顯示 `Retrieved 0 out of N required tokens`。**KV 傳輸未發生，解碼器下降回本機重新計算。確認 `pd_role` 是正確的 （預填充物必須是 `sender`，解碼器必須是 `receiver`)，兩個 Pod 都使用相同的工作者映像，並在兩個 Pod `"0"`上`PYTHONHASHSEED`設定為 。
+ **解碼器日誌顯示`Failed to allocate memory object, retrying...`**解碼器 PD 緩衝區在高並行下已滿。增加 `PD_BUFFER_SIZE`(`"17179869184"`嘗試 16 GiB 或 `"34359738368"` 32 GiB) 或擴展 `decodingSpec.replicas`。
+ **KV 傳輸輸送量低於 1 GB/s。**未使用 EFA，傳輸正在回復到 CPU。確認兩個 Pod 都排程在相同可用區域中具備 EFA 功能的節點上、節點有可用的 EFA 資源 (`kubectl describe node <node-name> | grep efa`)，以及工作者映像包含 EFA libfabric 供應商。

## 路由問題
<a name="sagemaker-hyperpod-model-deployment-ts-dpd-routing"></a>

**問題：**預先填充和解碼 Pod 之間的請求未正確路由。

**徵狀和解決方案：**
+ **所有請求都會略過預填充 （甚至是長提示）。**檢查路由器日誌是否有路由決策：

  ```
  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"
  ```

  驗證該`estimated_tokens`值超過您的 `routingThreshold`。如果字符估算低於預期，路由器的字符器計數可能不同，請嘗試降低 `routingThreshold`。
+ **預填充物之間的負載分佈不均。**如果您有多個預填充複本，並發現其中一個複本過載，而其他複本處於閒置狀態，請將路由策略切換為 `roundrobin`，以取得平均分佈。或者，`kvaware`針對考量每個預填充物實際狀態的快取感知分佈使用 。