待读论文
01. Rethinking Key-Value Cache Compression Techniques for Large Language Model Serving
打开本篇完整解释
它在追问什么:现有 KV cache compression 放进真实 serving stack 后,显存变小是否真的会让服务变快。
论证路线
论文按系统审计方式组织:先解释 KV cache 在 LLM serving 中为什么成为显存瓶颈,再回顾量化和稀疏/驱逐类压缩方法,随后从 throughput、response length distribution、negative samples 三个维度重评代表算法,最后提出 predictor/router,把评测结论变成 serving policy。
评测改了哪些口径
评测口径变化:不只看显存节省和平均准确率,而是放进 FlashAttention、PagedAttention、LMDeploy、tensor parallelism、不同 batch/sequence length 组合里测。
端到端视角:压缩可能让每 token decode 变快,但 response length 变长,最终 E2E latency 未必下降。
样本级风险:平均分掩盖 long-context negative samples,尤其 QA、summarization、code 任务会出现严重退化。
系统策略:throughput predictor、length predictor、request router 让压缩不是默认全开,而是请求级选择。
评测设置
实验覆盖 KIVI、GEAR、StreamingLLM、H2O。KIVI 使用 G=32、R=128;GEAR 使用 2% sparsity、rank 2;StreamingLLM/H2O 使用 64 initial/heavy + 448 recent,总 cache size 512。模型包括 LLaMA-2/3、Mistral 等;ShareGPT 用于 throughput/length,LongBench 用于 negative sample。脚本分别固定 batch 改 sequence、固定 sequence 改 batch,且区分 prefill/decode。
端到端数字
LLaMA3-70B 在 batch 512、prompt 2048、FP16 权重约 130GB 时,KV cache 可达约 512GB。Table 3 显示 tensor parallelism 会削弱 compression speedup:prefill TP=1 时 KIVI-4 约 1.06x、GEAR-4 0.86x、H2O 0.58x;decode TP=1 时 H2O/StreamingLLM 约 1.34x,但 TP=2/4 后收益下降。Length analysis 中 KIVI、GEAR、H2O、StreamingLLM 输出长度分别约 1.69x、1.70x、1.55x、1.76x;router 能把多种压缩策略平均 E2E latency 从 9-13 秒区间降到 6-7 秒区间。
哪些结论可以外推
这篇可作为 PACE/CONCUR 的前置。KV compression 在 heavy KV 场景、合适的 batch/TP 组合且不拉长输出时才可能带来收益;论文并没有否定压缩本身。结论依赖当时的模型、kernel、硬件与压缩实现,length predictor 遇到新任务分布也可能失准。端到端评测方法比某张表里的固定排名更容易迁移。
02. PACE / CONCUR: Proactive Agent-Level Admission Control for Efficient Agentic Batch Inference
打开本篇完整解释
Agent 负载的症状:一次 agent 执行包含多轮 reason/tool/generate。普通 request-level batching 不追踪这段生命周期,KV cache 因而会在中段 thrashing。
论证路线
论文先定义 agentic batch inference 的三阶段行为:warmup、middle-phase thrashing、cooldown;再分析 SGLang/LRU/HiCache 这类 cache-centric 方案为何不足;方法部分提出 agent-level controller;实验对比原生 SGLang、request-level admission、HiCache 和 CONCUR。
控制器改了什么
- 提出 middle-phase thrashing:GPU KV cache usage 接近饱和、hit rate 崩溃,recomputation 占据大量 E2E latency。
- 把控制粒度从 request 转为 agent:
admit、pause、resume 控制 active agents。
- 把 KV cache 当作 congestion resource,用 cache usage 和 hit rate 反馈调 AIMD window。
工作负载和硬件
实验基于 SGLang,模型包括 Qwen3-32B 和 DeepSeek-V3,硬件为 H100 80GB、NVLink 900GB/s、跨节点 RoCE。baseline 包括 SGLang、request-level admission control、HiCache。控制参数示例:alpha=2、beta=0.5、Ulow=0.2、Uhigh=0.5、Hthresh=0.2。
吞吐与命中率
Qwen3-32B batch 256、TP=8、8 GPU 时,SGLang 约 1480s,CONCUR 约 362s,达到 4.09x;DeepSeek-V3 batch 40、TP=16 时从 3877s 降到 2043s,约 1.90x。DeepSeek-V3 batch 40 的 cache hit rate 中,SGLang 约 35.41%,CONCUR 约 73.36%;HiCache 可到 96.08%,但 CPU offloading/PCIe 传输让端到端不占优。
AIMD 的适用条件
CONCUR 没有更换 eviction policy,而是在 agent 生命周期层面限流,LLM serving 的控制对象也从请求队列扩展为长寿命状态机。当前证据主要来自 Qwen3-32B、DeepSeek-V3 和 8/16 GPU 配置,控制器还需要持续取得可靠的 cache usage 与 hit-rate 反馈。更复杂的多租户优先级和工具调用时延抖动是否会破坏 AIMD 稳定性,论文尚未完全回答。
03. SpecForge: A Flexible and Efficient Open-Source Training Framework for Speculative Decoding
打开本篇完整解释
SpecForge 针对的瓶颈:高质量 draft model 的训练仍难以复现和扩展,这会卡住 speculative decoding 的实际部署。
文章怎么展开
前半解释 EAGLE-3 和 Training-Time Test 的训练复杂度,指出 target model 与 draft model 用同一套 training stack 会浪费;中间提出 SpecForge 的 target-draft decoupling、hybrid parallelism、sparse tree attention;后半发布 SpecBundle 并评估训练吞吐和推理加速。
框架怎样拆分
- target model 冻结且巨大,走 SGLang/vLLM 类 inference backend;draft model 小且训练,走 FSDP/ZeRO Stage 2。
- TTT attention 的 dense logits 占 activation memory 极高,SpecForge 用 sparse tree attention/FlexAttention 降低显存和时间。
- 发布面向 Llama/Qwen/Kimi 等模型族的 SpecBundle draft models,使 speculative decoding 更容易落地。
训练与推理评测
训练框架评估在 8 张 H200 上,sequence length 4096。模型覆盖 LLaMA3.1-8B、LLaMA3.3-70B、Qwen3-30B-A3B、Qwen3-235B-A22B。评估 step time、tokens/s、backend 对比、attention kernel peak memory,并在 MTBench、Math500、GSM8K、HumanEval、LCB、GPQA 等任务上看推理效果。
训练和服务数字
Qwen3-235B-A22B 的训练吞吐从 ZeRO-3 baseline 约 2025.7 tokens/s 到 SpecForge 约 20227.2 tokens/s,约 9.99x;Qwen3-30B-A3B 约 4.31x;LLaMA3.1-8B 约 2.01x。target backend 对比中 SGLang 最高快 6.8x;attention kernel 在 sequence length 4096 时减少约 62.1% execution time 和 93.5% peak memory。SpecBundle 在 SGLang 上最高约 4.48x E2E inference speedup。
适用范围
这篇讲的是 speculative decoding 的基础设施:draft 训练数据、target-regenerated responses、TTT length、draft architecture,比单纯看 acceptance rate 更接近部署问题。它主要解决 EAGLE-3 一类 drafter 的训练工程,并不证明所有 speculative decoding 算法都会得到同等收益;target 模型、推理 kernel 或数据分布一变,已经训练好的 SpecBundle 仍可能需要重新适配。
04. ReSpec: Towards Optimizing Speculative Decoding in Reinforcement Learning Systems
打开本篇完整解释
RL rollout 的额外难点:Actor 每轮都会更新,drafter 很快变旧;serving 中面向固定 target model 的 speculative decoding 因此不能原样照搬。
文章怎么展开
论文先拆 RL iteration:generation、reward/critic inference、actor update,并量化 generation 占比;再诊断 large batch 下 speedup 递减、actor 漂移、policy degradation;方法分为 Adaptive Server 和 Online Learner;实验围绕稳定性、速度、组件消融和异步更新频率。
两块机制
- Adaptive Server 运行时根据 active batch size 选择 speculative 参数或切回普通 decoding。
- Reward-weighted KD 用高 reward trajectory 更强地更新 drafter,避免低质量 rollout 拉偏。
- Async Update Overlap 用 replay buffer 和更新间隔把 drafter training 藏进 RL pipeline idle slots。
系统和任务
系统基于 VeRL 和 SGLang,约 2K LOC。硬件是两台各 8 张 H100 80GB 的节点。模型为 Qwen2.5-3B/7B/14B,训练算法 GRPO,任务是真实数学数据集。3B 使用 1 generation GPU + 1 training GPU,7B/14B 使用 8+8 GPU,seq len 到 8192。
加速与稳定性
7B、max response length 8K 时,math generation 占 83%-86%,code generation 占 70.9%-75.5%。Qwen-3B 平均 1.84x、最高 4.53x;Qwen-7B 平均 1.69x、最高 2.41x;Qwen-14B 平均 1.50x 左右。直接 EAGLE-3 在中后期会 validation 崩溃,ReSpec 基本跟随 no-acceleration baseline。
仍需验证的条件
ReSpec 说明 speculative decoding 不是“永远打开就快”。在 RL rollout 里,batch size、actor drift、reward 分布、drafter 更新频率共同决定是否加速。实验集中在两台 H100、Qwen2.5 和 GRPO 数学任务;换成代码 agent、更异步的 RL 算法或更快变化的 actor 后,reward-weighted KD 的稳定性和 learner 资源开销仍需重新验证。
05. DSB: Dynamic Sliding Block Scheduling for Diffusion LLMs
打开本篇完整解释
固定 block 的问题:dLLM 可以并行 unmask,但全局并行容易破坏语言顺序,固定 block 又会过早或过晚提交 token。DSB 让边界随解码状态滑动。
文章怎么展开
论文先解释 masked diffusion inference 和 naive block schedule,再指出 late/premature decoding 问题;方法部分提出 Dynamic Sliding Block 与 DSB Cache;实验覆盖 LLaDA/Dream 多模型和 GSM8K、MATH、HumanEval、MBPP、BBH 等 benchmark。
双边界与缓存
- active block 左右边界动态滑动,不要求当前固定块全部填满才进入下一块。
- 高置信 token 可以提前解码,低置信 token 可以等更多上下文。
- DSB Cache 用 prefix window update 和周期性 global refresh 应对动态边界引起的 KV instability。
模型和任务
模型包括 LLaDA-8B-Instruct、LLaDA-1.5、Dream-v0-Base-7B、Dream-v0-Instruct-7B。baseline 包括 vanilla Top-1、Fast-dLLM、Naive Block、AdaBlock-dLLM、Dual Cache、dKV-Cache-Decode。硬件为单张 H200 140G,generation length 256,block length/Sinit=32。
质量与速度
LLaDA-8B-Instruct 上,DSB greedy 在 GSM8K 达约 78.54 accuracy / 51.03 TPS;加入 DSB Cache 后 GSM8K 可到约 80.29 accuracy / 99.61 TPS。HumanEval 上 DSB const. 达约 42.07 accuracy / 124.6 TPS,优于 AdaBlock。附录动机实验显示 late decoding 在 LLaDA/Dream 上超过 80%,premature decoding 约 44.3%-59.0%。
参数依赖
DSB 是 dLLM 的解码顺序系统,不是普通 AR LLM 的 KV cache 策略。它处理并行 unmask 与自然语言因果顺序之间的冲突。实验使用单张 H200、固定 256 token 生成长度和几类 masked dLLM;动态边界与 cache refresh 的最佳参数会随模型校准程度和长输出任务变化,这里的吞吐数字不能直接外推到普通自回归模型。
06. DSA: Efficient Inference for Video Generation Models via Distributed Sparse Attention
打开本篇完整解释
DSA 的切入点:视频 DiT 的 attention 序列很长,稀疏计算省下的 FLOPs 仍可能被多 GPU sequence parallel 的通信吃掉。DSA 因此联合设计稀疏模式和分布式执行。
文章怎么展开
论文先量化 Wan/Hunyuan 类视频生成模型的 attention 时间占比,再指出 sparse attention 与分布式 sequence parallelism 的不匹配;方法部分提出 local pattern matching、mixed parallelism、dynamic attention scheduling;实验比较 dense、SVG、USP 和 DSA。
两类通信路径
- local pattern matching + majority voting:不集中全局 Q/K 判断 pattern,而是在各 GPU 本地判断后汇总。
- mixed parallelism:spatial sparse heads 用 partial-ring,temporal sparse heads 用 Ulysses-style all-to-all。
- dynamic scheduling 根据 spatial/temporal head 比例重排执行,尽量重叠通信和计算。
模型和视频设置
模型包括 Wan2.1-1.3B、Wan2.1-14B、Hunyuan-Video-13B;任务为 720p、5 秒视频生成。质量用 VBench、PSNR、SSIM、LPIPS;系统 baseline 包括单 GPU dense/SVG 和 8 GPU USP。
加速与质量
Wan2.1-14B 从单 GPU dense 约 1889.25s 降到 8 GPU DSA 约 175s,约 10.79x;对比 USP 251.26s 仍有约 43% 提升。Hunyuan-video-13B 从 1790.34s 到 189.38s,约 9.45x。质量上,Wan2.1-14B 的 DSA PSNR/SSIM/LPIPS 为 33.19/0.775/0.103,接近 dense/SVG。
换模型后要重测什么
不要只看 FLOPs。视频生成的关键是:稀疏掉的 token 是否也少通信,计算和通信能否被重新排布。论文集中测试 720p、5 秒视频和 Wan/Hunyuan 三个模型;如果 attention head 的时空稀疏结构、GPU 拓扑或视频长度变化,pattern matching、partial-ring 与 all-to-all 的分工可能需要重新 profile。
07. Impact-driven Context Filtering for Cross-file Code Completion
打开本篇完整解释
为什么先过滤上下文:Repo-level code completion 检索出的许多 chunk 对 ground-truth completion 没有帮助,有些还会降低生成概率。
文章怎么展开
论文先定义 cross-file retrieval-augmented code completion,再提出 likelihood-based contribution score 给 chunk 标 positive/neutral/negative;方法部分训练 CodeFilter 做 on-demand retrieval 与 polarity filtering;实验评估 infilling、left-to-right、negative context subset、prompt length 和 plug-and-play policy。
标签与控制 token
- 影响分数
S(ci|Cin,Y)=(L(Y|Cin,ci)-L(Y|Cin))/L(Y|Cin),直接衡量 chunk 对目标 completion likelihood 的贡献。
- 模型先输出
<EC>/<MC> 判断是否需要跨文件上下文,再输出 <pos>/<neg>/<neu> 过滤 chunk。
- 小模型的过滤策略可服务更大 generator,属于输入侧推理系统优化。
数据和训练设置
训练数据来自近 6k Python repositories,约 43k instances、超过 400k labeled chunks。模型包括 StarCoderBase-3B/7B 和 CodeLlama-7B/13B,2 epochs,batch size 512,max sequence 4096,4 张 A100 80GB。评估 RepoEval 和 CrossCodeLongEval。
补全质量与 prompt 长度
top-10 chunks 中只有约 15% 真正正向支持 completion,5.6% 有负影响,并影响约 19.81% instances。CodeFilter 平均 EM 提升约 3%,cross-file prompt tokens 减少超过 80%;含 negative chunks 子集提升更大,例如 StarCoderBase-7B left-to-right RepoEval-Line 从 7.23 EM 到 28.92。
泛化限制
这是执行系统层面的上下文裁剪,不讨论安全 RAG。负上下文会把生成分布拉错,因此减少 token 也可能提高质量。训练标签借助已知 ground-truth completion 的 likelihood 构造,线上无法直接观察这个量;数据又以 Python 仓库为主。跨语言、跨代码库风格以及面对新型检索器时的泛化,都要在落地前重测。
08. SPPO: Efficient Long-sequence LLM Training via Adaptive Sequence Pipeline Parallel Offloading
打开本篇完整解释
SPPO 处理的内存问题:百万 token 训练的 activation 会涨到 TB 级。系统用序列流水线和分段卸载,在有限 GPU 集群上安排这些中间状态。
文章怎么展开
论文从百万 token 长序列训练的 activation memory 爆炸入手,指出 recomputation 与 CPU offloading 会牺牲训练效率,传统并行会消耗过多 GPU;方法部分提出 Adaptive Sequence Pipeline Parallel Offloading,核心是 subsequence-level offloading、two-level activation management、adaptive pipeline scheduling;实验与 Megatron-LM/DeepSpeed 对比。
并行与卸载如何联合
- 把 offloading 粒度从整条 sequence 降到 subsequence,缓解 CPU-GPU 带宽线性增长带来的 stall。
- sequence-aware offloading 和 two-level activation management 保留高频访问激活在 GPU,其他激活分层管理。
- adaptive pipeline scheduling 用 heuristic solver 和 multiplexed sequence partitioning 降低 pipeline bubbles。
模型、序列和硬件
论文比较 Megatron-LM、DeepSpeed 与 SPPO,在 32/64/128 张 NVIDIA Ampere GPUs 上训练长序列 LLM。关注吞吐、可支持 sequence length、GPU memory、CPU offloading overhead、pipeline bubble 和训练 1B tokens 的 wall-clock time。
最大长度与吞吐
摘要报告 SPPO 相比 Megatron-LM 和 DeepSpeed 最高 3.38x throughput improvement;可在 128 张 A100 上训练 7B LLM、sequence length 到 4M tokens。论文还举例:7B、4M token sequence 需要约 16,384GB activation memory;65B、4M token 的 activation footprint 可达 80TB,传统资源需求超过 1024 H100。
哪些数字不能外推
它应该和 KV cache serving 论文一起读:一个处理 inference 时 KV memory,一个处理 training 时 activation memory。两者都说明长上下文不是单纯模型算法问题,而是内存层级和并行调度问题。SPPO 的 4M token 结果证明的是系统可运行性与吞吐,并不自动等于模型在超长上下文上有效收敛;不同 CPU-GPU 带宽、activation checkpointing 策略和模型结构也会改变 offloading 的收益。
09. Di-PS: System-Algorithm Co-Design for Asynchronous and Heterogeneous Cross-cluster LLM Training at Scale
打开本篇完整解释
Di-PS 的场景:单个巨型同构集群难以长期获得,多个异构集群则会遇到速度、网络和可靠性差异。Di-PS 让这些集群异步训练同一份 LLM。
文章怎么展开
论文先回答为什么需要 cross-cluster training:成本、供电散热、资源稀缺、工作负载规模不匹配;随后分析 inter-cluster bandwidth 低且波动、异构 NPU/网络导致异步训练不稳定、集群频繁故障;方法部分提出 centralized parameter server、pseudo-gradient penalty、resilience mechanism;实验包括 controlled setting 和生产部署。
系统和算法各管什么
- 中心化 PS 设计,比 decentralized outer optimizer 更能适配跨集群异构带宽。
- pseudo-gradient penalty 稳定 asynchronous two-stage optimization,避免 fast/slow cluster staleness 导致发散。
- 弹性 fault tolerance 机制支持 cluster participation/leave 和自恢复。
受控实验与生产案例
论文用多种异构训练集群做 controlled experiments,并报告生产环境部署:最多 9 个集群、超过 10,000 NPUs,训练 100B 参数 LLM。评估维度包括 training efficiency、scalability、model quality、failure handling、每个 cluster 的 overhead。
吞吐、扩展和训练规模
摘要报告 Di-PS 相比 synchronous cross-cluster approaches 最高 4.67x training efficiency improvement,并在异构资源上接近线性扩展。生产环境中,Di-PS 在最多 9 个集群、超过 10,000 NPUs 上训练 100B LLM,相比 single-cluster training 只有约 6% overhead,同时能处理频繁 failure 和 resource changes。
证据边界
这篇不属于 inference,但非常符合“GPU 集群也算”的新口径。它补齐的是大模型系统的训练端横向扩展问题,与 SPPO 的单训练任务内存/流水线优化互补。生产证据来自 NPU 集群和中心化 parameter server 架构,跨地域 WAN、不同优化器以及更强隐私隔离要求下能否保持相同效率并不确定;摘要级生产数字也不足以替代对收敛曲线和故障恢复过程的细读。
10. ICEFROG: A Layer-Elastic Scheduling System for Deep Learning Training in GPU Clusters
打开本篇完整解释
冻结层如何进入调度:Layer freezing 会同时改变作业吞吐、显存和精度代价。ICEFROG 把这个变量加入 GPU sharing 与 resource elasticity 的联合决策。
文章怎么展开
论文先介绍深度学习训练 workload 对 GPU cluster 的长期占用,再说明 GPU sharing、elastic training 的不足;方法部分提出 effective progress、frozen penalty、layer-aware throughput 和联合资源分配目标;实现为 Kubernetes 上的 customized scheduler;实验包括 48 GPU 实体集群和 960 GPU 大规模仿真。
调度器新增的状态
- 首次把 layer elasticity 纳入 GPU cluster scheduler,而不是只在单 job optimizer 内部使用。
- effective progress 同时衡量 throughput improvement 和 accuracy loss,使 scheduler 可以自动决定冻结层数。
- layer-aware scheduler 能利用冻结层导致的 GPU utilization/memory 下降,做更好的 colocation 和 elastic allocation。
物理集群与仿真
ICEFROG 部署在 12 台 GPU servers、48 GPUs 的物理集群上,并做 960-GPU cluster simulation。任务覆盖多种 DL workloads,baseline 包括 state-of-the-art GPU sharing enabled 和 elastic schedulers,如 Lucid、Optimus 等。
JCT 数字
摘要报告 ICEFROG 相对 SOTA DL schedulers 减少 average job completion time 36%-48%。正文开头还给出相对 Lucid 最高 48%、相对 Optimus 约 46% 的 JCT 改善。这些数字衡量 cluster-wide efficiency,不是单个模型的准确率。
适用任务
读这篇要从 scheduler 视角看 layer freezing:冻结层不仅改变单 job 速度,还改变 GPU utilization、memory footprint 和可共置性。方法只适合允许冻结部分层且精度损失可建模的训练任务;面对从头预训练、训练阶段频繁变化或 profile 与真实运行偏差较大的作业,effective progress 估计可能不稳,960-GPU 仿真结果也需要和更大实体集群区分看待。
11. Collaborative Inference and Learning between Edge SLMs and Cloud LLMs: A Survey of Algorithms, Execution, and Open Challenges
打开本篇完整解释
综述范围:文章整理边缘 SLM 与云端 LLM 在推理和训练阶段的协作方式,可作为边云协同系统的检索入口。
分类框架
论文先解释为什么“只云端 LLM”或“只端侧压缩模型”都不够:延迟、成本、个性化、资源限制;随后提出 edge SLM + cloud LLM 协同框架。推理部分按 task assignment、task division、mixture-based collaboration 分类;训练部分总结 parameter alignment、pruning、bidirectional distillation、small-model-guided optimization;最后整理 benchmark、部署案例和 open challenges。
设计空间怎样划分
- 把 LLM-SLM collaboration 同时放进 inference-time collaboration 和 training-time coordination,而不是只讲模型压缩。
- 推理 taxonomy 覆盖 task-level/token-level 的 assignment、division、mixture,以及 adaptive scheduling、resource-aware offloading、speculative decoding、modular routing。
- 把系统约束和算法角色放在一张设计空间里:edge 负责低延迟/本地个性化,cloud 负责复杂推理和全局能力。
材料怎样比较
作为 survey,它没有单一系统实验,而是比较已有工作与工业部署案例。论文提到 Walle 这类端云协同系统覆盖 300+ tasks、每天 10B+ invocations;还讨论 EdgeLLM、System 1/System 2 fallback、module-level offloading、branch-point partitioning、MoE routing 等范式。
调度要看哪些变量
“端侧先跑,失败再上云”只是推理协同的一种粗粒度策略。更完整的调度还要考虑 confidence、latency、resource budget、network condition 和任务粒度。训练协同则使用 distillation、LoRA/PEFT、pruning、quantization、bidirectional knowledge transfer 等机制,让 SLM 在特定场景逼近 LLM。
综述的证据边界
这篇适合作为“边云推理系统”的索引论文。读完 DSA/PACE 这类专门系统后,再读它能把 serving、offloading、routing、speculative collaboration 放进边缘设备和云端 LLM 的大框架。它是综述而不是统一实验,工业案例的硬件、流量和指标口径也不完全可比;应把 taxonomy 当检索地图,而不是把不同论文的速度或准确率横向拼成排行榜。
12. DAWN: Dependency-Aware Fast Inference for Diffusion LLMs
打开本篇完整解释
DAWN 的调度信号:Attention map 用来估计 token 依赖。已有可靠前因的低置信位置可以提前提交,彼此冲突的位置则不会在同一轮解开。
置信度为什么不够
现有 dLLM 加速常用 confidence threshold:置信度高就并行 unmask,低就继续等。这个判断忽略了 token 之间的依赖。同样是 0.8 置信度,一个位置可能已经有可靠 anchor,另一个却和几个未确定位置互相牵制。把两者按同一阈值处理,要么太慢,要么一起解错。
依赖图、anchor 与冲突
- Dependency Graph Construction:每轮从最后几层的 attention map 构建稀疏有向图,并过滤 attention sink,避免把结构性高注意力误当成语义依赖。
- Anchor-Guided Decoding:高置信已确定 token 充当 anchor。图上受 anchor 影响的位置可以使用更低阈值,不必等到统一的保守门槛。
- Conflict-Based Scheduling:剩余候选按置信度贪心选最大独立集;依赖图中相连的位置不会在同一轮提交,减少并行更新冲突。
模型、任务和基线
模型覆盖 LLaDA-8B-Instruct、LLaDA-1.5、Dream-v0-Base-7B 和 Dream-v0-Instruct-7B;任务是 GSM8K、MATH、HumanEval、MBPP。baseline 包括逐 token 的 Original sampler、Fast-dLLM 的 confidence-aware parallel、KLASS 和 LocalLeap。主实验在单张 H100 80GB 上完成,生成长度 256、block length 32,DAWN 平均最后 4 层 attention。
吞吐、准确率与消融
总体 speedup 是 1.80x 到 8.06x。LLaDA-8B-Instruct 在 GSM8K 上保持 77.94 accuracy,吞吐从 10.32 TPS 提到 44.72 TPS,也就是 4.33x;LLaDA-1.5 在 MBPP 上达到最高 8.06x。消融里去掉 Anchor-Guided Decoding 后,GSM8K 吞吐从 44.72 降到 22.31 TPS,说明主要收益确实来自“有可靠前因时放宽阈值”,而不是图结构本身。
Attention 代理的限制
先读 DSB,再读 DAWN。DSB 处理宏观 block 顺序,DAWN 处理 block 内的依赖与冲突。论文把 attention 当成依赖代理,这很便宜,但不等于真正的因果关系;结果在推理 benchmark 上很强,换到长生成或开放域对话时仍要重新检查图的稳定性。
13. Inference-time Alignment via Sparse Junction Steering (SIA)
打开本篇完整解释
SIA 何时调用 value model:只有高熵分岔点会触发候选重排,其余 token 继续沿 base model 的分布生成。
计算与分布扰动
论文会测 harmlessness,但方法不是攻击、防御协议或隐私机制。它研究的是生成时怎样少跑 value model、怎样减少 steering 对原分布的扰动,核心问题是 inference-time control 的计算与质量折中。
价值模型与 gate
第一步是训练 token-level value model。作者用 trajectory reward 做蒸馏,让 value model 学到局部 token 对最终奖励的贡献。第二步是 gating:论文比较随机、位置、结构、attention 与 entropy 等信号,最后选 entropy。高熵意味着模型正站在多个合理续写的分岔口,这时外部 reward 最有价值。被 gate 选中的位置才对 top-k candidate 做 value guidance。
模型、目标和比较方法
模型包括 Qwen3 0.6B、1.7B、4B 和 Llama-3.2 1B、3B,并测试小 value model 指导 Qwen3-8B/14B、Llama-3.1-8B 的 weak-to-strong 场景。数据覆盖 HEx-PHI、AlpacaEval、TruthfulQA,对应 harmlessness、helpfulness、honesty。比较对象有完整 token steering、Best-of-N 和 chunk-based search。
干预比例与计算量
多数模型只 steering 20% 到 80% token 就达到最佳 reward,继续加干预反而可能掉分。约 20% steering 可以追平 BoN-8,计算量大约少 4x;20% 到 40% 可以追平 CBS-8,效率高 2x 到 4x。Qwen3 的强 base model 在约 20% 到 40% 干预时,能接近甚至超过对应 instruct model。论文还把 SIA 接到 search-based 方法上,报告最高约 6x 的计算节省。
奖励裁判带来的限制
SIA 把 value guidance 从连续控制改成事件触发控制,贡献不止于观察到 entropy 有用。代价是额外训练 value model,主评测还依赖 reward model 当裁判。解释结果时,需要区分“少干预更好”和“裁判模型的偏好被利用”。
14. Semantic-Aware Scheduling for GPU Clusters with Large Language Models (SchedMate)
打开本篇完整解释
SchedMate 增加的输入:除了 GPU 数、提交时间和少量 profile,调度器还会读取代码、日志与历史任务,恢复作业语义。
调度器缺了哪些语义
短任务的 profiling 可能和任务本身一样长;duration prediction 在代码更新后容易失效;失败日志里真正的 root cause 常被后续报错淹没。作者把这几件事归成一个问题:scheduler 缺少语义,而语义其实已经躺在 source code、runtime log、hardware metrics 和历史任务里。
三个组件怎样分工
- Scheduling Advisor:从源代码提取 workload fingerprint,检索相似历史任务,估算时长和资源画像,能跳过一部分 profiling。
- Metric Tracker:从日志中恢复训练进度和运行状态,发现 packing 或资源调整后实际 slowdown,给现有 scheduler 纠错。
- Failure Handler:先定位最早的关键错误,再让 LLM 分类 infrastructure、framework 或 user-code failure,并对可恢复硬件故障触发隔离、换机和 checkpoint restart。
实现和评测环境
系统约 5,500 行,基于 Ray、vLLM、FlagEmbedding、Redis 和 NVML。作者把它接到 Lucid、Sia,也单独实现 SJF 版本。模型用量化 Qwen2.5-7B-Instruct 和 BGE-m3;trace 包括 Philly、Helios、Acme、Sia,以及自建 Mars,后者来自 1,024-GPU 集群的 500 个 7B 到 100B LLM 训练任务。
JCT、预测与恢复结果
物理集群实验中,Lucid+SchedMate 的 average JCT 比 Lucid 低 23.2%,Scheduling Advisor 平均只花 9 秒。仿真中对 Lucid 的 average JCT 改善为 1.23x 到 1.91x;独立调度版本比 QSSF 降低 25.7%,比 Tiresias 降低 16%,Failure Handler 再带来约 12.5% 改善。论文摘要写 128-GPU physical cluster,但硬件段同时写了 8 nodes x 8 A800,这个拓扑数字内部不一致,读性能比例比死记 GPU 总数更稳妥。
与 ICEFROG 的关系
ICEFROG 把 layer freezing 变成 scheduler 可见的弹性,SchedMate 则把代码与日志里的语义变成 scheduler 可见的信息。两篇都在扩展调度器的状态空间,只是一个新增可控 knob,一个新增观测。
15. DDiT: Dynamic Resource Allocation for Diffusion Transformer Model Serving
打开本篇完整解释
DDiT 的资源单位:DiT 与 VAE 分开调度,单个请求还可以在 denoising step 边界改变并行度,不必始终占用同一组 GPU。
性能画像给出的约束
第一,T2V 的 DiT 和 VAE 在 batch size 1 时就接近饱和,继续 batching 主要拉高单请求延迟。第二,DiT 会随分辨率和 GPU 数获得不同程度的加速,但 VAE 几乎不吃多 GPU。第三,静态 degree of parallelism 只对某一种负载合适,在线请求一变就会出现空闲 GPU 或错误并行度。
控制面和 engine units
DDiT 有 Offline Profiler、Centralized Control Plane 和 Engine Units。每张 GPU 先放完整权重,通信组按需建立,不预先把实例锁死。profiler 给不同分辨率找最合适的 DoP;global scheduler 结合等待时间、starvation 和当前空闲资源分配 GPU;engine controller 每个 denoising step 都能重组通信并 scale up/down。进入 VAE 时,资源会缩到更合适的规模。
模型链、请求和硬件
模型链是 T5v1.1-xxl encoder、OpenSora STDiT-v3 和 OpenSoraVAE。单机有 8 张 H800 80GB、NVLink 400GB/s;扩展实验仿真 8 节点 64 GPU。请求固定 51 frames、30 denoising steps,分辨率为 144p、240p、360p,arrival rate 从 0.25 到 1,并加入 burst。baseline 由 VideoSys 扩展出 static DoP、static/dynamic partition 等配置。
延迟与成本
单节点不同负载下,DDiT 的 p99 latency 最多下降 36.6%,对固定 DoP=4 的 average latency 最多下降 44.4%。多节点 burst 场景里,相对四种 baseline,p99 至少下降 30.4%,平均延迟至少下降 30%;成本最多下降 30.4%,是理论最优的 1.39x,而最好 baseline 仍是 2.08x。摘要把最高改善写成 p99 1.44x、平均 1.43x。
与 DSA 的分工
DSA 优化单次 attention 的计算与通信,DDiT 管整个 T2V pipeline 的 GPU 生命周期。前者回答“一步怎么算快”,后者回答“每一步给谁、给几张卡”。真正部署视频生成服务,两层通常要一起看。
16. PromptTuner: SLO-Aware Elastic System for LLM Prompt Tuning
打开本篇完整解释
Prompt tuning 的工作负载:它有训练式的迭代和梯度,请求却短、流量会波动,还有分钟级 SLO。PromptTuner 针对这组特征管理资源。
收敛与启动开销
训练 scheduler 常把固定 GPU pool 预先开好,空闲时成本照付;inference 系统通常一 job 一 GPU,也不擅长在分钟级 SLO 下快速组出多 GPU。LPT 的 GPU allocation overhead 可占总时间 37% 到 41%,而不同初始 prompt 又会让达到目标精度所需迭代相差 1.7x 到 4.5x。
Prompt Bank 与冷热 GPU 池
- Prompt Bank:按任务相似性检索可复用的初始 prompt,用两层索引把选择时间压到 10 秒内,减少后续 tuning 迭代。
- Workload Scheduler:每个 LLM 维护带预加载 runtime/weights 的 warm GPU pool,公共 cold pool 负责扩缩。调度器可一次分配多张 warm GPU,并判断请求是先查 Prompt Bank 还是直接执行。
工作负载和基线
主测试最多使用 4 台服务器、每台 8 张 A100 80GB,覆盖 GPT2-Base、GPT2-Large、Vicuna-7B 的 12 个数据集,并把任务切成 120 个 workload。baseline 是增强后的 INFless 和 ElasticFlow。作者还测试 LLaMA-30B、Qwen7B-R1,并把规模扩到 96 GPU。
SLO 与成本
相对 INFless,SLO violation 最多降低 4.0x、成本最多降低 1.6x;相对 ElasticFlow 分别是 7.9x 和 4.5x。大规模 96-GPU 场景中,PromptTuner 的 violation 是 25.4%,INFless 为 57.1%,ElasticFlow 为 78.2%;成本分别是 57.2、65.9、99.1 美元。Prompt reuse 单独贡献 13% 到 23% 的 violation 降幅和 30% 到 40% 的成本节省。
成本模型的限制
这篇最有用的判断是 LPT 不能硬塞进 training/inference 二分法。Prompt Bank 同时改变算法收敛速度和系统调度结果,属于典型 algorithm-system co-design。实验里的成本按 AWS p4de.24xlarge 价格估算,换云、换模型常驻策略后,绝对美元数会变,组件之间的因果关系更值得记。
第 A 组:图学习与大规模训练系统详细导读
本组四篇论文沿着两条线展开:UniTG、TorchGT、SYLVIE
处理图学习训练,Lins
处理大模型训练中的模型状态通信。四篇都把算法结构、并行方式、通信和底层执行放在同一个系统问题里。
证据说明
- UniTG:截至本导读撰写时,作者主页只公开了题目、作者、会议和摘要,没有论文
PDF、预印本、实验表或实现链接。下面凡涉及 UniTG
的内容都严格停留在摘要原文能支持的范围;没有 PDF 页码可标。
- TorchGT:依据 SC 2024 PDF 和
arXiv:2407.14106
全文。
- Lins:依据 IWQoS 2024
PDF 全文。需要留意版本命名:会议 PDF 的题目和系统名是
Lins,而 arXiv:2311.00257 v2 当前题目是 AMSP:
Reducing Communication Overhead of ZeRO for Efficient LLM
Training。本导读以用户指定的会议版 Lins
为主,同时提醒这一检索差异。
- SYLVIE:依据 ICDE 2024 PDF
全文。
- 下文“PDF 第 n 页”指下载文件的物理页,从封面页算第 1
页。实验结论同时尽量给出图号或表号。
17. UniTG: A Unified System for Efficient and Seamless Textual Graph
Learning
打开本篇证据受限解释
来源:作者公开摘要页,页面列为
VLDB 2026。
现有摘要支持哪些判断
UniTG 试图把文本属性图学习中原本分开的语言模型阶段和 GNN
阶段合成一次端到端训练,并在运行时、算法和执行调度三个层面共同消除规模与流水线效率问题。
两套训练流程为何彼此割裂
文本属性图同时有节点文本和图结构。常见做法先用语言模型生成或微调文本表示,再交给
GNN
学结构;摘要把现有方案的问题概括为四点:时间和资源效率低、解耦架构不灵活、可训练模型规模受限、没有充分利用图属性。这里的关键矛盾是:LM
和 GNN
各自可以优化,但两个阶段之间仍有中间表示、资源切换和执行空洞,最终
makespan 取决于整条链而不是某个 kernel。
摘要没有说明“现有系统”具体包括哪些方法,也没有披露是离线 LM
embedding、交替训练还是某一种特定 textual graph learning
范式。不能据此断言 UniTG 淘汰了所有两阶段方法。
摘要能还原到哪一层
公开信息只足以还原下面这条高层路径:
- 输入是带文本属性的图,训练同时涉及 LM 的文本建模和 GNN
的结构建模。
- 运行时用 Affinity-aware Flow Parallelism 根据 graph
affinity 扩展大图 GNN 训练。
- 算法层用 Collaborative Learning
联合文本与图两种模态,使 LM 与 GNN 可以共同训练。
- 执行层用 Streamlined Pipeline Schedule,把 LM
fine-tuning 穿插进 GNN pipeline,压缩 pipeline bubble。
- 输出是联合训练后的 textual graph learning
模型;摘要声称模型质量没有下降。
Flow 如何切分、affinity 如何定义、LM 参数何时更新、GNN pipeline
有几级、前反向依赖如何保持、跨阶段张量如何传递,公开摘要都没有给出。以上数据流不能再细化成可实现的执行图。
三个已公开组件
1. Affinity-aware Flow Parallelism
它属于运行时层,摘要只说“利用 graph affinity 扩展大型 GNN
训练”。合理的阅读重点是它如何把图相关性转成并行划分或调度约束,但目前没有证据说明
affinity 指社区、邻接局部性、文本相似性、LM/GNN
阶段亲和性,还是设备放置亲和性。也没有公开通信复杂度或负载均衡方法。
2. Collaborative Learning
它属于算法层,目标是整合文本和图模态并实现准确的联合训练。摘要没有损失函数、参数共享方式、训练目标或消融结果,因此只能确认“联合”这一方向,不能把它具体解释成蒸馏、对比学习、交替优化或端到端反向传播中的任何一种。
3. Streamlined Pipeline Schedule
它属于执行层。摘要给出的动作很明确:把 LM fine-tuning 交错放入 GNN
pipeline 的空洞中,提高资源利用率。至于调度是静态还是动态、micro-batch
怎样编排、LM/GNN 是否共享 GPU、bubble 降了多少,均未披露。
公开结果:17.3 倍
公开摘要声称:相对 state-of-the-art LM-based graph learning
systems,UniTG 将 learning makespan 最多降低 17.3
倍,且不损害模型质量。这个结论来自作者主页摘要;当前没有
PDF 页码、图号或表号可核对。
实验设置证据不足:数据集、LM/GNN 型号、参数规模、GPU
型号与数量、网络、baseline 名单、makespan
定义、质量指标、平均值与方差、17.3 倍对应哪个
workload,均未公开。“without compromising model
quality”也没有公开数值。这个 17.3
倍可以作为作者的总体结果陈述,不能用于复现预算或横向比较。
可能的贡献(等待全文验证)
如果全文证实摘要描述,UniTG 的贡献会是把图并行、联合学习和流水线放进同一端到端系统,让算法依赖与执行空洞共同影响并行计划。这样分析的是 textual graph learning 的整条临界路径,而不是彼此独立的 LM 和 GNN 加速阶段。
“first unified system”是作者在摘要中的优先权声明。缺少 related work
和系统定义时,现阶段不宜独立确认其“第一”。
公开材料没有回答什么
- 目前无法判断它适用于 node classification、link
prediction、graph-level task 中的哪些任务。
- 无法判断 LM 与 GNN 是否必须同构部署,或是否支持异构 GPU、CPU
offload、超大文本编码器。
- affinity-aware
并行可能依赖图结构或文本分布,但公开证据不足,不能判断对低局部性图是否仍有效。
- 17.3 倍没有实验上下文;全文公开前不应把它当成普遍速度上界。
- 没有代码、PDF 和消融,三层设计分别贡献多少无法核验。
与图训练系统的关系
UniTG 与本组另外三篇最直接的关系是“向上组合”。TorchGT 解决 Graph
Transformer 的注意力和图并行,SYLVIE 解决消息传递 GNN
的边界消息通信,Lins 解决 LM 训练的模型状态分片;UniTG 则把 LM 与 GNN
两个阶段当成一条流水线。摘要没有说它复用了后三者,以下只能作为技术坐标,不是实现事实。
- 相对 TorchGT,UniTG 的对象多了文本模态和 LM
fine-tuning;TorchGT 的 cluster-aware graph parallelism
可以帮助理解“graph affinity 如何进入运行时”,但两者 affinity/cluster
是否同义,证据不足。
- 相对 SYLVIE,UniTG
同样强调运行时反馈和流水线利用率,但 SYLVIE 的对象是分区边界消息,UniTG
还要处理 LM 与 GNN 跨阶段依赖。
- 相对 Lins,UniTG 的 LM
阶段理论上也会面对参数、梯度和优化器状态通信;摘要没有提 ZeRO
或独立状态分片,不能声称采用了 Lins。
- 在绿色论文全集中,它与 SPPO、Di-PS
同属大规模训练执行,与 Ymir/Titan/AutoSched
的集群调度层不同:UniTG
摘要描述的是单个联合训练作业内部的数据流与流水线,而调度论文通常决定作业之间如何分资源。
核对这篇时从哪里开始
现在只读作者页即可,顺序是问题四项缺陷 → 三层组件 → 17.3
倍结果。不要在机制名上停留太久,因为缺少定义。全文公开后,优先补读系统模型和执行时间线,再看
Collaborative Learning 的损失函数,最后核对实验中的
baseline、质量指标和三项消融;只有这四处齐全,才能判断 17.3
倍来自统一设计还是某个强单点优化。
19. Lins: Reducing Communication Overhead of ZeRO for Efficient LLM
Training
打开本篇完整解释
Lins 改了 ZeRO 的哪项约束
Lins 不再强迫参数、梯度和优化器状态使用同一个 ZeRO
分片组,而是分别选择“全复制、全分片或部分分片”及其机内/跨机 device
mesh,在显存约束下搜索通信时间最低的组合。
显存省下来后,通信为何变成瓶颈
混合精度 Adam 训练中,每个参数大致对应 2 字节参数、2 字节梯度和 12
字节优化器状态,LLaMA-7B 的模型状态合计约 112 GB,单张 80 GB A100/A800
放不下。ZeRO-1/2/3 逐步切分优化器状态、梯度和参数,但分得越彻底,越依赖
AllGather、ReduceScatter 和 AllReduce。
问题在大规模时被放大:机内 NVLink 与跨机网络带宽不同,collective
参与者越多延迟越高,固定 global batch 下每 GPU micro-batch
越来越小。论文测得 ZeRO-1 训练 LLaMA-7B 从 8 GPU 扩到 1024 GPU 时,MFU
从 63% 降到 36%;ZeRO-3 训练 LLaMA-13B 则从 47%
降到 4%(PDF 第 3 页,§III-A)。
MiCS 和 ZeRO++ 用更多副本换更小通信组,但它们仍要求
s_p = s_g = s_os。Lins 的判断是,参数 P、梯度
G、优化器状态 OS 的大小、访问时机和 collective
并不相同,不该绑定成同一个分片因子。
规划与执行的数据流
Lins 的离线规划和在线执行是一条清晰链路:
- 用户输入模型结构与训练超参数,包括层数、序列长度、micro-batch
大小和数量,以及 GPU 数量、节点数和显存容量。
- Communication Profiler 在目标集群上测量
AllGather、ReduceScatter、AllReduce、Broadcast 在不同消息大小和
机内 GPU 数 × 节点数 mesh
下的有效带宽;未测点用插值估算。
- Pre-Filter 用依赖规则去掉明显产生冗余存储或跨机通信的方案。
- Solver 在显存约束下最小化
T_p + T_g + T_os^0 + T_os^1,得到 P/G/OS
各自的机内和跨机分片因子。
- Executor 通过 PyTorch hook 执行选定计划。参数按 module 粒度
AllGather,反向后 ReduceScatter;梯度按 bucket AllReduce 后
select-and-drop;持有不同 optimizer shard 的 GPU 更新各自参数,再
Broadcast 给同参数副本组。
- 这些 collective 尽量与相邻 module
的前反向计算重叠,并优先把通信限制在节点内。
这里 s_i = s_i^0 × s_i^1,s_i^0
是节点内参与 GPU 数,s_i^1 是参与节点数。Lins 强制
s_p ≤ s_g ≤ s_os ≤ s_dp,分别在机内和跨机维度成立,避免某张卡维护与本地参数无关的梯度或优化器状态(PDF
第 5 页,§IV-B)。
从 ZeRO stage 到状态级搜索
1. P/G/OS 独立分片空间
分片因子为 1 是 Full-Replica,等于 data parallel size 是
Full-Sharding,中间值是 Partial-Sharding。三个状态可独立选择。例如
LLaMA-7B 的实验计划是 P 全复制、G
全复制、OS 在节点内 8 卡分片;LLaMA-13B 是 P/G
在机内 4 卡分片、OS 在机内 8 卡分片;LLaMA-30B 则让
P/G 在机内 8 卡分片,OS 跨 4
个节点继续分片(PDF 第 7 页,表 III)。
2. 面向真实 collective 的 profile-based cost model
论文没有只用 ring collective 的 α-β 理论式,因为 NCCL
还会选 Tree、CollNet 等算法,集群也可能有 in-network aggregation。Lins
用实测有效带宽 w(op, volume, mesh) 估算
t=volume/w,同时区分消息量和机内/跨机 mesh(PDF 第 4-5
页,§IV-A)。这使搜索结果能反映目标集群,而代价是换集群需要重新
profile。
3. 显存约束下的整数搜索与拓扑过滤
目标函数是最小化单 step 通信时间,约束总显存不超过 GPU
容量。模型状态显存写成 2Φ/s_p + 2Φ/s_g + 12Φ/s_os,再加
activation 和临时 buffer。搜索要求分片因子整除 DP
mesh,并规定一旦需要跨节点分片,先用满节点内 GPU,避免
(1 GPU × 2 nodes) 这类可改为 (2 GPUs × 1 node)
的高成本布局(PDF 第 6-7 页,式 1-7、图 7)。
4. 与计算重叠的状态流转
module i 计算时可预取下一 module
参数;反向计算当前层时可归约后一层梯度;上一步更新后的参数 Broadcast
可与下一步 forward 重叠(PDF 第 5-6 页,图
5)。不过端到端对比中作者为公平关闭了 Broadcast-forward overlap,因为
baseline 没有这一能力(PDF 第 8
页,实验设置)。因此主结果主要验证分片计划,不包含这项额外重叠的全部潜力。
模型、集群与对照
- 实现:PyTorch 2.1 hook、FlashAttention-v2、BF16。
- 模型:LLaMA-7B、13B、30B。
- 集群:128 台服务器,每台 8 张 80 GB A800,共 1024
GPU;机内 NVLink,跨机 4 张 Mellanox HDR InfiniBand NIC,不启用
SHARP(PDF 第 8 页)。
- baseline:DeepSpeed ZeRO-1、ZeRO-3、ZeRO++、MiCS。ZeRO++
关闭量化以保持模型质量一致。
- 所有实验 sequence length 为 4096,micro-batch 为 1 条 4096-token
序列,global batch 固定 4M tokens;8 GPU 时有 128 个 micro-batch,1024
GPU 时每 step 只剩 1 个。实验只保留 data parallelism,不使用 tensor
parallelism 或 pipeline parallelism(PDF 第 8 页)。
准确结果与论文中的数字冲突
- 1024 GPU 的主结果。 LLaMA-7B/13B/30B 上,Lins 的
MFU 分别是 51%/52%/42%(PDF 第 8 页,图 8 及正文;第 2
页也重复这组三个数)。同页图 9 报告对应
TGS,但柱形没有打印精确标签;正文也没有逐项列值,因此这里只引用
MFU,不估读 TGS。
- 相对 baseline。 论文第 2 页明确列出 MiCS
在三种模型上为 35%/33%/29%,ZeRO++ 为
4%/6%/5%;Lins 对 MiCS 和 ZeRO++ 的吞吐提升范围是
1.4-12.7×(PDF 第 2 页;总结也见第 9 页)。
- LLaMA-7B 的通信选择很有解释力。 1024 GPU 时 Lins 为
51%,ZeRO-1 为 36%,MiCS 为 35%,ZeRO-3 和 ZeRO++ 约 4%。Lins 只在 8 GPU
内 Broadcast 更新参数,避免全局 Broadcast;MiCS 虽把
AllGather/ReduceScatter 限在节点内,但总流量更大(PDF 第 9 页,图 8
后分析)。
- 扩展退化较慢。 从 8 GPU 到 1024 GPU,Lins 的 MFU
降幅约 15%,ZeRO-3 最高可降 88%(PDF
第 9 页,图 8 后分析)。这里是相对降幅,不是 15 个百分点。
- 显存不是最省。 ZeRO-3 最节省模型状态显存;1024 GPU
时 MiCS 约用 ZeRO-3 两倍显存换通信性能。Lins
在可用显存内选择更高复制度,因此目标是最小通信而非最小显存(PDF 第 9
页,图 10)。
论文内部有一处应保留的冲突:第 8 页主结果写 LLaMA-13B/30B 为
52%/42%,第 9 页后续段落却写成
51%/43%。图 8 的柱形更接近 52%/42%,第 2 页也支持
52%/42%,所以本导读采用主结果 51%/52%/42%,同时不隐藏后文异文。
方法贡献
Lins 把 ZeRO stage 从离散的“1/2/3
级”改写成一个模型状态级别的布局优化问题。参数、梯度、优化器状态有不同容量和生命周期,独立
mesh
让系统能用显存冗余换取恰好需要的通信缩减,而不是统一复制或统一分片。
另一个实用创新是把通信算法和网络拓扑的不确定性留给
profiler,而不是假设理论带宽。这样搜索问题仍然简单,集群特性却能进入决策。
适用范围和代价
- 评估刻意不使用 tensor/pipeline
parallelism,尚未证明独立状态分片与完整 3D parallelism
联合搜索时仍能得到同样收益。
- 固定 4M-token global batch 使 1024 GPU 时每 step 仅 1 个
micro-batch,通信/计算比非常不利。它能突出问题,但不代表所有生产训练的
batch 与扩展策略。
- 只测 7B-30B LLaMA 架构、4096 长度和 A800
集群;更大模型、MoE、长上下文或异构网络需要重新 profile
并验证内存模型。
- profiler 依赖目标集群的 NCCL 和网络状态。拓扑变化、拥塞或 SHARP 等
in-network aggregation 会让旧 profile 失准。
- ZeRO++ 为保持质量关闭量化,Lins 又为公平关闭 Broadcast-forward
overlap。比较回答的是“独立分片策略”而不是各系统开启全部功能后的绝对最优值。
- 主实验没有给训练 loss/下游精度,因为各方案在同一 BF16
计算路径下主要改变状态布局;这支持语义等价预期,但不能替代长时间训练收敛验证。
与训练通信论文的关系
- 与 UniTG 互补:Lins 优化 LM 阶段的模型状态,UniTG
摘要描述 LM-GNN 联合流水线。能否把 Lins 作为 UniTG 的 LM runtime
仍是组合设想,不是论文证据。
- 与 TorchGT 都做 device mesh
和通信优化,但数据依赖不同。TorchGT 沿 sequence/head 做 all-to-all,Lins
沿 P/G/OS 副本组做 AllGather、ReduceScatter、AllReduce 和
Broadcast。
- 与 SYLVIE
都以“多占一点显存/副本换更少通信”为核心权衡。SYLVIE 压缩边界
embedding,Lins 不近似数据而是改变精确模型状态的放置,因此 Lins
不引入量化误差。
- 与绿色论文 Di-PS、SPPO
同属训练并行层;与 Ymir/Titan/ICEFROG
等调度器不同,Lins 决定单个作业内模型状态放在哪些
GPU,调度器决定多个作业怎样获得 GPU。
核对数字时从哪里开始
先读第 2-4 页:ZeRO 状态大小、图 2/图 3 的扩展问题、MiCS/ZeRO++
为什么仍受统一分片限制。再读第 5-6 页图 4/图 5,把 P、G、OS 的
collective 分开追踪;随后读第 7 页表 III 和式 1-7,理解 solver
到底选择什么。实验先看第 8 页图 8,再回表 III 对照三种 LLaMA
的布局,最后看第 9 页图 10,确认速度来自主动使用显存余量。
20. SYLVIE: 3D-adaptive and Universal System for Large-scale Graph
Neural Network Training
打开本篇完整解释
SYLVIE 压缩哪类消息
SYLVIE 是面向分布式 full-graph GNN
训练的自适应通信系统:离线用节点入度判断哪些边界消息更怕量化误差,在线按收敛速度调整每个节点的
bit-width,并在同步与跨 epoch 异步流水线之间切换。
边界消息为何主导通信
full-graph 训练先用 METIS 把图分到多张 GPU。一个 partition
中的节点要聚合其他 partition 的邻居,因此每层 forward 要收 boundary
embeddings,backward 要回传 boundary embedding gradients。论文在
ogbn-products、4 GPU 的例子中,4-layer GraphSAGE-128 每 epoch 传 1.56 GB
embedding 和 1.55 GB embedding gradient,但 weight gradient 只有 0.40
MB;4-layer GCN-256 则是 6.20 GB 对 0.65 MB(PDF 第 3 页,表 II)。
DGL profiling 中通信最多占 epoch 时间 89.23%(PDF 第
3 页,图 2)。静态 1-bit 量化可以把通信时间降 89.8%、epoch 时间降
84.2%,却会伤害精度;例如 8-layer JKNet/Reddit 从 FP32 的 92.75% 降到
INT1 的 90.91%(PDF 第 4 页,图 3、表 IV)。异步 pipeline
可隐藏剩余通信,但边界消息会陈旧,误差随层数累积,深 GNN
更容易不收敛。
一次训练轮次的数据流
SYLVIE 分成 offline 和 online 两阶段:
- 图先由 METIS 分区。Graph Extractor 统计整个图中的
boundary node 全局入度,按入度排名生成 0-1 importance factor 和 node
mask。
- 每个 epoch 开始时,Quant Orchestrator 根据历史 loss
和 epoch time 选基础 bit-width
b_t ∈ {1,2,4,8},再用 node
mask 为每个 boundary node 上调或保持 bit-width。
- 每层 forward/backward 中,只对需要跨 partition 的 embedding 和
embedding gradient 做 stochastic integer quantization;每个向量同时传
min/scale。
- 量化消息通过
torch.distributed ring all-to-all
发送,接收端恢复为 FP32,再参与本地聚合和更新。
- Pipeline Adaptor 根据同一个 loss descent rate
决定下一 epoch 同步执行,还是让当前通信与计算重叠、到下一 epoch
使用一轮陈旧的 boundary message。
- Coordinator 汇总各 partition loss,更新 bit-width
和执行模式,并继续监控吞吐与收敛。
“3D-adaptive”指 data、time、execution 三个维度,不是 LLM 训练中的
data/tensor/pipeline 3D parallelism。
三个自适应维度如何控制误差
1. 只量化 boundary messages
SYLVIE 不量化权重,也不量化所有 activation。对边界向量
h,它保存 min(h) 和
scale=(max-min)/(2^b-1),随机舍入到 b-bit 整数;接收端用
scale × q + min 恢复。量化期望无偏,但方差随 bit-width
降低而上升(PDF 第 5-6 页,式 3、式 4)。
2. Data-adaptive:高入度节点用更高精度
论文分析聚合误差的均值和方差随节点入度约按 O(sqrt(d))
增长,且误差会沿层传播到 weight gradient。Graph Extractor
因此使用全局入度而非 partition 内局部入度:高入度 boundary node
更重要,分到更高 bit-width;低入度节点更激进压缩(PDF 第 6
页,§IV-A)。
3. Time-adaptive:bit-width 可以升也可以降
Coordinator 计算全局 loss L_t、指数滑动平均
F_t=λF_(t-1)+(1-λ)L_t,再除以 epoch time 得到 loss descent
rate。若当前精度仍能有效下降 loss,就把 bit-width
减半追求吞吐;若下降放缓或噪声太大,就把 bit-width
翻倍。它不是只随训练单调加精度,而是在 {1,2,4,8}
中双向调整(PDF 第 7 页,式 5、图 7)。
4. Execution-adaptive:有界陈旧的 inter-epoch pipeline
异步模式把 inner-node 计算与量化、通信、反量化放在不同 CUDA
stream。epoch t 发送的边界消息在 t+1
使用,因此只有 boundary messages 陈旧,inner-node 数据仍是最新。若
LDR_t < LDR_(t-δ),系统判断陈旧性正在妨碍收敛,下一
epoch 强制同步;否则继续异步(PDF 第 8 页,图 8)。
图数据、模型与硬件
- 实现:DGL 0.9、PyTorch 1.10、
torch.distributed ring
all-to-all、METIS 最小通信量分区。
- 数据集:Reddit、Yelp、ogbn-products、Amazon、ogbn-papers100M;后者有
111,059,956 节点、1,615,685,872 边和 172 类(PDF 第 9 页,表 V)。
- 模型:浅层 GraphSAGE/GCN,深层 GCNII/DAGNN/SGC/JKNet,特殊
aggregator GAT;层数最高 8(PDF 第 9 页,表 VI)。
- baseline:DGL、SAR、PipeGCN、BNS-GCN。原 baseline 没有实现深
GNN,作者自行补了兼容版本,并只报告各自能支持的模型。
- 硬件:每台 8×RTX 3090、PCIe 4.0、跨机 1GbE;另有每台
8×A100、NVLink、跨机 200Gbps InfiniBand(PDF 第 9 页)。
准确结果:不能只看“最高 17.2 倍”
- 最高值出现在深模型。 两台 3090 上,GCNII/Reddit
的吞吐为 DGL 的 17.18×,测试准确率 89.16%,DGL 为
89.53%;这是约 0.37 个百分点差异,不是逐项完全相同(PDF 第 10 页,表
VII)。
- 浅层和特殊模型也有稳定收益。
GraphSAGE/ogbn-products 为 15.74×,准确率 78.85% 对 DGL
79.19%;GAT/ogbn-products 为 13.21×,准确率 78.38% 对
DGL 78.14%(PDF 第 10 页,表
VII)。因此“保持质量”应理解为多数任务相近、部分略高或略低,而不是每格零损失。
- 对深 GNN 的优势不只是速度。 DAGNN/ogbn-products 达
10.06×、63.41%,DGL 为 63.22%;PipeGCN 为
1.18×、60.32%,BNS-GCN 不收敛。PipeGCN 在其他深模型上最高掉 5.45
个百分点,BNS-GCN 在 GAT 上最高掉 4.9 个百分点(PDF 第 9-10 页,表 VII
及正文)。
- 高速网络上收益仍在。 A100/NVLink/200Gbps IB
上,GraphSAGE/ogbn-products 从 DGL 的 0.99 s/epoch、0.87 s 通信降到
0.23 s/epoch、0.11 s 通信,即
4.30×;ogbn-papers100M、32 GPU 上从 17.00 s/14.00 s 降到 1.30
s/0.69 s,即 13.08×,通信时间约降 95.1%(PDF 第 10 页,表
VIII)。
- 自适应量化优于固定低 bit,但不是最快。 单
A100、GraphSAGE/Yelp 中,固定 FP32 为 0.90 s、65.3%,固定 INT1 为 0.22
s、64.4%,自适应量化为 0.39
s、65.0%。它牺牲部分最高速度,换回 0.6 个百分点(PDF 第 11
页,表 X)。
- 执行模式也有同样权衡。 固定
b=32
时,总同步为 0.90 s/65.3%,总异步为 0.75 s/64.6%,自适应 pipeline 为
0.81 s/64.9%;固定 b=1 时分别为 0.21 s/64.4%、0.12
s/64.2%、0.17 s/64.6%(PDF 第 11 页,表 XI)。完整 3D-adaptive
组合在同一任务达到 0.27 s 和 65.0%(PDF 第 11 页,消融正文)。
- 通信量下降可以直接核对。 两服务器 GraphSAGE/Amazon
中,主消息从每 epoch 5632.6 MB 降到 254.7
MB,约 22×;通信时间从 11.47 s 降到 0.81 s(PDF 第 11-12 页,表
XII)。
- 系统自身有开销。 GraphSAGE/Reddit 的 wall-clock 由
314.9 s 训练、23.7 s online stage、3.1 s offline stage
组成,在线加离线开销占总时间 7.8%(PDF 第 12 页,图
12)。
- 扩到更多服务器时,相对加速增大。 A100 上
ogbn-products 从 1 台到 3 台服务器,SYLVIE 相对 DGL 由 2.8× 增至 4.9×;3
台时 epoch 为 0.25 s,DGL 为 1.23 s(PDF 第 12 页,表
XIII)。这也说明它主要解决随节点数增加而恶化的通信。
方法贡献
SYLVIE
用同一个训练反馈信号约束量化噪声和异步陈旧。节点入度提供“哪条消息更敏感”的数据维先验,LDR
估计当前训练阶段能承受多少误差,Pipeline Adaptor
据此决定是否允许陈旧消息。三个机制共享一份收敛预算,调整时会彼此牵制。
它还准确抓住 GNN 与普通 DNN/LLM 的通信差异:瓶颈是每层 boundary
embeddings 和 embedding gradients,不是小得多的 weight
gradients。因此传统 gradient compression 不是这里的主要解法。
适用范围和误差边界
- 它只面向 distributed full-graph training。图 partition 必须能放入各
GPU/服务器的合计显存;采样式超大图训练是另一条路线。
- 重要性只由全局入度排名近似。低度但语义关键的节点、异配图、动态边或
attention 权重主导的任务未必服从这一误差模型。
- 量化和异步都是近似。表 VII 中部分任务仍有 0.2-0.4
个百分点下降,不能把摘要的“without compromising
accuracy”理解成严格等精度。
- 两台 3090 的跨机网络只有 1GbE,会放大通信压缩收益。A100/200Gbps
实验提供了更可信的强网络对照,但不少速度数字会缩小到 4.3× 左右。
- 深模型 baseline
是作者移植,不是各系统原生实现;不收敛既反映方法局限,也可能受移植质量影响。
- 论文验证到 8 层和所列六类
GNN。“universal/model-agnostic”表示接口和策略不绑定 GCN,不等于任意
GNN、动态图或异构图已经验证。
- METIS、入度统计和 node mask
是离线步骤。动态图或短训练任务中,重做这些步骤的成本需重新计算。
与图训练论文的关系
- 与 TorchGT 是图系统中的互补分支。SYLVIE
的核心张量是跨 partition 的 embedding/gradient,TorchGT 的核心张量是
Q/K/V 和 attention map;前者优化 message passing,后者优化
all-pairs attention。
- 与 UniTG 的联系在 GNN 阶段和 pipeline。SYLVIE
证明量化后通信更短,pipeline 才更容易覆盖剩余延迟;UniTG 摘要也强调把 LM
fine-tuning 插进 GNN pipeline,但是否使用边界量化和 staleness control
未知。
- 与 Lins
都先建立通信-显存/精度权衡再动态选策略。Lins
通过精确复制状态使用更多显存,不改变数值;SYLVIE
通过量化和陈旧消息减少字节,会引入受控误差。
- 与绿色调度论文 ICEFROG/AutoSched/Ymir
的层级不同。SYLVIE 在作业内按 epoch 和 node 改执行;调度器在作业间分配
GPU。两层可组合,但一个不能替代另一个。
核对机制时从哪里开始
先读第 3-4 页表 II、图 2、表 IV,建立“传的是什么、静态 INT1
为什么不够”的直觉。然后按第 5 页图 4/图 5 走一次数据流,再读第 6 页
Graph Extractor、第 7 页 Quant Orchestrator、第 8 页 Pipeline
Adaptor。实验不要从 17.2× 摘要开始,先看第 10 页表 VII
的速度与准确率成对数字,再看第 11 页表 X/XI 的消融,最后看第 12 页表
XII,确认加速确实来自通信量下降。
四篇之间怎样衔接
- 先读 SYLVIE:message
passing、边界节点和全图分区最直观,能建立图训练为何通信主导的基本图景。
- 再读 TorchGT:从 GNN 转到 Graph
Transformer,重点观察瓶颈如何从边界消息转成 attention
计算与不规则访存。
- 接着读
Lins:把视角从图数据移动到模型状态,理解显存、collective 和
device mesh 的通用权衡。
- 最后读 UniTG 摘要:用前三篇建立的概念检查它宣称的
runtime/algorithm/execution
三层统一究竟需要回答哪些问题。全文未公开前,把它当研究路线图,不当作已经可复现的系统。
第 B 组:调度与调优系统详细导读
本组四篇论文都在优化 GPU
数据中心里的训练工作负载,但控制对象并不相同:UniSched
决定“哪些作业何时运行、放到哪里”,AutoSched
调的是“调度器自身的配置”,Hydro
改造“超参数搜索作业的模型与执行形态”,Ymir
则进一步利用“基础模型微调任务之间可以迁移”这一语义关系。把这四层分清楚,后面的设计才不会混在一起。
四篇之间怎样衔接
- UniSched:先建立通用 GPU 训练调度的基本语言,包括
SLO、best-effort、profiling、lease、运行时间估计和 MILP。
- AutoSched:再看调度策略已经写好以后,如何根据不断变化的工作负载自动调整
queue、lease、placement threshold 等配置。
- Hydro:把视角从普通训练作业转到 HPO 作业,理解
surrogate model、trial fusion、弹性 trial 执行和异构资源利用。
- Ymir:最后读最专门化的一篇。它不再把 fine-tuning
job 当成互不相关的黑盒,而是把任务迁移收益直接写进集群调度目标。
21. Ymir: A Scheduler for Foundation Model Fine-tuning Workloads in
Datacenters
打开本篇完整解释
论文:ICS
2024 PDF
Ymir 调度哪些决定
Ymir 是一个面向基础模型微调(FMF)的集群调度器:它预测两个下游任务做
temporal/spatial transfer 是否能更快收敛,把“是否合并任务”和“分多少
GPU”放进同一个 ILP,并复用微调运行时来压低频繁切换的代价。
基础模型微调有哪些可复用结构
传统 DLT scheduler 往往通过共置或弹性扩缩容提高利用率,但 FM
微调有三个不一样的条件。第一,模型大、显存占用高,共置容易 OOM;第二,多
GPU
运行时初始化、权重装载和数据准备很重,频繁扩缩容可能得不偿失;第三,数据中心里大量作业实际共享少数热门
backbone。作者统计 Hugging Face 下载量时,热门前 10 个模型占 top-100
vision FM 下载量的 83%,占 language FM 的 89%(PDF p.2,Fig.
1)。这意味着同一个 backbone
上的下游任务不是完全独立的,它们可能共享已经学到的任务知识,也可以共享已经启动的运行时。
论文把 transfer 分成三种执行方式(PDF pp.2-3,Fig. 2):
- Normal transfer:每个任务都从预训练 backbone
独立开始微调。
- Temporal transfer:先完成任务 A,再以 A
的微调权重初始化任务 B,记为
A -> B。
- Spatial transfer:A、B 作为多任务训练共同微调,记为
A || B。
动机实验不是只说“迁移可能有效”。在 RoBERTa-Base 上,先做 STSB 再做
QQP,可把 QQP 达到目标精度所需 epoch 数减少 2.3 倍;在 ViT-Base 上把
FOOD101 与 ImageNet75 联合训练,可把后者所需 epoch 数减少 2.0 倍(PDF
p.3,Fig. 3)。跨全部测试组合,temporal 和 spatial transfer 的 TTA
最多可加速 10 倍,而且超过一半组合有正收益(PDF p.3,Fig.
5)。难点在于负迁移同样存在,所以调度器必须先估计,不能见到相同 backbone
就直接合并。
从任务到 ILP 的数据流
Ymir 的在线路径分三段(PDF p.4,Fig. 6)。用户提交
YAML,给出模型、数据集、超参数、停止条件、是否允许参数共享以及是否使用
pipeline parallelism。新作业先获得少量 profiling 资源,YmirEstimator
采集 loss、gradient 等统计信息,预测 normal、temporal、spatial
三种模式在不同 GPU 数量下的完成时间。YmirSched
随后联合求解任务配对、迁移模式与 GPU 分配。YmirTuner
按求解结果实例化任务,并提前准备 dataloader
或流水化搬运参数。完成后返回用户需要的权重。
YmirEstimator 的预测链是:迁移收益 -> 收敛迭代数 ->
单迭代时间 -> 作业完成时间(PDF p.4,Fig. 7)。YmirSched 每
120 秒重算一次,用 ILP 在公平性目标上加入 transfer speedup
权重;不值得合并的组合会先被过滤。YmirTuner
则负责让这一调度频率在大模型微调中真正可执行,而不是让重启和装载吞掉收益。
四个调度机制
1. 用 Task2Vec 估计迁移收益,而不是实际试跑所有任务对
Ymir 用梯度相似性表示任务关系,并在 Task2Vec 上做了两处改造。Temporal
transfer 直接估计有向的 S(A,B);spatial transfer 同时计算
S(A,B) 和
S(B,A),取平均值。随后以线性回归把相似度映射到 transfer
gain,即任务 B 联合训练后的指标相对独立训练提升多少(PDF p.5,Sec.
4.1)。
Table 2 显示,ViT-Base、RoBERTa-Base、Vicuna-7B
的迁移正负分类准确率分别为 97.2%、98.6%、98.6%;transfer-gain MAPE
分别为 15.53%、16.76%、18.05%(PDF p.4,Table
2)。更重要的是系统有在线止损:如果 temporal transfer 在前两个 epoch
没有提升目标任务精度,就拆开执行;spatial transfer 中任一任务在前两个
epoch 不改善,也会解耦(PDF p.6,Sec.
4.3)。所以估计器不是一次预测后不可纠错。
2. 把收敛预测和吞吐预测拆开
Iteration estimator 用二次有理函数拟合归一化 loss 曲线,并以相邻步
loss 改善不超过 0.001 作为收敛判据(PDF p.5,Eq. 2-3)。Normal transfer
的 loss trace 来自 profiling;迁移模式下再用 transfer gain
调整曲线,估计达到相同目标精度需要多少步。三种模型在 normal transfer
下的平均迭代数误差为 5.69%-11.3%,在 transfer 场景下平均误差为
11.07%-15.35%,最大误差不超过 32.9%(PDF p.4,Table 2)。
Time estimator 不再在线拟合复杂 scaling law,而是利用 backbone
固定这一条件,离线建立 LUT。键包括 GPU 数、gradient accumulation、local
batch size、冻结层数、AMP、gradient checkpoint 和并行方式;每个 FM
的离线 profiling 可在 5 小时内完成,并在运行中继续更新(PDF p.6,Sec.
4.3)。这种拆分很关键:迁移改变的是还需训练多少步,资源分配改变的是每一步多快。
3. 任务合并与 GPU 分配联合进入 ILP
YmirSched 的基线目标是让每个作业相对公平份额的 slowdown
接近,避免只追求总吞吐而饿死某些作业。完整目标为
normal、temporal、spatial 三类候选分别建立二元变量,再用
TranWt 表示相对 SRTF 独立执行的 JCT 收益(PDF pp.6-7,Eq.
7-13)。ILP 同时保证每个任务最多选择一种模式、合并任务不重复占资源、总
GPU 数不超容量。求解后再尽量把每个作业压到更少节点,减少通信。
这不是先配 GPU 再贪心找 partner。迁移模式的优劣会随 GPU
数改变,资源份额又会改变公平
slowdown,因此必须联合求解。为了控制二次增长的任务对数量,系统先删除
TranWt < 1 的组合(PDF p.7,Sec. 5.2)。在 2
倍负载的大规模实验里,单 CPU 核上的 ILP 最大/平均延迟分别为 5.43 秒和
0.23 秒(PDF p.10,Sec. 7.2)。
4. 复用微调运行时,降低调度动作本身的成本
Task Constructor 用统一的 parameter-efficient transfer
learning(PETL)结构支持三种 transfer mode,并优先把微调变成
data-parallel workload;只有需要时才使用离线 profile 过的 pipeline
partition(PDF pp.7-8,Sec. 6.1)。Pipeline Switch
针对两类开销分别处理:data parallel 作业在被恢复前 30 秒提前创建
dataloader;pipeline parallel 作业则把旧任务的反向计算、权重
D2H、新任务权重 H2D 和反向方向的 pipeline execution 重叠起来(PDF
p.8,Fig. 9)。
该机制把原本超过一分钟的 context switch 压到一分钟以内(PDF
pp.2-3,Fig. 4;PDF p.2,系统概述)。消融中,提前准备 dataloader 带来
1.12、1.22、1.75 倍 JCT 加速,分别对应
ViT-Base、RoBERTa-Base、Vicuna-7B;pipeline parameter switch 在
Vicuna-7B/ROC 子场景中约减少 4% JCT,但没有明显改变全局 JCT(PDF
pp.10-11,Table 6 与 Sec. 7.4)。
任务、硬件与对照
物理集群有 8 个节点,每节点 4 张 V100 SXM2 32GB、64 CPU cores、256GB
内存和 200Gbps HDR InfiniBand;Vicuna-7B 因显存需求改用 A100 SXM4
80GB。系统基于 Transformers 2.4.1、PyTorch 1.7、Kubernetes 1.18.2 和
CephFS 14.2.8,共 5,967 行 Python(PDF p.8,Sec. 7.1)。测试覆盖
ViT-Base、RoBERTa-Base、Vicuna-7B,各自 9 个数据集,共 27 个 FMF
task。物理 workload 从上海 AI Lab trace 抽样 120-240 jobs;仿真抽样
1,500-3,000 jobs,集群规模为 60 个四卡节点,即 240 GPUs(PDF
pp.8-9,Sec. 7.1)。
基线包括 Tiresias、Optimus、Pollux,公平性比较另加 Themis 和
preemptive SRTF。物理实验中,Ymir 的 average JCT 相对基线加速 1.11-4.34
倍,99th-percentile tail JCT 加速 0.89-3.56 倍(PDF p.9,Fig. 10)。在
240-GPU 仿真、1-2 倍负载下,JCT 加速为 1.66-22.3 倍(PDF pp.9-10,Fig.
11)。约 20%-30% 作业最终采用了 temporal 或 spatial transfer(PDF
p.9,Table 5)。
任务合并没有以牺牲指标换速度。相对 normal transfer,三个 FM
上报告的最小指标提升均不低于 0;Vicuna-7B 的 spatial transfer 在 SAMSUM
BLEU 上出现最大 68.82% 的相对提升,但平均提升是
14.74%,不能把这个极值泛化到所有任务(PDF p.9,Table
4)。模拟器与物理实验的 average JCT 差异为 3.24%-8.77%,tail JCT 差异为
0.74%-10.82%(PDF p.9,Table 3)。
方法贡献
迁移学习加速微调本身并不新。Ymir
把过去由模型开发者判断的任务关系变成 scheduler
可估计、可优化、可撤销的决策变量。系统同时改变了三层抽象:作业不再是独立黑盒;完成时间除了吞吐和剩余
iteration,还取决于 partner 与 transfer mode;preemption
也可以保留运行时。相比只优化单 job PETL 或 pipeline 的工作,这是一种
cluster-wide algorithm-system co-design。
适用范围和预测风险
- 主设计和评测假定集群内作业共享一个 FM backbone。多 backbone 只提出按
FM 分 quota 的设想,没有完成联合调度评测(PDF p.11,Sec. 9)。
- 每次最多合并两个任务。三任务及以上缺少可靠的 transfer-gain
estimator,ILP 变量也会进一步膨胀(PDF p.11,Sec. 9)。
- Spatial transfer 只适合尚未产生进度、仍共享初始 backbone
权重的任务(PDF p.7,脚注 3)。
- 用户需要允许共享任务参数。虽然不直接共享数据,参数仍可能泄露
membership 信息;系统只能让用户关闭 sharing,并没有提供隐私保护协议(PDF
p.11,Sec. 9)。
- 收益依赖 workload 中确实有可迁移任务对,也依赖 PETL 能减轻
catastrophic forgetting。若任务高度异质、backbone
分散或用户普遍拒绝共享,Ymir 会退化成带 profiling/LUT
的普通弹性调度器。
- Pipeline Switch 的收益依赖 PCIe
带宽和可重叠空间;参数搬运本来就很快时,它不会带来同样比例的收益(PDF
p.8,Sec. 6.2)。
与微调调度论文的关系
- 与
Hydro:两者都利用“模型结构重复”做跨作业优化,但边界正好相反。Hydro
在同一数据分布上缩小并融合 HPO trials,理论上不支持 fine-tuning;Ymir
专门处理不同下游数据集的 fine-tuning,通过 task transferability
判断能否共享知识。
- 与 UniSched/CHRONUS:UniSched 把 job
type、deadline、profiling 和 placement 统一到 reward-based MILP;Ymir 把
transfer mode 和 task pair
加进相似的联合优化框架。前者的语义来自用户需求,后者的语义来自任务梯度关系。
- 与 ICEFROG:ICEFROG
让“冻结多少层”成为影响吞吐、显存和精度的弹性维度;Ymir 的 LUT 也显式把
frozen layers 放入配置键。两篇都在突破 scheduler 只看 GPU
数和剩余时间的黑盒模型。
- 与 PromptTuner:PromptTuner 面向有 SLO 的短时
prompt tuning,并强调 warm GPU pool 和 prompt reuse;Ymir 面向更一般的
FM fine-tuning,以 task transfer 和低成本 context switch
为中心。二者都说明微调不能直接套普通长作业调度模型。
- 与 Titan、SchedMate:Titan 关注 FM fine-tuning 的
pipeline scheduling,但不利用跨任务 transfer;SchedMate
从代码、日志提取作业语义,而 Ymir 从 loss/gradient
提取可迁移性。它们分别扩展了执行层、观测层和优化变量。
核对收益时从哪里开始
先看 Fig. 2-5,确认三种 transfer mode 和 FMF 的特殊性;再看 Fig.
6-7,把三个组件及预测链串起来;随后重点读 Sec. 5 的 Eq.
7、12、13,理解迁移收益怎样进入调度目标;Sec. 6 只需抓住 data/pipeline
两种 switch;最后用 Fig. 10-14 和 Table 4、6、7
区分端到端收益、迁移收益和运行时复用收益。Sec. 4
的曲线公式可以第二遍再细读。
23. Hydro: Surrogate-based Hyperparameter Tuning Service in
Datacenters
打开本篇完整解释
论文:OSDI
2023 PDF
Hydro 怎样重组 HPO 作业
Hydro 是一个同时改造 HPO
作业和集群资源分配的服务:它把目标模型缩成可迁移超参数的
surrogate,把大量同构 trials 融成一个高利用率执行单元,再利用 pipeline
bubble、旧 GPU 和动态拆分扩展可用资源。
Trial 为什么浪费资源
传统 HPO 要完整训练大量配置。模型越大,直接 sweep
越不可承受;模型越小,单 trial 又越难吃满现代
GPU。论文引用的生产观察是,约 90% 模型需要 HPO,每个 tuning job 的 trial
中位数为 75(PDF pp.1-2,Introduction)。作者所在集群和 Alibaba trace
中,GPU utilization 超过 50% 的 GPU 只占 35% 和 16%(PDF p.4,Fig.
2a)。同时,多保真算法会不断淘汰 trial,资源需求随时间下降;集群
scheduler 却通常把整个 HPO 当固定资源的普通训练 job。
Hydro 的出发点是 MU
parametrization:如果按层调整初始化与优化器超参数,较窄模型上表现好的超参数可迁移到较宽模型。于是
HPO 不必在最终模型上完成全部搜索。但缩小模型后 FLOPs 下降近似
1/S^2,显存只近似 c1/S + c2 下降,单个
surrogate 更容易让 GPU 空转(PDF p.4,Fig. 3)。因此 surrogate scaling
必须与 trial fusion 配套,不能只做模型缩小。
代理、融合与迁回的数据流
用户沿用 Ray Tune 风格定义 search space 和 training function,只需用
Hydro API 包装 model、dataloader 和 optimizer,并指定 scaling
ratio。Hydro Tuner 先 trace 目标模型,生成并参数化 surrogate;再把
operator shape 相同的 trials 分组融合;Trial Planner 根据显存 profile
和当前 trial 数决定 fusion
count,并在资源空出时提前启动目标模型验证。
Hydro Coordinator 与 cluster scheduler 交互。若集群里存在
pipeline-parallel 大模型预训练,它把各 stage 的 bubble 暂时标成
ephemeral GPU time 给 HydroTrial;若有不同代 GPU,则按 SM utilization 和
tuning stage 把 trial 放到更合适的设备;资源变化时,Elastic Executor
优先拆开 fused trial,避免无谓的分布式通信,再对无法融合的大 trial 启用
data parallel/FSDP(PDF pp.5,9-10,Fig. 4 与 Sec. 5)。
四个执行机制
1. Model Shrinker 自动完成 scaling 与 MU parametrization
HydroTracer 基于 torch.fx 把不同 PyTorch
写法规范化为可编辑图,再按 input、hidden、output layer 分别缩放
width。Hydro 不只是改 tensor shape,还按层重设初始化方差、learning
rate、bias 和输出缩放,使不同宽度的网络保持相近的 layer-wise update
magnitude(PDF pp.6-7,Fig. 7)。默认 S=8;XL workload
的端到端实验用 S=16(PDF p.12,Sec. 6.3)。
系统还做两层防护:先检查缩放后某层是否窄到不合理,再运行少量
profiling step,验证 activation vector 的平均 L1 magnitude 是否有界(PDF
p.7,Sec. 4.1)。这不能证明任意模型都满足理论,但能在真正花大量 GPU
之前拦住明显失败。
2. Inter-trial fusion 解决 surrogate 太小导致的低利用率
Trial Binder 把同形模型的算子换成带额外 trial batch 维的
hydro.nn grouped operator,例如以
torch.baddbmm 实现批量 Linear;optimizer 和 scheduler 也按
trial 独立维护。与 MPS 让多个 Python/CUDA context 并存不同,fusion 共享
framework、data loading 和 kernel launch,并保留从 fused model
中抽取单个 submodel 的 defusion 路径(PDF pp.7-8,Sec. 4.2)。
在 A100 上训练 S=8 的 ResNet-18/CIFAR-10,Hydro
单卡最多同时融合 676 个模型;相对 MPS,训练吞吐超过 10 倍、显存节省超过
20 倍(PDF p.8,Fig.
8)。论文也明确指出,只缩小不融合几乎没有端到端收益,因为小模型无法吃满
GPU(PDF p.13,Fig. 12a)。
Intra-trial fusion 使用 nvFuser,但只对训练步数足够确定的 trial
懒触发。原因很具体:编译 ResNet-18 约花 2 个 epoch,只能带来每 epoch 约
10% 加速,需要训练至少约 20 epochs 才回本(PDF p.8,Sec. 4.2)。
3. Adaptive fusion 与 Eager Transfer 适应 trial 数不断减少
不同 batch size 会改变 operator shape,所以 Planner 先按 batch size
分组。每组只 profile
F=1、F=2,按显存线性增长估计
Fmax;GPU 份额按 batch size x trial count
分配,再把组内 trials 均匀融合到各 GPU(PDF p.8,Sec. 4.3)。
当 50% 的 surrogate trials 完成且出现空闲资源时,Eager Transfer
就用当前最优超参数启动目标模型
TargetTrial,不等整个搜索结束。之后若找到更优配置,根据利用率决定终止旧
TargetTrial 或并行开新实例(PDF p.9,Sec.
4.3)。这使目标模型最终训练与后半段搜索重叠,特别适合 deadline-bounded
tuning。
4. Bubble Squeezer 与异构感知执行
Bubble Squeezer 在 DeepSpeed 1F1B pipeline 的通信/等待间隙运行
HydroTrial。系统给大模型与 trial 注册 hook,检查 NCCL CUDA stream
状态,只在 bubble 内 resume;bubble 结束时用 Linux signal 暂停
trial,并按剩余显存调整 fusion count(PDF pp.9-10,Fig.
9)。这种细粒度控制避免了普通 colocation 的 kernel interference。
该机制有明确前提:集群里必须长期运行 pipeline-parallel
大模型,surrogate 要小到能留在剩余显存中,模型层不能多到一个 iteration
总跨出 bubble。Hydro 不做显存 offload,因为 swap 成本过高(PDF
p.10,Sec. 5.1)。
Heterogeneity-Aware Allocator 会释放空闲超过 1 分钟的 GPU
bundle;当单独运行的 TargetTrial SM activity 低于 50% 时,优先放到 V100
等旧卡,把 A100 留给能利用其算力的任务(PDF p.10,Sec. 5.2)。有新 GPU
时,Elastic Executor 先把 fused HydroTrial 拆开到多卡;对 unfused
surrogate 默认把资源给当前表现最好的 trial,对 target model 才自动扩大
worker 数(PDF p.10,Sec. 5.3)。
HPO 工作负载与硬件
系统基于 Ray 实现,约 12K LoC;Model Shrinker 使用 torch.fx 与
mup,Trial Binder 使用 HFTA 与 nvFuser,Coordinator 原型修改
DeepSpeed,Elastic Executor 使用 Ray Train 与 PyTorch FSDP(PDF
p.10,Sec. 6)。测试节点每台有 8 张 A100 80GB、2 颗 AMD EPYC 7742(共
128 cores)、1TB 内存,节点内 NVLink/NVSwitch,节点间 200Gbps HDR
InfiniBand(PDF p.10,Sec. 6.1)。
六个 workload 是 GPT-3
XL/OpenWebText、Transformer/WikiText-103、WideResNet-50/ImageNet、MobileNetV3-Large/Flowers102、VGG-11/CIFAR-100、ResNet-18/CIFAR-10。单保真评测分别使用
128、8、32、16、8、8 GPUs,trial 数为
100、200、200、500、500、1,000(PDF p.11,Table 2)。调优算法覆盖 Random
与 ASHA;基线是 Ray 和加入 MPS GPU sharing、elastic allocation 的
Ray+ES。
单保真 Random 下,Hydro 相比 Ray 的 tuning makespan 加速分别为
78.5、8.7、20.3、12.3、10.8、16.2 倍,并且最终质量差异为 GPT-3 XL
-0.48 ppl、Transformer
-0.15 ppl,四个视觉模型分别
+1.18%、+0.05%、+0.09%、+0.02% accuracy(PDF
p.11,Table 2)。这里 XL 模型的 Ray 时间来自
simulation,质量基线使用官方超参数,不是完整 Ray 实跑(PDF p.11,Table 2
脚注)。
多保真 ASHA 使用一半 GPU,参数为
bracket=1、grace=3、reduction=3;六个
workload 的 makespan 加速为 33.4、5.8、9.7、8.0、9.4、14.5
倍,最终质量仍略优于 Ray(PDF p.12,Table 3 与 Sec. 6.3)。15 分钟
deadline、4 GPUs 下,Hydro 将 VGG-11 accuracy 从 Ray 的 65.42% 提到
68.68%,将 ResNet-18 从 89.66% 提到 91.32%(PDF p.12,Table 4)。
Coordinator 原型在 32 张 A100、4 nodes、4 pipeline stages 的 GPT
workload 上测试。Bubble 内原 GPT 的 SM activity 约 2%,加入
F=16 的 ResNet-18 HydroTrial 后约 50%;trial 得到约独占运行
15% 的吞吐,未观察到明显 GPT slowdown。直接共置则让 GPT 慢约 12%(PDF
pp.13-14,Fig. 15 与 Sec. 6.5)。在 tuning job 只有 1 张独占 GPU
的模拟中,bubble 资源把 makespan 缩短 2.7 倍(PDF p.14,Sec. 6.5)。2 个
A100 nodes 加 2 个 V100 nodes、共 32 GPUs 的异构实验中,20
个一小时内随机到达的中型 HPO jobs 的 average JCT 改善约 1.3 倍(PDF
p.14,Sec. 6.5)。
方法贡献
Hydro 把 MU parametrization、operator fusion 和 bubble filling
接成一条完整的 HPO 生命周期。Surrogate scaling 降低单 trial
成本,但会留下低利用率;inter-trial fusion 填补这部分空闲。multi-fidelity
让资源需求随 trial 淘汰而递减,后半程便交给 eager transfer、dynamic split
和旧 GPU 分配;pipeline bubble
则提供不侵占大模型吞吐的临时资源。各个机制处理前一环节留下的问题,单看某个局部加速数字无法解释系统收益。
代理模型和迁移的限制
- MU parametrization 要求同一数据分布上的 i.i.d. samples,因此 Hydro
明确不支持 fine-tuning(PDF p.14,Sec. 7)。
- Weight decay、dropout 等 regularization hyperparameter
不能可靠迁移;实验 search space 也主动排除了 weight decay。需要时仍要在
target model 上做小范围二次搜索(PDF pp.7,10,Sec. 4.1 与 Sec.
6)。
- 不允许用户自定义初始化,因为 Hydro 必须接管逐层
re-initialization(PDF p.14,Sec. 7)。
- 特殊架构如 MoE 可能需要额外规则;Transformer 也依赖 attention
logit、query initialization、sequence length 等 heuristic
adaptation,理论并不保证任意模型排名保持(PDF p.6,Sec. 4.1)。
- Inter-trial fusion 要求 operator shape 相同;不同 batch size
只能分组,架构有增删改的 trials 尚不能部分融合(PDF pp.8,14,Sec. 4.3 与
Sec. 7)。
- Bubble Squeezer 是场景化机制,不是一般 GPU sharing。没有长期
pipeline job、bubble 太短、剩余显存不够时都无法启用。
- 最大的 78.5 倍结果含模拟的 Ray 时间;Coordinator 与 Tuner
又是分开评测,论文没有给出“全部机制同时开启”的完整生产 trace
端到端结果(PDF pp.10-12,Sec. 6-6.3)。
与调优调度论文的关系
- 与 Ymir:两者都跨作业复用共同模型结构。Hydro
合并的是同一 HPO job 中同构、不同超参数的 trials,Ymir 合并的是同
backbone、不同下游任务的 fine-tuning jobs。Hydro 的理论边界明确排除
fine-tuning,Ymir 正好覆盖这一缺口。
- 与 PromptTuner:两者都优化 tuning workload,但
PromptTuner 重点是分钟级 SLO、warm pool、prompt reuse 和成本;Hydro
重点是 HPO 的 surrogate transfer、trial fusion 与 datacenter spare
capacity。前者把历史 prompt 当算法资产,后者把模型宽度和 trial
同构性当系统资产。
- 与 SPPO:Hydro 从 pipeline bubble 中“借时间”跑
trial,SPPO 则重新安排长序列训练的 activation offload 与 sequence
pipeline 来减少 bubble。两篇都把 bubble 当可管理资源,但 Hydro 是跨 job
interleaving,SPPO 是单个长序列 job 内部调度。
- 与 UniSched/ICEFROG:Hydro Coordinator 暴露了
diminishing demand、fusion count、target/surrogate stage 和 GPU
generation 等新状态。通用 scheduler 若看不到这些信息,只能把 HPO
当固定黑盒;这与 ICEFROG 将 layer freezing 暴露给 scheduler
的思路一致。
- 与 Di-PS:Di-PS 解决跨集群异构和异步训练,Hydro
解决单数据中心内异构卡和临时
bubble。二者都不假定资源整齐同构,但控制粒度分别是训练集群和 HPO
trial。
核对收益时从哪里开始
先看 Fig. 1、3,理解“超参数可迁移”和“缩小后 GPU 更空”这对矛盾;再看
Fig. 4 的 Tuner/Coordinator 分层。Sec. 4 重点读 Model
Shrinker、Inter-trial Fusion、Adaptive Fusion,MU
的推导可第二遍再看;Sec. 5 先看 Fig. 9,再核对 Bubble Squeezer
的三个适用条件。实验先读 Table 2-4,再读 Fig. 12 的消融,因为它直接证明
scaling 必须和 fusion 联用;最后用 Sec. 7 校正适用范围。
24. UniSched: A Unified Scheduler for Deep Learning Training Jobs
with Different User Demands
打开本篇完整解释
论文:IEEE
TC 2024 PDF
UniSched 统一哪些需求
UniSched 是 CHRONUS 的统一化扩展:它同时支持 strict/soft SLO 与
best-effort、iteration-based 与 performance-based stopping,并用统一
reward 和 MILP 联合作业选择、profiling、lease 分配与 topology-aware
placement。
四类作业为何难以共用一套策略
共享 GPU 集群里的 job 至少有两个正交维度。延迟需求上,有必须在
deadline 前完成的 SLO job,也有越快越好的 best-effort
job;停止条件上,有固定 iteration,也有达到 accuracy、mAP、F1 或 loss
目标就停的 performance-based job(PDF pp.1-3,Table I 与 Sec.
II-A)。现有 scheduler 往往只覆盖其中一格。
只按用户给出的最大 iteration
估时会浪费资源。作者在多组模型/数据集上比较发现,按最大 accuracy
停止最多可少训练 22% epochs,按最大 accuracy 的 99% 停止最多可少 31%
epochs(PDF p.3,Fig. 1)。另一方面,允许抢占虽能提高 SLO 可行性,却增加
checkpoint、suspend、resume 开销;忽略这部分会让 solver 以为某个
deadline 可达,实际却 miss。
CHRONUS 已能混排 SLO 与 best-effort,但 profiling、SLO 和 best-effort
分别使用资源预留、SRTF 与 MILP,且只支持 iteration-based
stopping。它还用 round-up 强制 consolidated placement,可能因为一个
6-GPU job 占满 8-GPU node 而拒绝更多可行组合。UniSched 的目标就是把这些
ad hoc 分支压成同一套可求解模型。
收益、画像与 lease 的数据流
新 job 先作为 profiler job 进入 Selector。Reward Generator 给它
reward,Policy Generator 枚举可行 GPU cell 组合,MILP 决定何时给最多 1-2
GPUs 做 profiling。Estimator 用约 5 分钟 profile 估计每 iteration
时间、性能达到目标所需 iteration,以及未来 suspend/resume
的期望开销(PDF pp.4-6,Fig. 2)。
Profiling 完成后,job 按用户需求进入 SLO 或 best-effort
queue,但仍走同一条 Selector 路径。每个 job 被切成 lease;Reward
Generator 把 profiler、best-effort、strict SLO、soft SLO
的完成时间偏好都映射到 0-100 的 step reward;Policy Generator 用层次化
GPU cells 表达 placement topology;MILP 最大化全体
reward,在每轮同时决定续哪些 lease、选哪些 job、采用哪种 cell
allocation(PDF pp.6-8,Fig. 4-5 与 Eq. 4-14)。
四个调度机制
1. 三部分 Estimator 覆盖不同 stopping criteria 与抢占开销
Runtime Speed Estimator 对单卡 job 直接测 computation time;对多卡
job 分别用同节点两卡和跨节点两卡测 intra-/inter-node gradient
communication,再近似外推任意 GPU 数下的 iteration time(PDF p.5,Eq.
2)。Profiling 最多只用 2 GPUs,避免大 job 在估时阶段先占满资源。
Training Iteration Estimator 对 performance-based job 使用
Weibull、log-power 等 probabilistic learning curve ensemble,从早期
validation metric 外推达到目标所需 iteration。由于 profiling
阶段样本少且 batch size
可能不同,系统在正式执行中继续更新曲线,而不是冻结首次预测(PDF
p.5,Sec. III-B2)。
SR-Aware Estimator 把 suspend/resume 发生次数看成随机变量。对需要
n 个 lease、deadline 有 m 个 lease slot 的 SLO
job,按组合概率计算期望 resume 次数;best-effort job 则按每个 lease 有
1/2 概率被切断近似(PDF p.6,Eq. 3)。实测各模型 suspension 通常在 4
秒内,resume 明显更贵;VGG19 从 2-GPU profile 外推到 16-GPU execution
时,组合开销差在 5 秒内(PDF p.6,Fig. 3)。
2. Reward 把四类 job 放进同一目标
Profiler job 需要尽快完成但不能压过 SLO,固定 reward 为
1;best-effort reward 与 estimated remaining time
成反比,等价于偏向短剩余作业;strict SLO 在 deadline 前 reward 为
100,错过后骤降;soft SLO 可有多个 deadline 和逐级下降的 reward(PDF
pp.6-7,Fig. 5)。论文用 1:100 的量级隔开 non-SLO 与 SLO,避免
profiler/best-effort 抢走维持 deadline 必需的 GPU。
这个统一并不等于“所有用户偏好都被正确量化”。作者明确承认 reward scale
没有唯一答案:SLO reward 太高会让用户不愿提交 best-effort,太低又会诱导
solver 牺牲 deadline(PDF p.7,Sec.
III-C2)。创新是给出统一接口与可优化表达,不是解决价值权重本身。
3. Lease-based MILP 联合选择时间与空间
Best-effort/profiler lease 固定 5 分钟,SLO lease 经验设为 10
分钟;SLO lease 长度必须是 BE lease 的整数倍(PDF pp.6,8,Fig. 4 与 Sec.
III-C4)。短 lease 增加 preemption overhead,长 lease 降低重排机会。MILP
用二元变量表示 job 是否获得第 k 个 lease、是否命中某个 soft
deadline、是否选择某个 allocation policy,并最大化总 reward(PDF
pp.7-8,Eq. 4-13)。
若本轮 solver
未及时返回,系统先复用上一轮缓存方案缩小搜索和执行停顿,再重新调用
solver(PDF p.8,Sec. III-C4)。这种 fallback 很实际:lease
调度不能因为求最优解而让所有 GPU 等 solver。
4. Cell-based policy 同时考虑 GPU 数与拓扑
Policy Generator 借用 HiveD 的 buddy cell,把 1、2、4、8 GPU node
抽象成层级 cell。一个 6-GPU job 不只有“6”这一种表示,还可选择跨不同 cell
的组合;Estimator 给每个组合估 throughput,MILP 在 deadline 可行性与
consolidated placement 之间选择(PDF p.7,Sec.
III-C3)。枚举只用于请求不超过 16 GPUs 的 job,以限制组合数。
这解决了 CHRONUS 的 round-up 问题:SLO 不紧时可以让某个 SLO job
使用稍分散、稍慢的 placement,把完整 node 留给 best-effort 或另一个紧急
SLO;deadline 紧时仍可选择 consolidated cell。job selection 与 placement
因而不再先后割裂。
Trace、集群与基线
模拟器有 11,978 行 Python,UniSched policy 另有 1,113 行,使用 Gurobi
9.1。Kubernetes prototype 包含 watcher、controller、scheduler,watcher
每 5 分钟汇报 validation metric 和 runtime speed(PDF pp.8-9,Sec.
IV-A)。大规模模拟使用 Helios 与 Philly trace,集群 C120/C96 分别有
120/96 个八卡节点,即 960/768 GPUs(PDF p.9,Sec. IV-B)。
Strict SLO deadline 从 [1.1, 2.0] x job duration
随机生成;soft SLO 的首个 deadline 同样生成,后续 deadline 为首个的
1.1、1.2、1.5 倍,对应 reward 80、50、20。Iteration-based 与
performance-based job 占 80% 与 20%(PDF p.9,Sec. IV-B)。六种 workload
分别为全 strict SLO、strict SLO + best-effort、strict/soft SLO +
best-effort,在 Helios 和 Philly 上各一套。
物理实验使用 16 个四卡 V100-32GB 节点,共 64 GPUs;每节点还有 64 CPU
cores、256GB 内存和 200Gbps HDR InfiniBand,软件为 Kubernetes 1.18.2 与
CephFS 14.2.8(PDF p.10,Sec. V-A)。模型包括
ResNet18/50、MobileNetV2、VGG19、BERT,数据集为
CIFAR-10、ImageNet、WikiText-2。T[360] 与 T[720]
两种八小时提交负载下,模拟器和原型的 weighted deadline miss rate
差异最多 2.57%,average JCT 相对差异最多 5.38%(PDF p.10,Table
III)。
端到端仿真中,UniSched 相比 deadline-aware baselines 在纯 SLO
workload 上将 weighted deadline miss rate 降低 1.17-4.82 倍;mixed
workload 的论文原文范围是 0.95-2.77 倍,其中下界 0.95
倍意味着个别配置并未改善,不能笼统写成“全部降低”;相比普通 DL schedulers
则降低 2.01-6.84 倍(PDF p.10,Fig. 6a)。Best-effort average JCT
相比全部 baselines 降低 1.18-4.02 倍,其中相对普通 DL schedulers 为
1.18-3.11 倍,相对 deadline-aware schedulers 为 1.66-4.02 倍(PDF
p.10,Fig. 6b)。
Estimator 的平均 runtime-speed 预测误差在不同 GPU 数下小于 5%,但
BERT/local batch 12 在 16 GPUs 时误差达到 16.3%;执行中段的整体 duration
平均误差仍在 10% 内(PDF pp.11-12,Fig. 7)。统一 profiling 将最长
pending time 从 2,105 秒降到 840 秒;training-iteration estimator 让
weighted deadline miss rate 再降 0.7%-5.1%(PDF p.12,Fig.
9a-b)。Solver 在随 cluster scale 增长的实验中最大延迟小于 10 秒(PDF
p.13,Fig. 10d)。
方法贡献
UniSched
把原来分别处理的四组问题放进同一资源-时间模型:profiling 与正式执行、SLO 与
best-effort、固定 iteration 与目标性能停止、job selection 与
topology-aware placement。Reward 表达用户需求,Estimator 估算
duration,cell policy 编码 topology,lease
把连续时间离散化,最后交给一个 MILP 联合求解。相比 CHRONUS,这套模型更容易扩展新
job type,也减少了多个独立策略之间的冲突。
估计误差和求解开销
- 假设同构 GPU 与同构网络,只评测 data parallel +
all-reduce。Tensor/pipeline parallel、NVLink/GPUDirect
的非统一通信成本都留作未来工作(PDF pp.4-5,Sec. III-A/B)。
- 每个 job 至少能在单 GPU 上放下一个样本;超大 foundation model
不满足这一前提。
- Runtime model 线性外推通信,忽略 computation/communication overlap
和 PCIe saturation。前者会保守高估时间,后者只能在执行中再更新(PDF
p.5,Sec. III-B1)。
- Policy enumeration 只覆盖请求不超过 16 GPUs 的 job;更大 job
的拓扑选择没有同样细粒度(PDF p.7,Sec. III-C3)。
- Deadline 与 soft reward 在 trace 中是合成的,不是 Helios/Philly
原始用户字段;80/20 stopping-criterion 比例也由实验构造(PDF p.9,Sec.
IV-B)。因此结果能比较 scheduler,但不能证明真实集群一定有相同 SLO
分布。
- Reward 量级依赖 operator 与用户约定,论文没有机制防止用户虚报高
reward,也没有给出经济定价或 admission control。
- Autoscaling 只在未来工作中提出;加入 GPU 数范围会增加二元变量和
solver 成本(PDF p.14,Sec. VIII)。
与 deadline 调度论文的关系
- 与 CHRONUS:UniSched 是直接扩展。Estimator 修正
performance-based stopping 和 suspend/resume,Selector 以统一
reward/MILP 替代 CHRONUS 的固定 profiling reservation、SRTF 与 round-up
placement 分支。
- 与 AutoSched:UniSched 仍有 lease 时长、reward
ratio、solver fallback 等配置;AutoSched 解决的正是这些参数随 workload
漂移后如何自动重调。两者是 policy 与 meta-configuration 的关系。
- 与 Ymir:两者都用 Estimator + solver
联合时间和资源,但 UniSched 的未知量是 job duration、deadline 和
placement,Ymir 额外把 task pair 与 transfer mode 变成决策变量。Ymir
可视为在 FMF 语义下把 UniSched 式资源-时间模型再向算法层扩展。
- 与 PromptTuner:PromptTuner 也以 SLO violation
为核心,但它利用 prompt reuse、warm pool 和快速 elastic
allocation处理短时 LLM prompt tuning;UniSched
是更通用、但启动与模型语义更弱的训练 scheduler。
- 与 ICEFROG、SchedMate:ICEFROG 增加 layer-freezing
state,SchedMate 增加代码/日志语义,二者都能为 UniSched 的
Estimator/Policy Generator 提供更丰富输入。UniSched
提供的是把这些信息最终转成 reward 与 allocation constraint
的统一骨架。
核对目标函数时从哪里开始
先读 Table I 与 Fig. 1,建立四类需求组合;再读 Fig. 2 的两阶段
workflow。Estimator 部分按 Eq. 1、Eq. 2、Eq. 3
顺序读,分别对应总时长、每步时长和抢占开销。Selector 先看 Fig. 5 的
reward,再看 cell policy,最后读 Eq.
4-14;不要一开始陷入全部符号。实验优先看 Fig. 6 的端到端结果、Fig. 7/9
的估计误差与消融、Fig. 10/11 的 lease 和 joint placement,最后用 Fig. 12
判断相对 CHRONUS 的增量来自哪里。
四篇放在一起看:控制面分层
| 层次 |
论文 |
主要输入 |
核心决策 |
主要风险 |
| 通用作业调度 |
UniSched |
deadline、stopping criterion、profile、GPU topology |
job/lease/placement |
duration 估错、reward 标定不当、MILP 扩展性 |
| 调度器自配置 |
AutoSched |
workload trace、scheduler metrics、配置依赖 |
下一轮 scheduler knobs |
future trace 失真、因果剪枝漏掉好配置 |
| HPO 作业改造 |
Hydro |
search space、模型图、trial 状态、bubble/异构 GPU |
surrogate scale、fusion、trial placement |
超参数不可迁移、fusion/bubble 前提不满足 |
| FM 微调语义调度 |
Ymir |
loss、gradient、backbone、transfer gain |
task pair、transfer mode、GPU allocation |
负迁移、隐私、backbone/任务异质性 |
四篇可以沿着一条线来读:UniSched 统一用户需求,AutoSched
适应 workload 漂移,Hydro 重塑 HPO job,Ymir 把 FM task relation 放进
scheduler。
调度器由此逐步看见过去藏在 job 黑盒里的信息,而不再只根据到达时间、GPU
数和运行时长排队。
GPU
训练调度器的目标分化与系统演进:CHRONUS、ASTRAEA、Titan、Lucid
这四篇论文来自高度重合的作者团队,但它们不是同一个调度器的四次版本升级。更准确的理解是:团队先后抓住了
GPU 训练集群中的四类矛盾,分别是
deadline、fairness、基础模型微调的工作负载特征,以及研究型调度器难以落地的问题。CHRONUS
和 ASTRAEA 共享 lease-based training 这一技术骨架;Titan 针对 foundation
model fine-tuning 另起一条专用调度路线;Lucid
则重新审视前面这类依赖抢占、checkpoint、求解器或黑盒模型的设计,主动换取“非侵入、可扩展、可解释”的部署属性。
先看四篇各自在解决什么
| 论文 |
系统抓手 |
首要目标 |
决策所依赖的信息 |
是否抢占/侵入 |
| CHRONUS (SoCC 2021) |
把训练时间切成 lease,用 MILP 给 SLO 作业预留未来
GPU-time,同时把余量交给 best-effort 作业。 |
降低 SLO 作业的 deadline miss,同时缩短 best-effort JCT |
在线 profiling 得到的运行时间、GPU 数、deadline、placement
topology |
会抢占;需要 checkpoint 与客户端 watcher |
| ASTRAEA (TPDS 2022) |
用“实际得到的 GPU-time / 应得 GPU-time”统一衡量 tenant 和 job
两级长期公平。 |
公平,兼顾 JCT |
历史累计 GPU-time、tenant quota、job demand |
会抢占;修改用户侧 DL library 支持按需 checkpoint |
| Titan (SoCC 2022) |
利用基础模型结构固定、多任务可合并、pipeline parallelism
三个特征,专门调度 fine-tuning。 |
降低 fine-tuning 平均 JCT 和 makespan |
离线 LUT、dataset card 语义、pipeline 切换开销 |
主调度模型非抢占;task merge 会改变训练数据组织 |
| Lucid (ASPLOS 2023) |
用非侵入
profiling、保守共置和可解释预测,在不改用户代码、不抢占的前提下逼近或超过侵入式调度器。 |
平均 JCT、排队时延、利用率与可部署性 |
GPU 硬件计数器、历史作业、可解释模型 |
不抢占;不改用户代码、框架或 CUDA |
25. CHRONUS:把 deadline 变成可分配的 lease 时间表
打开本篇完整解释
论文:Chronus: A Novel
Deadline-aware Scheduler for Deep Learning Training Jobs
CHRONUS 怎样分配期限
CHRONUS 是一个面向混合负载的 deadline-aware GPU 调度器:它先判断哪些
SLO 真能保证,再用离散 lease 和 MILP
安排这些作业未来在哪些时间片运行,剩余资源则服务 best-effort 作业。
Deadline 为什么不能只靠用户估时
已有 DL 调度器通常优化吞吐、JCT
或公平,却不直接保证完成期限;传统大数据 deadline 调度又没有利用 DLT
作业的三个特征:迭代过程可预测、checkpoint 后可抢占、性能强依赖 GPU
placement。论文的用户调查也说明问题不是“所有 deadline 都绝对刚性”:103
名参与者中,超过 60% 会提交带完成时间预期的训练作业,96% 提交过
best-effort 试错作业;约 3%、12%、21%、22% 的参与者分别可接受
0%、5%、10%、20% 的 deadline 延迟。与此同时,近 80%
的人估计作业完成时间时至少有 10% 误差,40% 的人至少有 25% 误差(PDF 第 3
页)。因此 scheduler 既不能完全相信用户报时,也不能只做 strict deadline
的二元判断。
从 profiling 到 lease 日历
CHRONUS 把集群逻辑划成 Profiling、Guaranteed、Spot
三部分,容量随负载变化。完整路径如下(PDF 第 4 页,图 1):
- 用户提交 GPU demand、训练迭代数和 deadline。Profiler 以 FCFS
运行作业一个固定窗口:短作业和故障作业可能直接在 profiling
阶段结束;长作业则测出单次迭代时间。
- 对多节点作业,Profiler
最多只使用一节点和两节点各测一次。若单节点迭代时间为
t1 = tc,两节点为 t2 = tc + to,则估计
n 节点时间为
tn = t1 + log2(n)(t2 - t1),避免按原规模占用大量 profiling
GPU(PDF 第 4-5 页)。
- Admission control 调 MILP 检查 SLO 是否存在可行安排。可行作业进入
guaranteed SLO queue;不可行作业会被明确告知无法保证,并降入 best-effort
queue(PDF 第 5 页)。
- Selector 把每个长作业切成固定长度 lease。对 guaranteed SLO
作业,MILP 用二元变量表示“作业是否取得第
k 个
lease”,在每个时间片不超集群容量的约束下,最大化所有作业的 deadline
reward;strict SLO 的 reward 从按时完成时的 100 跌到逾期后的 1,soft SLO
则随延迟分段下降(PDF 第 5-6 页,图 3、式 1-5)。
- Guaranteed cluster 采用 20 分钟 SLO lease;Spot cluster 对
best-effort 与 unguaranteed SLO 使用 SRTF 和 300 秒 BE lease。SLO
作业提前结束后,空出的资源会在下一次 BE cycle 转入 Spot cluster(PDF 第
6 页)。
- Allocator 再把“何时运行”变成“放在哪些 GPU 上”。Guaranteed 作业优先
consolidated placement;不利于整齐装箱的 GPU demand 会向
{1, 2, 4, 8n} 上取整,确保存在紧凑放置。Spot 中的小作业则按
placement sensitivity 排序,只对搜索空间阈值内最敏感的前 K
个作业穷举,其他作业 quasi-consolidate;实现中的搜索空间阈值是
100,000(PDF 第 7、10 页,式 6-8、算法 1)。
- lease 到期后,controller 触发 checkpoint,scheduler
根据新一轮结果续租或抢占。若 MILP
本轮超时,则从上一轮缓存解开始缩小搜索空间(PDF 第 6、11 页)。
保证队列、Spot 队列与放置
1. 两节点 profiling。 它利用数据并行 AllReduce
的简化通信模型外推任意节点规模,核心价值是把“为了做 deadline
决策先占满用户要求的
GPU”变成最多两节点的测量。但它成立的前提也很强:通信时间需大致符合
log2(n),且论文不处理 model parallelism。
2. lease-based MILP。 连续运行时间被离散成多个可抢占
lease 后,MILP 可以把同一作业的执行片段放到 deadline
之前不同位置,搜索空间比不可抢占排程更灵活。15-30 分钟的 SLO lease
在实验中最好,论文最终取 20 分钟;短于 10 分钟会因抢占过频增加
miss,过长则失去重排机会(PDF 第 9 页,图 7a)。
3. strict/soft SLO 的统一 reward。 deadline
不再只是硬约束,而是一个 1 到 100 的分段 reward 函数。Admission control
先剔除根本不可保证的请求,MILP 再在可行作业间最大化总
reward,避免一个不合理 SLO 拖垮其他作业。
4. placement-aware allocation。 Selector 只决定 GPU
数和时间还不够;若实际 GPU 分散到更多节点,profiling
得到的速度就会失真。Round-up 用少量资源冗余换 guaranteed 作业的 topology
可实现性,local search 则在 Spot cluster 中权衡碎片与速度。
Trace、期限与对照
- 模拟使用两条真实 trace:Helios 对应 96 节点、每节点 8 GPU 的
C96,主要工作负载各含 6,599 个作业;Philly 对应 120 节点、每节点 8 GPU
的 C120,各含 30,940 个作业。另有 5,735 个 Helios 短作业用于 Profiler
实验(PDF 第 8 页,表 1)。
- 原 trace 没有 deadline。strict SLO deadline 被合成为
[1.2Ri, 2Ri] 内随机值;soft SLO 在首个 deadline 之外再设
1.1D、1.2D、1.5D 三档,reward
分别为 80、50、20。这一点很重要:deadline 结论建立在合成 SLO 上,而非
trace 中真实用户期限(PDF 第 8 页)。
- 对比六个
baseline:Yarn-CS、EDF、3Sigma、GENIE、Tiresias、Themis。论文报告,端到端模拟中
deadline miss rate 最多降低 14.7 倍,best-effort JCT 相比其他
deadline-aware 解法最多降低 19.9 倍(PDF 第 1-2 页;端到端结果见图
9)。
- 动态 Profiling cluster 在混合工作负载上把 profiling pending overhead
控制到 32 秒,并得到最低 5.0% wDMR;submission control 把最长 profiling
等待从 2,105 秒降到 960 秒。给预测时间加入高斯噪声时,噪声标准差小于 40%
的范围内表现仍较稳健(PDF 第 9 页,图 6)。
- MILP
扩展性实验中,即使集群与作业量一起扩大,观测到的最大求解延迟仍小于 10
秒(PDF 第 10 页,图 7d)。
- 原型部署在 Kubernetes 和 120-GPU 集群上;scheduler/controller 共
4,293 行 Go,客户端 watcher 为数百行 Python。原型抽样作业使用
VGG16、AlexNet、MobileNet、InceptionNet、ResNet、GAN、BERT、RL,单作业不超过
16 GPU、持续 5-180 分钟,提交过程持续 10 小时(PDF 第 11 页,图
10)。论文只说原型与模拟差距“可接受”,图中没有给一组统一的文字化误差百分比,因此这里不猜柱高。
方法贡献
CHRONUS 把 profiling、admission、时间片选择和 topology placement
连成一个闭环,并用
DLT 可 checkpoint 的特性让 MILP 对未来时间作离散排程;soft deadline
reward 也比只区分按时/逾期更接近实际用户容忍度。admission control
只承诺经过可行性检验的 SLO,拒绝无法兑现的请求,而不是无条件接受后再统计违约。
期限预测和抢占的限制
- 系统假设训练迭代数固定、每张 GPU 可容纳完整模型,不支持 model
parallelism,并以同构 GPU 和物理网络为主要设定(PDF 第 3、13
页)。这与今天大模型训练的常见条件有明显距离。
- deadline 是从作业运行时间人工合成,不是生产 trace 的原生 SLO;14.7
倍这一结果应理解为该合成策略下的模拟结果。
- 抢占不是免费的。客户端 watcher、checkpoint 和 controller
通信都要求作业配合,属于侵入式部署;论文原型也将真实抢占开销视为模拟与实机差距来源。
- 两节点外推依赖简化性能模型。复杂网络争用、异构 GPU、模型并行或 input
pipeline bottleneck 都可能让估计偏离。
- Round-up 可能额外申请 GPU,而且 consolidation-hostile
作业多时收益下降。它更适合 deadline
价值高、愿意用容量冗余换确定性的集群。
26. ASTRAEA:用长期 GPU-time 衡量公平
打开本篇完整解释
论文:ASTRAEA: A Fair
Deep Learning Scheduler for Multi-tenant GPU Clusters
ASTRAEA 怎样记公平账
ASTRAEA 用 Long-Term GPU-Time Fairness(LTGF)同时核算 tenant 和 job
的历史欠账,再按“先选最欠资源的 tenant、再选其内部最欠资源的 job”发放
lease。
Gang scheduling 如何改变公平
传统 instantaneous fairness 很难直接移植到 DLT:gang scheduling 要求
GPU 全给或全不给,placement topology 会改变训练速度,频繁抢占还会产生
checkpoint/cold-start 开销。Themis 的 finish-time fairness 虽然已经使用
lease,却只看完成时间,不看作业一次占多少 GPU。论文用一个 6-GPU
例子说明:若一个 6-GPU 作业和两个 3-GPU
作业轮流获得相同运行时间,前者实际拿走一半
GPU-time,后两者各只有四分之一;这还会诱导用户虚报 GPU demand(PDF 第
4-5 页,图 6)。
生产 trace 也显示为什么要同时考虑大小作业。SenseTime Venus 的 6
个月数据包含 133 台 8-GPU 服务器、16 个 tenant、109,734 个 DLT
作业;其中 52.2% 正常完成、27.9% 被取消、19.9% 失败。52.5% 的作业只需 1
GPU,但这些作业仅消费 4.7% 总 GPU service time;需求不少于 8 GPU
的作业消耗了 85.7% GPU service time(PDF 第 3 页,图 1-3)。只看 job
count、运行时间或瞬时份额,都会漏掉一部分公平性。
两级 LTGF 与 lease 流程
LTGF 的基本量是 GPU service time,即 GPU 数乘运行时间。对作业
i,在区间 [t1,t2] 内:
r_job = 实际累计 GPU-time / 按权重和活跃作业数计算的应得 GPU-time。
tenant 层同理:
r_tenant = tenant 实际累计 GPU-time / 按 tenant weight、quota 与 demand 计算的应得 GPU-time。
r >= 1 表示至少获得了 sharing incentive
所承诺的份额,r < 1 表示存在 sharing loss(PDF 第 5-6
页,式 1-15)。系统运行流程如下:
- 每个 tenant 有独立 pending queue。新作业与 lease
到期的运行中作业都进入本轮候选集(PDF 第 6-7 页,图 7-8)。
- ASTRAEA 在每轮开始更新所有 tenant 的
r_tenant
和所有作业的 r_job,统计窗口从 tbegin
到当前时刻。
- Phase 1 选择
r_tenant 最小、即长期 GPU-time 欠账最多的
tenant。若它没有可放置作业,就跳到下一个 tenant,避免整个集群卡住。
- Phase 2 在该 tenant 内选择 reward 最大的作业;基本 reward 是
-r_job,因此 r_job
越低优先级越高。实现还会适当提高新提交短作业、已运行很多 lease
的长作业和紧急作业的优先级(PDF 第 8-9 页,算法 1-2)。
- 若资源与 placement 都满足,作业获得一个固定 lease 和其完整 GPU
demand;tenant 的累计分配量随即按“该作业将运行整个
lease”更新,调度器继续选择,直到没有可放置作业。
- lease 到期时,作业先产生
checkpoint,再申请续租。续租成功则原地继续;失败则被抢占,GPU 回收后按
consolidated placement 分给新选中的作业。
欠账、续租与 placement
1. 两级 LTGF。 Tenant quota
解决不同团队之间的资源贡献与回收,job-level ratio
再防止同一团队里的大作业或长作业压住小作业。它只依赖已经发生的
GPU-time,不需要像 Themis 那样预测 remaining
time;对取消率和失败率高的探索型训练更稳妥。
2. Lease 将长期公平变成可执行动作。 LTGF
本身只是度量。固定 lease
让调度器周期性纠偏,而不是为了瞬时公平随时抢占。论文根据历史 trace 选择
900 秒:它的 JCT 接近最优的 1,200 秒设置,但公平性更好(PDF 第 9-10
页,图 9)。
3. On-demand checkpoint 与 last store。
每次迭代更新内存 snapshot;收到 POSIX signal 后,daemon 先把最近完整
snapshot 刷盘。如果当前迭代来得及结束,再写更新版本,否则下次从前一个
snapshot 恢复。这避免资源回收时等待一个很长的 iteration(PDF 第 7
页)。
4. 欠账优先但保持 work conservation。 最不公平
tenant 当前没有可放置作业时,系统会跳过它继续找其他 tenant;未用 quota
可被借出,未来该 tenant 有 burst demand 时再通过较低 fairness ratio
取回。实验实现把 tenant fair share 直接改为 quota(式
16),正是为了更快反映这种借出与回收(PDF 第 8 页)。
Venus trace 与模拟设置
- 评估是 trace-driven simulation。Venus 两周快照有 11,304 个作业、16
个 tenant,原集群 1,064 GPU;Philly 两周快照有 44,329 个作业、15 个
VC,原集群 2,490 GPU。为提高模拟负载,实验分别缩成 100 个和 210 个 8-GPU
节点,即 800 与 1,680 GPU;Philly 没有 VC size,论文假设 VC 大小正比于该
VC 全部作业请求的 GPU 总数(PDF 第 9 页)。
- lease 是 900 秒,调度 interval 是 10 秒,placement 使用 consolidated
strategy。baseline
共六个:YARN-CS、HiveD、Allox、Tiresias-L、Themis、Gandivafair(PDF 第 9
页)。
- 若把
r_job < 0.95 定义为 sharing-loss job,Venus 上
ASTRAEA 的比例为 7.1%,Themis 为 19.7%,YARN-CS 为 73.6%;后两者分别是
ASTRAEA 的 2.8 倍和 10.3 倍(PDF 第 10 页,图 10)。
- Tenant 层把
r_tenant < 1 视为 sharing loss。ASTRAEA
的不公平区间比例为 5.2%,Allox 6.9%,Gandivafair 8.0%,Tiresias-L
49.0%,YARN-CS 44.6%,对应 1.3-9.42 倍改进(PDF 第 10 页,图 11)。
- 900 秒 lease 下,checkpoint 与 cold-start 带来的额外平均 JCT 开销约
0.8%(PDF 第 11 页;对应图 9)。图 13 显示 ASTRAEA 的平均 JCT 低于各
baseline,但 PDF 正文没有逐项列出柱值,这里不从低分辨率柱图猜数字。
方法贡献
ASTRAEA
最重要的贡献是把“公平”从抽象口号变成可审计的累计账本。GPU-time
同时编码空间维度的 GPU demand 和时间维度的占用时长,tenant/job 两级
ratio 又对应共享集群的两层治理。它还指出 finish-time fairness
的激励漏洞:若不把 GPU 数算进公平度,虚报大 demand 反而可能占便宜。
公平定义和模拟证据的边界
- 论文只有 trace-driven simulator,没有 Kubernetes
或生产原型;checkpoint
机制虽然设计得具体,但端到端工程成本和故障恢复行为没有实机验证。
- On-demand checkpoint 需要修改用户侧 DL library 并运行
daemon,仍是侵入式方案。不能稳定 checkpoint 的作业不适用。
- LTGF
是回顾性的长期指标。突发负载下反应可能慢,论文实现为此把理论定义中的
demand-aware fair share 改成 quota(式 16),说明理论 metric
与实验调度规则并非完全同一形式。
- 目标是公平,不是 deadline。新作业、长作业和紧急作业的附加 priority
也意味着严格的纯 LTGF 次序可被局部修正。
- placement 不是论文贡献,实验固定使用 consolidated placement;异构
GPU、网络差异和弹性训练没有进入公平账本。
27. Titan:基础模型微调不是普通 DLT 的缩小版
打开本篇完整解释
论文:Titan: A
Scheduler for Foundation Model Fine-tuning Workloads
Titan 利用哪些微调特征
Titan 利用 foundation model
结构固定、多个下游任务可能共享参数、训练普遍使用 pipeline parallelism
这三个条件,把运行时间估计、任务合并和 context switch 一起纳入
fine-tuning 调度。
微调负载为何值得单独调度
普通 DLT 调度器往往假设作业可轻量 checkpoint、可做 data-parallel
elasticity,或者要在线 profiling 后才知道扩展效率。Fine-tuning
有另一组特征:模型结构固定,最佳并行 plan
可复用;单次任务相对短,但模型参数大,切换成本相对突出;多个语义相近下游数据集可能合并训练。论文指出,一个有效的并行执行
plan 可把 throughput 提高最多 10
倍,但搜索通常要几分钟;若模型结构、batch size 和输入 shape
相同,就可以缓存结果(PDF 第 1 页)。
估时、合并与切换流程
Titan
是事件驱动的非抢占调度器,在作业提交或完成时求解资源分配。它把待运行作业
ji 在分配 a 张 GPU 时的单位时间进度记为
Ti,a,用二元变量 xi,a 表示是否采用该分配,MILP
在 GPU 总量约束下最大化所有作业的单位时间总进度。允许的 GPU 数集合是
{1, 2, 4m}(PDF 第 2 页,式 1-4)。完整流程如下:
- 用户提交 fine-tuning dataset。系统根据数据规模确定 batch-size 范围和
epoch 数。
- Time Estimator 查询离线 LUT。键包括 GPU 数
a、gradient
accumulation steps s、global batch size
m、冻结层数 l、是否 mixed precision、是否
gradient checkpoint;值是对应
throughput。未见配置用线性插值估计。系统同时得到运行时预测和该资源量下的较优训练配置(PDF
第 3 页)。
- Task Merger 从 dataset card
中提取任务类别、对象类别等关键词,用语义相似度判断哪些数据集可能安全合并。它不是“能合就全合”:系统枚举候选
merged jobs,把单任务和 merged task 一起放入扩展 MILP,并用
(1 + |merged set|) / 2 对合并任务进度加权,避免一个超长
merged job 拉高平均 JCT(PDF 第 3-4 页,式 5-11)。
- MILP 为独立作业或 merged job 选择 GPU 数。论文报告 320-job 问题在 1
vCPU 上平均求解 0.005 秒、最大 0.16 秒(PDF 第 2 页)。
- 当作业完成、需要切换模型参数时,Pipeline Switch 让旧作业的参数
GPU-to-CPU 保存、新作业 CPU-to-GPU 加载,与不同 pipeline stage
上仍在进行的 forward/backward
计算重叠。新作业按反方向从最后一台机器向第一台机器加载,尽量隐藏切换路径(PDF
第 4 页,图 2)。
- 下一次提交或完成事件重新求解;主模型不依赖频繁抢占,因此调度灵活性主要来自资源分配、合并与切换优化,而不是在途作业的
lease 重排。
吞吐表、MILP 和 Pipeline Switch
1. 固定结构 LUT。 Titan
不试图拟合一个跨模型通用性能公式,而是承认 fine-tuning service 围绕少量
foundation model 反复出现。用 64 GPU 穷举训练配置建表需要 37
小时,但之后每个请求可直接查询(PDF 第 3
页)。这是把离线成本换成在线速度和可预测性。
2. Task Merger。
多个语义相近任务共享同一套模型参数,可以减少重复模型实例和 GPU 消耗。表
2 的例子很直观:两个各 20 分钟的任务,合并后平均 JCT 为 25 分钟,SRTF
顺序执行为 30 分钟;但 5 分钟与 100 分钟任务合并后是 102 分钟,SRTF
平均仅 55 分钟。因此合并必须进入调度优化,而不是作为固定预处理(PDF 第 3
页,表 2)。
3. Pipeline Switch。 ViT-Large/16 的实测切换开销在
8、4、2 GPU 分配下,naive 分别是 46、29、22 秒,pipeline switch 降为
6、5、7 秒(PDF 第 4 页,图 3)。它利用 pipeline 已经存在的 stage
切分来隐藏参数搬运,而不是另造一套 checkpoint 格式。
4. Merge-aware MILP。
同一原始任务不能既独立运行又出现在 merged job 中,不同 merged set
也不能重叠;资源约束同时覆盖两类候选。该模型把“训练系统能否合并”与“此时合并是否有利于
JCT”分开处理。
工作负载、集群与对照
- 生产 FM trace 来自 88 节点、共 704 张 NVIDIA V100 的集群,覆盖 3
个月和 18,471 个作业;论文筛选运行 5 分钟至 10
小时的作业做分析,其中超过 50% 的 FMTrace 作业短于 30 分钟(PDF 第 4-5
页,图 4)。
- 模拟集群是 16 节点、64 GPU,模型只有 ViT-Large/16。合成工作负载含
320 个作业,按 FMTrace 的提交模式在前 8 小时到达;batch size 在 64-512
间按以
sqrt(2) 为底的指数步长 profiling(PDF 第 2、4-5
页)。
- 表 3 的准确结果是:SRTF 平均 JCT 1.68 小时、makespan 33.09
小时;Tiresias 为 1.67/33.09 小时;去掉 task merger 的 Titan 为
1.23/33.11 小时;去掉 pipeline switch 为 1.16/29.01 小时;完整 Titan 为
1.04/29.01 小时(PDF 第 5 页,表 3)。据此论文总结,相比 baseline,平均
JCT 降低 38%,makespan 降低 12%;task merger 与 pipeline switch
分别贡献约 15% 和 10% 的平均 JCT 降幅。
- 相对 workload density 为 0.5、1、1.5、2 时,JCT 显著下降的作业占
18%、19%、20%、19%,显著上升的占 6%、8%、7%、11%;“显著”定义为相对 SRTF
至少变化 10%(PDF 第 5 页,表 4)。
方法贡献
Titan 针对 foundation model 的固定结构、任务适应关系和 pipeline parallelism,分别设计了离线 LUT/plan cache、task merge 和模型切换通道。调度器由此能在计划生成、资源选择与运行时切换中利用 workload structure,而不是沿用通用深度学习作业模型。
合并条件和切换成本
- 这是一篇 7 页的短论文,作者明确称结果为
preliminary。评估只有模拟,没有 Titan 原型;文末把 Kubernetes prototype
和生产部署列为未来工作(PDF 第 5-6 页)。
- 只 profile 和模拟 ViT-Large/16,不能据此断言 LUT、merge 或 pipeline
switch 对 NLP 大模型、不同并行框架同样有效。
- Task Merger
有准确率与数据隐私风险。用户可关闭合并,但论文还提出降低此类作业优先级作为激励;这涉及服务策略,不只是技术优化。若合并后达不到目标准确率,方案是再单独训练一段恢复,但没有给恢复成本的实验(PDF
第 4 页)。
- LUT 的“37 小时”是 64 GPU 连续运行 37 小时,即 2,368 GPU-hours
的一次性 profiling 量;模型、输入 shape
或软件栈变化后可能要重建。这里的换算是由论文数字直接计算,不是论文原文指标。
- Pipeline Switch 目前只重叠跨机器参数 load 与 gradient
computation;单 GPU
异步切换、数据预处理、参数高效微调、存储成本以及训练/推理混部都被列为未来工作(PDF
第 5 页)。
- MILP
目标是最大化当前单位时间总进度,并不等价于从数学上直接最小化全局平均
JCT;论文靠 task-merge 权重和实验证明其效果。
28. Lucid:把“调度效果好”推进到“生产环境敢部署”
打开本篇完整解释
论文:Lucid: A
Non-Intrusive, Scalable and Interpretable Scheduler for Deep Learning
Training Jobs
Lucid 选择了怎样的部署路径
Lucid 是一个 preemption-free 的 learning-augmented scheduler:只读
GPU 硬件指标和历史日志,以保守共置、运行时预测和可解释模型降低
JCT,不要求用户代码、DL framework 或 CUDA 配合。
高收益调度器为何难以接入生产
Lucid
把此前调度研究的落地障碍归为五类:用户代码侵入且易出错、与框架/CUDA
集成维护成本高、自适应 batch size/learning rate
可能损害模型质量、优化器或 RL
在大队列上扩展性差、黑盒决策难以调试。论文举例,Gavel 求解 2,048-job
分配可花数千秒,Metis
只能处理数十个作业;而生产集群可能并发数千作业(PDF 第 2 页)。Lucid
的立场很明确:不再靠更激进的弹性和抢占赢性能,而是利用生产 workload 的低
GPU 利用率、重复提交和大量短调试作业。
Profiler、Binder 与 Orchestrator
Lucid 由三个 scheduling module 和两个 optimizer 组成(PDF 第 4-8
页,图 4):
- Non-intrusive Job Profiler
先给作业一个短窗口,只通过 NVIDIA-SMI/DCGM 采 GPU utilization、GPU
memory footprint、GPU memory
utilization。短调试/失败作业可在此阶段结束;其余作业得到资源特征。Profiler
在空间上优先小 GPU demand、consolidated 放置,在时间上根据预测吞吐动态调
Nprof、Tprof 与 profiling cluster
capacity。
- Packing Analyze Model 用 Decision Tree 把作业分成
Tiny、Medium、Jumbo,对应 Sharing Score
0、1、2。分类依据是资源指标和可选的 mixed-precision
标记,而不是把作业真正共置后再测 slowdown。
- Affine-jobpair Binder 执行 Indolent Packing。每张
GPU 的 score 总和默认不超过
GSS=2,显存必须安全,只合并 GPU
demand 相同的两个作业,资源行为不稳定就驱逐,分布式作业默认不共置。若
Throughput Predict Model 判断集群低负载且不会很快升高,则降为
GSS=1,甚至暂时关闭 sharing,避免无谓 slowdown(PDF 第 6
页,图 5、算法 2)。
- Workload Estimate Model 用 GA2M
结合用户、作业名、GPU demand、提交时间和 profiler 特征预测时长。Resource
Orchestrator 把
预测时长 × GPU demand 当
priority,按升序调度,近似 Shortest-Service-First;有合适 affine pair
时共置,否则 consolidated exclusive placement(PDF 第 6-7 页)。
- Throughput Predict Model 同样使用可解释
GA2M,以小时、日期、rolling mean/median、历史 soft sum 等特征预测 job 和
GPU request throughput,用于 Binder 模式和 Profiler 容量调整。
- Update Engine
周期性用新日志更新模型;System Tuner 通过历史 trace
simulation 和解释结果调系统参数,并可用 PAV 给特征 shape function
加单调约束(PDF 第 8 页)。
非侵入画像、保守共置和排序
1. 二维 Profiler。 Space-aware 部分先服务小 GPU
demand,减少小 profiling cluster 的 HOL blocking;time-aware
部分根据预测负载借还节点、调整 profiling
时间。它不是单纯“为预测采样”,还承担快速返回调试结果和缩小主调度搜索空间的职责。
2. Indolent Packing。 Lucid
宁可漏掉一部分共置机会,也不把明显会互相干扰的作业塞在一起。在论文
workload 组合中,判为可共置的 job pair 有 98.1% 达到 normalized speed
不低于 0.85,同时找到 87.0% 的 packing opportunity(PDF 第 6 页,图
5)。这是一种面向部署风险的保守策略。
3. 可解释的三模型协同。 DT 解释“为什么能共置”,GA2M
解释“为什么预测这段时间会繁忙”以及“哪些特征让该作业被预测为长作业”。模型不是装饰:吞吐预测控制
profiler 与 sharing,时长预测同时影响 Binder 和 Orchestrator,profiled
features 又提高历史作业匹配精度。
4. 无抢占的 service-time priority。
duration × GPU count
同时看时间和空间成本,避免一个预计很长且占 GPU 多的作业造成 HOL
blocking。新作业没有历史时,按用户历史估计;新用户则用相同 GPU demand
作业的平均时长兜底(PDF 第 6 页)。
Trace、物理集群与模拟
- 实机是 4 台服务器、32 张 RTX 3090,每台双路 Xeon Gold 6326、256 GB
RAM、8 GPU;软件为 Ubuntu 20.04、PyTorch 1.10、CUDA 11.3、cuDNN 8。Lucid
实现约 4,700 行 Python,并有 trace simulator(PDF 第 8 页)。
- 三条生产 trace 为:Saturn 2,080 GPU、101,254 jobs、平均 duration
13,006 秒;Venus 1,080 GPU、23,859 jobs、5,419 秒;Philly 864
GPU、12,389 jobs、25,533 秒(PDF 第 8 页,表 2)。
- 物理集群使用 100-job static trace 和 120-job Poisson-arrival
continuous trace。Lucid 实机 static makespan 为 8.45 小时,FIFO 为 11.56
小时;continuous 平均 JCT 为 3.64 小时,FIFO 为 8.17 小时,对应约 1.4
倍和 2.3 倍改善。模拟与实机在 makespan、平均 JCT 上误差小于 4.6%(PDF 第
8-9 页,表 3)。
- 大规模模拟中,Lucid 在 Venus/Saturn/Philly 的平均 JCT 分别为
3.58/1.79/6.84 小时,Tiresias 为 4.09/1.89/9.02 小时;平均排队时延分别为
0.25/0.16/0.29 小时,Tiresias 为 0.82/0.28/2.62 小时。三条 trace
上平均排队时延改善为 1.8-9.1 倍(PDF 第 9-10 页,表 4)。
- 相比 Tiresias,GPU utilization 提高 9%-17%,GPU memory usage 提高
7%-24%;P99.9 排队时延改善 1.4-2.1 倍;等待中的不超过 60 秒短作业数减少
4.1-24.8 倍(PDF 第 10 页)。
- 2,048 个待调度作业时,包含模型推理的调度决策仍小于 3 ms;Workload
Estimate/Throughput Predict 在半年、
10^5-10^7
样本上训练最多约 11 分钟,Packing Analyze Model 少于 1 秒(PDF 第 10
页,图 10)。
- 可解释模型不只是更容易看懂:Venus 上 Throughput Predict 的 MAE 为
4.125,优于 RF 4.607、LightGBM 4.491、XGBoost 5.807、DNN 5.132;Workload
Estimate 的
R^2 为 0.413,也高于四个 baseline 的
0.101/0.230/0.332/0.181。Packing Analyze 的 DT accuracy 为 94.1%(PDF 第
11-12 页,表 7)。
- Pollux 对比中,一个 EfficientNet 作业的最佳 validation accuracy 是
Lucid 89.84%、Pollux 87.63%,相差超过 2
个百分点;该实验用于说明自适应训练可能改变模型质量,不应外推为所有
Pollux workload 都固定损失 2%(PDF 第 12 页,图 14)。
方法贡献
Lucid 的创新是系统取舍,而不只是某个排序公式。它证明在 workload
重复、GPU 普遍未充分利用、短作业占比高的生产分布里,非抢占调度可以靠
profiling、历史估时和低干扰共置追回性能,并把决策保持在毫秒级。可解释性还被接入调参、单调约束和更新流程,而非停留在输出
feature importance。
工作负载假设和未覆盖目标
- Lucid 依赖 recurrent workload
和历史日志。新用户、新型模型或分布突变时只能退回粗粒度平均值;Update
Engine 能缓解 drift,但不能消除 cold start。
- Profiler 假设初始化和数据搬运不超过
Tprof;超长 cold
start 需要 operator 延长配置或用户显式标记。超过 Nprof
的大规模作业只在线采指标,不进入标准 profiling(PDF 第 5 页)。
- 分布式作业默认不 packing,当前只把同构 GPU 当主要资源;异构 GPU、CPU
和网络联合优化留给未来(PDF 第 6、13 页)。
- 系统不支持 fairness 和 SLO
guarantee,论文把二者明确列为未来方向(PDF 第 4、13 页)。因此它不能替代
CHRONUS 或 ASTRAEA 的目标,只是在 JCT/利用率目标下更易部署。
- 大规模结果来自 simulator;物理验证只有 32 GPU。虽然论文给出小于 4.6%
的模拟误差,但该 fidelity 是在抽样 workload 和同类硬件上测得。
- “不侵入”换来的代价是不对运行中作业做弹性重配。若 workload 缺少可安全
packing 的余量,或历史时长不可预测,Lucid 的优势会缩小。
四篇之间的演进关系
1. 共同的起点:DLT 不能照搬通用集群调度
四篇都从 DLT 的特殊结构出发,但选择的可利用属性不同。CHRONUS
利用迭代稳定、可 checkpoint 和 topology sensitivity;ASTRAEA 利用 gang
scheduling 下可累计的 GPU-time,并用 lease 克服长期作业不可重排;Titan
利用 foundation model 结构固定、多任务适应性和 pipeline
parallelism;Lucid 则利用 GPU
underutilization、重复提交和短调试作业占多数。
2. CHRONUS → ASTRAEA:lease 骨架从 SLO 时间表变成公平纠偏器
两篇最直接的技术继承是 lease。CHRONUS 的 lease 是 MILP
的时间离散单位,回答“哪些 SLO 作业应在哪些未来时间片运行”;ASTRAEA 的
lease 是 LTGF 的执行器,回答“现在该把 GPU-time 还给哪个
tenant/job”。前者必须预测剩余运行时间并理解
deadline,后者刻意只看已经发生的分配,因此能容忍取消和失败,但不提供
deadline guarantee。
3. CHRONUS/ASTRAEA → Titan:从通用目标转向 workload-specific
opportunity
Titan 没有继续扩展 lease,而是注意到 fine-tuning
作业短、模型固定、切换重。它采用非抢占 MILP,通过 LUT、task merge 和
pipeline switch 获取效率。这是目标和假设的变化:与其把任意 DLT
作业切碎重排,不如利用服务只围绕少量 foundation model
这一规律,把最佳配置和切换路径预先做深。
4. 前三篇 → Lucid:从“还能优化什么”转向“为什么部署不了”
Lucid 的五个 gap
几乎是对研究型调度器常见代价的集中回应。CHRONUS/ASTRAEA 需要 checkpoint
和用户侧配合,Titan 的 task merge
会触及数据与训练语义;这些设计各自有效,却提高集成和维护成本。Lucid
因此主动放弃 fairness、deadline、弹性和激进
packing,把边界收缩到硬件指标、历史日志和保守共置,再用解释性与毫秒级决策增强运维信心。它落在另一处
Pareto 点,目标是降低部署门槛,而不是统一前面四类目标。
5. 演进发生在系统假设上
- CHRONUS:可以 checkpoint,deadline 值得为之预留资源。
- ASTRAEA:可以 checkpoint,长期公平比瞬时平均分配更重要。
- Titan:模型家族固定,数据语义允许部分任务合并。
- Lucid:不能要求用户和框架配合,但有历史 trace 和可读硬件指标。
读论文时应先检查自己的集群符合哪组假设,再看倍数。四篇的实验数字不能直接横比,因为目标、trace
处理、集群规模和 baseline 都不同。
四篇之间怎样衔接
完整阅读建议:CHRONUS → ASTRAEA → Titan → Lucid。
这既大致符合发表时间,也能看到设计重心如何变化:先理解
profiler、lease、MILP、placement 组成的通用调度闭环;再看相同 lease
如何服务两级公平;接着看 foundation model fine-tuning
如何产生新的合并与切换机会;最后用 Lucid
重新审视前三篇方案的侵入性、可扩展性和可解释性成本。
每篇内部可按下面的顺序读:
- CHRONUS:图 1 → 第 3.3 节 Selector → 第 3.4 节
Allocator → 表 1 与图 9。先抓住“可行 SLO / 不可行 SLO”分流,再看 lease
MILP。
- ASTRAEA:图 6 → 式 5、12、15 → 算法 1 → 图
10、11。不要一开始陷进所有积分式,先理解 numerator 是实际
GPU-time、denominator 是应得 GPU-time。
- Titan:图 1 → 第 4.1-4.3 节 → 表
3。这篇短,重点检查三个 workload assumption 是否真的支撑三个机制。
- Lucid:图 4 → 算法 2 → 表 2-4 → 图
10-14。读完性能后一定回看第 3.5-3.6 节,弄清“可解释”如何实际控制
packing、scaling、priority 和 tuning。
如果只想快速建立概念,先读 ASTRAEA 的图 6 和 Titan 的表 2,再读 Lucid
的图 4,最后回到 CHRONUS 的图
1。前两个例子最容易看清“错误目标会怎样分错资源”,Lucid
给出模块全景,CHRONUS
则是四篇中调度链条最完整、也最适合最后精读的一篇。
第 D 组:GPU 数据中心工作负载研究详细导读
这四篇文章适合连起来读。SC 2021
先给出大型生产集群的基线,并尝试用历史数据直接驱动调度;ICCD 2022
把视角移到研究开发集群,指出“GPU 已经分配出去”不等于“GPU
真正在工作”;NSDI 2024 再说明进入 LLM
时代后,工作负载的阶段结构、资源偏斜和故障代价都发生了变化;CSUR 2024
则把这些观测放回训练、推理、HPO 和混合负载的调度设计空间中。
页码说明。 下文的“PDF 第 n 页”均指给定 PDF
文件从封面开始计数的物理页码,不是会议论文页脚中的起始页码。例如 ICCD
论文的 PDF 第 1 页对应论文页码
672。凡是能由图表直接定位的数字,同时标注图号或表号;综述中转述其他论文的结果时,会明确说明那不是综述作者重新完成的统一实验。
29. Characterization of Large Language Model Development in the
Datacenter
打开本篇完整解释
论文链接:PDF;arXiv 2403.07648
这组 LLM trace 回答什么
这篇论文第一次把“LLM
开发”作为一条由预训练、对齐、评测等阶段组成的生产流水线来刻画,而不是把它简化成长时间占满大量
GPU 的单一训练作业,并据此落地了预训练容错与评测解耦调度两个系统。
两个集群和六个月窗口
数据来自上海人工智能实验室的 Acme 数据中心,观测窗口为 2023 年 3 月至
8 月,共 6 个月。作者选择了专用于 LLM 开发的 Seren 和 Kalos
两个集群:Seren 有 286 个节点、2,288 张 A100-SXM 80GB,Kalos 有 302
个节点、2,416 张同型 GPU,总计 4,704 张 A100;每个节点均有 8 张 GPU 和
128 个 CPU 线程,Kalos 相比 Seren 具有 2TB 主存和 5 条 200Gb/s
InfiniBand 链路,其中一条服务存储(PDF 第 3 页,表 1)。
作业日志覆盖 Seren 的 368K 个 CPU 作业和 664K 个 GPU 作业,以及 Kalos
的 42K 个 CPU 作业和 20K 个 GPU 作业,合计约 109 万个作业;表 2 也将
Acme 记为 1.09M
jobs。除调度器的提交、启动、结束、状态和资源请求外,作者还采集
Prometheus、DCGM 与 IPMI 监控数据,采样间隔为 15 秒,并保留框架
stdout/stderr 和部分代表性作业的细粒度 profiling 数据(PDF 第 4 页,表 2
与“Trace Source”)。这使论文能够把“申请了多少 GPU”“GPU
是否忙”“为什么失败”三个层次连起来。
需要先划清数据边界:Acme 的这两个集群没有线上 serving
作业;模型主要是 7B 到 123B 以上的 decoder-only Transformer;Seren 使用
Slurm,Kalos 使用
Kubernetes;集群对大规模预训练作业提供配额预留与资源隔离,同时允许
best-effort 作业填充空余资源(PDF 第 3
页)。因此,论文观测到的排队次序并非纯粹由作业固有属性决定,也包含 Acme
当时的资源保留政策。
资源和作业分布
第一,LLM
集群里“短作业很多”与“算力主要被超大作业吃掉”同时成立。 Seren 和
Kalos 的 GPU 作业时长中位数都只有 2 分钟,比 Philly、Helios、PAI
的中位数短 1.7 到 7.2 倍;若比较平均时长,2017 年 Philly 是 2023 年 Acme
的 12.8 倍。作者把原因归于硬件升级、Acme 用户申请更多
GPU、评测等配套短作业很多,以及约 40% 作业失败后很快退出(PDF 第 4
页,图 2(a))。另一方面,所有集群中请求超过 8 张 GPU 的作业都不足 7%,但
Kalos 中请求至少 256 张 GPU 的大作业占据超过 96% 的 GPU
time,单卡作业在两个 Acme 集群中占用不足 2% 的 GPU time(PDF 第 5 页,图
3)。这意味着按作业数看,评测和调试主导队列;按资源量看,预训练主导整个集群。
第二,不同流水线阶段的作业数和资源消耗近乎反转。 在
Kalos,评测作业占 92.9% 的作业数,却只消耗 0.8% GPU time;预训练仅占
3.2% 的作业数,却消耗 94.0% GPU time。Seren 中预训练占 0.9% 作业数和
69.5% GPU time,评测占 64.9% 作业数(PDF 第 5 页,图
4)。评测通常请求少于 4 张 GPU,预训练通常请求超过 100 张 GPU(PDF 第 5
页,图
5)。因此“平均作业”在这里几乎没有代表性,调度器必须知道作业属于哪个开发阶段。
第三,资源预留让小作业反而等得最久。
预训练虽然时长最长,但两个集群中少于 5%
的作业能持续超过一天,频繁故障会把一次逻辑训练拆成多次提交。更反常的是,GPU
需求最小、运行最短的评测作业排队时间最长,因为大部分资源被预留给预训练,评测以低优先级批量提交,只能抢有限的空余资源(PDF
第 6 页,图 6)。所以不能把“卡数越多,排队越久”从旧 DL trace 直接外推到
LLM 集群。
第四,nvidia-smi
式利用率很高,但这不代表每个硬件单元和配套资源都高效。 Seren 和
Kalos 的 GPU utilization 中位数分别为 97% 和 99%,明显高于 Philly 的 48%
与 PAI 的 4%(PDF 第 5 页,图 2(b))。更细的 DCGM 指标显示,两集群的 SM
activity 中位数约 40%,Kalos 中一半 GPU 使用超过 75% 显存,也就是超过
60GB;与此同时,CPU 主存使用率低于 50%,CPU 通常低负载,Seren 的
InfiniBand NIC 超过 60% 时间空闲,活跃时带宽也很少超过峰值的 25%(PDF 第
6 页,图 7)。这组结果既否定了“GPU 忙等于整机资源都忙”,也说明旧式用 GPU
sharing 填充算力空洞的方案未必适用于稠密 LLM 预训练。
第五,功耗同样呈现“高负载与空闲并存”。 约 30% GPU
处于空闲状态,但每张仍消耗约 60W;Seren 和 Kalos 分别有 22.1% 和 12.5%
的 GPU 功耗超过 A100 的 400W TDP,少数达到 600W(PDF 第 6 页,图
8(a))。Seren 的 GPU 服务器平均功耗约为 CPU 服务器的 5 倍,GPU 占 GPU
服务器功耗的 65.7%,CPU 占 11.2%,电源转换损耗占 9.6%(PDF 第 7 页,图
8(b) 与图 9)。附录估算 Seren 在 2023 年 5 月耗电约 673MWh;按 PUE 1.25
和 0.478 tCO2e/MWh 计算,有效排放为 321.7 tCO2e(PDF 第 21 页,附录
A.3)。
第六,评测不是一段连续的 GPU 推理。 用 7B 模型跑
HumanEval 时,在真正 GPU inference
前,模型加载和数据预处理已耗掉总时长的
29.5%;推理结束后的程序正确性测试又让 GPU 空闲 42 秒,占总 GPU time 的
19.0%(PDF 第 8 页,图 13)。也就是说,把评测当作不可拆分的 GPU
作业,会把远端 I/O、tokenization 和 CPU-only metric 都错误地锁在 GPU
配额里。
第七,故障次数不是最重要的指标,故障发生时刻、作业规模和恢复时间才决定损失。
作者分析 Kalos 的 32,500 个任务日志,其中 96.3% 是
inference/evaluation、2.0% 是 pretraining,另分析 Seren 的 675
个预训练任务(PDF 第 8 页)。表 3 显示,NVLink error 有 54
次,但平均涉及 800 张 GPU,并占所列失败 GPU time 的 30.25%;CUDA error
有 21 次,平均涉及 847 张 GPU,占 15.77%;node failure 只有 16
次,却平均涉及 712 张 GPU,占 14.30%。Network error 的平均重启时间为
592.1 分钟,甚至是平均故障前运行时间的 107.74%(PDF 第 9 页,表
3)。反过来,脚本类错误次数很多,却大多在启动初期退出。附录图 17
进一步显示,最终完成的作业只消耗约 20% 到 30% GPU 资源;约 40%
作业失败但只占约 10% 资源;约 7% 被取消的作业反而占 60%
以上资源,因为其中有大量长时间预训练(PDF 第 20 页,图 17)。
从观测到两个工程系统
论文没有训练一个统一的 workload prediction
model。方法分成两层:第一层是多源 trace
characterization,通过作业元数据、15 秒监控、运行日志和细粒度 profiling
相互验证;第二层是把观测转成两个已经集成到 InternEvo 的系统机制。
预训练容错系统包含 checkpointing、diagnosis、recovery 三部分。异步
checkpoint 先把模型状态写到富余的 host
memory,再由独立线程持久化到远端存储,使训练主线程不必等待 TB
级状态写盘。诊断端先让 Log Agent 从数百 MB
的日志中持续生成正则过滤规则,再让 Failure Agent
对压缩日志做规则匹配与向量检索;无法由已有规则诊断时,系统使用 GPT-4
找根因、判断是否可恢复,并把确认后的新规则写回规则库。作者还用
self-consistency 和另一个 LLM 对多次结果投票,降低日志过滤错误(PDF 第
10 至 11 页,图 15)。恢复端会针对故障运行检测。例如 NVLink error
使用两轮 NCCL
allgather:先把节点两两分组找出可疑组,再把可疑节点与正常节点重组,以定位并隔离坏节点;loss
spike 则回退到更早的健康 checkpoint 并跳过可疑数据批次(PDF 第 11
页)。
评测调度器则把一个看似完整的 evaluation job
拆成可独立调度的阶段。第一步,针对约 60
个数据集并发加载同一模型造成的远端存储争用,trial coordinator
先按节点提交 precursor job,把模型从远端存储搬到节点共享内存,再让各 GPU
trial 通过 PCIe 读取本地副本。第二步,GPU 生成结果后立刻释放
GPU,把代码测试等 metric computation 改成 CPU
作业。第三步,利用各数据集历史运行时长较稳定这一先验,对数据集进行合并或拆分,按预计时长排序后
round-robin 分配,并优先启动 CPU metric 较长的 trial,以便与其他 GPU
inference 重叠(PDF 第 11 至 12 页,图 16)。
论文报告的数字
在 123B 模型、2,048 张 GPU 的 profiling 中,InternEvo V2 的
hierarchical ZeRO 相比 V1 的 3D parallelism 约加速
16%,并减少空闲区间;同样趋势也出现在 1,024 GPU 的附录实验中(PDF 第 7
页,图 10;PDF 第 20 至 21 页,图 19 与附录
A.4)。这项结果是具体框架配置比较,不应当解释成 hierarchical ZeRO
在所有网络拓扑上固定快 16%。
异步 checkpoint 对 7B 和 123B 模型将 checkpoint 时间及其开销降低 3.6
到 58.7 倍,checkpoint interval 为 30
分钟;但异步测量不包含后台最终持久化到存储的时间。故障诊断系统把人工干预减少约
90%,作者明确承认该数字不是严格评测,因为系统组件仍在持续改进(PDF 第 11
页,“System Performance”)。
评测系统使用一个 7B 模型和 63
个数据集做代表性测试。在单节点条件下,makespan 缩短 1.3
倍;在四节点条件下缩短 1.8 倍(PDF 第 12 页,“System
Performance”)。远端加载压力测试还显示,同一节点的单卡 trial 从 1 个增至
8 个时,受 25Gb/s storage NIC 限制,平均加载速度大幅下降;并发扩展到 8
至 256 张 GPU 后,单 trial 加载速度趋于稳定(PDF 第 12 页,图 16)。
数据与系统贡献
论文把 LLM 数据中心的基本调度单位从“训练 job”改写成“开发 pipeline
中的阶段与反馈回路”。预训练、评测、SFT、调试在作业数、卡数、时长、优先级和可拆分性上完全不同;只按
GPU 数或 FIFO 排队无法表达这种结构。作者也没有让 trace study 停在
implication:评测中的 CPU/GPU
阶段分离和预训练中的故障恢复,都是由具体数据直接推导出的系统改造。
第二个实质贡献是把故障代价量化为“GPU 数 × 故障前时间 ×
恢复时间”,揭示少量基础设施故障比大量脚本错误更值得系统优先处理。第三个贡献是公开
AcmeTrace、InternEvo 和模型链接(PDF 第 21 页,附录
C),让后续调度研究不必继续只在 2017 年 Philly 一类旧 trace 上拟合。
统计口径和外推限制
第一,trace 只来自一个机构的两个集群,而且资源保留、作业优先级和
InternEvo 使用方式都具有本地政策色彩。评测排队最长是“工作负载属性 +
预训练优先政策”的共同结果,不是任何 LLM
集群的自然定律。第二,数据不含线上
serving,不能用于推断请求到达、TTFT、token latency 或 KV cache
行为;论文的“inference task”大部分实际是离线评测。第三,主体模型是
decoder-only dense Transformer,MoE 只在附录用 Mistral 7B 做了 1,024 GPU
的短 profiling,且单 NIC 网络导致其利用率明显较低;多模态模型、RLHF
和后来的长上下文训练都没有形成同等深度的统计(PDF 第 12 页“Scope
Limitations”;PDF 第 21 页,图 22)。
第四,系统实验规模有限。评测调度只报告一个 7B 模型、63
个数据集和一到四个节点;故障诊断减少 90%
人工干预的结果被作者自己标注为非严格评测;异步 checkpoint
的数字排除了后台持久化时间。第五,GPU utilization 的 97%/99% 中位数与 SM
activity 的约 40% 中位数定义不同,阅读时不能混为“40% 算力利用率”或“99%
算力利用率”。
这些发现怎样影响调度
这篇论文对通用训练调度器提出了三个修正。其一,Kalos 中大作业消耗超过
96% GPU time,而预训练 GPU 本身又接近满显存、高 nvidia-smi
utilization,因此面向小模型的同卡 packing
并不是默认答案。其二,预训练作业规模大、checkpoint
与恢复昂贵,简单依赖频繁 preemption 的 LAS、SRTF
或弹性调度可能得不偿失。其三,评测具有天然的 task decomposition 和
CPU/GPU stage separation,调度器应该操作 trial DAG,而不是把整个
evaluation 当作一块不可分的 GPU 占用。
它与 CSUR 综述形成“证据到设计空间”的对应:Acme 的 GPU sharing
边界对应综述的 training resource-utilization manner;故障与 checkpoint
对应 elastic/preemptive scheduler 的隐藏开销;评测解耦则补足综述对端到端
LLM
开发链路讨论不足的部分。后续调度研究需要联合处理资源预留、故障风险、阶段依赖和反馈时限,继续为
LLM 增加 FIFO 变体并不能回答这些问题。
核对统计时从哪里开始
先读 PDF 第 1 至 4 页,掌握 LLM pipeline、Acme 硬件和 trace
口径;再读第 4 至 9 页的图 2 到表
3,建立作业偏斜、资源利用和故障代价的证据链;随后读第 10 至 12
页的两个系统,检查设计是否真的回应前面的观测;最后只需补读第 20 至 21
页附录 A,重点看最终状态、host memory、碳排放与 MoE
边界。若时间很少,优先读图 4、图 6、图 13、表 3 和第 12
页的评测调度结果。
30. Tear Up the Bubble Boom: Lessons Learned From a Deep Learning
Research and Development Cluster
打开本篇完整解释
论文链接:PDF;DOI:10.1109/ICCD56317.2022.00103
细粒度监控看到了什么
这篇论文用细粒度监控揭示 R&D 集群最容易被集群级 occupancy
掩盖的问题:GPU
看起来已经分配得很满,但作业内部在空间上只用了一小部分资源,在时间上又存在长时间空闲,因而形成“资源泡沫”。
CloudBrain-I 的采样范围
作者采集了鹏城实验室 CloudBrain-I 的 328 天 trace,表 2 将其概括为
2020 至 2021 年的 10 个月、155K 个 GPU 作业(PDF 第 2 页;PDF 第 4
页,表 2)。集群面向 520 名学生和研究人员,包含 16 个 CPU 节点和 110 个
GPU 节点;论文写作时集群总计约 1,100 张 GPU,而表 2 记为 1,116 张
GPU,差异来自不同统计时点以及部分维护节点。GPU 类型包括
V100-SXM2、V100-SXM3、T4、RTX 2080 和 RTX 2080Ti,最大单作业请求 768 张
GPU(PDF 第 2 至 4 页,表 1 与表 2)。
CloudBrain-I 在 Kubernetes 上运行 OpenI-Octopus,存储使用
Lustre,多卡作业采用 gang scheduling。Prometheus 通过 cAdvisor 与 GPU
exporter 记录 CPU、host memory、每张 GPU 的 SM utilization 和 GPU
memory,时间间隔为 15 秒,覆盖作业整个生命周期(PDF 第 2 至 3 页,图
1)。和只保留提交、启动、结束时间的 trace
相比,这个数据集的核心价值是能看见“分配量与实际使用量”的差距。
空间泡沫与时间泡沫
作业长尾中混入了人为的 8 小时边界。 CloudBrain-I
作业平均时长为 42,672 秒,中位数为 6,182 秒,明显长于 Philly、Helios 和
PAI;CDF 在 28,800 秒处陡增,因为交互调试作业的最长时限被设为 8
小时(PDF 第 4 页,图 2(a) 与表
2)。因此这里的长作业不全是长训练,一部分是用户保持调试容器不退出。
资源申请很宽,但实际使用显著更低。 作业申请量的第 80
百分位为 8 个 CPU、2 张 GPU 和 128GB host memory;单作业最大值分别达到
3,840 个 CPU、768 张 GPU 和 39,552GB host memory(PDF 第 4 页,图 2(b)
至 2(d))。约 60% 作业只申请一张 GPU,却只消耗约 20% GPU
time,多卡作业仍然主导资源量(PDF 第 4 至 5 页,图 3)。
低利用不是少数异常,而是整体分布。 70.57% 作业的平均
GPU utilization 与平均 GPU memory utilization 都低于 50%;54.57%
作业这两个指标都不超过 20%;50.28% 作业的 GPU 与 CPU 平均利用率都低于
20%(PDF 第 4 至 5 页,图 4)。还有约 5%
作业表现出严重的跨资源错配,即一种资源利用率超过 80%,另一种低于
20%。全体作业的平均 GPU utilization、GPU memory utilization、CPU
utilization 与 host memory utilization 分别只有 21.24%、25.75%、18.12%
和 33.08%;作业生命周期内“最大 GPU utilization”和“最大 GPU memory
usage”的中位数也只有 0.78 和 2.4GB(PDF 第 5 页,图
5)。后两个数应按论文图中指标原样理解,不宜脱离 exporter
定义推成硬件理论占用率。
可共享空间存在,但不能用静态平均值直接 packing。
11.54% 作业在 120 秒窗口内表现出 CPU 或 GPU utilization 的尖锐波动,超过
75% 的采样区间会冲到 90% 以上(PDF 第 6 页,图 6)。若把“stable
phase”定义为持续至少 240 秒且空闲显存至少 2GB,则 87.02% GPU time
落在这种稳定阶段;但 38.05% GPU 作业包含多个 stable phase,20.97%
作业的不同阶段显存需求差超过 1GB,8.99% 超过 8GB(PDF 第 6 页,表 3 与图
7)。所以共享机会很大,但分配必须跟着 phase
变化,否则既浪费显存,也可能在利用率尖峰时产生干扰。
时间上的空闲同样严重。 作者把连续至少 60 秒、GPU
utilization 和 GPU memory 都为 0 的区间定义为 idle slot。此口径下,idle
slot 与从未使用的已分配 GPU 合计浪费全体作业 15.30% GPU
time,其中调试作业浪费自身 GPU time 的 77.72%,非调试作业浪费自身 GPU
time 的 12.52%(PDF 第 7 页,表 4)。调试作业内部,41.62% GPU time
属于运行中的 idle slot,36.10% 属于从未使用的已分配 GPU。接近 80%
的调试作业在其约 80% 生命周期里实际不用 GPU,40.41% 调试作业接近或超过 8
小时上限,说明忘记退出也是重要原因(PDF 第 7 页,图 8)。
配置错误可以让整张卡从头到尾没被碰过。 在多 GPU
作业中,24.01% 只使用了部分申请 GPU。即使请求 1 张 GPU,仍有 24,370
个作业完全没有使用该卡,占这一请求规模的 26.20%;请求 2、4、8、16 张 GPU
时,至少浪费一张卡的作业比例分别为 23.82%、15.47%、14.23% 和 17.43%(PDF
第 7 至 8 页,表 5)。这不是调度器可以靠更好的初始 placement
自动消除的问题,还需要运行时异常检测和用户反馈。
阈值算法和资源画像
论文没有提出预测模型,也没有实现一个新调度器。它的方法是先从 trace
中区分“申请/占用”与“真实使用”,再用两个可计算定义刻画空间和时间上的浪费。
空间维度使用 CPU、GPU SM、GPU memory、host memory 的 15
秒时间序列,报告每个作业的平均值、最大值和跨资源关系。为寻找可共享区间,作者定义
stable phase:长度大于阈值 t,且空闲 GPU memory 大于阈值
m,并对 t 为 60、120、240、480、960
秒,m 为 1、2、4、8GB 的组合做敏感性统计(PDF 第 6 页,表
3)。时间维度定义 idle slot:至少连续 60 秒完全没有 GPU compute 和 GPU
memory 使用;另行统计“never-used
GPU”,即作业整个生命周期都没碰过的已分配卡(PDF 第 7 页,表 4)。
这种方法的好处是定义清晰,任何包含细粒度监控的 R&D
集群都能复算;它的限制也很直接:阈值是人为选择,指标只能看到资源表象,无法从
trace 恢复完整的训练阶段、Python 调试动作或框架内部因果关系。
论文报告的数字
本文的“实验”主要是 trace
阈值分析而非调度器对照实验。最有用的一组数字来自表 3:当
m=2GB 时,满足 stable phase 的 GPU time 随 t
从 60 秒增加到 960 秒,依次为
88.41%、87.91%、87.02%、85.83%、84.45%;当固定 t=240s、把
m 从 1GB 提高到 8GB 时,该比例从 90.86% 降至 69.51%(PDF 第
6 页,表
3)。这说明“有稳定共享空间”的结论并非只在一个极窄阈值上成立,但可共享容量对显存阈值相当敏感。
表 4 的时间浪费分解也应视为核心实验结果:debugging jobs 的 idle-slot
与 never-used 比例合计 77.72%,但由于这类作业总体 GPU time
较少,它们只贡献全体 GPU time 浪费的 3.31%;non-debugging jobs
自身只浪费 12.52%,却贡献全体浪费的 11.99%(PDF 第 7 页,表
4)。因此,只限制调试作业时长能改善用户行为,却不能消除集群中绝大多数绝对浪费。
测量贡献
这项测量纠正了对 cluster-wide GPU occupancy 的常见理解:它
只说明卡被调度器分出去了,不能说明作业有效使用了卡。对 R&D
集群而言,交互调试、配置错误、多阶段执行和新手用户共同造成大量“已占用、低利用”资源,单看
occupancy 会得出虚假的繁荣。
第二个贡献是把 GPU sharing
的论证从“平均利用率低,所以可以共享”推进了一步。论文同时给出尖峰波动与
stable phase,告诉调度器既有共享空间,也有干扰风险;适合落地的是
phase-aware、可撤回、带运行时监控的动态共享。第三个贡献是补上生产集群
trace
的人群盲区:学生、研究人员和共享账号会形成与成熟生产流水线不同的作业行为。
集群人群和硬件带来的限制
这是单机构、单 R&D 集群的观测,用户构成、8
小时调试上限、OpenI-Octopus 提交方式和 GPU 代际都会影响结果。论文从 job
name 与 Docker image 推断模型和框架类型,但没有训练代码、iteration
progress、I/O 阶段或人工标注,因此对 idle slot
原因只能提出合理解释,不能做严格因果归因(PDF 第 3 页)。
GPU exporter 的 utilization 与 memory 指标也不是 FLOP、Tensor Core
occupancy
或有效训练吞吐;平均利用率低不能自动证明两个任意作业可以无干扰共置。stable
phase 和 idle slot
的阈值虽做了敏感性表,但仍是离线定义,在线检测延迟和误判代价没有评估。最重要的是,论文没有实现并比较
phase-aware scheduler,因此七条 implication
是有数据支持的设计要求,不是已经验证过的调度收益。
此外,2020 至 2021 年的 V100/T4/RTX 负载不能直接代表 A100/H100
上的大模型训练。NSDI 2024 的 Acme 结果显示,稠密 LLM 作业的显存和表层
GPU utilization 已很高,ICCD 论文中“普遍适合 GPU sharing”的结论必须按
workload class 重新检查。
这些发现怎样改变调度动作
这篇论文直接给调度器提出四类需求:按作业真实使用量而非申请量配资源;识别
debugging job 并使用不同队列或时限;按 stable phase 动态调整 GPU memory
allocation;对从未使用的卡做运行时回收和及时告警。它和
Gandiva、AntMan、MIG/MPS 类 GPU sharing 工作关系最紧密,但它同时提醒
sharing scheduler,11.54% 作业有高幅波动,若只按均值 packing
会在尖峰时发生性能干扰。
它也解释了为什么 CSUR 综述把“resource-utilization
manner”设为与“scheduling objective”正交的一条分类轴:同样追求低 JCT 或高
fairness,可以用 exclusive allocation、GPU sharing 或 elastic training
达成,而 R&D trace 告诉我们应该何时选择 sharing。与 SC 2021 相比,SC
主要从 scheduler log 推断作业、集群和用户行为,ICCD 加入细粒度
utilization 后,才看见分配后的内部泡沫。
核对分母时从哪里开始
先读 PDF 第 2 至 4 页,明确 R&D 集群、trace
和生产集群的差异;随后集中读第 4 至 8 页的图 4、图 5、表 3、表 4 和表
5,这是论文全部证据;最后回看第 1 至 2 页的动机和第 8 页的七条
implication,判断哪些结论由数据直接支持,哪些仍需要系统实现。时间有限时,可以跳过相关工作,重点精读第
5 至 7 页。
31. Characterization and Prediction of Deep Learning Workloads in
Large-Scale GPU Datacenters
打开本篇完整解释
论文链接:PDF;arXiv 2109.01313
画像和预测怎样接起来
这篇论文既发布了 2020 年 SenseTime Helios 的大规模 DL 作业
trace,也尝试证明历史作业和集群趋势具有足够可预测性,可以用一个插件式框架改善作业排序和节点节能。
Helios trace 的范围
Helios trace 覆盖 2020 年 4 月至 9 月,共 6 个月、4 个独立集群、802
个节点、6,416 张 GPU、105 个 Virtual Cluster 和 3.363M 个作业,其中
1.58M 是 GPU 作业、1.78M 是 CPU 作业(PDF 第 2 至 3 页,表 1 与表
2)。Venus、Earth、Uranus 是同构 Pascal 或 Volta 集群,Saturn 混合
Pascal 与 Volta;节点内使用 PCIe 或 NVLink,节点间使用
InfiniBand,并禁止跨 RDMA domain 的分布式训练(PDF 第 2 至 3 页)。
Slurm 为每个 VC 维护独立 FIFO 队列,组内作业具有相同优先级,不支持
preemption;默认把作业压到尽可能少的节点,只有 0.15% 作业由用户指定
placement(PDF 第 3 页)。trace 由 Slurm sacct job log
和每日 VC 配置组成,包含作业时间、状态、资源请求、用户、VC
与节点分配,但没有 ICCD 那种 15 秒 GPU SM/显存序列。论文还使用 Microsoft
Philly trace 做外部验证;Helios 的 3.36M 作业是 Philly 103K 作业的 32.6
倍,平均 GPU 请求为 3.72 张,对方为 1.75 张(PDF 第 3 至 4 页,表
2)。
重复作业、周期和队列行为
集群使用有日周期,但长训练把昼夜差异抹平了一部分。
四个集群平均利用率在 65% 到 90% 之间,夜间 0 点至 8 点仅下降 5% 到
8%;作业提交率则明显随睡眠、午餐和晚餐下降(PDF 第 4 页,图
2)。这正是后续 CES 能用时间特征预测节点需求的经验基础。
单卡作业数量多,多卡作业决定总资源。 每个集群超过
50% 的作业是单卡作业,Earth 达到约 90%,但单卡作业只占 3% 到 12% GPU
time;少于 10% 的至少 8 卡作业却消耗约 60% 计算资源(PDF 第 6 页,图
6)。月度提交数中,单卡作业波动很大,却通常只贡献不足 6%
集群利用率;多卡作业数量与规模更稳定,是更值得预测和优化的对象(PDF 第 5
页,图 3)。
CPU 作业与 GPU 作业的时间尺度完全不同。 GPU
作业平均时长 6,652 秒,是 CPU 作业 629 秒的 10.6 倍;超过一半 CPU
作业不足 2 秒,GPU 作业时长中位数为 206 秒,约四分之三 GPU 作业少于
1,000 秒,很多是模型评测和调试(PDF 第 6 页,图
5)。这说明同一开发流水线里不能用一个统一的 runtime prior。
静态 VC 隔离同时制造排队与闲置。 Earth 的 vc6YE 与
vcLJZ 因大作业较多,利用率大部分时间超过 90%;vchbv 与 vccaA
因小作业较多,基本低于 65%。忙 VC 的平均排队时间也更长,而别的 VC
仍有闲置资源(PDF 第 5 页,图
4)。静态分区保障多租户隔离,却不能随需求快速搬动资源。
GPU 作业失败和取消明显多于 CPU 作业。 GPU 作业只有
62.4% 完成,22.1% 被取消,15.5% 失败;CPU 作业有 90.9% 完成(PDF 第 6
页,图 7(a))。请求 64 张及以上 GPU 的作业完成率低于四分之一,取消率约
70%,原因包括长训练更容易被提前停止。论文还发现失败作业大多很快退出,却可能在与长作业混合的
FIFO 中等待很久(PDF 第 7 页,图 7(b))。
资源与排队高度集中在少数用户。 平均只有约 25%
用户提交 CPU 作业,top 5% 用户消耗超过 90% CPU time;几乎所有用户都有
GPU 作业,top 5% 用户消耗 45% 到 60% GPU time。Uranus 中 top 1%
用户,也就是 3 人,承担超过 70% 总排队时间,却不在资源消耗 top 10
内(PDF 第 7 页,图 8 与图 9)。这说明 fairness 不能只按已获 GPU time
衡量,还要看等待伤害是否集中。
QSSF 与 CES
作者设计了一个位于 Slurm、YARN 或 Kubernetes 之上的集中式
prediction-based framework,包含 Model Update Engine 和 Resource
Orchestrator。每个服务独立训练模型,orchestrator
在线预测并执行动作,update engine
定期或按事件抓取新日志并更新模型;单次预测和操作通常为毫秒级(PDF 第 7
至 8 页,图 10)。论文实现两个服务。
QSSF(Quasi-Shortest-Service-First) 不做
preemption,也不直接预测“最短时长”,而是预测 GPU
time,也就是预计时长乘请求 GPU
数,以避免一个“运行短但占很多卡”的大作业阻塞多个小作业。机器学习部分采用
GBDT,特征包括 user、VC、GPU/CPU request、job
name、month、weekday、hour、minute 等;job name 先按 Levenshtein
distance 聚类并 bucketize(PDF 第 8 页)。最终优先级是
P = N * (lambda * P_R + (1-lambda) * P_M):P_M
是 GBDT 时长估计,P_R 是相似历史作业的 rolling
estimate。新用户回退到同 GPU 数作业的平均时长;老用户的新 job name
回退到该用户同 GPU 数作业;匹配到相似名字时使用指数衰减的历史时长(PDF
第 8 至 9 页,算法 1)。
CES(Cluster Energy Saving)
预测未来运行节点数,再结合 Dynamic Resource Sleep
关停闲置节点。特征包括小时、星期、日期等周期变量,不同 rolling window
的活跃节点均值与标准差、holiday indicator 和多时间尺度 lag。作者比较
ARIMA、Prophet、LSTM 与 GBDT 后选择 GBDT;Earth 上预测 SMAPE 约
3.6%(PDF 第 10
页)。系统在新作业到达时检查活跃节点是否足够,不足则唤醒缺口加
buffer;每 10 分钟左右同时检查过去约 1 小时和未来约 3
小时趋势,只有两者都显示需求下降时才把活跃节点压到当前运行节点数加
buffer(PDF 第 10 至 11 页,算法 2)。
预测和反事实数字
QSSF 使用 4 月至 8 月 Helios 作业训练 GBDT,以 9 月 trace 做
trace-driven simulation;模拟器复现真实 arrival、queue、run
和结束状态,只考虑瓶颈 GPU。基线包括生产
FIFO,以及拥有完美真实时长信息的理想 SJF 和 SRTF;实验没有 backfill(PDF
第 9 页)。
相对 FIFO,QSSF 在四个 Helios 集群把平均 JCT 改善 1.5 到 6.5
倍,把平均排队时间改善 4.8 到 20.2 倍(PDF 第 10 页,表 3
与正文)。具体地,Saturn 平均 JCT 从 55,984 秒降到 8,581 秒,Earth
平均排队从 13,699 秒降到 677 秒;四集群 queued jobs 数量下降 37% 到
82%(PDF 第 9 至 10 页,表 3)。短作业排队改善 9.24 到 33.51
倍,中等作业改善 2.49 到 13.39 倍,长作业仍改善 2.00 到 4.77
倍,说明优先小 GPU-time 没有在这组 trace 中牺牲长作业(PDF 第 10 页,表
4)。
对 Philly 的验证并不等价于原样迁移。由于 Philly 缺少 job name 和完整
VC 配置,作者假设 VC 在 2017 年 10 至 11 月静态不变,并随机生成与 Helios
误差分布相似的 priority。此条件下,QSSF 相比 FIFO 将平均 JCT 改善 2.3
倍、排队改善 7.3 倍,queued jobs 减少 27%(PDF 第 10 页,图 13 与表
3)。
CES 用 9 月 1 日至 21 日三周做 Helios 仿真,之前的记录用于训练。Earth
的 node utilization 从 82.1% 提升至 95.1%,增加 13.0 个百分点;Uranus 从
83.8% 提升至 96.4%,增加 12.6 个百分点。CES 每天只触发 1.1 到 2.6 次
wake-up,而只看当前负载的 vanilla DRS 平均每天触发 34.1 次。假设节点重启
5 分钟,CES 在 21 天、198K 作业中影响 251 个,vanilla DRS 影响近 6K
个(PDF 第 11 页,表 5)。按 idle DGX-1 约 800W 且制冷耗能约为服务器 2
倍的假设,四集群每年可节电超过 1.65M kWh(PDF 第 11 页)。Philly
上平均可关停 100.1 个节点,node utilization 从 69.0% 提升到
90.4%,平均每天仅唤醒 0.5 次(PDF 第 11 页,图 15 与表 5)。
数据与系统贡献
第一项贡献是 Helios trace 本身。它比当时最常用的 Philly
更新、规模更大,并同时包含 CPU 作业、四个集群、VC
和用户维度,降低调度器只在一个 2017 trace 上过拟合的风险。第二项贡献是把
characterization 与 action 连起来:日周期驱动 CES,job/user/name
的重复性驱动 QSSF,而不是分析完 CDF 后只留下一组泛化建议。
第三项贡献是一个很务实的预测目标选择。QSSF
不追求准确预测每个作业的真实完成时间,而只要求预测排序足够好;它将滚动历史与
GBDT 融合,并用 GPU time 同时表达空间和时间需求。这比假装拥有 oracle
runtime 更接近生产环境。CES
也不是看到空闲就立即关机,而是用历史与未来趋势共同抑制频繁开关。
日志字段和离线模拟的限制
最大的边界是两个服务都通过 trace-driven simulator
评估,论文结论部分也把“在生产集群实施并评估”列为未来工作(PDF 第 12
页)。仿真没有 backfill,QSSF 不考虑 CPU、网络、显存和实际
preemption/checkpoint 开销;因此 6.5 倍是相对当时每 VC FIFO
的收益,不是相对成熟生产调度器的普遍收益。
QSSF 高度依赖 user、VC 和 job name
的稳定重复模式。新团队、自动生成名称、代码大改或工作负载分布漂移都会削弱
rolling estimate 与 GBDT;Philly 实验因缺字段而人为生成
priority,只能说明对类似误差有一定鲁棒性,不能证明跨机构即插即用。CES 的
1.65M kWh 也是基于 800W idle DGX-1
和“制冷为服务器两倍”假设的粗估,而不是电表实测节能。
trace 本身来自 2020 年、以 CV 等传统 DL 和 Pascal/Volta
为主。它不包含 LLM pipeline、H100 功耗、MoE
通信、在线生成式推理或多集群训练。后来的 Acme 结果也说明,LLM
集群的作业阶段和 GPU utilization 分布与 Helios 明显不同,不能把 Helios
的历史可预测性不加验证地移植过去。
预测怎样进入调度闭环
这篇论文自己就是“trace study + scheduler service”的组合,也是 CSUR
综述中 ML-based timing scheduler 与 energy-aware scheduler
的代表:综述将 Helios 列为利用历史信息预测 job priority 的方法,并把 CES
归为预测未来资源利用后决定节点开关的成本优化(CSUR PDF 第 10 至 11
页)。
它与 ICCD 的关系是互补的。Helios
只有调度日志,因此优化的是队列排序、VC 不平衡和节点状态;CloudBrain-I
加入细粒度监控后,发现即使 QSSF 把卡更快分出去,作业内仍可能只有 21.24%
平均 GPU utilization。它与 Acme 的关系则是时代迁移:Helios 假设 job name
与用户历史能预测 GPU time,Acme 表明 LLM 评测可以进一步拆成模型加载、GPU
inference 和 CPU metric,结构化的 stage prior 可能比单一 job runtime
更可靠。
核对基线时从哪里开始
先读 PDF 第 2 至 4 页的 Helios 架构、trace 与 Philly 对比;再读第 4
至 7 页的图 2 到图 9,重点看七条 implication 如何从数据出来;随后精读第
8 至 11 页的算法 1、算法 2、表 3 至表 5;最后一定要读第 12 页的 future
work,以免把 simulation
结果误认为生产部署结果。若只关心调度模型,直接读第 8 至 11
页,但应先记住基线是每 VC FIFO 且 SJF/SRTF 使用 oracle runtime。
32. Deep Learning Workload Scheduling in GPU Datacenters: A
Survey
打开本篇完整解释
论文链接:PDF;ACM DOI
这篇综述整理什么
这篇综述用“调度目标”和“资源使用方式”两条正交轴整理训练与推理调度器,并把
HPO
与训练/推理混合负载单列出来,提供的是设计空间地图而不是新的调度算法或统一性能排名。
收录范围和时间边界
综述没有采集新的 datacenter
trace,也没有统一实验数据集或固定观测窗口。它汇总已有训练、推理、HPO 和
hybrid workload scheduling 文献;稿件记录为 2022 年 5 月 24 日收到、2023
年 2 月 11 日修订、2023 年 12 月 15 日接收,正式发表于 2024 年 1 月(PDF
第 1 页与第 38 页)。引用中包含少量 2024
年工作,因此可以把覆盖边界理解为接收前后的文献快照,而不能理解为完整覆盖
2024 年以后迅速发展的 LLM serving。
论文没有报告系统化检索数据库、检索式、纳入排除流程或 PRISMA
式文献计数。表 1、表 2、表 3 为作者按主题整理的代表性 scheduler
清单,列出年份、目标、方法、异构/弹性能力、代码和物理 testbed
规模。规模被离散为 S (0,30]、M (30,60]、L
(60,120]、XL (120,+infinity) 张
GPU,- 表示没有物理集群实验或规模未说清(PDF 第 9、18、27
页,表 1 至表 3 的图例)。
训练和推理的调度分类
综述的“发现”主要是跨论文结构,而不是从同一 trace
计算出的统计分布。作者先提炼六个训练特征:资源异构、placement
sensitivity、迭代性、feedback-driven exploration、exclusive allocation
对 GPU sharing、gang scheduling 对 elastic
training;再提炼两个推理特征:固定输入下较确定的在线执行,以及
latency/accuracy 的严格要求(PDF 第 4 至 6 页,图
2)。这些特征是后续分类的因果入口。
训练调度按目标分为 efficiency、fairness、deadline
guarantee。Efficiency 又含 timing、cost 与 resource efficiency;fairness
区分同构 GPU 和异构资源;deadline 工作则要预测不同 placement 下的
throughput。与目标轴正交,训练还按资源使用方式分为 heterogeneous
resources、GPU sharing、elastic training(PDF 第 8 至 18 页,表
1)。这种双轴比按论文逐篇罗列更有用:一个系统可以同时是 fairness
scheduler、heterogeneity-aware scheduler 和 elastic scheduler。
推理调度同样分两轴。目标轴包括 accuracy/latency/cost
三者的效率权衡,以及 system throughput;资源轴包括 colocation/resource
sharing 和 heterogeneous resources(PDF 第 18 至 25 页,表 2)。作者把
accuracy、latency、cost 称为 trilemma,强调在线服务里 latency
通常优先;提高 throughput 的常用办法是
batching,但它本质上以额外排队延迟换更高 GPU
utilization,缓存则以更多存储换更少重复计算(PDF 第 21 至 23 页,Insight
9 与 Insight 10)。
HPO 被单列,是因为一个 HPO job 实际包含大量结构相似的 training
trial,scheduler 可以早停差 trial、把资源转给有希望的 trial、融合多个
trial,甚至用小模型转移超参数。Hybrid
类别则讨论端到端训练/推理平台,以及把可预测 batch training 填入在线
inference 的闲时 GPU(PDF 第 26 至 28 页,表 3)。作者最终给出 13 条
Insight,并在结尾把未来问题归为新型 DL workloads、scheduling decision
making 和 underlying heterogeneous hardware 三类(PDF 第 28 至 29
页)。
两条 taxonomy 轴
这篇论文的方法是 taxonomy 和 qualitative
synthesis,不是预测模型。作者先用 workload characteristics
解释为什么传统 HPC/cloud scheduler 不够,再把 scheduler 放进“目标 ×
资源使用方式”的格子,比较其
heuristic、数学优化、profiling/prediction、ML/RL 等决策机制。
训练侧的决策方法包括:LAS/MLFQ
一类启发式优先级;MILP、LP、primal-dual、matching 等数学优化;通过
profiling 或历史 trace 预测 job duration、placement sensitivity 与
interference;用 GBDT、random forest 或 RL 选择 priority、placement
与弹性资源。推理侧则加入 model selection/ensemble、AIMD 或优化式 dynamic
batching、result/model caching、few-shot performance model、autoscaling
与干扰感知
colocation。综述没有把它们压成统一公式,因为各论文的输入信息、目标函数、硬件和
SLO 不同。
这也是阅读时应保持的判断:表格中的“支持 heterogeneous/elastic”“有
code”“testbed 为
L/XL”只是功能与证据规模标记,不表示质量评分,更不表示一个 XL
系统一定优于 S 系统。
综述中的证据怎样读
综述没有自己的 scheduler 实验,也没有对被引工作的 JCT、throughput 或
cost 做归一化 meta-analysis。因此不能从表 1 至表 3
读出“哪种方法平均快多少”。它提供的少量数字主要用于说明问题量级和分类口径。
例如,作者引用 AWS 报告称 inference 已占 MLaaS 基础设施成本的 90%
以上;推荐服务常要求低于 100ms,其他推理服务也常见低于 200ms 的 latency
要求(PDF 第 6 页)。这些是背景来源的数字,不是作者在统一 testbed
上复测的结果。论文还指出,针对 HPO 结构进行 GPU sharing 或 trial
fusion,相比 workload-agnostic
管理可以带来超过一个数量级的资源与时间节省,但这同样是对已有工作的归纳(PDF
第 28 页,5.3 Discussion)。
综述自己的量化设计主要是物理实验规模分档:S 不超过 30 GPU,M 为 31 至
60,L 为 61 至 120,XL 超过 120(PDF 第 9、18、27
页表格图例)。这个分档很有价值,因为它会提醒读者,大量调度器只在小规模
testbed 或 simulation 上展示结果;但分档太粗,也没有纳入 trace
realism、baseline 强度和 production
deployment,不能替代逐篇实验审查。
整理贡献
综述先把“目标”与“机制”拆开。很多旧综述按 training/inference
或论文年份排列,容易把目标函数、资源分配和实现技术混在一起;本文明确指出
fairness、JCT、deadline、cost 是目标,GPU sharing、heterogeneous
allocation、elasticity 是实现这些目标的资源方式。
第二项贡献是把 training 与 inference 放进同一篇 datacenter
survey,同时又不强行统一二者。训练是长时、可
checkpoint、placement-sensitive 的离线作业;推理是短时、请求驱动、受
tail latency SLO 约束的在线服务。两者都能 sharing,但训练担心
convergence、reproducibility 与 preemption overhead,推理担心
interference 导致 SLO violation。
第三项贡献是把 HPO 和 hybrid workload
提到独立位置。它们说明真正的数据中心并非只有“训练队列”和“推理队列”两个孤岛,trial
相似性、在线流量谷值、模型更新和共享中间状态都能创造额外调度空间。这一点也为
Acme 的评测阶段解耦提供了自然延伸。
策展式综述的边界
论文在 PDF 第 8 页主动排除了多类相关工作:单作业训练/推理优化,网络
I/O 与功耗等硬件资源级调度,以 CPU、FPGA、ASIC、PIM 为主的系统,移动端与
edge,特定 RNN/推荐/视频应用,以及 privacy
目标。更关键的是,背景部分明确主要讨论 data-parallel elastic
training,把 model parallelism 和 pipeline parallelism 视为 large-model
特例并排除在主体范围外(PDF 第 4 页)。这对 2024 年后的 LLM 训练与
serving 是很大的外推限制。
论文后段虽然补入
Acme、Hydro、Titan、DeltaZip、Punica、S-LoRA、AlpaServe 等 LLM
相关工作,但没有围绕 token-level iteration scheduling、KV
cache、prefill/decode disaggregation、expert parallelism、跨机
checkpoint 等形成新的完整 taxonomy。它更适合作为传统 DL datacenter
scheduling 到早期 LLM scheduling 的桥梁,而不是当前 LLM serving
的最终综述。
此外,文献选择过程不够系统,表格没有统一复现实验,13 条 Insight
多为作者的定性判断。不同论文中的 JCT、makespan、cost、accuracy 和
utilization 定义并不一致,读者不能横向比较表格后直接选“最好”的
scheduler。对 ML/RL scheduler,论文也明确指出需要更多 benchmark
与集体评测来验证 practicality(PDF 第 18 页,3.3 Discussion)。
怎样用 taxonomy 对照本目录论文
这篇综述就是其余三篇 workload study 通往 scheduler design 的索引。SC
2021 Helios 在综述中同时扮演 trace characterization、ML priority
prediction 和 CES 节能的例子;ICCD 2022 CloudBrain-I 为 training GPU
sharing 提供低利用与 phase 波动证据;NSDI 2024 Acme 则提醒读者 LLM dense
pretraining 的高显存、高表层利用率和昂贵恢复会改变旧 sharing/elasticity
假设(PDF 第 10、11、15 页及参考文献 [65]、[182]、[66])。
反过来,综述也提供检查 workload paper 的问题清单:论文优化的是
timing、cost、fairness 还是 deadline?它改变的是
placement、sharing、elasticity
还是异构资源分配?预测所需信息从哪里来?preemption、interference、accuracy
与 SLO 的代价是否被计入?用这套框架看前三篇,会发现 Helios 主要优化
timing/cost,CloudBrain-I 主要论证 sharing feasibility,Acme 则把 fault
tolerance 与 pipeline-stage scheduling 加进设计空间。
核对综述条目时从哪里开始
先读 PDF 第 2 至 8
页,掌握工作负载特征、调度流程和明确排除范围;然后先看第 9 页表
1,再读第 10 至 18 页训练分类;接着看第 18 页表 2,再读第 19 至 25
页推理分类;最后读第 26 至 29 页的 HPO、hybrid 和
outlook。不要从参考文献顺序通读,也不要试图一次记住所有 scheduler
名字。第一遍只抓“双轴 taxonomy + 13 条
Insight”,第二遍再按自己的目标回到表格找代表系统。
四篇合读后的结论
先问资源指标测的是什么。 Helios 的 cluster
utilization、CloudBrain-I 的 job-level utilization、Acme 的
nvidia-smi utilization 与 DCGM SM
activity不是同一个概念。一个调度器若只优化“已分配 GPU 比例”,可能让
CloudBrain-I 的资源泡沫更严重;只看 nvidia-smi 又会忽略
Acme 中网络、CPU 和阶段性 GPU idle。
工作负载类别决定调度机制能否成立。 CloudBrain-I
的小模型 R&D 作业给 GPU sharing 留出巨大空间;Acme 的 dense LLM
pretraining 高显存、高利用且恢复昂贵,频繁 packing、migration 或
preemption 未必合适;Acme evaluation 反而最适合按模型加载、GPU
inference、CPU metric 拆分。
预测不一定追求精确 runtime。 QSSF 只要把
GPU-time 顺序预测得足够好就能改善 FIFO;CES
只要把节点趋势预测得足够稳就能减少开关;LLM evaluation
甚至可以用数据集历史时长直接做 prior-based
balancing。真正要验证的是预测误差如何传导到
JCT、SLO、能耗和公平性。
仿真收益与生产证据必须分开。 Helios 的 QSSF/CES
是 trace-driven simulation;CloudBrain-I 只提出 implication,没有实现
scheduler;Acme
的两个系统已集成框架,但故障诊断和评测实验仍有规模与口径限制;CSUR
综述更没有统一实验。阅读数字时应同时记录 baseline、输入
trace、硬件规模、是否 oracle、是否生产部署。
推荐总阅读顺序是 SC 2021 -> ICCD 2022 -> NSDI 2024
-> CSUR 2024。 这样先有生产 DL 集群的宏观基线,再看到细粒度
R&D 资源泡沫,随后理解 LLM pipeline 如何推翻部分旧结论,最后用综述
taxonomy 把所有证据放回调度设计空间。若研究主题已经明确是 LLM
训练或评测,则可先读 NSDI
2024,再用另外三篇补历史基线和术语框架。