

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 分解的预填和解码 (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 存储桶。
+ **吊舱卡在 “ 2/3 就绪” 状态。**vlLM 工作程序仍在加载模型。Llama 3.3 70B 从冷酷的亚马逊 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 或 32 GiB）`"34359738368"`，要么缩放。`decodingSpec.replicas`
+ **KV 传输吞吐量低于 1 GB/s。**EFA 未被使用，传输正在回退到 CPU。验证两个 Pod 是否调度在同一个可用区的 EFA-capable节点上，节点是否有 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`用于缓存感知分配，该分配考虑了每个预填器的实际状态。