Back to blog

Minder: Faulty Machine Detection for Large-scale Distributed Model Training

面向大规模分布式模型训练的故障机器检测系统,基于LSTM-VAE无监督异常检测与机器级相似性分析,实现秒级故障响应。

Minder: Faulty Machine Detection for Large-scale Distributed Model Training

一、论文概述

项目内容
标题Minder: Faulty Machine Detection for Large-scale Distributed Model Training
作者Yangtao Deng, Xiang Shi, Zhuo Jiang, Xingjian Zhang, Lei Zhang, Zhang Zhang, Bo Li, Zuquan Song, Hang Zhu, Gaohong Liu, Fuliang Li, Shuguang Wang, Haibin Lin, Jianxi Ye, Minlan Yu
机构ByteDance
论文arXiv:2411.01791
代码-
发布2024年11月
许可-

二、核心思想

问题定义

大规模分布式模型训练(如LLM训练、多模态训练)需要同时在数千台机器上运行。当机器发生意外故障时,训练任务会完全停止,需要人工介入排查故障机器。根据作者在生产环境中的经验,一个训练任务平均每天可能遇到两次故障,手动诊断可能导致数小时的停机。

核心挑战:

  1. 故障频率高:大规模训练任务频繁遭遇故障,机器规模越大故障率越高
  2. 手动审查耗时:人工审查故障原因耗时且劳动密集
  3. 故障类型多样:网络故障、GPU故障、内存故障、存储故障等,无单一指标可覆盖所有类型
  4. 监控数据噪声大:原始监控指标包含大量抖动和噪声

解决方案概述

本文提出Minder,一个用于分布式训练任务的自动故障机器检测系统,基于四个关键设计选择:

  1. 机器级相似性:利用分布式训练中各机器计算/存储/通信负载均衡的特性,故障机器的监控指标会表现出与正常机器的显著差异
  2. 异常连续性检查:过滤突发抖动,只关注持续一段时间的异常模式
  3. 逐指标模型训练:为每个监控指标独立训练LSTM-VAE模型,避免多指标混合导致的误判
  4. 指标优先级排序:使用决策树对指标进行优先级排序,优先通过高优先级指标快速检测故障

实验结果:

  • 已在ByteDance生产环境部署超过一年
  • 精度0.904,F1分数0.893
  • 平均响应时间3.6秒

三、技术架构

问题动机

故障频率

Figure 1: 不同机器规模大小的任务故障频率。

关键观察:机器规模越大,故障频率越高。大规模训练任务(数千台机器)每天可能遭遇多次故障,故障检测对训练效率至关重要。

诊断时间

Figure 2: 七个月内的任务诊断时间。

关键发现:手动诊断耗时数小时,故障导致训练任务长时间停机。自动检测可以显著减少诊断时间。

故障模式分析

PFC tx packet rate模式:

PFC模式

Figure 3: 故障发生前后每台机器的PFC tx packet rate模式。

关键观察:

  • 在PCIe降级故障示例中,所有机器的初始PFC Tx Packet Rate模式高度一致
  • 故障机器的监控数据会显示出与正常机器的显著差异
  • 这种差异为故障检测提供了机会
  • 该原理可扩展到其他监控指标

异常持续时间:

异常持续时间

Figure 4: 故障后异常性能的持续时间。

关键发现:

  • 异常在故障后持续一段时间(非瞬时消失)
  • 持续时间因故障类型而异
  • 可以利用持续时间特征进行故障分类和过滤突发抖动

系统架构

Minder系统架构

Figure 5: Minder的系统架构。

系统流程:

阶段组件说明
预处理数据对齐与归一化对齐采样点,Min-Max归一化
模型训练逐指标LSTM-VAE训练为每个监控指标独立训练模型
指标排序决策树优先级排序按故障敏感度对指标排序
在线检测实时故障机器检测使用训练好的模型和排序结果

核心技术

LSTM-VAE模型

LSTM-VAE结构

Figure 6: Minder的LSTM-VAE结构。

模型设计:

  • LSTM:捕获时间序列数据中的时序依赖
  • VAE:学习正常行为的潜在表示,用于去噪和重构
  • 异常检测:重构误差超过阈值时判定为异常

为什么选择无监督学习:

  • 不同于监督学习方法,Minder使用无监督学习+相似性距离检查
  • 原因:故障类型多样,无法预先枚举所有故障类型
  • 标签数据稀缺,难以获取足够的故障样本
  • VAE可以学习正常数据分布,将异常数据重构为不同的潜在表示

数学公式: L=Eq(z∣x)[log⁡p(x∣z)]−β⋅KL(q(z∣x)∥p(z))\mathcal{L} = \mathbb{E}_{q(z|x)}[\log p(x|z)] - \beta \cdot \text{KL}(q(z|x) \| p(z))

其中:

  • 第一项是重构损失(Reconstruction Loss)
  • 第二项是KL散度正则化(KL Divergence Regularization)
  • β\beta 控制正则化强度

模型参数:

  • hidden_size: 4
  • latent_size: 8
  • lstm_layer: 1
  • 时间窗口长度 ww: 8

决策树排序

决策树

Figure 7: 用于优先级排序的决策树的前7层。

排序策略:

  • 使用决策树对可疑机器进行优先级排序
  • 考虑多个特征指标的故障敏感度
  • 优先处理最可能的故障机器
  • 高优先级指标可以快速检测故障,减少检测延迟

四、核心创新

创新点说明理论/实验依据
机器级相似性利用分布式训练负载均衡特性DP/PP/TP下各机器指标相似
逐指标模型为每个监控指标独立训练LSTM-VAE避免多指标混合误判
无监督检测不依赖故障标签,使用相似性距离适用于未知故障类型
指标优先级决策树排序,优先使用高敏感度指标减少检测延迟
异常连续性过滤突发抖动,关注持续异常降低误报率

五、实验结果

实验配置

部署环境:

  • ByteDance生产环境部署超过一年
  • 监控每日分布式训练任务
  • 每个任务涉及多达数千台机器

故障类型(Table 1):

  • 网络故障(NIC、交换机)
  • GPU故障(GPU错误、ECC错误)
  • 内存故障
  • PCIe降级故障
  • 存储故障

性能分析

处理时间

Figure 8: Minder一次调用的总数据处理时间。

关键结果:

  • 数据处理时间在秒级
  • 满足实时检测需求
  • 计算开销可接受

基线比较

基线比较

Figure 9: 与基线算法MD的比较。

关键结果:

  • Minder显著优于基线算法MD [30, 46]
  • 精度0.904,F1分数0.893
  • 误报率低

故障类型准确率

故障类型准确率

Figure 10: 不同故障类型的准确率。

关键发现:

  • 对不同故障类型都有较高准确率
  • 网络故障检测准确率最高
  • GPU故障检测仍有提升空间

故障生命周期准确率

生命周期准确率

Figure 11: 故障生命周期不同阶段的准确率。

消融实验

指标选择比较:

指标选择

Figure 12: 不同指标选择的比较。

关键发现:

  • 不同指标对故障检测的贡献不同
  • 组合多个指标可以提高准确率
  • 指标选择对性能有显著影响

模型选择比较:

模型选择

Figure 13: 不同模型选择的比较。

关键发现:

  • LSTM-VAE模型表现最佳
  • 时序建模对故障检测至关重要
  • VAE的异常检测能力有效

连续性检查:

连续性检查

Figure 14: 有无连续性检查的准确率对比。

距离度量比较:

距离度量

Figure 15: 不同距离度量的比较。

补充实验

NIC吞吐量

Figure 16: PCIe降级故障注入后所有机器的毫秒级NIC吞吐量。

六、相关工作

故障检测

方法关键特性本文对比
手动审查人工检查故障日志自动化替代
统计方法基于统计阈值深度学习方法
监督学习需要故障标签无监督方法
单一指标依赖特定指标多指标组合

异常检测

方法关键特性本文对比
自编码器重构误差检测LSTM-VAE扩展
时序模型捕获时序依赖LSTM组件
集成方法多模型组合逐指标独立模型

七、总结

核心贡献

  1. Minder系统:提出自动故障机器检测系统,已部署ByteDance生产环境超过一年

  2. 机器级相似性:利用分布式训练负载均衡特性,通过机器间距离检测故障

  3. LSTM-VAE模型:结合时序建模和无监督异常检测,实现高精度故障检测

  4. 实时响应:平均3.6秒内响应故障,显著减少停机时间

  5. 生产验证:精度0.904,F1分数0.893,在大规模生产环境中验证

技术影响

  • 训练效率:显著减少分布式训练的故障停机时间
  • 自动化:替代耗时的人工审查过程
  • 可靠性:提高大规模分布式训练的系统可靠性
  • 成本节约:减少故障导致的计算资源浪费

局限性

  • 故障类型:某些故障类型检测仍有提升空间
  • 指标依赖:依赖特定的监控指标
  • 环境特异性:可能需要针对不同环境调整阈值
  • 新故障类型:对未知故障类型的泛化能力有待验证

八、参考资源