Justitia: Fair and Efficient Scheduling of Task-parallel LLM Agents with Selective Pampering

framework 2510.17015 — Cross-paper Synthesis

Justitia vs 相关论文:跨篇综合 #

相关论文 #

Justitia 是一个面向 task-parallel LLM 应用的应用级调度器,用 WFQ + KV token-time 成本度量实现 finish-time fairness 与近 SJF 效率的兼得。以下 8 篇/项相关工作覆盖 PD 分离通信优化、网络流调度、RL 权重传输、MoE prefill 优化、持久化 kernel 执行、KV 压缩等维度,与 Justitia 在"LLM serving 的资源调度与分配"这一主线上形成多面对比。

DualPath (2602.21548) — 聚焦 PD 分离架构下 agentic 推理的存储带宽瓶颈。DualPath 通过聚合 decode engine 空闲 SNIC 带宽 + CNIC-centric 流量隔离实现 1.87× 离线吞吐 [2602.21548]。与 Justitia 共享"agentic workload"场景但正交:Justitia 调度的是应用间的 KV-block 分配顺序 [2510.17015],DualPath 调度的是 KV-Cache 的物理传输路径。两者可垂直组合——DualPath 负责 KV 怎么搬,Justitia 负责谁先用。

PPD (2603.13358) — 解决多轮对话下 PD 分离的重复 prefill 浪费。PPD 动态路由 Turn 2+ 请求到 decode 节点做 append-prefill,TTFT 降低 48–73% [2603.13358]。与 Justitia 的连接点在"应用级调度决策":PPD 的路由是 per-request 的(Turn 1 vs Turn 2+),Justitia 的调度是 per-application 的(整个 DAG)。PPD 没有公平性保证 [2603.13358],Justitia 有常数延迟界 [2510.17015]

MFS (2603.17456) — 解决 disaggregated MoE serving 中三阶段通信的网络争用。MFS 用 Reverse Multi-Level Queue 实现 Defer-and-Promote 策略,TTFT SLO 达标率提升 1.2–2.4× [2603.17456]。MFS 与 Justitia 共享"从经典网络调度理论移植到 LLM"的方法论——MFS 借鉴 MLFQ,Justitia 借鉴 WFQ/GPS [2510.17015]。但两者调度的资源完全不同:MFS 调度网络带宽(flow-level),Justitia 调度 KV-cache 显存(application-level)。

TensorHub (2604.09107) — 面向 RL 训练的权重传输框架。ROS 抽象 + pipeline replication 实现 6.7× standalone stall 降低 [2604.09107]。与 Justitia 分属不同阶段(训练 vs 推理),但共享一个设计哲学:用轻量 reference/prediction 实现一次性优先级确定,避免反复重算。TensorHub 的 publish 是轻量引用 [2604.09107],Justitia 的 virtual finish time 一次算定不刷新 [2510.17015]

PrfaaS (2604.15039) — 将 prefill offload 到跨 DC 集群,通过长度阈值路由 + 双时间尺度调度实现 +54% 吞吐 [2604.15039]。PrfaaS 的调度器也有"两级决策"结构(short-term per-request + long-term N_p/N_d 再平衡)[2604.15039],与 Justitia 的 "一次性 virtual finish time + 堆操作" 形成调度复杂度对比。PrfaaS 需要周期性重解最优阈值,Justitia 一旦设定就不变。

ZeRO-Prefill (2605.02960) — 反转 MoE 的 expert 数据流(按 weight 聚集而非按 activation 路由),配合 frontend 饱和阈值 T 实现 1.35–1.37× 吞吐 [2605.02960]。ZeRO-Prefill 的 frontend-backend co-design(物理量 T 由 backend 定义、frontend 强制)与 Justitia 的 per-app MLP demand predictor + WFQ scheduler 形成对照:两者都需要前端预测后端成本以做调度决策,但 ZeRO-Prefill 的 T 是硬件级物理量(AllGather 延迟 × FLOP rate)[2605.02960],Justitia 的 C_j 是 workload 级预测值 [2510.17015]

TileRT / Speed Scaling Law (tilert-speed-scaling-law) — 用 AOT 编译将模型展开为单个 Persistent Engine Kernel,消除 inter-kernel overhead,弥合 BS≈1 decode 的理论/实际性能差距 [tilert-speed-scaling-law]。与 Justitia 的连接是间接的:TileRT 解决的是单请求的 GPU 执行效率(微秒级 kernel overhead),Justitia 解决的是多应用间的宏观调度(秒级 JCT)。但 TileRT 的异构 worker 设计(GPU0 做 Sparse Indexer,GPU1-7 做 MLA)[tilert-speed-scaling-law] 暗示未来调度器可能需要感知 GPU 内部的异构执行角色。

KVServe (kvserve) — KV-cache 压缩框架,通过 service-aware controller 动态选择压缩 profile,实现 up to 10× KV 压缩 [kvserve]。与 Justitia 共享 "KV-cache 是核心资源" 的认知。Justitia 用 KV token-time(空间 × 时间)作为成本度量 [2510.17015],KVServe 用 compression ratio 减少 KV 的物理大小 [kvserve]。两者组合时,Justitia 的 $c = pd + d^2/2$ 公式需要修正为 $c = (pd + d^2/2) / \text{cr}$,否则会高估压缩后的实际显存占用。

本篇 vs 相关论文的 delta #

Justitia 的核心 delta 是把 网络调度的 Virtual-Time Fair Queuing (WFQ) + memory-centric KV token-time 成本度量 组合应用到 LLM 应用级调度,在保证 finish-time fairness 的前提下实现近 SJF 效率。

维度JustitiaDualPathPPDMFSTensorHubPrfaaSZeRO-PrefillTileRTKVServe
优化目标多应用 JCT + fairnessKV-Cache I/O 吞吐Multi-turn TTFTTTFT SLO 达标率权重传输延迟跨 DC prefill 吞吐MoE prefill 吞吐单请求 decode 延迟KV 传输带宽
调度粒度Application (多 inference DAG)Request (路径选择)Request (Turn routing)Flow (per-layer)Replica (权重分发)Request (长度阈值)Batch (饱和阈值)Tile (warp 级)Request (profile 选择)
调度资源KV-cache 显存 (blocks)存储+网络带宽Compute (P vs D)网络带宽 (link)NIC 带宽Compute + networkGPU compute windowSM + NVLinkNetwork bandwidth
理论基础GPS/WFQ (1989/1993)带宽约束分析Offline profiling tableReverse MLFQ (LLF 近似)无形式化吞吐 min model物理量 T 标定AOT 编译Analytical model
公平性保证常数延迟界 $2c_{\max}+C_{\max}/M$Per-request EDF
预测/估计Per-app MLP (2.16ms)Token count proxyOffline lookup tableMLU + RLIProgress counterGrid search ($t$, $N_p/N_d$)Profile run (T)AOT staticBandit + analytical
WorkloadAgentic multi-inferenceAgentic (157 轮)Multi-turn dialogueMoE disaggregatedRL trainingLong-context prefillPrefill-only MoEBS≈1 decodePD disaggregated
评估规模1×A100 / 4×V1001152 GPU4×H10032 GPU (testbed)1024 GPU32 H200 + 64 H208×H100/H2008×H200 NVL同节点测试
开源未公开未公开未公开未公开未公开未公开vLLM v0.11.0部分开源Apache-2.0

Justitia 独有的 contributions:

  1. KV token-time 成本度量——将时间维度引入 KV 显存占用度量,$c = pd + d^2/2$ 是二次的,而 VTC 的 $p+2d$ 是线性的 [2510.17015]。消融实验显示这一度量贡献 42.3% 的 JCT 改善 [2510.17015]。在所有 8 篇相关工作中,没有任何一篇提出类似的"显存 × 时间"成本度量——DualPath 用 token count proxy [2602.21548],MFS 用 MLU(Size_rem / Time_rem × B)[2603.17456],PrfaaS 用 KV 字节数 $S_{\text{kv}}$ [2604.15039]
    1. Finish-time fairness 替代 instantaneous fairness——放弃"时时刻刻等分资源"转为"保证没有任何应用比理想公平下更晚完成" [2510.17015]。PPD 和 MFS 都不提供公平性保证 [2603.13358] [2603.17456];PrfaaS 只做 producer-consumer balance 而非 inter-tenant fairness [2604.15039]
      1. Per-app lightweight MLP——53% 误差、2.16ms 开销、100 样本训练 [2510.17015]。这与 ZeRO-Prefill 的硬件级 T 标定 [2605.02960] 和 PPD 的 offline profiling table [2603.13358] 形成预测方法论的三路对比:Justitia 用 ML 模型,ZeRO-Prefill 用物理量,PPD 用网格插值。
      2. 可攻击面 #

        A1: 评估规模远逊于同期工作。Justitia 仅在 1×A100 和 4×V100 上评估 [2510.17015],而同期 DualPath 达 1152 GPU [2602.21548]、TensorHub 达 1024 GPU [2604.09107]、PrfaaS 达 96 GPU [2604.15039]。单卡 + 4 卡 TP 的结论能否推广到多副本 + 路由层 + 动态扩缩容的生产环境,作者"声称可推广但未给数据"的说法缺乏说服力。

        A2: KV token-time 公式在 prefix caching 和 P-D 分离下失效。$c = pd + d^2/2$ 假设 prefill KV 从 0 开始独占增长 [2510.17015]。但在 shared prefix 场景下(PPD 的 multi-turn [2603.13358]、DualPath 的 98.7% cache hit [2602.21548]),KV 被多个请求共享,实际显存占用远低于公式预测。在 P-D 分离场景下(PrfaaS [2604.15039]),prefill 和 decode 的 KV 生命周期分属不同 GPU,$pd + d^2/2$ 的"连续累积"假设不成立。

        A3: 非抢占设计与 SLO-aware serving 的矛盾。Justitia 只能在 inference 结束时做应用级切换 [2510.17015]。MFS 在 flow-level 实现了带宽层面的隐式抢占(低优先级 flow 被 starve)[2603.17456]。PrfaaS 的双时间尺度调度器可以在运行时做 P↔D 角色转换 [2604.15039]。Justitia 的非抢占粒度(整条 decode 完成后才切换)在长 decode 序列下可能产生分钟级的 priority inversion。

        A4: Per-app MLP 的冷启动问题未解决。Justitia 要求每类应用有 100 样本的 profile 数据 [2510.17015]。这在 agentic 系统中尤为致命——agent runtime 里 prompt template 频繁变化、新工具调用模式不断涌现。PPD 的 offline profiling 虽然也有冷启动问题,但其 scoring function 至少可以 fallback 到标准 PD 路径($x=0$)[2603.13358]。Justitia 没有描述冷启动 fallback 策略。

        A5: 公平性基准的自参照问题。Finish-time fair ratio 用 VTC 的 JCT 作分母 [2510.17015]——如果 VTC 在某场景下极慢(如高竞争下 VTC 的 JCT 暴涨 10×),ratio ≤ 1 就很容易达到。缺乏独立的公平基准(如 max-min fairness 的绝对数值或 GPS 理想 JCT 的归一化)。这在 MFS 的评估中也类似——MFS 用无争用 baseline 归一化 CCT [2603.17456],至少参考系是明确的硬件理论值。

        生态位 #

        Justitia 的生态位是 agentic multi-inference 应用的公平性调度器——一个在 vLLM 之上、在 agent runtime 之下的薄调度层。

        范式定位:Justitia 属于"application-aware inference scheduling"这一新兴子方向。在 LLM serving 从单请求 FCFS 演进到多应用 DAG 的过程中,调度粒度从 token(vLLM continuous batching)→ request(SGLang RadixAttention)→ application(Parrot/VTC/Justitia)逐步上升。Justitia 在 application 这一层引入了经济学级别的公平性保证(WFQ 的 GPS 参考系统),超越了此前工作的启发式调度。

        互补关系

        • 与 DualPath 垂直互补:DualPath 优化 KV 的物理传输 [2602.21548],Justitia 优化 KV 的逻辑分配 [2510.17015]
        • 与 KVServe 垂直互补:KVServe 压缩 KV 的物理大小 [kvserve],Justitia 调度 KV 的占用时长
        • 与 ZeRO-Prefill 场景互斥:ZeRO-Prefill 面向 prefill-only(无 decode)[2605.02960],Justitia 需要 decode 阶段的 KV 累积来度量成本

        采纳障碍

        1. 未开源——所有 8 篇相关工作中仅 KVServe 和 TileRT 部分开源,但 ZeRO-Prefill 已在 vLLM v0.11.0 上实现 [2605.02960],展示了可行的集成路径。Justitia 的 vLLM scheduler 替换应该更轻量(只改排序逻辑),但尚无开源实现
        2. 单节点评估限制了可信度——如 A1 所述
        3. Prefix caching 不兼容——如 A2 所述,这是 2026 年生产环境的标配功能
        4. 替代方案:如果放弃公平性保证,SRJF + starvation timeout 是更简单的实现(Justitia 自己的实验也显示 SRJF 在 avg JCT 上与 Justitia 接近 [2510.17015]),只是在 elephant+mice 场景下有饥饿风险。如果需要 SLO-aware 调度,MFS 的 Defer-and-Promote + MLU 是更直接的方案 [2603.17456],但仅面向网络层而非显存层。

          未探索方向 #

          H1: KV token-time × prefix sharing × P-D 分离的统一成本模型。Justitia 的 $c = pd + d^2/2$ [2510.17015]、PrfaaS 的 $\Phi_{\text{kv}} = S_{\text{kv}}/T_{\text{prefill}}$ [2604.15039]、DualPath 的 working set model [2602.21548] 都是单维度成本模型。一个将 shared prefix credit、P-D KV transfer overhead、compression ratio 统一编入的 cost function $C_j = \sum_i \frac{(p_i - p_{\text{shared}_i})(d_i) + d_i^2/2}{\text{cr}_i}$ 可以同时服务调度决策(Justitia)、路由决策(PrfaaS)、和压缩决策(KVServe),但目前无人尝试。

          H2: Online learning 替代 per-app MLP 解决冷启动。Justitia 的 MLP 需要 per-app offline training [2510.17015],KVServe 的 bandit controller 用 ε-greedy 在线学习 [kvserve],PPD 用 offline grid profiling + online lookup [2603.13358]。一个自然的混合方案是:对已知应用类型用 MLP 的 virtual finish time,对未知类型用 bandit 在 $[V(a_j), V(a_j) + C_{\text{default}}]$ 区间内在线调整,每完成一个 inference 就用 actual KV token-time 修正估计。这将 Justitia 的 WFQ 框架从"需要 per-app profile"扩展到"zero-shot 新应用"。

          H3: Hierarchical virtual-time for multi-node clusters。Justitia 的全局虚拟时间 $V(t)$ 在单节点下 $O(\log N_t)$ 高效 [2510.17015],但论文承认多节点同步未解决 [2510.17015]。DualPath 在 1152 GPU 上用 central scheduler [2602.21548],TensorHub 用 centralized reference server [2604.09107]——两者都证明中心化调度在千 GPU 规模可行。Justitia 可以采用层次化虚拟时间:每个 serving replica 维护局部 $V_{\text{local}}(t)$,全局 coordinator 以粗粒度同步 $V_{\text{global}}(t)$,类似 MFS 的 centralized coordinator 与 local RMLQ 的分层 [2603.17456]

          H4: WFQ + network flow scheduling 的端到端联合。Justitia 调度 KV 显存但不感知网络 [2510.17015],MFS 调度网络但不感知 KV 显存 [2603.17456]。在 disaggregated MoE serving 下,一个 TTFT 既受 KV 分配顺序影响(Justitia 的管辖范围),又受三阶段通信争用影响(MFS 的管辖范围)。将 Justitia 的 application-level virtual finish time 作为 MFS 的 per-request TTFT deadline 输入,可以实现"应用级公平 → 请求级 SLO → flow 级调度"的三层级联,但需要跨层信息传递的机制设计。

          H5: Persistent kernel execution 下的 KV-aware scheduling。TileRT 的 persistent Engine Kernel 将整个 decode 层融合为单次 launch [tilert-speed-scaling-law],消除了 kernel 间的调度间隙。在这种执行模型下,Justitia 的调度粒度(inference 结束时切换应用)需要与 persistent kernel 的 tile pipeline 协调——调度器不能在 kernel 中间切换应用,但可以在 tile 边界注入优先级信号。这是 GPU-resident scheduling(TileRT)与 application-level scheduling(Justitia)的融合方向,目前完全未被探索。