没有“钞能力”,如何打破AI实践中的资源限制与壁垒?

深度学习模型和数据集的规模增长速度已经让GPU算力也开始捉襟见肘 。
没有“钞能力”,如何打破AI实践中的资源限制与壁垒?
文章图片
2021年初 , 谷歌发布了参数量为1.6万亿的语言模型SwithTransformer , 将GPT-3创下的参数量记录(1750亿)推至新高 。
而在谷歌将工业界新宠AutoML的思想应用到NLP领域找到进化版的Transformer的工作中 , 其用于英语到德语翻译的BLEU分数提高了0.1 , 却花费了3.2万TPU小时 , 云计算费高达15万美元 。 如果把模型部署出去进行推理 , 随着时间的增长 , 它的能耗是百倍、千倍的增长 , GPU集群训练、推理背后巨大的能源消耗无法令人忽视 。
这些大模型的出现让普通研究者越发绝望:没有「钞能力」、没有一大堆GPU就做不了AI研究了吗?研究者们开始思考:如何让这些大模型的训练变得更加接地气?也就是说 , 怎么用更少的卡训练更大的模型?
为了解决这个问题 , 来自微软、加州大学默塞德分校的研究者提出了一种名为「ZeRO-Offload」的异构深度学习训练技术 , 可以在单个GPU上训练拥有130亿参数的深度学习模型 , 让普通研究者也能着手大模型的训练 。 ZeRO-Offload通过将数据和计算从GPU卸载到CPU , 以此减少神经网络训练期间GPU内存占用的方法 , 该方法提供了更高的训练吞吐量 , 并避免了移动数据和在CPU上执行计算导致的减速问题 。
在算力方面 , 随着人工智能应用日益成熟 , 文本、图片、音频、视频等非结构化数据的处理需求呈指数级增长 , 数据处理过程从通用计算逐步向异构计算过度 , GPU也不再是唯一的选择 。
前几年关于芯片算力这一概念的讨论 , 多认为理论上的计算峰值就是算力 , 但现在 , 业内有观点指出 , 在讨论算力的演进时应该少关注器件利用率 。
传统芯片性能指的是PPA , 包括Power、Performance、Aera(性能、功耗、面积) , 即一秒钟执行多少指令 , 在AI芯片上则是讨论每瓦有多少AI计算 , 比较主流的指标是TOPS/Watt和TOPS/$ 。
但算法在不断演进 , 器件的利用率由架构和编译器决定 , 架构负责把算法转化为相对架构而言最优的质量、序列和执行模式 。 算法+芯片需进行联合优化 , 才能兼顾计算架构和算法设计 。
众所周知 , 卷积操作(convolution)与自注意力操作(self-attention)是深度学习两大核心的基础网络计算单元(或称为模型算子) 。 卷积操作通过线性乘子 , 提取图像局部特征;自注意力操作通过高阶乘子运算 , 提取图像全域/局部的特征关联特性 。
两种算子成为深度学习两大重要网络架构演化——CNN与Transformer的计算基石 。 两种算子在图像特征提取与语义抽象方面的互补性不言而喻:线性vs.高阶 , 局部vs.全局 。 因此 , 能否设计一种包含这两种操作的融合算子并使其发挥互补优势 , 一直是深度学习架构研究者热衷的研究方向之一 。 然而 , 由于卷积运算与自注意力运算在计算模式上的异构性 , 这项任务存在巨大的挑战 。
粗粒度的组合(本质上就是两路计算并联)会导致其组合后网络形态可用性下降 。 具体来说 , 卷积和self-attention运算模式存在较大差异 , 两者同时存在会导致网络结构不规则 , 进而影响网络推理效率 , 并不为目前一些工业界通用的芯片计算架构所友好支持 。 同时组合后的算子在算力上也存在巨大的挑战 。
针对这些挑战 , 2021年6月上海交大-华为海思联合团队在arXiv上发表了「X-volution:OntheUnificationofConvolutionandSelf-attention」 , 首次在计算模式上统一了这两大基础算子 , 并在推理阶段归并成一个简单的卷积型算子:X-volution 。