论文状态:已完成

Towards Domain-Specific Network Transport for Distributed DNN Training

原文链接
价格:0.100000
已有 2 人读过
本分析由 AI 生成,可能不完全准确,请以原文为准。

TL;DR 精炼摘要

本文针对分布式深度神经网络(DNN)训练工作负载设计定制化的网络传输方案,提出了名为MLT的域特定网络传输协议。该协议优化了DNN通信中的拥塞控制和数据传输,经过广泛评估,显著提升了训练吞吐量和网络利用率,解决了传统协议无法支持的性能瓶颈问题。

摘要

This paper addresses the challenge of designing network transport tailored for distributed deep neural network (DNN) training workloads. Unlike general-purpose transports, distributed DNN training features distinct traffic patterns and performance bottlenecks that are not well supported by existing network protocols. The authors propose a domain-specific network transport optimized for DNN communication that integrates tailored congestion control and efficient data transfer techniques. The proposed approach is evaluated extensively, demonstrating improved training throughput and network utilization compared to traditional schemes, highlighting the benefits of domain-specific transport design for accelerating distributed DNN training.

思维导图

论文精读

中文精读

1. 论文基本信息

1.1. 标题

Towards Domain-Specific Network Transport for Distributed DNN Training (迈向分布式DNN训练的域特定网络传输)

1.2. 作者

Hao Wang 和 Han Tian (iSING Lab, 香港科技大学); Jingrong Chen (杜克大学); Xinchen Wan, Jiacheng Xia, Gaoxiong Zeng (iSING Lab, 香港科技大学); Wei Bai (微软); Junchen Jiang (芝加哥大学); Yong Wang 和 Kai Chen (iSING Lab, 香港科技大学)。Kai Chen 为通讯作者。

1.3. 发表期刊/会议

21st USENIX Symposium on Networked Systems Design and Implementation (NSDI '24)NSDI 是计算机网络和系统领域顶级的会议之一,以其对系统设计和实现创新研究的高标准而闻名,具有很高的声誉和影响力。

1.4. 发表年份

2024年4月16-18日

1.5. 摘要

这篇论文旨在解决为分布式深度神经网络 (DNN) 训练工作负载设计定制化网络传输的挑战。与通用传输方式不同,分布式 DNN 训练具有独特的流量模式和性能瓶颈,而现有网络协议对此支持不足。作者提出了一种针对 DNN 通信优化的域特定网络传输 (domain-specific network transport) 协议 MLT,它集成了定制的拥塞控制 (congestion control) 和高效的数据传输 (data transfer) 技术。该方法经过了广泛评估,结果表明,与传统方案相比,它显著提高了训练吞吐量 (training throughput)网络利用率 (network utilization),突出了域特定传输设计在加速分布式 DNN 训练方面的优势。

1.6. 原文链接

/files/papers/692ea7b851a773d4bd3509ec/paper.pdf 该论文已在 USENIX NSDI '24 会议上正式发表,并提供开放获取(Open Access)。

2. 整体概括

2.1. 研究背景与动机

2.1.1. 核心问题与挑战

DNN (深度神经网络) 已成为现代机器学习应用(如计算机视觉 CV 和自然语言处理 NLP)的基石。然而,训练大型 DNN 模型非常耗时,主要原因在于需要频繁地传输海量梯度 (gradients)。尽管单个前向传播 (Forward Propagation, FP)反向传播 (Backward Propagation, BP) 可以大规模并行化,但典型的 DNN 训练仍包含数百次迭代,每次迭代都需要在数十到数百个工作节点之间同步海量梯度,这可能导致严重的通信瓶颈 (communication bottlenecks)、最坏情况下的拥塞 (congestion) 和尾延迟 (tail latencies),从而极大减缓 DNN 训练的速度。生产环境中的集群已证实存在这些通信瓶颈。

2.1.2. 现有解决方案的局限性

  • 应用层流量优化: 梯度压缩(稀疏化 (sparsification)量化 (quantization))可以减少总流量,但无法完全避免由瞬态突发 (micro-burstiness) 引起的丢包或排队导致的长尾流完成时间 (tail Flow Completion Time, FCT)
  • 计算/通信重叠与调度: 现有框架(如 MXNet, PyTorch, TensorFlow)和一些专用系统(如 BytePS)通过张量分区 (tensor partitioning)传输调度 (transmission scheduling) 来重叠通信和计算。然而,这些方法是纯粹基于端主机 (end-host) 的,不直接解决网络中的尾延迟问题,且网络交换机不知道这些应用层优先级。
  • 先进数据中心传输协议:DeTail, pFabric, Homa, NDP 等先进的数据中心网络传输 (datacenter network transport) 解决方案可以提供接近最优的平均或尾延迟。然而,它们通常过于复杂、难以部署,例如需要重构整个网络栈、需要特定的交换机专用集成电路 (Switch ASICs) 支持(如 NDP 需要切割载荷)、或假设无阻塞的网络核心。

2.1.3. 本文的切入点与创新思路

鉴于现有方案的局限性,本文提出一个问题:是否可以设计一个简单、有效且易于部署的解决方案来解决 DNN 训练中的通信瓶颈和尾延迟问题? 本文的创新点在于:系统性地利用机器学习工作负载的特定域特性 (domain-specific properties) 来设计网络传输协议,而非采用通用的方法。这导致了 MLT (Machine Learning Transport) 的诞生,旨在优化分布式 DNN 训练的平均和尾 FCT

2.2. 核心贡献/主要发现

本文的主要贡献是提出了 MLT,一种域特定网络传输协议,它通过以下三个简单而有效的设计来渐进式地 (progressive scheme) 解决由瞬态丢包和排队引起的长尾延迟:

  1. 无序包级负载均衡 (Order-free Per-packet Load Balancing): 充分利用梯度更新之间包的独立性 (inter-packet independency),实现包粒度的负载均衡 (packet-level load balancing),最小化网络热点 (network hotspots),而无需担心包乱序 (packet re-ordering) 问题。
  2. 梯度感知包排队与丢包 (Gradient-aware Packet Queueing and Dropping): 当热点出现时,基于梯度在 DNN 层级(前层 vs. 后层)和梯度幅度(大梯度 vs. 小梯度)上的重要性,在商用交换机 (commodity switches) 处执行优先级排队 (priority queueing)选择性丢包 (selective dropping),以优化模型收敛 (model convergence)
  3. 有界丢包容忍传输 (Bounded-loss Tolerance Transmission): 如果发生丢包,作为最终防线,允许在不影响模型精度 (model accuracy) 的情况下,容忍一定比例的梯度丢失,从而避免长时间重传导致的尾延迟。

2.2.1. 主要实验发现

通过测试平台实验和大规模模拟,MLT 展现了显著的性能提升:

  • 训练吞吐量: 相较于最先进的 BytePSMLT 在各种 DNN 模型上实现了高达 12.0% - 62.2% 的训练加速,并保持相同的精度。
  • 大型语言模型 (Large Language Models, LLMs) 微调: 在使用 PyTorch FSDP (完全分片数据并行) 微调 LLM 时,MLT 实现了高达 35.5% 的加速,且不影响微调过程。
  • 网络性能: 在真实的 ResNet50 流量下,MLT 实现了与最佳数据中心传输协议 NDP 相当甚至更好的网络性能(平均 FCT6.7%,尾 FCT10.3%),且无需修改交换机硬件
  • 设计组件有效性: MLT 的每个设计组件都有效地促进了其最终性能。

3. 预备知识与相关工作

3.1. 基础概念

3.1.1. 深度神经网络 (DNN) 训练基础

DNN 训练是一个迭代过程,旨在优化模型参数以最小化损失函数。

  • 迭代 (Iteration): 训练的基本单元,包括前向传播、反向传播和模型更新。
  • 前向传播 (Forward Propagation, FP): 数据(通常是小批量 mini-batch)通过 DNN 模型从输入层到输出层,计算预测结果和损失。
  • 反向传播 (Backward Propagation, BP): 根据损失函数,计算模型参数相对于损失的梯度 (gradients)。梯度指示了如何调整参数以减少损失。
  • 随机梯度下降 (Stochastic Gradient Descent, SGD): 一种优化算法,使用计算出的梯度来更新模型参数。在分布式训练中,通常会收集多个工作节点计算的梯度并进行聚合平均,然后更新全局模型。
  • 梯度 (Gradients): 损失函数对模型参数的偏导数,表示参数调整的方向和幅度。
  • 模型参数 (Model Parameters): DNN 中可学习的权重和偏置。

3.1.2. 分布式机器学习并行方案

为了加速 DNN 训练,通常会采用分布式并行策略。

  • 数据并行 (Data Parallelism, DP): 将训练数据(小批量 mini-batches)分布到多个工作节点上。每个工作节点拥有模型的完整副本,独立计算自己数据分片上的梯度。然后,所有工作节点的梯度会被同步和聚合,以更新全局模型。本文主要关注 DP
  • 模型并行 (Model Parallelism, MP): 当单个设备(如 GPU)无法容纳整个模型时,将模型的不同层或不同部分分布到不同的设备上。
  • 流水线并行 (Pipeline Parallelism): MP 的一种形式,将模型的连续层分配给不同的设备,形成一个流水线,设备之间传输中间激活值。
  • 张量并行 (Tensor Parallelism): MP 的一种形式,将模型中的大型张量(如权重矩阵)分片到多个设备上。
  • 参数服务器 (Parameter Server, PS) 架构: 一种常见的分布式训练架构。逻辑上集中的键值存储,存储模型参数。工作节点从 PS 拉取最新参数进行训练,然后将计算出的梯度推送到 PS 进行模型更新。
  • All-reduce 集合操作: 另一种常见的梯度同步方式。所有工作节点共同参与,将各自的梯度聚合。环形 All-reduce (Ring All-reduce) 是一种流行的实现,工作节点形成一个逻辑环,以接力的方式传输和聚合梯度块。

3.1.3. 网络传输与性能概念

  • 流完成时间 (Flow Completion Time, FCT): 衡量一个数据流从开始传输到所有数据都被接收所花费的总时间。平均 FCT 和尾 FCT 分别代表流完成时间的平均值和高百分位数(例如99%),尾 FCT 对分布式训练的同步性能至关重要。
  • 最小重传超时 (Retransmission Timeout, RTO_min): TCP 协议中设置的最小重传时间。如果在这个时间内没有收到确认,发送方会重传数据。过高的 RTO_min 会导致对丢包的响应延迟,从而增加尾延迟。
  • Incast 拥塞 (Incast Congestion): 在数据中心网络中,多个发送方同时向一个接收方发送大量小数据流,导致接收方端口的缓冲区溢出和严重的丢包,进而触发大量重传,严重影响 FCT。这在 PS 架构中尤为常见。
  • 优先级流量控制 (Priority Flow Control, PFC): 一种 IEEE 802.1Qbb 标准,允许在以太网链路层实现无损传输。通过暂停发送方来防止交换机端口缓冲区溢出。然而,PFC 可能导致拥塞扩散 (congestion spreading)队头阻塞 (head-of-line blocking) 等问题。
  • 队头阻塞 (Head-of-Line Blocking, HoL Blocking): 在队列中,如果队列头部的包由于某种原因(如丢失、等待确认)无法发送,它会阻塞其后所有包的传输,即使这些后继包的目的地或条件是可用的。
  • 显式拥塞通知 (Explicit Congestion Notification, ECN): 一种 IPTCP 协议的扩展,允许网络在发生拥塞时向发送方发出通知,而无需丢弃数据包。交换机可以标记 ECN 支持的包,而不是丢弃它们,发送方收到标记后可以减小发送速率。
  • 差分服务代码点 (Differentiated Services Code Point, DSCP): IP 包头中的一个字段,用于标记 IP 包的优先级,从而在网络设备(如交换机)中实现差分服务(例如优先级排队)。
  • 远程直接内存访问 (Remote Direct Memory Access, RDMA): 一种技术,允许一台计算机直接访问另一台计算机的内存,而无需操作系统或 CPU 的干预。这显著降低了网络通信的延迟和 CPU 开销,常用于高性能计算和数据中心。

3.2. 前人工作

  • 梯度压缩(应用层):
    • 稀疏化 (Sparsification): 如 [33, 66, 101],通过过滤掉接近零的梯度来减少网络流量。
    • 量化 (Quantization): 如 [12],通过使用低精度浮点数表示梯度来减少流量。
    • 局限性: 尽管减少了总流量,但仍容易受到瞬态排队或丢包的影响,导致长尾 FCT
  • 计算/通信重叠与调度(应用层/端主机):
    • Poseidon [112]、P3TicTac [39]、ByteScheduler/BytePS [52, 81] 通过张量分区和基于优先级的传输调度来重叠当前迭代的通信与下一个迭代的计算。
    • 局限性: 这些是纯粹基于端主机的解决方案,不直接解决网络中的尾延迟问题,且网络交换机无法感知这些应用层优先级。
  • 先进数据中心传输协议(网络层):
    • DeTail [110]、pFabric [15]、Homa [77]、NDP [38] 等。
    • 局限性: 通常过于复杂,难以部署。例如,NDP 需要特定的交换机硬件支持(如切割载荷),其他方案可能需要重构整个网络栈或假设无阻塞网络核心。

3.3. 技术演进

分布式 DNN 训练的通信优化经历了从早期主要关注应用层数据量减少(如梯度压缩)和计算与通信的简单重叠,到后来发展出更精细的调度策略(如 BytePS 的张量分区和优先级调度)。同时,数据中心网络传输领域也涌现出许多旨在优化平均 FCT 和尾 FCT 的复杂协议。然而,这些网络协议通常是通用目的 (general-purpose) 的,并未充分利用 DNN 训练的特定域特性,且往往部署成本高昂。本文的 MLT 正是处于这一技术演进的交叉点,它试图弥合 DNN 训练应用层特性与网络传输层优化之间的鸿沟,提出了一种利用 ML 独有属性的域特定网络传输协议,以实现简单、有效且易于部署的解决方案。

3.4. 差异化分析

MLT 与现有方法的核心区别和创新点在于它系统性地利用了 DNN 训练的独特领域特性来设计网络传输:

  1. 与通用传输协议的区别: 通用协议(如 TCP)追求通用性,难以针对 DNN 训练的特定流量模式和容忍度进行优化。MLT 则专注于 DNN 训练,通过包级独立性、梯度重要性差异和有界丢包容忍度等特性,实现定制化优化,解决了通用协议在 DNN 训练场景下的效率低下和尾延迟问题。
  2. 与应用层优化(如梯度压缩、调度)的区别: 梯度压缩和调度主要在应用层减少流量或重叠通信计算,但它们不直接解决网络拥塞导致的尾延迟,且网络设备对应用层优先级一无所知。MLT 则在传输层解决这些问题,它通过包级负载均衡减少热点,通过梯度感知排队/丢包使网络设备理解应用层优先级,并通过有界丢包容忍从根本上削减了重传带来的尾延迟。
  3. 与先进数据中心传输协议(如 NDP, pFabric)的区别: NDP 等协议虽然能实现低延迟,但通常需要昂贵的交换机硬件修改或复杂的网络栈重构,难以在现有商用设备上部署。MLT 的一个核心目标是易于部署,它利用商用交换机的现有功能(如 ECN/REDDSCP 优先级队列)实现其机制,并通过用户空间实现,避免了对内核网络栈的修改。这使得 MLT 在保持高性能的同时,具有更高的实用性。
  4. 创新性渐进式方案: MLT 提出了一个独特的三步渐进式方案,从预防(负载均衡)、缓解(感知丢包)到容忍(有界丢包),层层递进地应对长尾延迟问题,这在现有工作中是独有的。

4. 方法论

MLT 的设计灵感来源于对 DNN 训练通信模式的三个核心观察:包的无序独立性、包丢失的有界容忍性、以及梯度重要性的差异性。它将这些观察转化为三个简单而有效的技术,形成一个渐进式的三步方案,以对抗由瞬态丢包和排队引起的长尾延迟。

4.1. 关键思想

  1. 通过无序包级负载均衡最小化热点 (Minimizing hotspots with order-free per-packet load balancing): MLT 利用 DNN 训练中数据包的无序独立性 (order-free inter-packet independency),实现包粒度 (per-packet) 的负载均衡,从而最小化网络热点。这与传统应用中需要维护消息内数据包顺序的情况不同,避免了高昂的包乱序 (packet re-ordering) 代价。
  2. 梯度感知包排队与丢包 (Gradient-aware packet queueing and dropping): 当网络热点无法完全避免时,MLT 在交换机层面根据梯度对 DNN 训练的重要性差异(基于 DNN 层级和梯度幅度)进行优先级排队 (priority queueing)选择性丢包 (selective dropping)。这确保了更重要的梯度得到优先传输和保护,从而优化模型收敛。
  3. 通过有界丢包容忍削减尾延迟 (Cutting tail latency with bounded-loss tolerance): 如果发生严重丢包可能导致超时,MLT 引入有界丢包容忍 (bounded-loss tolerance) 机制。在不损害模型精度的情况下,允许一定比例的梯度丢失而无需重传,从而有效避免了长时间重传导致的尾延迟。

4.2. 机制详解

MLT 的工作流分为三个渐进式步骤,如图 5 所示:

  1. 数据流量以包粒度 (per-packet basis) 分散到多条路径上,以最小化热点(对应关键思想1)。

  2. 如果热点仍然产生,MLT 根据梯度重要性执行优先级排队 (priority queueing),并在缓冲区溢出时进行选择性丢包 (selective dropping)(对应关键思想2)。

  3. 最后,如果发生可能触发超时的丢包,MLT 启用有界丢包容忍数据传输 (bounded-loss tolerant data transmission),作为最终防线,避免长时间重传延迟(对应关键思想3)。

    Figure 5: MLT Overview 该图像是示意图,展示了用于分布式深度神经网络(DNN)训练的域特定网络传输的多层拓扑结构。图中包括了脊交换机和叶交换机之间的负载均衡、优先级排队与丢弃机制,以及边界损失容忍传输的理念。

Figure 5: MLT Overview

4.2.1. 无序包级负载均衡 (Order-free Per-packet Load Balancing)

MLT端主机 (end-hosts) 执行快速启动,并在网络中执行包粒度的负载均衡。为了确保包的独立性,MLT 需要仔细地构建数据包。

4.2.1.1. 无序包构建 (Order-free packet construction)

MLT 在传输前首先执行张量打包 (tensor packing)。如图 6 所示,张量中的梯度被分成独立的组,然后打包成数据包,并附带张量ID (tensor ID)层信息 (layer)偏移量信息 (offset information)。当数据包到达接收方时,包中的梯度可以根据张量 ID 和梯度偏移量放入相应的地址。对于丢失的梯度,MLT 会用零填充相应位置。对于丢失的参数,则使用前一次迭代的值。这确保了 MLT 接收方即使在某些数据包丢失或乱序的情况下,仍然能够重构张量。

Figure 6: Tensor packing and unpacking only by traffic volume, but also by traffic pattern, e.g., high fan-in burst in a short time. 该图像是示意图,展示了在深度神经网络训练中,如何独立分区梯度以进行张量传输。图中显示了发送端和接收端的张量分布,以及通过数据包传输的梯度信息,这反映了在网络通信时所需的关键数据结构。

Figure 6: Tensor packing and unpacking only by traffic volume, but also by traffic pattern, e.g., high fan-in burst in a short time.

4.2.1.2. 包级负载均衡 (Per-packet load balancing)

MLT 考虑了两种包级负载均衡的设计选择:

  1. 利用交换机侧的包级等价多路径 (ECMP, Equal-Cost Multi-Path)

  2. 赋予端主机多路径路由控制权 (multi-path routing),这可以通过源路由 (source routing) 或标签交换 (label switching) 实现。

    本文的实现遵循第二种选择,因为源路由通过显式指定每个数据包的路径,提供了更可预测的性能。通过包级负载均衡,MLT 在很大程度上有效地最小化了网络热点。

4.2.2. 梯度感知包排队与丢包 (Gradient-aware Packet Queueing & Dropping)

即使采用了包级负载均衡,拥塞仍然可能发生。MLT 在队列堆积和缓冲区溢出时,根据梯度/数据包对 DNN 训练的影响(见 §3.3),执行优先级排队和选择性丢包。

4.2.2.1. 端主机包标记 (End-host packet tagging)

MLT 首先根据梯度的层级 (layers)幅度 (magnitudes) 对数据包进行标记 (tagging)

  • 层级优先级: 为决定包的优先级,一个直接的解决方案是将每一层的数据包映射到一个唯一的优先级。然而,这不切实际,因为 DNN 层数通常远多于交换机优先级(通常只有8个)。为了解决这个问题,MLT 将所有层均匀地分配到可用的优先级中:它将第 ii 层的包标记为 iP/Li \cdot P / L,其中 LLDNN 的总层数, PP 是可用的交换机优先级队列数量。
  • 幅度重要性: 为了编码梯度幅度信息,MLT 采用了一种类似于梯度稀疏化中使用的类似方法 [66]。给定包中的所有梯度,MLT 计算其平均值,并与一个阈值进行比较,以标记该包是否重要(通过 ECN 字段在包头中指示)。默认情况下,该阈值设置为张量中所有梯度的中位数。为最小化开销,MLT 仅对 5% 的梯度进行采样(受 [66] 启发,其采样率小于 1%)。

4.2.2.2. 交换机排队与丢包 (Switch queueing and dropping)

根据标记信息,MLT 交换机执行优先级排队和选择性丢包,如图 7 所示。

  • 优先级排队 (Priority Queueing):前层数据包 (front layers) 映射到高优先级队列 (high priority queues),以加速训练流水线。
  • 选择性丢包 (Selective Dropping): 根据两个维度决定是否丢弃数据包。
    1. 层级维度: 为了选择性地丢弃前层数据包,相应的高优先级队列被设置为较低的丢弃阈值(即更容易被丢弃),更详细分析见附录 B。

    2. 幅度维度: 交换机根据重要性标记丢弃数据包;不重要的数据包 (less important packets) 会被选择性丢弃。

      值得注意的是,这不需要复杂的数据包深度检测 (deep packet inspection)。优先级排队和选择性丢包都可以通过检查 DSCPECN 字段,利用商用交换机 (commodity switches) 的现有功能实现。

      该图像是示意图,展示了用于加速分布式深度神经网络训练的优先级排队机制。图中包含了输入和输出层,以及ECN标记阈值用于选择性丢包,多个队列的优先级水平被标识,从高到低分别为队列1至队列K,说明了在交换机处的排队和丢包流程。 该图像是示意图,展示了用于加速分布式深度神经网络训练的优先级排队机制。图中包含了输入和输出层,以及ECN标记阈值用于选择性丢包,多个队列的优先级水平被标识,从高到低分别为队列1至队列K,说明了在交换机处的排队和丢包流程。

Figure 7: Priority Queueing and Selective Dropping

4.2.3. 有界丢包容忍数据传输 (Bounded-loss Tolerant Data Transmission)

尽管有良好的流量均衡和精心设计的排队/丢包机制,丢包仍可能发生。MLT有界丢包容忍 (bounded-loss tolerance) 作为最终防线,以避免在严重丢包可能导致超时时产生的长时间重传延迟。

4.2.3.1. 简单设计 (Strawman design)

一种直接实现有界丢包容忍数据传输的方案是,让接收方应用在收到一定比例的梯度后就开始下一个迭代。然而,这种方法会受到可靠传输协议(如 TCP)的队头阻塞 (Head-of-Line, HoL Blocking) 问题的困扰。例如,一个包含10个数据包的消息,如果第二个包丢失,即使传输层收到90%的数据,它也只能将第一个包传递给应用,因为丢失的第二个包阻塞了后续包的交付。这导致应用会因为不必要的重传延迟而无法前进。

尽管不可靠传输协议(如 UDP)没有 HoL 阻塞问题,但它们的尽力而为 (best effort) 特性无法保证一定比例的数据包交付,并且缺乏拥塞控制机制来防止拥塞崩溃 (congestion collapse)。因此,MLT 决定设计一个新的传输协议,可以保证一定比例(例如 (1p)%(1-p)\%)的数据包交付。

4.2.3.2. 半可靠传输 (Semi-reliable transmission)

在训练开始前,MLT 首先在所有节点间同步以下信息(通过可靠通道,如 TCPRDMA RC):

  1. 丢包容忍边界 (loss-tolerant bound) p[0,1)p \in [0, 1):一个张量所能容忍的最大丢包比例。

  2. 每个张量的 ID 和大小:这些信息在训练开始前可知,且张量大小在每次迭代中是固定的。

    当正确交付的数据达到预设的边界时,MLT 接收方会向发送方发送停止信号 (stop signal),以停止发送端传输。然而,如果发送方已经发送了某轮的所有数据包,而接收方仍未收到足够的数据,则发送方会在发送完所有数据包后发送一个探测信号 (probe signal) 给接收方查询状态。接收方会回复一个已接收数据包的位图 (bitmap),然后发送方会重传所有丢失的数据包 (missing packets)。这个恢复过程会持续,直到接收方收到停止信号。控制数据包(如停止和探测)通过可靠通道传输。

4.2.3.3. 最小速率控制 (Minimal rate control)

借助丢包容忍特性,MLT 只需要一个最小的速率控制 (minimal rate control) 来避免拥塞崩溃。它使用延迟 (delay) 作为拥塞信号,并采用一种类似 TIMELY [76] 的算法

  • 初始状态: 流以线路速率 (line rate) 开始发送。发送方在数据包中编码一个时间戳 (timestamp),接收方通过 ACK 定期回传该时间戳。在 MLT 的设置中,接收方每收到十个数据包发送一次 ACK
  • 速率更新: 每当发送方收到 ACK 时,它会计算当前的往返时间 (RTT, Round-Trip Time)RTT 梯度 (RTT gradient),然后更新发送速率。
    • 加性增长 (additive increase): 如果当前 RTT 小于 TlowT_{low} 或者 RTT 梯度小于 0,发送速率更新为 rate+αrate + \alpha
    • 乘性减少 (multiplicative decrease): 如果当前 RTT 大于 ThighT_{high},发送速率更新为 rate(1β(1Thighcurrent_rtt))rate \cdot (1 - \beta \cdot (1 - \frac{T_{high}}{current\_rtt}))
    • 默认参数设置为:TlowT_{low}12.5μs12.5 \mu sThighT_{high}125μs125 \mu sα\alpha40 Mbpsβ\beta0.8

4.3. 收敛性分析 (Appendix A)

本节正式提出了 MLT 的收敛性分析,本质上是一个带有优先级/选择性丢包的分布式机器学习过程。先前工作 [108] 已证明了随机丢包(即每个消息的独立同分布丢包概率 pp 的不可靠网络)下分布式学习的收敛速率是可比的。本文在 [108] 的基础上,进一步将收敛性证明从随机丢包扩展到优先级/选择性丢包。

以下是原文表 3 的内容,并附带符号解释:

符号 含义
\| \cdot \| 向量的 l2l_2 范数 (l2 norm for vectors)
F\| \cdot \|_F 矩阵的 Frobenius 范数 (the Frobenius norm of matrices)
nn 工作节点数 (number of workers)
mm 服务器数 (number of servers)
γ\gamma 模型学习率 (model learning rate)
pp 丢包率 (packet dropping ratio)

4.3.1. 问题描述

分布式优化问题定义为: minxf(x)=1ni=1nfi(x) \min_{\vec{x}} f(\vec{x}) = \frac{1}{n} \sum_{i=1}^n f_i(\vec{x}) 其中 nn 是工作节点数,fi(x)=EξDiFi(x,ξ)f_i(\vec{x}) = \mathbb{E}_{\xi \sim D_i} F_i(\vec{x}, \xi) 表示在工作节点 ii 的局部数据分布 DiD_i 上的期望损失函数 FF。 在每次迭代中,每个工作节点 ii 对随机选择的数据集子集 Dt(i)D_t^{(i)} 执行 SGDGt(i)=Fi(Xt(i),Dt(i)) G_t^{(i)} = \nabla F_i \Big( X_t^{(i)}, D_t^{(i)} \Big) 其中 Xt(i)X_t^{(i)}Gt(i)G_t^{(i)}Dt(i)D_t^{(i)} 分别表示工作节点 ii 在迭代 tt 时的模型参数、梯度和训练数据。

4.3.2. 梯度处理与更新

在发送梯度之前,每个工作节点 ii 将梯度 Gt(i)G_t^{(i)} 分为 mm 个等大的块: Gt(i)=((Gt(i,1)),(Gt(i,2)),...,(Gt(i,m))) G_t^{(i)} = \left( (G_t^{(i,1)})^\top, (G_t^{(i,2)})^\top, ..., (G_t^{(i,m)})^\top \right) 发送梯度 Gt(i)G_t^{(i)} 时,由于网络条件和优先级丢包,一些块可能会被丢弃。对于每个块 jj,所有工作节点上的梯度都被收集并由参数服务器进行平均: G~tj=1Nt(j)iNt(j)Gt(i,j) \widetilde{G}_t^j = \frac{1}{|N_t^{(j)}|} \sum_{i \in N_t^{(j)}} G_t^{(i,j)} 其中 G~tj\widetilde{G}_t^j 表示迭代 tt 时块 jj 的平均梯度,Nt(j)N_t^{(j)} 表示在迭代 tt 时,块 jj 成功被平均的工作节点数。

平均梯度后,参数服务器使用 SGD 算法更新相应的权重块,并将其返回给每个工作节点进行局部更新。对于未能接收到平均块的工作节点,它们只使用原始梯度。形式上,工作节点 ii 上的更新梯度为: Xt+1(i)=((Xt+1(i,1)),(Xt+1(i,2)),...,(Xt+1(i,m))) X_{t+1}^{(i)} = \Big( (X_{t+1}^{(i,1)})^\top, (X_{t+1}^{(i,2)})^\top, ..., (X_{t+1}^{(i,m)})^\top \Big) 其中,对于每个块 jjXt+1(i,j)={Xt(i,j)γG~tj,if iN~t(j)Xt(i,j),if iN~t(j) X_{t+1}^{(i,j)} = \left\{ \begin{array}{ll} X_t^{(i,j)} - \gamma \widetilde{G}_t^j, & \text{if } i \in \widetilde{N}_t^{(j)} \\ X_t^{(i,j)}, & \text{if } i \notin \widetilde{N}_t^{(j)} \end{array} \right. 这里 N~t(j)\widetilde{N}_t^{(j)} 表示在迭代 tt 时,块 jj 成功发送给工作节点 ii 的集合。

4.3.3. 假设条件

对于该算法,本文提出以下在分析随机优化算法时常用的假设 [64, 108]: 假设 1.

  1. Lipschitzian 梯度: 梯度函数 fi()\nabla f_i(\cdot)LL-Lipschitz 连续的,这意味着: fi(x)fi(y)Lxy \| \nabla f_i(\vec{x}) - \nabla f_i(\vec{y}) \| \leq L \| \vec{x} - \vec{y} \|

  2. 有界梯度: 对于每个工作节点 ii 和任何 x\vec{x},随机梯度的方差是有界的。 EξDiFi(x;ξ)fi(x)2σ2,i,x1ni=1nfi(x)f(x)2ξ2,i,x \begin{array}{rcl} \mathbb{E}_{\xi \sim D_i} \| \nabla F_i(\vec{x}; \xi) - \nabla f_i(\vec{x}) \|^2 & \leq & \sigma^2, \forall i, \forall \vec{x} \\ \frac{1}{n} \sum_{i=1}^n \| \nabla f_i(\vec{x}) - \nabla f(\vec{x}) \|^2 & \leq & \xi^2, \forall i, \forall \vec{x} \end{array}

  3. 0\vec{0} 开始: 为简化,假设 X1=0X_1 = \vec{0},不失一般性。

    在任意丢包策略下,每个工作节点上的更新梯度总是可以表示为局部梯度的线性组合: Xt+1(i,j)Xt(i,j)=Gt(,j)Wt(j) X_{t+1}^{(i,j)} - X_t^{(i,j)} = G_t^{(\cdot,j)} W_t^{(j)} 其中 Gt(,j):=((Gt(1,j)),(Gt(2,j)),...,(Gt(i,j)))G_t^{(\cdot,j)} := \Big( (G_t^{(1,j)})^\intercal, (G_t^{(2,j)})^\intercal, ..., (G_t^{(i,j)})^\intercal \Big)Wt(j)W_t^{(j)} 是系数矩阵。[Wt(j)]m,k[W_t^{(j)}]_{m,k} 表示在一个更新步骤后,工作节点 mm 的梯度块 jj 被工作节点 kk 接收的系数。[Wt(j)]m,k=0[W_t^{(j)}]_{m,k} = 0 意味着工作节点 mm 的梯度块 jj 未被工作节点 kk 接收,这可能是在与参数服务器通信期间丢弃的,无论是在平均之前还是之后。

[108] 表明,在均匀随机丢包环境下,Wt(j)W_t^{(j)} 满足以下性质: E[W]=α1In+(1α1)AnE[Wt(j)Wt(j)]=α1In+(1α1)AnE[Wt(j)AnWt(j)]=α2In+(1α2)An \begin{array}{c} \mathbb{E}[W] = \alpha_1 I_n + (1 - \alpha_1) A_n \\ \mathbb{E}[W_t^{(j)} W_t^{(j)^\top}] = \alpha_1 I_n + (1 - \alpha_1) A_n \\ \mathbb{E}[W_t^{(j)} A_n W_t^{(j)^\top}] = \alpha_2 I_n + (1 - \alpha_2) A_n \end{array} 对于某些满足 0<α2<α1<10 < \alpha_2 < \alpha_1 < 1 的常数 α1\alpha_1α2\alpha_2。尽管 [108] 考虑的是工作节点执行平均操作的算法,但这些性质也适用于专用参数服务器设置。此外,由于 MLT 采用优先级丢包机制,α1(j,t)\alpha_1^{(j,t)}α2(j,t)\alpha_2^{(j,t)} 在不同的块 jj 和迭代 tt 中会有所不同。为了将 [108] 中的收敛性证明应用于 MLT,本文使用 α1max\alpha_{1_{max}}α2max\alpha_{2_{max}} 代替,它们分别表示 maxj,tα1(j,t)\max_{j,t} \alpha_1^{(j,t)}maxj,tα2(j,t)\max_{j,t} \alpha_2^{(j,t)} 在所有工作节点和迭代中的最大值,并保留证明的有效性。

4.3.4. 收敛性定理

定理 1. (MLT 的收敛性) 在假设 1 下,选择足够小的学习率 γ\gamma,使得 16L2γ2(1βmax)2>01 - \frac{6 L^2 \gamma^2}{(1 - \sqrt{\beta_{max}})^2} > 0MLT 具有以下收敛速率: 1Tt=1T(Ef(xt)2+(1Lγ)Ef(Xt)2)2f(0)2f(x)γT+γLσ2n+4α2maxLγ(σ2+3ξ2)+(2α2maxLγ+L2γ2+12α2maxL3γ3)σ2C1(1Bmax)2+3(2α2maxLγ+L2γ2+12α2maxL3γ3)ξ2C1(1Bmax)2 \begin{array}{rl} & \displaystyle \frac{1}{T} \sum_{t=1}^T \Big( \mathbb{E} \| \nabla f(\overline{x_t}) \|^2 + (1 - L\gamma) \mathbb{E} \| \overline{\nabla} f(X_t) \|^2 \Big) \\ & \quad \leq \frac{2 f(\overline{0}) - 2 f(\vec{x^*})}{\gamma T} + \frac{\gamma L \sigma^2}{n} + 4\alpha_{2max} L\gamma (\sigma^2 + 3\xi^2) \\ & \quad + \frac{(2\alpha_{2max} L\gamma + L^2 \gamma^2 + 12\alpha_{2max} L^3 \gamma^3) \sigma^2 C_1}{(1 - \sqrt{\mathrm{B}_{max}})^2} \\ & \quad + \frac{3(2\alpha_{2max} L\gamma + L^2 \gamma^2 + 12\alpha_{2max} L^3 \gamma^3) \xi^2 C_1}{(1 - \sqrt{\mathrm{B}_{max}})^2} \end{array} 其中: f(xt)=f(1ni=1nxt(i))f(Xt)=i=1nfi(xt(i))βmax=maxj,t(α1(j,t)α2(j,t))C1=(16L2γ2(1βmax)2)1 \begin{array}{rl} & \displaystyle \nabla f(\overline{\vec{x}_t}) = \nabla f(\frac{1}{n} \sum_{i=1}^n \vec{x}_t^{(i)}) \\ & \displaystyle \overline{\nabla} f(X_t) = \sum_{i=1}^n \nabla f_i(\overline{x_t}^{(i)}) \\ & \displaystyle \beta_{max} = \max_{j,t} (\alpha_1^{(j,t)} - \alpha_2^{(j,t)}) \\ & \displaystyle C_1 = \left( 1 - \frac{6 L^2 \gamma^2}{\big( 1 - \sqrt{\beta_{max}} \big)^2} \right)^{-1} \end{array} 符号解释:

  • TT: 总迭代次数。

  • E\mathbb{E}: 期望。

  • \| \cdot \|: 向量的 l2l_2 范数。

  • f(xt)\nabla f(\overline{x_t}): 在平均模型参数 xt\overline{x_t} 处计算的全局损失函数的梯度。

  • f(Xt)\overline{\nabla} f(X_t): 所有工作节点在各自参数 xt(i)\overline{x_t}^{(i)} 处计算的局部损失函数梯度的平均。

  • f(0)f(\overline{0}): 模型参数为零时的全局损失函数值。

  • f(x)f(\vec{x^*}): 最优模型参数 x\vec{x^*} 时的全局损失函数值。

  • γ\gamma: 学习率。

  • LL: Lipschitz 常数,衡量梯度变化的平滑程度。

  • nn: 工作节点数。

  • σ2\sigma^2: 随机梯度方差的上界。

  • ξ2\xi^2: 局部损失函数梯度与全局损失函数梯度差异的方差上界。

  • α1max\alpha_{1_{max}}, α2max\alpha_{2_{max}}: 与丢包策略相关的系数,用于量化不同块和迭代中的丢包影响。

  • βmax\beta_{max}: 与丢包系数相关的最大值,用于衡量丢包对收敛的影响程度,其值越小表示丢包影响越小。

  • C1C_1: 一个与学习率和丢包系数相关的常数项。

    从定义可知,当且仅当梯度块的丢包概率为1时,βmax=1\beta_{max} = 1,这可能导致边界变为无穷大。在 MLT 中,可以假设没有梯度块的丢包概率等于1,因为梯度幅度在不同迭代中是变化的。

通过选择适当的学习率 γ\gamma,可以得出收敛速率的表达式。从中可以看出,收敛速率的主导项 (O(1/nT)O(1/\sqrt{nT})) 与集中式 SGD 和去中心化 SGD 的先前工作 [65, 108] 一致,这从理论上证明了 MLT 将以与传统 SGD 方法相同的迭代次数收敛。

4.4. 选择性丢包阈值设置 (Appendix B)

本节提出了用于选择性丢包 (selective dropping) 机制 (RED/ECN 设置) 优化阈值的公式,利用排队论 (queueing theory) [16]。分析指导指出,为了找到阈值,需要知道模型的每层大小,并测量由于每层中少量/大量梯度丢失而导致的模型收敛的额外轮次。

以下是原文表 4 的内容,并附带符号解释:

符号 含义
NN 交换机队列数量 (number of switch queues)
BB 交换机缓冲区大小 (size of switch buffer)
SiS_i 队列 ii 的 `ECN`/`RED` 阈值 (ECN/RED threshold of queue i)
LiL_i 队列 ii 的长度 (length of queue i)
λ\lambda 数据包到达速率 (packet arrival rate)
μ\mu 数据包服务速率 (packet service rate)
MM 模型层数 (number of model layers)
mim_i 模型中第 ii 层的大小 (size of layer i in the model)
θ\theta 模型中小型梯度所占比例 (ratio of small gradients in the model)
fiS()f_i^S(\cdot), fiL()f_i^L(\cdot) 队列 ii 中 1% 小型/大型梯度丢失所导致的额外收敛轮次成本 (additional convergence rounds cost by 1% small/large gradient loss in layer i)

4.4.1. 问题建模

如图 20 所示,MLT 交换机的数学模型。所有流量以到达速率 λ\lambda 进入相应的队列。对于每个队列,如果排队数据包的总大小大于 SiS_i,则所有进入该队列的小梯度数据包将被丢弃。如果总大小大于 LiL_i,则所有数据包都将被丢弃。为了简化分析并利用排队论中的 M/M/1/mM/M/1/m 模型,我们将每个队列拆分为两个:一个专门用于小梯度,另一个专门用于大梯度。它们的丢弃阈值分别为 SiS_i'LiL_i'SiS_iLiL_i 可以很容易地用 SiS_i'LiL_i' 表示:Si=Si/ΘS_i = S_i' / \Theta, Li=Si+LiL_i = S_i' + L_i'

Figure 20: Problem formulation 该图像是示意图,展示了两种网络模型的对比:左侧为Switch Model,右侧为M/M/1/m Model。图中分别标示了每个模型的队列(Q)、服务率(λ、μ)及服务阶段(S、L)。通过这些元素的排列,图像说明了网络传输在不同模型下的运作方式和特征。这为研究针对DNN训练的网络传输协议设计提供了理论依据。

Figure 20: Problem formulation

然后,推导出 SiS_i'LiL_i' 的值。一个队列的到达速率取决于相应层的包到达速率。为简化,假设该速率与 ii 成比例。对于小型梯度队列,到达速率是 ΘλmiS\Theta \frac{\lambda m_i}{S};对于大型梯度队列,到达速率是 (1Θ)λmiS(1 - \Theta) \frac{\lambda m_i}{S}

一个队列的服务速率取决于其优先级。只有当高优先级队列空闲时,它才会被服务。对于最高优先级队列 Q1Q_1,服务速率是 μ1=μ\mu_1 = \mu,空闲时间是 1ρ11 - \rho_1,其中 ρ1=λ1/μ1\rho_1 = \lambda_1 / \mu_1。对于队列 Q2Q_2,服务速率是 μ2=(1ρ1)μ\mu_2 = (1 - \rho_1)\mu。通常,队列 QiQ_i 的空闲时间是 1ρi1 - \rho_i,其中 ρi=λi/μi\rho_i = \lambda_i / \mu_i,服务速率是 μi=k=0i1(1ρk)μ\mu_i = \prod_{k=0}^{i-1} (1 - \rho_k) \mu

假设小/大梯度的服务速率与大小成比例,则队列 QiQ_i 中小/大梯度队列的服务速率分别为 μiS=Θμi\mu_i^S = \Theta \mu_iμiL=(1Θ)μi\mu_i^L = (1 - \Theta)\mu_i。因此,空闲时间是 ρiS=λiS/μiS=λi/μi=ρi=ρiL\rho_i^S = \lambda_i^S / \mu_i^S = \lambda_i / \mu_i = \rho_i = \rho_i^L

4.4.2. 优化目标

假设每层中小型和大型梯度的丢失对收敛轮次的影响是独立的,我们的目标是最小化梯度丢失对模型收敛的影响,即找到最优的 SiS_iLiL_i 以最小化损失函数 \sum_{i=1}^N \big( f_i^S(r_i^S) + f_i^L(r_i^L) \big),其中 riSr_i^SriLr_i^L 分别是队列 QiQ_i 中小型/大型梯度的丢失率。

对于 riSr_i^SriLr_i^L 的计算,每个队列可以被视为排队论中的典型 M/M/1/mM/M/1/m 模型,特别是具有有限容量的 FIFO 队列。先前的工作 [16] 推导了丢失率的计算公式。因此,可以得到: riS=[(ρi)ΘSi(Θρi)Si+1]/[1(ρi)Si+1]r_i^S = [(\rho_i)^{\Theta S_i} - (\Theta \rho_i)^{S_i+1}] / [1 - (\rho_i)^{S_i+1}] riL=[(ρi)LiΘSi(ρi)LiΘSi+1]/[1(ρi)LiΘSi+1]r_i^L = [(\rho_i)^{L_i - \Theta S_i} - (\rho_i)^{L_i - \Theta S_i + 1}] / [1 - (\rho_i)^{L_i - \Theta S_i + 1}] 然后将损失函数表示为已知参数和阈值 (Si,Li)(S_i, L_i) 的函数,通过解决这个优化问题,可以获得最优阈值。

4.5. MLT 实现 (Section 5)

本文使用 Mellanox LibVMA [73] (Mellanox 消息加速器库) 和商用交换机构建了 MLT 原型,并将其集成到流行的 ML 框架(如 Tensorflow [11]、PyTorch [79] 和 MXNet [23])中。

4.5.1. 端主机网络栈 (End-host Network Stack)

如图 8 所示,MLT 实现为一个垫片层 (shim layer),运行在用户空间 (user space),位于 ML 框架和套接字接口之间。它提供了一系列通用的通信接口,可以集成到各种 ML 框架和分布式训练中间件系统(如 Horovod [88] 和 BytePS [52])中。

Figure 8: MLT end-host implementation overview 该图像是示意图,展示了 MLT(多层传输)在分布式深度神经网络训练中的应用结构。图中包含了不同机器学习框架(如 TensorFlow、PyTorch、MXNet)通过中间件与 MLT 进行数据传输和封包处理的流程,包括数据分区、封包标签、传输控制与速率控制等步骤。

Figure 8: MLT end-host implementation overview

  • 通用接口 (Universal interfaces): MLTML 框架的常见应用抽象设计并实现了基本通信原语。它提供了一个异步操作和完成编程模型,类似于 libverbslibfabric 等高性能通信库。它提供了两个基本通信 APIdlcp_post_send (tensor, prio_func)dlcp_post_recv (tensor, loss_bound),以及一个用于完成通知的 APIdlcp_poll_cq (cq)
  • MLT 发送方 (MLT sender): 在发送方,一个张量首先被分区成若干个 MTU (最大传输单元) 大小(不包括头部开销)的梯度段。然后运行优先级函数 prio_func 来确定每个段的优先级。DSCP 字段在 IP 头部中用于携带优先级值。UDP 载荷中包含的 MLT 头部编码了张量标识符、长度、偏移量和序列号 (sequence number)
  • MLT 接收方 (MLT receiver): 在接收方,dlcp_post_recv 接收张量和丢包容忍边界作为输入。在数据传输之前,发送方和接收方进行一次会合以预先分配接收缓冲区。收到新数据包时,接收方根据其偏移量将梯度复制到预分配的内存中。
  • 数据与信号传输 (Data & signal transmission): MLT 使用 UDPTCP 实现。数据传输和控制信号 (flow start/finish, retransmission request, stop request/confirm) 被分离,只有控制信号(流量小得多)提供完全可靠性,通过 TCP 传输。为了最小化控制信号的丢失,为其在交换机上预留了单独的优先级。为了实现高吞吐量,MLTMellanox LibVMA [73] 中采用 UDP(而非 Linux 内核),这是一个高性能用户空间网络栈 (user space network stack)
  • 重传 (Retransmission): MLT 实现选择性确认 (SACK, Selective Acknowledgement) 来管理重传。传输张量的缓冲区由应用和 MLT 库共享,直到生成相应的完成通知。因此,无需为未确认数据包的重传维护额外的缓冲区。
  • RDMA 实现可行性 (RDMA Implementation feasibility): 作者指出,当前的 RDMA NIC (网卡) 硬件在可编程性方面仍不足以高效实现复杂的传输功能(例如,无法修改 NIC 内部的包重传逻辑)。因此,将 MLT 的复杂功能卸载到用户空间可能会失去硬件卸载的真正优势。完整的硬件实现被留作未来工作。

4.5.2. 交换机配置 (Switch Configurations)

MLT 利用商用交换机的内置功能实现优先级排队和选择性丢包。

  • 优先级排队 (Priority queueing with DSCP): 通过 DSCP 字段 [19, 22] 启用严格优先级排队,并将数据包分类到相应的优先级队列。
  • 选择性丢包 (Selective dropping with ECN): 由于当前交换芯片无法推出已存储在缓冲区中的数据包,因此只能在入口处 (ingress) 进行选择性丢包。受 Aeolus [45] 启发,MLT 使用商用交换机支持的 RED (随机早期检测)/ECN 功能 [18]。在当前实现中,当交换机队列大小超过 ECN 标记阈值时,交换机将标记支持 ECN 的数据包,并丢弃不支持 ECN 的数据包。因此,为了实现选择性丢包:
    • 对于梯度幅度:发送方将携带大梯度的包标记为 ECN 可用 (ECN-capable)。
    • 对于层级:为了实现分层选择性丢包(例如,前层的包比后层的包更容易被丢弃),为高优先级队列设置更低的 ECN 标记阈值

4.5.3. ML 框架集成 (ML Framework Integration)

MLT 可以直接集成到 ML 框架(如 TensorFlow [11]、PyTorch [79] 和 MXNet [23]),也可以间接集成到分布式训练中间件系统(如 Horovod [88] 和 BytePS [52])。ML 框架通常有自己的分布式训练实现,它们倾向于选择特定的 RPC (远程过程调用) 或消息库并在其上构建抽象。MLT 的集成方式是:

  • 直接集成: 重新实现 ML 框架的通信抽象层,使用 MLT 的接口。
  • 间接集成: 将点对点通信替换为 MLT,并在必要时构建 All-reduce 方案或 PS 拓扑。 本文的原型将 MLT 集成到 BytePS [52] 中,因为 BytePS 支持 TensorFlowPyTorchMXNet

5. 实验设置

5.1. 数据集

实验使用了以下模型和数据集:

  1. 图像分类任务:
    • VGG16 [91]、ResNet50 [41] 和 GoogleNet [93] 模型。
    • 训练数据:ImageNet [29] 相同图像大小的合成数据 (synthetic data)
  2. 翻译任务:
    • Transformer [98] 模型。
    • 训练数据:SQuAD [85] 数据集。
  3. 大型语言模型 (Large Language Models, LLMs) 微调:
    • HuggingFace T5 模型 [83] (30亿和110亿参数版本)。

    • 微调数据:WikiHow 数据集 [55],用于文本摘要任务。

      选择这些数据集和模型旨在涵盖 CVNLP 领域中常见的 DNN 训练工作负载,以全面评估 MLT 的性能。LLM 部分的评估进一步展示了 MLT 在最新、内存密集型任务中的表现。

5.2. 评估指标

论文中使用的评估指标包括:

  1. 训练速度 (Training Speed):
    • 概念定义 (Conceptual Definition): 衡量模型在单位时间内处理的训练样本数量,直接反映训练效率。
    • 数学公式 (Mathematical Formula): 通常以 (样本数 / 秒)(图像数 / 秒) 来表示。 Training Speed=Number of Samples ProcessedTime Elapsed \text{Training Speed} = \frac{\text{Number of Samples Processed}}{\text{Time Elapsed}}
    • 符号解释 (Symbol Explanation):
      • Number of Samples Processed: 在给定时间内处理的训练样本总数(例如,图像或问题)。
      • Time Elapsed: 处理这些样本所花费的总时间。
    • 对于图像分类任务,以每秒处理的图像数量 (# images processed per second) 为指标。
    • 对于 Transformer 翻译任务,以每秒处理的问题数量 (# questions processed per second) 为指标。
  2. 模型精度 (Model Accuracy):
    • 概念定义 (Conceptual Definition): 衡量模型在未见过的数据(测试集)上做出正确预测的能力。对于分类任务,通常是分类正确的样本比例;对于 NLP 任务,可能使用特定的 NLP 指标。
    • 数学公式 (Top-1 Accuracy): 针对分类任务,如果模型预测的最高概率类别与真实标签一致,则认为预测正确。 Top-1 Accuracy=Number of Correct Top-1 PredictionsTotal Number of Samples \text{Top-1 Accuracy} = \frac{\text{Number of Correct Top-1 Predictions}}{\text{Total Number of Samples}}
    • 符号解释 (Symbol Explanation):
      • Number of Correct Top-1 Predictions: 模型预测的最高概率类别与真实标签一致的样本数。
      • Total Number of Samples: 测试集中的总样本数。
    • 数学公式 (Exact Match, EM): 针对像 SQuAD 这样的问答任务,如果模型的答案与参考答案完全匹配,则认为预测正确。 EM=Number of Exact MatchesTotal Number of Questions \text{EM} = \frac{\text{Number of Exact Matches}}{\text{Total Number of Questions}}
    • 符号解释 (Symbol Explanation):
      • Number of Exact Matches: 模型答案与参考答案完全匹配的问题数量。
      • Total Number of Questions: 测试集中的总问题数量。
    • 本文实验均在保持相同模型精度和收敛轮次 (iterations) 的前提下进行。
  3. 流完成时间 (Flow Completion Time, FCT):
    • 概念定义 (Conceptual Definition): 衡量一个数据流从其第一个字节开始发送到其最后一个字节被接收的时间。平均 FCT 关注所有流的平均性能,而尾 FCT(例如,99% FCT)则关注最慢的那部分流的性能,对于分布式训练的同步机制至关重要。
    • 数学公式 (Average FCT): 所有流完成时间的算术平均值。 Average FCT=1Ni=1NFCTi \text{Average FCT} = \frac{1}{N} \sum_{i=1}^N \text{FCT}_i
    • 符号解释 (Symbol Explanation):
      • NN: 总数据流数量。
      • FCTi\text{FCT}_i: 第 ii 个数据流的完成时间。
    • 数学公式 (Tail FCT, e.g., 99th Percentile FCT): 将所有流完成时间按升序排列后,位于第 99 个百分位点的值。没有固定的数学公式,通常通过经验分布函数 (empirical CDF) 来确定。
  4. 轮次-精度曲线 (Epoch-to-accuracy, ETA) 和 时间-精度曲线 (Time-to-accuracy, TTA):
    • 概念定义 (Conceptual Definition): ETA 曲线展示了模型精度随训练轮次(或 epochs)的变化,用于评估模型的收敛速度和效率。TTA 曲线展示了模型精度随训练时间的变化,用于评估端到端训练效率。
  5. CPU 开销 (CPU Cost): 衡量 MLT 引入的额外 CPU 资源消耗。

5.3. 对比基线

  • Vanilla ML frameworks (Baseline): 默认的机器学习框架(如 TensorFlow, PyTorch, MXNet)的实现,使用 DCTCP (数据中心 TCP) 作为传输协议。
  • BytePS [52]: 最先进的分布式 DNN 训练通信优化框架,包含了 ByteScheduler [81] 的张量分区和优先级调度,并启用了跨全局屏障 (cross global barrier) 功能。
  • PyTorch FSDP [115]: PyTorch完全分片数据并行 (Fully Sharded Data Parallel) 实现,用于 LLM 的训练和微调。
  • DCTCP [14]: 数据中心 TCP,广泛应用于生产环境,作为网络性能基线。
  • PIAS [19]: 针对数据中心流量调度的先进协议。
  • pFabric [15]: 一种极简、近最优的数据中心传输协议。
  • NDP [38]: 一种重新架构的数据中心网络和栈,旨在实现低延迟和高性能,但通常需要专用硬件支持。

5.4. 实验平台与配置

5.4.1. 测试平台 (Testbed)

  • 硬件组成:

    • 8台物理 GPU 服务器,每台配备:
      • 8块 RTX3090 GPU
      • 80个 CPU 核心 (Intel Xeon Gold 5218R)。
      • 256GB 内存。
      • 2块 Mellanox ConnectX-5 100Gbps NIC (网卡)。
    • 4台 Mellanox SN2100 交换机,运行 Onyx 3.7.1134 OS
  • 网络拓扑: 采用叶脊拓扑 (leaf-spine topology)

    • 一个脊交换机 (spine switch),三个叶交换机 (leaf switches)。
    • 每个叶交换机通过两个 100Gbps 链路连接到脊交换机,逻辑上形成两个脊交换机。
    • 三个机架分别包含 2, 3, 3 台 GPU 服务器。
    • 每台服务器通过两个 100Gbps 链路连接到叶交换机。
  • 虚拟化: 将一个物理服务器划分为 8 个 docker 容器,每个容器配备:

    • 1块 GPU
    • 10个 CPU 核心。
    • 32GB 内存。
    • 1个 25Gbps 虚拟网卡。
  • 最终配置: 形成一个拥有 64个节点 (node) 的测试平台,超额订阅 (oversubscription) 比率为 2:1 到 3:1,这在生产环境中是常见的比例 [92]。

    Figure 9: Testbed Topology 该图像是一个示意图,展示了分布式深度神经网络训练的测试环境拓扑结构。图中包含了多个GPU服务器(如S1至S8)以及形成叶层和脊层的交换机(S1, S2等,以及L1, L2, L3)。

Figure 9: Testbed Topology

5.4.2. 仿真环境 (Simulations)

  • 拓扑: 与 [15, 19] 类似,采用叶脊拓扑,包含 4 个核心交换机 (core),9 个 ToR (Top of Rack) 交换机和 144 台主机。
    • 每个 ToR 交换机连接 16 台主机(使用 100Gbps 链路)。
    • 每个 ToR 交换机连接 4 个核心交换机(使用 4×100 Gbps4 \times 100 \text{ Gbps} 链路)。
  • 网络参数:
    • 两台服务器之间的基础 RTT (往返时间,4跳) 为 24μs24 \mu s
    • 每个交换机端口有 512KB 缓冲区。
  • 流量: 使用来自 ResNet50GoogleNet 模型在 PS 架构下训练的真实工作负载。工作节点和参数服务器均匀分布在所有机架上,比例为 3:1。计算时间和张量大小取自测试平台实验。

5.4.3. 参数设置

  • 模型批处理大小 (Batch Sizes): VGG16, ResNet50, GoogleNet 的批处理大小为 32 样本/GPUTransformer 为 10 样本/GPU (参考 [81] 的设置)。
  • 交换机配置:
    • 4MB 共享内存。
    • 每个端口 8 个队列。
  • 传输协议 (基线和 BytePS): 使用 DCTCP [14]。
  • 连接数: 为确保公平比较,BytePS 开启多连接功能 [2],即每个 25Gbps 带宽使用两个连接。
  • RTO_min (最小重传超时): 默认设置为 1ms (对于 Linux 发布版本)。仿真中也探索了微秒级 RTO_min
  • 初始窗口大小 (Initial Window Size): 20。
  • ECN 标记阈值: 65 个数据包 [14]。
  • 丢包容忍边界 (MLT): 在实验中,保守地设置为 10%(在 §6.3 中对不同边界的影响进行了深入分析)。
  • DCTCPPIAS 使用流级 ECMP (Equal-Cost Multi-Path)。
  • pFabric 使用包级 ECMP
  • DupACKs DCTCPPIAS 为 3。
  • DelayAck 禁用。

6. 实验结果与分析

6.1. 核心结果分析

6.1.1. 测试平台实验结果

所有结果均在模型以相同迭代次数收敛到相同精度的条件下获得。MLT 引入的额外 CPU 开销小于 1%。

6.1.1.1. 不同 DNN 模型下的加速比 (PS 架构, TensorFlow)

以下是原文 Figure 10 的结果分析(VLM将 Figure 10 识别为 images/10.jpg,但其内容描述与 Figure 11 不符,且原文 Figure 10 对应章节为 Speedup under different DNN models):

Figure 11: Speedup under other frameworks:MXNet and PyTorch (results with ResNet50 and GoogleNet in Appendix). 该图像是图表,展示了在不同 DNN 模型下通过 TensorFlow 进行训练的速度提升,包括 ResNet50、VGG16、GoogleNet 和 Transformer 等模型。横轴为工作节点数,纵轴为速度(图像/秒),标注了 Baseline、BytePS 和 MLT 的表现,结果表明不同模型在相同训练轮次下均有明显提升。

  • MLT 性能最佳: 在所有模型上,MLT 的表现均优于 BaselineBytePS。具体而言,MLT 在四种模型上比 BytePS 快 14.1% - 62.2%,比 Baseline 快 34.5% - 141%
  • 尾延迟是关键: 默认的可靠传输协议对丢包非常敏感,可能触发超时并导致毫秒级延迟。训练期间观察到约 0.15% 的丢包率MLT 通过其设计避免了这些问题。
  • 随工作节点数增加,MLT 优势更显著: 随着工作节点数量从 8 增加到 64,MLT 相对于 BytePS 的加速比从 9.34% - 10.7% 提高到 14.1% - 62.2%。这表明在网络压力更大时,MLT 的优势更加突出,因为丢包更为频繁。
  • VGG16 加速最显著: VGG16 实现了高达 62.2% 的加速,高于其他模型。原因在于 VGG16通信密集型 (communication-bound) 模型,其通信与计算比率最高。

6.1.1.2. 不同 ML 框架下的加速比 (PS 架构)

以下是原文 Figure 11 的结果分析(VLM将 Figure 11 识别为 images/11.jpg,但其内容描述与 Figure 13 不符,且原文 Figure 11 对应章节为 Speedup under different ML frameworks):

Figure 13: Speedup under Large Language Models. additional CPU cost introduced by MLT is \({ < } 1 \\%\) Note that our results below are all based on the condition that the models converge to the same accuracy with the same iterations. 该图像是图表,展示了使用环式All-reduce方法下不同模型(如VGG16和Transformer)的加速情况。结果表明,随着工作节点数量的增加,MLT方法在图像处理和问答任务中相比于Baseline和BytePS方法能够实现更高的处理速度。

  • PyTorchMXNet 框架下训练 VGG16Transformer (附录中还有 ResNet50GoogleNet 的结果),MLT 相对于 BytePS 分别实现了 12.0% - 53.6% (MXNet) 和 15.3% - 56.6% (PyTorch) 的加速。
  • 趋势一致性: 观察到与 TensorFlow 相似的趋势,即 VGG16 在这些框架下也获得了最高的加速比,原因相同(通信密集)。
  • 跨框架的持续性能提升: 这项实验表明 MLT 可以在不同的 ML 框架下提供持续的性能改进。

6.1.1.3. 环形 All-reduce 模式下的加速比

以下是原文 Figure 12 的结果分析(VLM将 Figure 12 识别为 images/11.jpg,但其内容描述与 Figure 13 不符,且原文 Figure 12 对应章节为 Speedup under Ring All-reduce):

Figure 23: Speedup with Ring All-reduce 该图像是图表,展示了使用 MXNet 和 PyTorch 进行分布式深度神经网络训练时的加速效果。图中各子图展示了不同工作节点数下,各种传输协议(Baseline, BytePS, MLT)的处理速度(images/sec)。可以看出,随着工作节点数的增加,MLT 方法表现出更优的速度提升。

  • 持续的性能改进:VGG16Transformer环形 All-reduce (Ring All-reduce) 模式下,MLT 仍然显示出性能提升,尽管不如 PS 架构下显著。MLTBytePS 提升 6.89% - 10.2%,而 BytePSBaseline 提升 5.97% - 8.21%
  • 丢包率较低: Ring All-reduce 中丢包较少,因此其通信对超时引起的尾延迟不那么敏感。
  • MLT 优势: MLT 仍能提供优势,得益于细粒度的包级负载均衡有界丢包容忍带来的传输数据量减少。

6.1.1.4. 大型语言模型 (LLM) 下的加速比 (FSDP)

以下是原文 Figure 13 的结果分析(VLM将 Figure 13 识别为 images/11.jpg,但其内容描述与 Figure 13 不符,且原文 Figure 13 对应章节为 Speedup under Large Language Models (LLMs)):

Figure 13: Speedup under Large Language Models. additional CPU cost introduced by MLT is \({ < } 1 \\%\) Note that our results below are all based on the condition that the models converge to the same accuracy with the same iterations. 该图像是图表,展示了使用环式All-reduce方法下不同模型(如VGG16和Transformer)的加速情况。结果表明,随着工作节点数量的增加,MLT方法在图像处理和问答任务中相比于Baseline和BytePS方法能够实现更高的处理速度。

  • 集成 FSDP:PyTorch FSDP [115] 的服务器间通信模块替换为 MLT。对于梯度计算使用的优化器状态 (optimizer states)(梯度动量和历史梯度值),将其视为梯度。参数包标记为重要包。
  • T5 模型微调: 使用 HuggingFace T5 模型 (30亿和110亿参数版本) 在 WikiHow 数据集上进行文本摘要 (text summarization) 任务微调。
  • 显著加速: 相较于 PyTorch FSDPMLTT5-3B 模型上实现了 22.1% - 35.5% 的加速,在 T5-11B 模型上实现了 18.5% - 31.2% 的加速。
  • 更高通信频率/流量: FSDPLLM 中涉及更频繁的通信和更大的数据传输量,因此 MLT 的优势更为明显。
  • 不影响收敛: 监测结果显示,MLT 不影响模型微调过程 (fine-tuning process) 中的收敛性。

6.1.2. 大规模仿真结果

6.1.2.1. 网络指标 (平均 FCT 和 尾 FCT)

以下是原文 Figure 14 的结果分析(VLM将 Figure 14 识别为 images/14.jpg):

Figure 18: Impact of loss-tolerant bounds. 该图像是四个精确度随训练周期和时间变化的曲线图(图(a)至图(d))。图中展示了不同策略(MLT-1%、MLT-10%、MLT-20%、MLT-30%和BytePS)下,VGG16和Transformer模型在训练过程中的测试精度变化趋势,表明在不同的数据传输方案下,模型性能受到的影响。

  • MLT 性能最佳: 在所有工作负载 (ResNet50GoogleNet 流量) 和网络规模下,MLT 的性能都是最好的。
    • ResNet50 流量: MLTDCTCP, PIAS, pFabric, NDP 分别降低了高达 43.1%, 44.8%, 35.5%, 6.7%平均流完成时间 (Average FCT)
      • 尾流完成时间 (Tail FCT) 方面,分别降低了高达 91.8%, 91.8%, 88.6%, 10.3%
    • GoogleNet 流量: MLTDCTCP, PIAS, pFabric, NDP 分别降低了高达 35.1%, 38.0%, 43.5%, 7.7% 的平均 FCT
      • FCT 方面,分别降低了高达 91.7%, 91.9%, 91.7%, 8.7%
  • FCT 显著降低: MLT 相比平均 FCT 更显著地降低了尾 FCT。原因在于其他算法为了确保可靠性会进行重传,导致超时和尾部显著增加,而 MLT 容忍部分丢包,避免了重传超时。
  • NDP 比较: NDP 也能达到与 MLT 相似的性能,但其需要特殊的交换机硬件,不易部署。
  • 规模越大,MLT 优势越明显: 随着网络规模 (network scales) 的增加,MLT 降低 FCT 的效果更为显著。这是因为在更大规模下,现有解决方案会经历更多的丢包,性能下降更严重,而 MLT 通过有界丢包容忍机制对丢包开销具有免疫力。

6.1.3. 深入分析 (Deep Dive)

6.1.3.1. 链路灰度故障下的 MLT (测试平台)

以下是原文 Figure 15 的结果分析(VLM将 Figure 15 识别为 images/12.jpg):

Figure 15: Speedup under gray failure of links. 该图像是图表,展示了在不同丢包率下,VGG16(图(a))和Transformer(图(b))的训练速度(每秒处理的图像或问题数)。数据表明,随着丢包率的增加,Baseline、BytePS 和 MLT 的速度表现差异明显,特别是在MLT方法下,速度的提升更为明显。

  • 灰度故障模拟: 模拟链路存在难以检测但持续的随机丢包(即灰度故障 (gray failure)),例如,NIC 映射到 tc qdisc 工具,设置丢包率 0%0\%, 0.01%0.01\%, 0.1%0.1\%, 1%1\%)。
  • 基线和 BytePS 性能下降: 当丢包率达到 0.1%0.1\% 时,BaselineBytePS 的性能开始显著下降(VGG16: 12.2%-31.5%,Transformer: 15%-28.3%)。当丢包率达到 1%1\% 时,性能下降更为严重(VGG16: 25.7%-61.7%,Transformer: 31.2%-61.3%)。
  • MLT 保持性能: 相比之下,MLT 在所有丢包场景下都能保持其性能,这表明其丢包容忍特性在网络灰度故障下具有很强的鲁棒性。

6.1.3.2. 设计组件有效性 (测试平台)

MLT 由三个主要组件组成:A) 有界丢包容忍数据传输,B) 梯度感知排队与丢包,C) 无序包级负载均衡。通过消融研究 (ablation study) 评估每个组件的贡献。

  • 设置 I (从 A 开始,逐步添加 B, C):BytePS [52] 为基线。
    • 仅包含 A: MLT 仅包含 A 组件(有界丢包容忍)即可提高训练速度。虽然由于丢包(设置为10%)可能需要更多轮次才能达到相同精度,但端到端训练时间 (end-to-end training time) 仍有所改善。

    • 添加 B (梯度感知排队/丢包): MLT轮次-精度曲线 (Epoch-to-accuracy, ETA) 显著改善(几乎与 BytePS 一致),训练速度进一步提高。这是因为选择性丢包保护了重要梯度,减少了收敛所需的轮次。

    • 添加 C (无序包级负载均衡): MLT 在保持良好 ETA 的同时,训练速度显著提高。这得益于完美负载均衡带来的更高网络利用率。

      以下是原文 Figure 17 的结果分析(VLM将 Figure 17 识别为 images/13.jpg):

      Figure 17: Effectiveness of design components (II). 该图像是图表,展示了设计组件的有效性(图16)。左侧为不同模型(VGG16和Transformer)的速度测试结果,右侧为模型训练的测试准确率随时间的变化。数据包含了不同组件的性能比较,以评估其对训练效率的影响。

Figure 17: Effectiveness of design components (II).

  • 设置 II (从 C 开始,逐步添加 B, A): 从组件 C 开始(使用 UDPMLT 的最小速率控制)。
    • 仅包含 C: 包粒度分散梯度可以有效提高训练速度,但可能需要更多 epochs 才能收敛,并可能降低精度。

    • 添加 B (梯度感知排队/丢包): 速度略有增加,收敛性显著改善,仅比基线多出少量 epochs。这是因为优先级排队加速了通信-计算流水线,选择性丢包保护了更重要的梯度。

    • 添加 A (有界丢包容忍传输): 进一步加速训练,并实现与基线相同的收敛速度和精度。

      以下是原文 Figure 19 的结果分析(VLM将 Figure 19 识别为 images/19.jpg):

      Figure 24: Effectiveness of design components (I). 该图像是图表,展示了在不同设计组件下,ResNet50和GoogleNet的训练速度与准确率变化情况。图(a)和图(c)分别显示了ResNet50和GoogleNet的图像处理速度,而图(b)和图(d)则展示了对应模型在各个训练周期的测试准确率变化。各组件的速度均以图像/秒为单位。

Figure 24: Effectiveness of design components (I).

这些结果清晰地表明,MLT 的每个组件都对整体性能有正向贡献。

6.1.3.3. 丢包容忍边界的影响 (测试平台)

以下是原文 Figure 18 的结果分析(VLM将 Figure 18 识别为 images/14.jpg):

Figure 18: Impact of loss-tolerant bounds. 该图像是四个精确度随训练周期和时间变化的曲线图(图(a)至图(d))。图中展示了不同策略(MLT-1%、MLT-10%、MLT-20%、MLT-30%和BytePS)下,VGG16和Transformer模型在训练过程中的测试精度变化趋势,表明在不同的数据传输方案下,模型性能受到的影响。

  • 不同边界设置: 实验设置了 1%1\%, 10%10\%, 20%20\%, 30%30\% 的丢包容忍边界,训练 VGG16Transformer
  • ETA 曲线:
    • 1%1\%10%10\% 边界下,ETA 曲线几乎与 BytePS 一致。
    • 20%20\%30%30\% 边界下,需要更多 epochs 才能收敛到相同精度。
  • TTA 曲线:
    • 除了 Transformer30%30\% 边界下,MLT 在所有丢包容忍边界下都比 BytePS 收敛更快。
    • 1%1\%10%10\% 的边界在收敛时间上几乎相同。
  • 结论: 这表明 MLT 可以容忍比纯随机丢包更高的丢包率(得益于梯度感知丢包优化),且在一定范围内(如 1%1\%10%10\%)对精确调整丢包边界不那么敏感,仍能获得满意的性能。模型架构与丢包容忍边界的关系仍是开放问题。

6.1.3.4. 微秒级 RTO_min 的影响 (仿真)

以下是原文 Figure 19 的结果分析(VLM将 Figure 19 识别为 images/15.jpg):

该图像是展示不同压缩比下各MLT(最小延迟时间)的FCT/ms(完成时间)变化的图表。可以看到,FCT随着压缩比的增加而趋于稳定,且不同延迟设置下的性能差异明显,体现出网络传输在分布式DNN训练中的重要性。 该图像是展示不同压缩比下各MLT(最小延迟时间)的FCT/ms(完成时间)变化的图表。可以看到,FCT随着压缩比的增加而趋于稳定,且不同延迟设置下的性能差异明显,体现出网络传输在分布式DNN训练中的重要性。

  • 亚毫秒级 RTO_min 的尾 FCT 即使 RTO_min 达到亚毫秒级 (25μs25 \mu s, 100μs100 \mu s, 500μs500 \mu s),尾 FCT 仍保持在 10ms 左右或更高(MLT 可以将其降至 4.12ms)。
  • 重传放大效应:FCT 主要由连续丢包 (consecutive losses)虚假重传 (spurious retransmissions) 导致的放大实际 RTO 决定。例如,在 25μs25 \mu s RTO_min32×32\times 压缩下,观察到尾部流有 4.2KB 的虚假重传和 0.97%0.97\% 的丢包率。
  • 梯度压缩的局限性: 曲线在达到一定压缩比后趋于平坦,这意味着进一步压缩梯度量并不能有效降低尾 FCT。这与 §2.2 中的观察一致。
  • 总结: 尽管仿真展示了微秒级最小重传超时 (microsecond-level RTO_min),但生产环境中通常将 RTO_min 设置在毫秒级。MLT 在此场景下依然表现出显著优势。

6.2. 数据呈现 (表格)

以下是原文 Table 1 的结果:

Bounded-loss ratio (p) 0%-1% 1%-2% >2%
Model GoogleNet [93] (0.7%) LSTM [42] (0.8%)
AlexNet [57](0.8%) VGG16 [91] (0.8%)
EfficientNetB0 [94] (0.8%) VGG19 [91] (0.9%)
VGG13 [91] (0.9%) ResNet18 [41] (0.9%)
ResNet34 [41] (1%)
GRU [26] (1.2%)
Wide ResNet101 [109] (1.3%)
DenseNet169 [47] (1.6%)
Wide ResNet50 [109] (2.4%)
ResNet50 [41] (2.4%)
ShuffleNetV2 [71] (2.5%)
ResNet101 [41] (3.3%)

Table 1: Loss-tolerant bounds for different DNN models.

以下是原文 Table 2 的结果:

Model GoogleNet GRU
Dataset Cifar100 Caltech101 Wiki.-2 Wiki.-103
Grad. loss 0.8% 0.8% 1.2% 1.4%

Table 2: Loss-tolerant bounds for different datasets.

7. 总结与思考

7.1. 结论总结

本文提出了 MLT,一种域特定网络传输协议,旨在优化分布式 DNN 训练。MLT 的核心在于利用机器学习特有的属性,通过一个渐进式、三步走的方案来解决传统网络传输在 DNN 训练中遇到的长尾延迟问题。这三个关键思想包括:

  1. 无序包级负载均衡: 利用 DNN 梯度更新中包的独立性,实现高效的包粒度负载均衡,有效减少网络热点。

  2. 梯度感知包排队与丢包: 在交换机层面根据梯度的层级和幅度重要性,智能地进行优先级排队和选择性丢包,以保护关键梯度并加速模型收敛。

  3. 有界丢包容忍数据传输: 在极端丢包情况下,允许在不影响模型精度的情况下容忍一定比例的丢包,避免了长时间重传导致的尾延迟。

    通过广泛的测试平台实验和大规模仿真,MLT 在各种 DNN 模型、ML 框架和同步范式下均展现出显著的训练加速(相对于 BytePSPyTorch FSDP,加速高达 62.2%35.5%)。在网络性能方面,MLT 甚至可以媲美甚至超越 NDP 等先进数据中心传输协议,且无需复杂的硬件修改,这大大降低了部署难度。每一项设计组件的消融实验也证明了其对整体性能的有效贡献。

7.2. 局限性与未来工作

作者在论文中指出了 MLT 存在的一些局限性和未来的研究方向:

  1. 其他并行方案: MLT 主要为数据并行 (data parallelism) 设计。虽然其核心思想可能对其他并行方案(如模型并行 (model parallelism)流水线并行 (pipeline parallelism)张量并行 (tensor parallelism))有所启发,但需要修改以适应这些方案的特性。例如,在模型并行中,传输的数据包主要用于前向/反向传播计算,其优先级/丢包容忍属性可能与数据并行中的模型同步/更新阶段不同。这部分理论分析被留作未来研究。
  2. 多租户云环境:多租户云环境 (multi-tenant cloud environment)(如 EC2Azure)中,用户通常无法操纵底层网络协议和交换机。流量可能封装在隧道(如 VXLAN)中,交换机无法访问相关字段进行优先级排队或丢包。此外,出于安全原因,云提供商通常不允许租户访问底层网络的队列。因此,MLT 在此类场景下可能不适用。
  3. 与非 DNN 流量共存 (Co-existing with non-DNN traffic): 本文主要关注 AI 专用网络 (AI-centric networking, AICN) 用于 DNN 训练。在具有多种类型流量的数据中心中,MLT 需要考虑如何减轻其对DNN 流量 (non-DNN traffic) 的干扰,并确保带宽公平共享。一种直接的方法是分离 DNN 流量和非 DNN 流量到不同的队列中并执行公平排队。然而,商用交换机队列数量有限,可能需要更精妙的设计(如利用少量队列模拟多个细粒度优先级 [68])。
  4. 灵活的选择性丢包 (Flexible selective dropping): MLT 假设后层梯度比前层梯度更重要(基于预训练技术)。随着 ML 模型架构和训练算法的演进,模型参数的丢包容忍度可能会变化。MLT 允许通过标记策略灵活调整选择性丢包策略,以适应新的训练特性。但如何动态、智能地调整这些策略仍需进一步探索。
  5. MLTSRD (AWS 可伸缩可靠数据报): AWS SRD [89] 也是一种利用包喷洒 (packet spraying) 避免热点的硬件传输协议,它提供可靠但乱序的交付。SRD 仍依赖其上的消息层来恢复顺序以供通用应用使用。相比之下,MLT 利用 ML 特定属性提供半可靠交付,无需包顺序恢复。
  6. 理论分析的完善: 模型架构与丢包容忍边界之间的关系仍是一个开放问题。
  7. RDMA 的完整硬件实现: MLT 的复杂功能目前在用户空间实现,若要充分利用 RDMA 的硬件卸载优势,需要未来 RDMA NIC 提供更强的可编程性。

7.3. 个人启发与批判

7.3.1. 个人启发

  • 域特定设计的巨大潜力: MLT 充分展示了在网络传输领域,针对特定应用场景(如 DNN 训练)进行域特定设计 (domain-specific design) 的巨大潜力。传统通用协议在面对特定工作负载时,往往无法达到最优性能。通过深入理解应用的特性(如梯度独立性、丢包容忍度、梯度重要性),可以在网络层面做出更智能、更高效的决策,从而显著提升性能。这种“应用驱动网络”的思想值得在更多领域推广。
  • 现有商用硬件的潜力挖掘: MLT 的一个亮点在于其易于部署。它并非依赖未来昂贵的定制硬件,而是巧妙地利用了商用交换机 (commodity switches) 中现有的 DSCPECN/RED 等功能。这表明,即使在现有基础设施下,通过创新的软件设计和协议层面的优化,仍能大幅提升性能。这对于业界实际部署和应用具有重要指导意义。
  • 对尾延迟的深刻理解与应对: 论文通过详尽的实验展示了 RTO_min 和重传对尾延迟的巨大影响,以及梯度压缩在尾延迟面前的局限性。MLT 提出的三步渐进式方案——从预防(负载均衡)、缓解(梯度感知丢包)到容忍(有界丢包容忍)——提供了一个应对尾延迟问题的系统性框架,这种多层次防御机制非常值得借鉴。
  • 跨层优化的重要性: MLT 的设计融合了对 ML 应用层(梯度特性、收敛行为)和网络传输层(包处理、拥塞控制)的理解。这种跨层优化 (cross-layer optimization) 是现代系统设计中不可或缺的思维方式。

7.3.2. 批判与改进之处

  • 丢包容忍边界的确定: 尽管论文探讨了不同丢包容忍边界的影响,但“模型架构与丢包容忍边界之间的关系仍是一个开放问题”。在实际应用中,如何动态、自适应地确定和调整这个边界,以平衡性能与精度,是一个关键挑战。这可能需要更深入的理论分析或在训练过程中进行实时监测和调整。

  • 梯度重要性标记的开销与粒度: 论文提到为最小化开销,仅对 5% 的梯度进行采样来判断重要性。这种采样方法是否总是足够准确,尤其是在梯度分布动态变化的训练早期?此外,将所有层均匀分配到有限的优先级队列中,可能会导致某些层的重要性差异无法被精细捕捉。在复杂的 DNN 模型中,如何更智能地确定梯度重要性并进行更细粒度的标记,仍有改进空间。

  • 多租户云环境的适用性: 论文明确指出 MLT 不适用于多租户云环境。这限制了其在大规模云服务提供商中的应用。未来的工作可以探索如何在不修改底层网络基础设施的情况下,在云环境中实现类似 MLT 的优势,例如通过更智能的端主机调度、或利用虚拟网络 (virtual network) 的特定功能。

  • 与非 DNN 流量的共存: 如何在通用数据中心中,让 MLT 流量与非 DNN 流量公平共存,同时保证各自 QoS,是一个重要且复杂的问题。仅靠简单的队列分离可能不足以解决所有场景,例如在队列资源高度竞争的情况下。

  • 生产环境部署的复杂性: 尽管 MLT 旨在易于部署,但将其集成到现有的大规模、异构 ML 训练集群中,并与各种 ML 框架和通信库协同工作,仍可能面临工程挑战。例如,用户空间实现的性能边界、与操作系统内核交互的效率等。

  • 理论分析的严谨性与实用性平衡: 收敛性分析在理论上提供了坚实的基础,但其假设(如梯度有界、Lipschitz连续)在所有实际 DNN 训练场景中是否都能严格满足,以及复杂公式的实际指导意义,仍需进一步探讨。如何在理论严谨性和实际指导性之间取得更好的平衡是一个持续的挑战。

    总而言之,MLT 是一项富有远见的工作,它开启了 AI 驱动网络 (AI-centric networking) 的新方向,强调了利用应用域知识来优化底层系统的重要性。其所解决的问题和提出的解决方案,无疑将对未来分布式 ML 系统的设计产生深远影响。

相似论文推荐

基于向量语义检索推荐的相关论文。

暂时没有找到相似论文。