趋近智
tf.distribute.Strategy 概述尽管像 MirroredStrategy 和 MultiWorkerMirroredStrategy 这样的同步策略会复制模型并在所有设备间同步梯度更新,但参数服务器(PS)架构提供了一种本质不同的方式,通常与异步训练相关联。它将梯度计算任务与参数存储和更新分离。
在典型的参数服务器配置中,集群包含两种类型不同的任务:
工作节点:这些节点执行核心训练逻辑。每个工作节点通常会:
参数服务器(PS):这些节点保存模型的参数(变量)。它们的主要职责包括:
典型的参数服务器配置中,工作节点负责获取参数并发送梯度,而参数服务器节点则负责存储参数和应用更新。
参数服务器架构最常见的运行模式是异步的。在这种模式下:
这可能导致一个被称为陈旧梯度的问题。工作节点可能基于参数版本 Wt计算梯度,但当这些梯度到达PS并被应用时,参数可能已被其他工作节点多次更新,达到了版本 Wt+k。使用 Wt 计算的梯度随后被应用到 Wt+k 上。
从数学角度看,PS应用来自工作节点 i 的梯度 ∇L(wlocal,xi)(工作节点 i 使用的是之前获取的局部参数 wlocal)的异步更新的简化形式可以是:
wglobal←wglobal−η⋅∇L(wlocal,xi)其中 wglobal 是PS上的当前状态,而 wlocal 表示工作节点使用的可能是较旧的参数。
优点:
缺点:
tf.distribute.ParameterServerStrategyTensorFlow 提供了 tf.distribute.ParameterServerStrategy 来实现这种架构。与 MirroredStrategy 不同,配置 ParameterServerStrategy 需要显式定义集群配置,并为每个任务指定角色('chief'、'worker'、'ps')。
'chief' 工作节点除了履行常规工作职责外,通常还负责处理保存检查点和写入摘要等协调任务。使用 ParameterServerStrategy 通常需要编写自定义训练循环,因为工作节点之间获取参数和推送梯度的协调,需要比简单策略中 model.fit 提供的抽象更明确的管理。
在以下情况下,通常会采用参数服务器策略:
尽管像 MultiWorkerMirroredStrategy 这样的同步策略因其更简单的收敛特性以及NVLink和InfiniBand等现代互连的有效性而变得越来越流行,但了解参数服务器架构对于特定的大规模训练情景以及理解分布式机器学习中的不同权衡仍然很有价值。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造