基本数据并行(DP)在训练模型时,不会降低每个设备的内存占用。在当前配备 32GB 内存的 GPU 上,当模型参数超过 14 亿时,使用 DP 就会出现内存不足的情况。这是因为 DP 会在每个设备上复制完整的模型参数、梯度和优化器状态等模型状态数据。以一个参数规模较大的模型为例,每个设备都要存储完整的模型副本,随着模型参数增加,所需内存也会相应增加,很快就会超出单个 GPU 的内存容量。
而其他现有的解决方案,如流水线并行(PP)和模型并行(MP)。流水线并行(PP)是将模型按层进行水平划分,在不同设备上运行模型的不同分区,并使用微批次来减少流水线气泡。但它在实现模型的一些功能(如权重绑定和批归一化)时存在困难,并且为了隐藏流水线气泡,往往需要较大的批次大小,这不仅影响模型收敛速度,还需要大量内存来存储激活值 。模型并行(MP)则是将模型垂直划分,在多个设备间分配每层的计算和参数。它虽然能减少每个设备上的模型状态内存占用,但会导致计算粒度变细,增加设备间的通信开销,在跨节点时效率会迅速下降。