You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/disaggregation.md
+10-2Lines changed: 10 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -285,6 +285,7 @@ plugins:
285
285
- type: prefix-based-pd-decider
286
286
parameters:
287
287
nonCachedTokens: 8
288
+
promptTokens: 0
288
289
- type: disagg-profile-handler
289
290
parameters:
290
291
profiles:
@@ -348,6 +349,7 @@ plugins:
348
349
- type: prefix-based-pd-decider
349
350
parameters:
350
351
nonCachedTokens: 8
352
+
promptTokens: 0
351
353
- type: disagg-profile-handler
352
354
parameters:
353
355
profiles:
@@ -397,21 +399,27 @@ The `prefix-based-pd-decider` plugin makes the disaggregation decision according
397
399
**How It Works**
398
400
- Once a decode pod is selected, the decider checks how many tokens from the incoming prompt have already been sent to this pod
399
401
400
-
- If the remaining non-cached suffix length is longer than the configured threshold (nonCachedTokens), disaggregation is triggered – the prefill will run remotely on a prefill pod, and decode locally on the decode pod
402
+
- If the prompt length is shorter than the configured prompt length threshold (promptTokens), the full request runs locally on the decode worker without remote prefill
401
403
402
-
- If the non-cached suffix is shorter or equal to the threshold, the full request runs locally on the decode worker without remote prefill
404
+
- If the remaining non-cached suffix length is at least the configured threshold (nonCachedTokens), disaggregation is triggered: the prefill will run remotely on a prefill pod, and decode locally on the decode pod
405
+
406
+
- If the non-cached suffix is shorter than the threshold, the full request runs locally on the decode worker without remote prefill
403
407
404
408
**Configuration**
405
409
```yaml
406
410
- type: prefix-based-pd-decider
407
411
parameters:
408
412
nonCachedTokens: 8
413
+
promptTokens: 0
409
414
```
410
415
411
416
**Parameter:**
412
417
413
418
- `nonCachedTokens`: Number of non-cached tokens that trigger disaggregation
414
419
- If set to 0, disaggregation never occurs for any request
420
+
- `promptTokens`: Minimum prompt length in tokens before prefix-cache-based disaggregation logic is applied
421
+
- If set to 0, the prompt-length gate is disabled
422
+
- If set to a positive value, requests with fewer prompt tokens run locally on the decode worker without remote prefill
415
423
416
424
#### Always-Disagg PD Decider
417
425
The `always-disagg-pd-decider` is a simpler alternative used mainly for testing or benchmarking.
0 commit comments