

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Prefill dan Decode terpilah untuk inferensi HyperPod
<a name="sagemaker-hyperpod-model-deployment-dpd"></a>

Disaggregated Prefill and Decode (DPD) memisahkan dua fase inferensi LLM, prefill dan decode, ke pool GPU khusus dan mentransfer cache nilai kunci (KV) di antara mereka melalui Elastic Fabric Adapter (EFA) menggunakan Remote Direct Memory Access (RDMA). GPU-Direct 

Saat prefill dan decode berjalan pada GPU yang sama (colocated), satu permintaan konteks panjang dapat menghentikan aliran token dalam penerbangan untuk klien lain, meningkatkan latensi per token saat dimuat. DPD menghilangkan interferensi ini dengan menjalankan prefill terikat komputasi pada satu set GPU dan decode terikat bandwidth memori pada yang lain, menghasilkan latensi yang lebih dapat diprediksi di bawah lalu lintas campuran dan memungkinkan Anda menskalakan setiap fase secara independen.

Operator inferensi menangani orkestrasi, yang mencakup penyediaan router, pengkabelan prefill dan decode pod bersama-sama melalui LMCache dan NIXL, dan mengintegrasikan dengan observabilitas. HyperPod Anda dapat mengaktifkan DPD dengan menambahkan `pdSpec` bagian ke `InferenceEndpointConfig` sumber daya yang sama yang sudah Anda gunakan untuk titik akhir inferensi.

## Ketika DPD membantu
<a name="sagemaker-hyperpod-model-deployment-dpd-when"></a>

DPD memberikan manfaat paling besar ketika semua kondisi berikut hadir:
+ **Model padat besar** — 70B\+parameter (misalnya, Llama 3.3 70B).
+ **Input panjang** — 4.000\+ token masukan. Inter-token Skala peningkatan latency (ITL) dengan panjang input karena prefill yang lebih panjang menyebabkan lebih banyak interferensi decode saat dikolokasi.
+ **Konkurensi berkelanjutan** - 2\+ permintaan per detik. Tanpa permintaan bersamaan yang bersaing untuk GPU yang sama, tidak ada yang bisa dipisahkan.
+ **Output sedang atau panjang — 256\+ token keluaran**. Lebih banyak token keluaran berarti lebih banyak manfaat kumulatif dari latensi per token yang stabil.

Jika beban kerja Anda memiliki input pendek, konkurensi rendah, atau menggunakan model kecil, penerapan kolokasi standar lebih sederhana dan berkinerja baik.

## Prasyarat
<a name="sagemaker-hyperpod-model-deployment-dpd-prereqs"></a>

Sebelum menerapkan titik akhir inferensi yang menggunakan Disaggregated Prefill dan Decode, Anda perlu menyiapkan komponen berikut di lingkungan pengembangan lokal Anda:
+ [AWS Antarmuka Baris Perintah (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ Akses ke cluster HyperPod Amazon EKS Anda melalui [kubectl](https://kubernetes.io/docs/tasks/tools/)
+ Token [Hugging](https://huggingface.co/) Face yang memungkinkan akses baca ke pos pemeriksaan model masing-masing. Ini tidak diperlukan jika pos pemeriksaan model sudah terletak di ember Amazon S3.
+ Gambar pekerja yang mencakup VllM, LMCache, NVIDIA NIXL, dan penyedia libfabric EFA. Opsi gambar berikut didukung:
  + DLC: `public.ecr.aws/deep-learning-containers/vllm:server-hyperpod-cuda-v1.1`
  + LMcache: `lmcache/vllm-openai:v0.4.3`

  Kedua gambar termasuk LMCache 0.4.3, vLLm 0.19.0, dan NIXL 1.0.0.
+ HyperPod Operator Inferensi **versi 3.2 atau yang lebih baru** diinstal. DPD tidak didukung pada versi sebelumnya. Operator diinstal secara default di cluster HyperPod Amazon EKS yang baru dibuat. Jika Anda berniat menggunakan cluster yang ada, ikuti petunjuk penginstalan di[Menyiapkan HyperPod cluster Anda untuk penerapan model](sagemaker-hyperpod-model-deployment-setup.md). Verifikasi versi Anda:

  ```
  kubectl get deployment hyperpod-inference-operator-controller-manager \
    -n hyperpod-inference-system \
    -o jsonpath='{.spec.template.spec.containers[?(@.name=="manager")].image}{"\n"}'
  ```

**penting**  
Prefill dan Decode terpilah memerlukan EFA-capable instance dengan dukungan RDMA. GPU-Direct Jenis contoh berikut didukung:`ml.p5.48xlarge`,`ml.p5e.48xlarge`,`ml.p5en.48xlarge`,`ml.p6-b200.48xlarge`,`ml.p6-b300.48xlarge`. Jenis instans lainnya tidak didukung untuk DPD.

## Menyebarkan titik akhir DPD
<a name="sagemaker-hyperpod-model-deployment-dpd-deploy"></a>

Sebagian besar `InferenceEndpointConfig` bidang dibagi dengan titik akhir non-DPD dan didokumentasikan dalam. [Terapkan model pondasi dan model penyesuaian khusus](sagemaker-hyperpod-model-deployment-deploy.md) Untuk mengaktifkan DPD, tambahkan bagian berikut ke manifes Anda.

### Prefill-Decode `Spesifikasi: PDSpec`
<a name="sagemaker-hyperpod-model-deployment-dpd-fields-pdspec"></a>

Mendeklarasikan prefill/decode topologi dan menentukan argumen. Kehadiran bidang inilah yang membuat titik akhir terpilah: operator membuat Deployment terpisah untuk prefill dan decode dan menghubungkannya melalui router dan backend LMCache PD.

```
pdSpec:
  prefillSpec:
    replicas: 1
    resources:
      limits:
        nvidia.com/gpu: ${GPUS_PER_NODE}
      requests:
        nvidia.com/gpu: ${GPUS_PER_NODE}
    args:
      - "--gpu-memory-utilization"
      - "0.75"
  decodingSpec:
    replicas: 1
    resources:
      limits:
        nvidia.com/gpu: ${GPUS_PER_NODE}
      requests:
        nvidia.com/gpu: ${GPUS_PER_NODE}
  routingThreshold: 4096
```

`replicas`  
Skalakan prefill dan decode secara independen.

`resources`  
Diterapkan pada spesifikasi pod peran. Top-level`worker.resources`diabaikan untuk pod DPD; nilai per peran diganti.

`routingThreshold`  
Ambang batas panjang token yang merutekan permintaan ke jalur terpilah. Permintaan yang tidak memenuhi ambang batas ini melewati prefiller dan langsung menuju ke decoder.

`args`  
Bendera VllM khusus untuk peran itu. Digabungkan `worker.args` saat startup: flag yang sudah `worker.args` ada diganti dengan nilai per peran; flag yang tidak ada ditambahkan.

### `Variabel Lingkungan DPD: Variabel Lingkungan`
<a name="sagemaker-hyperpod-model-deployment-dpd-fields-env"></a>

Variabel lingkungan ini diterapkan secara identik ke wadah prefiller dan decoder; tidak ada bidang env-var per-peran. Untuk perilaku per peran, gunakan `pdSpec.{prefillSpec,decodingSpec}.args` sebagai gantinya.

```
environmentVariables:
  - name: PD_BUFFER_SIZE
    value: "8589934592"
  - name: LMCACHE_SAVE_DECODE_CACHE
    value: "False"
  - name: PYTHONHASHSEED
    value: "0"
```

`PD_BUFFER_SIZE`(8 GiB)  
Buffer GPU dicadangkan pada decoder untuk transfer cache KV yang masuk, berukuran per peringkat. Untuk Llama 70B di TP=8, cache KV setiap token kira-kira 40 KB per peringkat, jadi prompt 6000-token menempati sekitar 0,23 GB per peringkat dan 8 GiB menampung sekitar 35 transfer dalam penerbangan tersebut. Ketika buffer melebihi kapasitas, log dekoder `Failed to allocate memory object, retrying...` dan klien melihat lonjakan latensi. Tingkatkan ke 16/32 GiB atau skala `decodingSpec.replicas` jika diperlukan.

`LMCACHE_SAVE_DECODE_CACHE`: `"False"`  
Menonaktifkan caching L1 yang berlebihan pada decoder. Prefiller adalah sumber kebenaran untuk cache hits.

`PYTHONHASHSEED`: `"0"`  
LMCache menggunakan built-in Python `hash()` untuk menghitung kunci cache prompt token. Python mengacak benih hash per proses secara default, sehingga prompt identik menghasilkan kunci yang berbeda pada prefiller dan decoder dan pencarian hilang. Menyematkan benih membuat kunci setuju di seluruh polong.

### Konfigurasikan strategi perutean
<a name="sagemaker-hyperpod-model-deployment-dpd-fields-routing"></a>

`intelligentRoutingSpec`Bagian ini menetapkan strategi perutean yang digunakan router DPD untuk memilih prefiller untuk setiap permintaan. Router dibuat secara otomatis saat `pdSpec` ada; bagian ini opsional dan default ke. `prefixaware`

```
intelligentRoutingSpec:
  enabled: true
  routingStrategy: prefixaware
```

DPD juga dapat diintegrasikan dengan intelligent routing dan KV caching. Untuk informasi selengkapnya, lihat [Konfigurasikan caching KV dan perutean cerdas](sagemaker-hyperpod-model-deployment-caching-routing.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route).

Dengan replika prefill tunggal, semua strategi merutekan ke replika itu. Pilihan hanya memengaruhi perilaku ketika`prefillSpec.replicas > 1`:
+ Untuk replika prefill tunggal, gunakan `prefixaware` (default) untuk memaksimalkan klik cache KV saat prompt berbagi awalan umum seperti prompt sistem atau riwayat obrolan.
+ Untuk beberapa replika prefill, gunakan `roundrobin` untuk mendistribusikan beban secara merata di seluruh replika dan hindari bercak panas pada satu prefiller.

### Contoh lengkap
<a name="sagemaker-hyperpod-model-deployment-dpd-deploy-example"></a>

Manifes berikut menerapkan Llama 3.3 70B pada dua instance ml.p5.48xlarge (satu prefiller, satu decoder):

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: dpd-test
  namespace: default
spec:
  endpointName: dpd-test
  instanceType: ml.p5.48xlarge
  invocationEndpoint: v1/chat/completions
  modelName: Llama-3.3-70B-Instruct
  modelSourceConfig:
    modelSourceType: s3
    modelLocation: Llama-3.3-70B-Instruct
    s3Storage:
      bucketName: <YOUR_BUCKET>
      region: <YOUR_REGION>
  loadBalancer:
    healthCheckPath: /health
  metrics:
    enabled: true
  kvCacheSpec:
    enableL1Cache: true
  intelligentRoutingSpec:
    enabled: true
    routingStrategy: prefixaware
  pdSpec:
    prefillSpec:
      replicas: 1
      resources:
        requests:
          nvidia.com/gpu: "8"
        limits:
          nvidia.com/gpu: "8"
    decodingSpec:
      replicas: 1
      resources:
        requests:
          nvidia.com/gpu: "8"
        limits:
          nvidia.com/gpu: "8"
    routingThreshold: 4096
  worker:
    image: public.ecr.aws/deep-learning-containers/vllm:server-hyperpod-cuda-v1.1
    args:
      - "--model"
      - "/opt/ml/model"
      - "--host"
      - "0.0.0.0"
      - "--port"
      - "8000"
      - "--tensor-parallel-size"
      - "8"
      - "--max-model-len"
      - "16384"
      - "--gpu-memory-utilization"
      - "0.75"
    modelInvocationPort:
      name: http
      containerPort: 8000
    modelVolumeMount:
      name: model-weights
      mountPath: /opt/ml/model
    resources:
      requests:
        cpu: "96"
        memory: 1024Gi
        nvidia.com/gpu: "8"
      limits:
        cpu: "96"
        memory: 1024Gi
        nvidia.com/gpu: "8"
    environmentVariables:
      - name: HF_HOME
        value: /tmp/hf_home
      - name: PD_BUFFER_SIZE
        value: "8589934592"
      - name: LMCACHE_SAVE_DECODE_CACHE
        value: "False"
      - name: PYTHONHASHSEED
        value: "0"
```

Terapkan manifes:

```
kubectl apply -f inference_endpoint_dpd_config.yaml
```

## Verifikasi penyebaran
<a name="sagemaker-hyperpod-model-deployment-dpd-verify"></a>

Penarikan gambar dan pemuatan model membutuhkan waktu beberapa menit. Pantau status pod:

```
kubectl get pods -A \
  | grep -E "prefill-|decode-|router"
```

Penyebaran yang sehat menunjukkan:

```
NAMESPACE                   NAME                                   READY   STATUS    RESTARTS   AGE
default                     prefill-dpd-test-XXXX                  3/3     Running   0          7m
default                     decode-dpd-test-XXXX                   3/3     Running   0          7m
hyperpod-inference-system   dpd-test-router-XXXX                   2/2     Running   0          7m
```

Setiap pod model memiliki 3 kontainer (pekerja VllM, proxy terbalik Nginx, kolektor). OpenTelemetry Pod router memiliki 2 kontainer (router, OpenTelemetry kolektor). Periksa `InferenceEndpointConfig` statusnya:

```
kubectl get inferenceendpointconfig dpd-test -n default \
  -o jsonpath='{.status.conditions[0].message}{"\n"}'
```

Output yang diharapkan: `DPD prefill and decode deployments are ready`

### Verifikasi peran DPD
<a name="sagemaker-hyperpod-model-deployment-dpd-verify-roles"></a>

Konfirmasikan laporan prefiller `sender` dan laporan decoder. `receiver` Ini adalah satu-satunya sinyal startup yang paling diskriminatif — jika kedua pod melaporkan peran yang sama atau tidak mencetak saluran, operator tidak menghubungkan DPD dengan benar.

```
PREFILL_POD=$(kubectl get pod -n ${NAMESPACE} \
  -l 'inference.sagemaker.aws.amazon.com/dpd-role=prefill' \
  -o jsonpath='{.items[0].metadata.name}')

DECODE_POD=$(kubectl get pod -n ${NAMESPACE} \
  -l 'inference.sagemaker.aws.amazon.com/dpd-role=decode' \
  -o jsonpath='{.items[0].metadata.name}')

kubectl logs $PREFILL_POD -n ${NAMESPACE} -c prefill-${DEPLOYMENT_NAME} \
  | grep -oE "'pd_role': '[a-z]+'" | sort -u

kubectl logs $DECODE_POD -n ${NAMESPACE} -c decode-${DEPLOYMENT_NAME} \
  | grep -oE "'pd_role': '[a-z]+'" | sort -u
```

Keluaran yang diharapkan

```
'pd_role': 'sender'
'pd_role': 'receiver'
```

## Memanggil titik akhir
<a name="sagemaker-hyperpod-model-deployment-dpd-invoke"></a>

Setelah titik akhir siap, kirim prompt pendek dan panjang untuk melatih kedua jalur perutean, lalu periksa log untuk mengonfirmasi transfer KV melalui EFA.

```
PREFILL_POD=$(kubectl get pod -n ${NAMESPACE} \
  -l 'inference.sagemaker.aws.amazon.com/dpd-role=prefill' \
  -o jsonpath='{.items[0].metadata.name}')

DECODE_POD=$(kubectl get pod -n ${NAMESPACE} \
  -l 'inference.sagemaker.aws.amazon.com/dpd-role=decode' \
  -o jsonpath='{.items[0].metadata.name}')

ROUTER_POD=$(kubectl get pods -n hyperpod-inference-system -o name \
  | grep -- "${DEPLOYMENT_NAME}-${NAMESPACE}-router" | head -1)

ROUTER_URL=http://${DEPLOYMENT_NAME}-${NAMESPACE}-routing-service.hyperpod-inference-system.svc.cluster.local:443/v1/chat/completions
```

### Prompt pendek (di bawah ambang batas, langsung ke decoder)
<a name="sagemaker-hyperpod-model-deployment-dpd-invoke-short"></a>

Permintaan dengan token lebih sedikit daripada `routingThreshold` melewati prefiller dan langsung menuju ke decoder:

```
kubectl run curl-short --rm -it --image=curlimages/curl --restart=Never -- \
  curl -s -k -X POST "$ROUTER_URL" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "/opt/ml/model",
      "messages": [{"role": "user", "content": "What is disaggregated prefill-decode in one sentence?"}],
      "max_tokens": 80,
      "temperature": 0.0
    }'
```

### Long prompt (melebihi ambang batas, jalur DPD)
<a name="sagemaker-hyperpod-model-deployment-dpd-invoke-long"></a>

Permintaan yang melebihi rute ambang batas melalui prefiller untuk perhitungan cache KV, lalu ke dekoder untuk pembuatan token:

```
kubectl run curl-long --rm -it --image=curlimages/curl --restart=Never -- sh -c '
LONG=""
i=0; while [ $i -lt 600 ]; do LONG="${LONG}The quick brown fox jumps over the lazy dog. "; i=$((i+1)); done
curl -s -k -X POST "'"$ROUTER_URL"'" \
  -H "Content-Type: application/json" \
  -d "{\"model\":\"/opt/ml/model\",\"messages\":[{\"role\":\"user\",\"content\":\"${LONG}\"}],\"max_tokens\":30,\"temperature\":0.0}"
'
```

### Verifikasi transfer KV
<a name="sagemaker-hyperpod-model-deployment-dpd-invoke-verify-kv"></a>

Setelah mengirim prompt yang panjang, konfirmasikan cache KV ditransfer dengan memeriksa log decoder:

```
kubectl logs $DECODE_POD -n ${NAMESPACE} -c decode-${DEPLOYMENT_NAME} \
  | grep -E "Retrieved.*tokens.*throughput" | tail -2
```

Output yang diharapkan (satu baris per peringkat TP):

```
[Worker_TP5] [LMCache INFO] [req_id=cmpl-...] Retrieved 6035 out of 6035 required tokens (from 6035 total tokens).
   size: 0.2344 gb, cost 1.3304 ms, throughput: 176.1686 GB/s
```

`Retrieved N out of N required tokens`dengan N > 0 mengonfirmasi cache KV berhasil melintasi saluran NIXL. Jika Anda lihat`Retrieved 0 out of N`, decoder kembali ke perhitungan ulang lokal — lihat. [Masalah penyebaran Prefill and Decode (DPD) terpilah](sagemaker-hyperpod-model-deployment-ts-dpd.md)

Anda juga dapat memverifikasi keputusan perutean di log router:

```
kubectl logs $ROUTER_POD -n hyperpod-inference-system -c router-container --tail=20 \
  | grep -E "Conditional routing"
```

Untuk prompt panjang, Anda akan melihat:

```
[INFO] Conditional routing: estimated_tokens=6750, threshold=4096, disaggregate=True
```

Untuk prompt singkat:

```
[INFO] Conditional routing: estimated_tokens=12, threshold=4096, disaggregate=False
```

**catatan**  
Untuk memanggil melalui titik akhir SageMaker AI AI, atur `endpointName` di file Anda. `InferenceEndpointConfig` Jika tidak `endpointName` disetel, tidak ada titik akhir SageMaker AI AI yang dibuat dan hanya pemanggilan ALB langsung yang tersedia.

## Observabilitas
<a name="sagemaker-hyperpod-model-deployment-dpd-observability"></a>

Aktifkan metrik dengan menyetel `metrics.enabled: true` di Anda`InferenceEndpointConfig`. Metrik DPD tersedia di dasbor HyperPod inferensi. Untuk informasi selengkapnya, lihat [Menerapkan observabilitas inferensi pada cluster HyperPod](sagemaker-hyperpod-model-deployment-observability.md).

 DPD-specific Metrik berikut tersedia:


**DPD-specific metrik**  

| Metrik | Deskripsi | 
| --- | --- | 
| E2E TTFT | Keseluruhan waktu untuk token pertama (prefill \+transfer KV\+routing) | 
| Pra-isi TTFT | Prefiller-only latensi | 
| Antrian Prefill | Jumlah permintaan yang menunggu prefill | 
| Antrian Dekode | Jumlah permintaan yang menunggu di decoder | 
| Waktu Prefill | Waktu yang dihabiskan untuk komputasi prefill | 
| Dekode Latensi | Per-token latensi keluaran (TPOT) | 
| Waktu Transfer KV | Saatnya mentransfer cache KV dari prefiller ke decoder | 
| Hitungan Perutean DPD | Permintaan terpilah vs. fallback (di bawah ambang batas) | 

## Sesuaikan penerapan DPD Anda
<a name="sagemaker-hyperpod-model-deployment-dpd-tuning"></a>

Tabel berikut memberikan referensi cepat untuk menyetel DPD berdasarkan gejala yang Anda amati di dasbor metrik Anda.


**Referensi penyetelan DPD**  

| Config | Apa yang dilakukannya | Default | Kapan harus menyetel | 
| --- | --- | --- | --- | 
| pdSpec.routingThreshold | Token input minimum untuk rute melalui prefiller. Permintaan di bawah ambang batas ini langsung menuju ke decoder. | 4096 | Default berfungsi dengan baik untuk sebagian besar beban kerja. Mengaturnya terlalu rendah meningkatkan TTFT karena transfer KV yang tidak perlu pada prompt singkat, sementara pengaturannya terlalu tinggi membatasi perbaikan TPOT karena lebih sedikit permintaan yang mengambil jalur DPD. | 
| pdSpec.prefillSpec.replicas | Jumlah pod prefill. | 1 | Tingkatkan jika kedalaman antrian prefill tinggi untuk meningkatkan TTFT prefill. | 
| PD\_BUFFER\_SIZE | Buffer GPU decoder untuk transfer KV yang masuk (per peringkat). 8 GiB menampung sekitar 35 K-token transfer dalam penerbangan 6 untuk 70B di TP = 8. | "8589934592"(8 GiB) | Tingkatkan untuk menangani lebih banyak transfer KV bersamaan. Kurangi jika Anda melihat masalah memori. Saat meningkatkan, Anda mungkin perlu menurunkan --gpu-memory-utilization decoder untuk membebaskan memori GPU untuk buffer yang lebih besar. | 
| --gpu-memory-utilization | Fraksi memori GPU yang digunakan VllM untuk bobot, aktivasi, dan cache KV. | 0.75 | Tingkatkan untuk lebih banyak ruang kepala cache KV pada input panjang. Risiko: prefiller OOM karena prefill juga membutuhkan memori untuk aktivasi. Uji dengan distribusi panjang input Anda yang sebenarnya. | 
| --max-num-seqs | Urutan bersamaan maks per batch pekerja. | 16(prefiller), 32 (decoder) | Naikkan untuk batching yang lebih baik di bawah beban. Turunkan jika menekan OOM pada prefiller. Tetapkan per peran melalui. pdSpec.{prefillSpec,decodingSpec}.args | 
| intelligentRoutingSpec.routingStrategy | Bagaimana router memilih prefiller ketika ada beberapa replika. | prefixaware | Gunakan roundrobin untuk mendistribusikan beban secara merata di beberapa replika prefiller. Gunakan prefixaware atau kvaware dengan prefiller tunggal atau ketika prompt berbagi awalan umum (prompt sistem, riwayat obrolan) untuk memaksimalkan klik cache. | 

Uji dengan beban kerja aktual Anda dan distribusi panjang input.

Untuk menerapkan perubahan konfigurasi, edit penerapan YAMM Anda dan terapkan kembali:

```
kubectl apply -f inference_endpoint_dpd_config.yaml
```

## Keterbatasan yang Sudah Diketahui
<a name="sagemaker-hyperpod-model-deployment-dpd-limitations"></a>
+ DPD direkomendasikan untuk model padat dengan parameter 70B atau lebih. Model dan Mixture-of-Experts model yang lebih kecil biasanya tidak mendapat manfaat dari disagregasi.
+ Rilis saat ini mendukung penerapan decode tunggal per titik akhir. Support untuk beberapa penerapan decode direncanakan untuk rilis di masa mendatang.
+ Kinerja divalidasi hingga 64 permintaan bersamaan pada ml.p5.48xlarge dengan Llama 3.3 70B.
+ Untuk kembali dari penerapan DPD ke penerapan kolokasi standar, terapkan yang baru tanpa. `InferenceEndpointConfig` `pdSpec`

Untuk pemecahan masalah penyebaran DPD, lihat. [Masalah penyebaran Prefill and Decode (DPD) terpilah](sagemaker-hyperpod-model-deployment-ts-dpd.md)