简介:本文围绕"将主力训练任务从上一代GPU集群迁移到新一代集群,并把旧集群闲置算力改造为可对外供给的算力服务"这一完整工程目标,讲解算力资产盘点与代际分级、训练任务依赖梳理、环境与数据迁移、精度与性能基线对齐、灰度切流、多租户隔离与计量计费,以及成本核算与收益判断方法。适合大模型训练工程师、集群运维人员、算力平台架构师与技术负责人阅读,帮助读者形成可落地的迁移与运营方案。
本教程要解决的是一个在高算力组织中反复出现的工程问题:当组织完成新一代AI训练集群建设后,如何把仍然有效的训练任务从上一代集群平稳迁出,并把腾出的上一代算力从”持续亏损的沉没成本”转变为”可对外供给、可计量、可核算收益”的服务资源。
学完本教程,你应当能够:
需要强调的是,本教程讨论的是通用的集群工程方法与架构原则,不涉及任何特定厂商的专有接口或产品能力。落地时可结合所在云平台的通用能力类目(如容器平台、对象存储、身份认证、监控告警、日志服务、负载均衡等)实现;例如在百度智能云上构建此类平台时,同样以这些通用能力类目为骨架,不依赖某一种专属组件。
不适用场景:单机小规模训练、无共享存储的实验环境,这类场景直接重建环境即可,无需迁移工程。
基础环境
权限与账号
数据与资料
基础知识
做什么:把集群内全部节点按”硬件代际 + 显存容量 + 互联带宽 + 可用卡数”打标签,并汇总成一张资产台账。
为什么做:迁移决策的前提是准确知道”什么是落后产能”。如果只看总数不看代际与互联能力,很容易把仍在承担关键任务的资源误判为可腾退资源,或者反过来把真正稀缺的高带宽节点提前释放,导致新任务无法组网。
注意:分级维度里”互联带宽”往往比”卡型号”更关键。同一代硬件,如果跨机互联带宽不足,组建大并行域时的通信效率会显著下降,实际有效算力远低于标称值。
台账建议字段:节点标识、可用区/机房、GPU代际、单机卡数、单卡显存、卡间互联带宽、机间网络类型、当前承载任务、日均利用率、月均电费与折旧分摊。
做什么:为每个训练任务建立依赖清单,逐项标注迁移风险等级。
需要梳理的依赖包括:
评估原则:把任务分为三类——可直接迁移、需改造后迁移、不建议迁移。不建议迁移的任务(例如长期低价值的历史实验)直接归档停止,比强行迁移更经济。
做什么:在新集群上构建统一的训练基础镜像,把驱动、运行库、通信库、框架、常用工具固化进镜像,通过镜像仓库版本化管理。
为什么做:迁移期最常见的问题是”代码没问题、环境有问题”。把环境固化成不可变镜像,可以让同一份代码在新旧集群上跑出可比结果,也为后续多租户供给打下基础——外部租户只能通过指定镜像获得运行环境,避免自行改环境带来的兼容性问题。
注意:
做什么:把训练数据集与历史检查点从旧存储迁移到新集群可访问的存储,并校验完整性。
推荐做法:
检查点迁移要点:检查点通常体积巨大。可按”最近N个可恢复检查点全量迁移 + 历史检查点按需冷迁移”策略处理,把冷数据下沉到低成本存储层级,降低存储与带宽开销。
做什么:在新硬件上重新计算并行度组合,而不是照抄旧集群配置。
为什么做:并行度的最优组合与单机卡数、卡间与机间带宽比、显存容量强相关。硬件代际变化后,原先的最优配置往往不再是新硬件上的最优配置。照抄配置的直接后果是有效算力利用率大幅下降,看起来”任务在跑”,实际吞吐远未达到新集群应有水平。
调优建议:
通用配置片段(示意):
training_job:parallel:tensor_parallel_size: 8 # 张量并行度,优先落在单机内pipeline_parallel_size: 2 # 流水线并行度data_parallel_size: 16 # 数据并行度compute:precision: "bfloat16" # 混合精度gradient_checkpointing: true # 以计算换显存io:checkpoint_interval_steps: 500checkpoint_keep_last: 5data_prefetch_factor: 4fault_tolerance:auto_resume_from_checkpoint: truehang_detection_timeout_sec: 900
做什么:在新集群上用相同代码、相同数据切片、相同随机种子跑一段短程训练,与旧集群基线对比。
必须比对的三类指标:
| 类别 | 指标 | 合格判断 |
|---|---|---|
| 正确性 | 同种子下前若干步的损失曲线 | 曲线应高度重合,允许末位浮点差异 |
| 吞吐 | 每卡每秒处理样本数、显存占用、硬件利用率 | 达到新集群合理预期区间 |
| 扩展性 | 节点数翻倍时的吞吐增长比 | 接近线性,明显低于线性则需排查通信 |
这一步是后续所有步骤的前提:如果正确性未对齐就切流,问题会被放大到全量任务,排查成本极高。特别关注两类”静默劣化”:数据分片顺序变化导致收敛行为改变;精度开关变化导致损失轻微抬升。
做什么:按任务优先级分批把训练负载从旧集群迁到新集群,每批完成后观察一段时间再进入下一批。
推荐顺序:非关键实验任务 → 常规预训练/微调任务 → 关键长周期训练任务 → 在线评测与推理服务。
每批的准出条件:
旧集群在切流后进入”只读待回滚”状态,保留至少一到两个检查点周期,再释放资源。
这是本教程区别于普通迁移工作的核心部分。旧集群腾出后不应闲置,但要对外供给就必须先完成平台化改造。
8.1 多租户隔离
8.2 配额、优先级与抢占
8.3 计量与结算
计量项要覆盖真实成本来源,建议至少包括:
tenant:id: "tenant-example-01"quota:gpu_hour_per_month: 50000max_concurrent_jobs: 4max_priority_class: "batch"isolation:network_egress_policy: "restricted"storage_scope: "own_namespace_only"image_allowlist: truemetering:items:- "gpu_hour" # 卡时- "gpu_memory_gb_hour" # 显存占用时长- "storage_gb_month" # 存储占用- "egress_gb" # 出网流量
计量数据必须做到可回溯、可对账:保留原始采样点、支持按月聚合、支持按租户导出明细。对账争议是算力对外服务中最常见的一类问题,缺少明细几乎无法解决。
8.4 成本核算与定价决策
判断闲置算力该自留还是外供给,用这个简化模型:
边际成本 = 电费 + 机房与网络分摊 + 运维人力分摊 + 硬件折旧机会成本 = 该算力未来用于自有任务时的预期价值建议外供给条件:外部可接受价格 > 边际成本 + 机会成本
若判断为”未来自有需求明确且时间临近”,则应优先自留或仅做短期供给;若未来数季度无明确需求,则闲置的边际成本是纯损失,外供给是更优选择。折旧与电费的口径需与财务统一,避免技术侧与财务侧结论不一致。
迁移完成的判定标准,建议形成一张可勾选清单:
其中第3项与第7项的演练最容易被跳过,而它们恰恰决定了故障发生时的损失规模。
问题一:新集群吞吐明显低于预期,硬件利用率却很高
原因通常是并行度配置不匹配新硬件拓扑,或数据供给不足导致等待。排查顺序:先看数据读取延迟指标,再看通信耗时占比,最后核对并行维度是否跨机。硬件利用率高不代表计算有效,可能大量时间在通信等待。
问题二:迁移后损失曲线出现台阶式跳变
优先怀疑数据分片顺序变化、检查点加载不完整、精度或优化器状态恢复异常。用同一份数据切片加固定随机种子做最小复现,逐步放开变量定位。
问题三:长周期任务偶发整体挂死
多为集合通信超时或单节点静默故障。开启通信超时检测与心跳巡检,配置自动从最近检查点恢复,避免人工介入前的长时间空转。
问题四:检查点写入拖慢训练
检查点写入与计算未解耦时会阻塞训练主流程。建议异步写入、分片并行写、写入对象存储而非本地盘,并控制保留份数。
问题五:对外供给后出现租户间相互干扰
常见于未做优先级隔离,某租户大任务占满队列导致其他租户排队。解决方向是引入独立资源池或严格优先级抢占,并对每租户设置并发与配额上限。
问题六:账单争议无法解释
根因是计量粒度太粗。改为按分钟级采样、保留原始明细、提供用量看板与导出能力,让租户能自查。
问题七:出网流量成本失控
训练任务通常不需要出网。默认拒绝出网、按需白名单放行,并对流量设阈值告警。
把训练任务从旧集群迁到新集群,本质上是一次涉及环境、数据、并行策略、正确性与稳定性的系统工程;而把腾出的旧集群从”闲置亏损”变成”可运营资源”,还需要补上多租户隔离、配额抢占、计量结算与成本核算这几块能力。两者的共同前提,是对算力资产做清晰的代际分级和利用率盘点——只有先看清什么是真正的落后产能、什么是仍然稀缺的高带宽资源,后续的迁移节奏和处置方案才不会做错。
建议你按本教程的顺序推进:资产盘点 → 依赖梳理 → 环境与数据迁移 → 基线与吞吐对齐 → 灰度切流 → 服务化改造 → 核算与定价。后续可继续深入的方向包括:跨集群统一调度的资源编排设计、面向不同负载类型的差异化配额模型,以及以有效算力利用率而非硬件占用率作为核心指标的容量规划方法。