张量模型并行详解 | 深度学习分布式训练专题

本文介绍了张量模型并行的基本原理,以解决Transformer结构中因模型规模过大导致的单卡显存不足问题。通过参数切分和跨设备通信,确保数学一致性,同时控制随机性,保证多卡训练结果与单卡一致。文章详细阐述了Embedding、矩阵乘和CrossEntropyLoss的切分策略,并探讨了随机性控制在参数初始化和Dropout操作中的应用。

随着模型规模的扩大,单卡显存容量无法满足大规模模型训练的需求。张量模型并行是解决该问题的一种有效手段。本文以Transformer结构为例,介绍张量模型并行的基本原理。


模型并行的动机和现状

我们在上一篇《数据并行:提升训练吞吐的高效方法|深度学习分布式训练专题》详细介绍了利用数据并行进行大规模分布式训练。读者不禁要问:仅仅使用数据并行,是否可以完全满足大模型训练的要求?随着技术的发展,业界内训练的模型越来越大,模型朝着更深和更宽的方向发展。以自然语言处理(NLP)领域为例,模型从Bert发展到GPT,模型规模从数亿参数量增加到数百亿甚至是数千亿。当参数规模为千亿时,存储模型参数就需要数百GB的显存空间,超出单个GPU卡的显存容量。显然,仅靠数据并行无法满足超大规模模型训练对于显存的需求。为了解决这个问题,可以采用模型并行技术。与数据并行在不同设备都有完整的计算图不同,模型并行是不同设备负责单个计算图不同部分的计算。

图片

模型并行从计算图的切分角度,可以分为以下几种:

1、按模型的layer层切分到不同设备,即层间并行,我们称之为流水线并行,如下左图[1]。

2、将计算图中的层内的参数切分到不同设备,即层内并行,我们称之为张量模型并行,如下右图[1]。本文主要讲述张量模型并行。

图片

张量模型并行原理

张量模型并行需要解决两个问题:参数如何切分到不同设备(切分方式);以及切分后,如何保证数学一致性(数学等价))。本文以NLP中的Transformer结构为例,介绍张量模型并行的切分方式和随机性控制。

切分方法

Transformer结构主要由嵌入式表示(Embedding)层、矩阵乘层(MatMul)和交叉熵loss计算层(CrossEntropy)构成。以上三种类型的组网层有较大的特性差异,需要设计对应的张量模型并行策略,但总体上看核心思想都是利用分块矩阵的计算原理,实现其参数切分到不同的设备[2]。下面详细介绍这三种层的切分方式。

嵌入式表示(Embedding)<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值