Page 225 - 《软件学报》2026年第1期
P. 225
222 软件学报 2026 年第 37 卷第 1 期
3.4.3.1 部署层控制
[106]
TorchElastic 是 PyTorch 官方提供的弹性解决方案, 主要对节点成员资格变更时的故障进行了建模. 当节点
发生故障时, 故障被抽象为缩小规模事件; 当故障节点被调度器替换时, 则抽象为向上扩展事件. 该工具在数据并
行方面表现较好, 且对于容错作业和弹性作业, 可以配置重新启动的次数. DLRover [107] 是一个分布式开源深度学习
框架, 它可以自动配置深度学习作业的初始资源, 并在运行时动态调整作业资源, 以获得更好的性能. 借助其弹性
能力, 当检测到性能问题或作业因故障或驱逐而失败时, DLRover 能够有效调整作业资源. 它通过对作业中所有工
作者进程的吞吐量 R 进行建模, 将整个执行计划抽象为最大化吞吐量 R 的优化问题 [107] :
N w
∑ B
R = ,
W compute W update
i=0 t IO + +
r ·min(w i , ˆw) r ·min(s total , ˆs)
其中, B 表示批尺寸, N w 表示作业中的工作者数量, R 会随着 N w ,w,S total 的增加而增长. T IO 代表读取和预处理一个
批次数据的时间, 以及传输权重和梯度的通信时间. w i 表示配置的 CPU 核心, ˆ w 表示实际使用的 CPU 核心, r 表
示 CPU 计算容量. W compute 代表前向和反向计算梯度的计算量, W update 代表更新参数的运算量, s total 和 分别代表
ˆ s
参数更新阶段的 CPU 核心数量和实际使用的 CPU 核心数量. 然而, 由于一批作业只能共享集群资源, 并受到核心
最大计算容量等约束的限制, 整个问题在考虑这些约束后, 演变为一个非线性整数规划问题, 并且被认为是 NP 困
难的. AntMan [108] 通过充分利用闲置的 GPU 资源, 实现了在共享的 GPU 上同时运行多个作业, 从而提高 GPU 利
用率. 该方法充分利用了深度学习训练的独特特性, 并在深度学习框架内引入了内存和计算的动态扩展机制.
3.4.3.2 运行时插桩
对于云服务而言, 通过提高深度学习工作负载的 GPU 的高利用率来降低成本至关重要. Singularity [109] 提供了
全球分布式调度服务, 用于高效、可靠地执行深度学习训练和推理工作负载. Singularity 的核心是工作负载感知
调度程序, 能够在加速器 (例如 GPU、FPGA) 集群中透明地进行抢占和弹性扩展深度学习工作负载, 从而提高利
用率, 而不会影响其正确性或性能. 其机制是透明的, 通过对 CUDA 和驱动层接口的插桩, 用户无需修改代码, 也
不需要使用可能限制灵活性的自定义库. 此外, 该方法通过提供透明的检查点机制来增强深度学习工作负载的可
靠性. 该方法与模型架构无关, 支持多种并行策略 (例如数据并行、流水并行、模型并行). 表 6 总结了不同类型弹
性训练方案的优势、不足以及适用场景.
表 6 弹性训练方案对比
检查点类型 优势 不足 适用场景
可以理解模型结构和并行方案减 由于被绑定到特定系统, 该方案的通 该方案适用于特定的框架或固
部署层控制
少备份冗余数据 用性受到限制 定的部署平台
无法理解模型结构和并行方案可能备
运行时插桩 适用于各种上层系统框架 份冗余数据. 底层硬件和驱动层限制 平台系统适合提供此种类型的
方案进行作业调度或作业容错
造成实现困难
3.5 小 结
随着大型语言模型训练集群规模的增长和训练时间的延长, 训练过程中遇到硬件故障的概率随之增加. 因此,
总结了提升大语言模型预训练系统可靠性的措施, 包括及早发现故障、快速诊断问题, 并通过有效的容错机制、
检查点设置和快速弹性恢复, 确保预训练系统在出现故障时能够及时恢复, 从而提高整体可靠性.
4 大语言模型预训练系统面临的挑战与应对
尽管大语言模型在社会各界引起了广泛关注, 但当前的大语言模型预训练系统仍面临诸多问题和挑战. 这些
挑战包括模型本身的特性、资源的限制、技术的快速发展, 以及系统复杂性增加所带来的缺陷问题. 本节将对上
述问题和挑战进行系统梳理.

