全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2021-11-03_微信开源「派大星」:4000元游戏电脑能带动7亿参数GPT!

您的位置:首页 >> 新闻 >> 行业资讯

微信开源「派大星」:4000元游戏电脑能带动7亿参数GPT! 来源:量子位 一听到训练大模型,是不是第一感觉就是贵、烧钱、玩不起? 但我说,一台4000多块钱的游戏电脑,谁都能训练上亿参数的大模型呢? 别不信,这是真的。 而这就归功于微信AI团队,最近推出的一款利器——派大星。 但不是你印象中的那个派大星昂~ 微信AI的派大星(PatricStar),其实是一个超大预训练模型训练系统。 要知道,在这个领域中,以往都是微软DeepSeed独占鳌头。 此次微信一出手,可以说是直接秒杀了微软: 在 8xV100 和 240GB CPU 内存节点上,训练了一个120 亿参数的 GPT 模型,是当前最佳方案DeepSpeed模型规模上限的1.5 倍。 但毕竟针对的是大模型,“烧钱”是出了名的难题。 而微信AI的派大星就显得相当的亲民了。 即使在700美元的个人游戏电脑上,它也可以训练一个7亿参数的 GPT 模型! 现在,人人都可以在家训练大模型了! 划重点:已开源! 为什么要搞派大星?大规模预训练模型,已然成为技术发展中的新潮流。 以BERT、GPT为代表的预训练模型的出现,可以说是自然语言处理(NLP)领域的里程碑事件。 NLP,正在进入了预训练时代。 那么像派大星这样的训练系统,真的有必要吗? 答案是肯定的。 从技术角度来看,预训练模型(PTM)通常使用一个堆叠了多个Transformer结构神经网络,在大量文本上预训练通用语言特征表示。 然后,通过微调将学到的知识转移到不同的下游任务。 预训练模型使用大量来自互联网的文本数据,可以捕获自然语言的细微特征,并在下游任务上获得非常惊艳的表现效果。 于是,AI社区的共识是采用预训练模型,作为特定NLP任务的主干,而不是在与任务相关的数据集上从头开始训练模型。 预训练模型的力量源泉,是它拥有的数以亿计的参数规模,这对运行它的计算和内存资源都提出了巨大的要求。 因此,预训练模型训练仍是一小部分人的游戏。 所有发表百亿级模型训练成果的团队,所采用的的设备都是如DGX型号的AI超级计算机。 它的一个节点就配置了8张GPU,1.5TB内存,3.84TB SSDs,还使用NVLink作为高速通信网络。 目前最大的预训练模型Megatron-Turing,包含5300亿参数,其预训练过程就是在560个DGX A100节点的集群上完成的。 这种配置在大多数工业界数据中心都是遥不可及的。 而通过像派大星这样的训练系统,便可以让这种“遥不可及”变得“唾手可得”,让大模型可以普惠到更多的开发人员,实现PTM的“共同富裕”。 再从绿色AI角度来看,预训练模型的预训练的过程是极其烧钱和有害环境的。 比如,从头训练型一次万亿级别的预训练模型要烧掉154万人民币,耗电所产生的碳排放相当于数十辆小汽车从出厂到报废的碳排放总和。 出于社会利益最大化考虑,预训练技术未来的产业形态,应该是中心化的: 少部分财力雄厚的机构,用超大规模集群承担预训练阶段的计算和环境开销;大多数从业人员在小规模、相对简陋的硬件上针对自身业务进行微调。 前者只需要相对少量的计算和碳排放,而后者的诉求却被当前的预训练软件所严重忽略。 现如今,派大星的到来,让大规模预训练模型的训练变得“多快好省”了起来。 而且不仅是对于机构,更是有益于个人开发者。 …… 那么派大星的效果,具体又怎样呢? 不是魔改,是从头搭建,性能达SOTA值得一提的是,派大星并不是基于DeepSpeed的魔改,代码是团队从头开始搭建起来的。 派大星框架非常直观的一个特点,便是简单易用,而且还是可以兼容其他并行方案的那种。 例如,开发者可以使用几行代码端到端的加速PyTorch的训练过程。 frompatrickstar.runtimeimportinitialize_engine config={ "optimizer":{ "type":"Adam", "params":{ "lr":0.001, "betas":(0.9,0.999), "eps":1e-6, "weight_decay":0, "use_hybrid_adam":True, }, }, "fp16":{#lossscalerparams "enabled":True, "loss_scale":0, "initial_scale_power":2**3, "loss_scale_window":1000, "hysteresis":2, "min_loss_scale":1, }, "default_chunk_size":64*1024*1024, "release_after_init":True, "use_cpu_embedding":False, } defmodel_func(): #MyModelisaderivedclassfortorch.nn.Module returnMyModel(...) model,optimizer=initialize_engine(model_func=model_func,local_rank=0,config=config) ... fordataindataloader: optimizer.zero_grad() loss=model(data) model.backward(loss) optimizer.step() 接下来,我们一起看一下派大星的性能效果。 上图便展示了DeepSpeed stage3,PyTorch系统在 1、2、4、8 个 GPU 上的性能(y轴通过对数方式重新缩放)。 这些点代表在一个 GPU 上使用 4、8、16、32 和 64 批大小测试的最佳结果。 (注:圆点周围的值表示派大星在吞吐量及其对DeepSpeed的加速;deeps是DeepSpeed仅使用数据并行的效果,我们接下来称之为DeepSpeed-DP,deeps-mpX 是 DeepSpeed使用X路的模型并行结果;模型的计量单位是B表示十亿Billon。)* PyTorch 仅适用于 1B 模型大小的情况,派大星在8个GPU上比PyTorch快1.37倍,在 1、2、4 个 GPU 情况下与 PyTorch 相似。 使用相同的零冗余优化器来实现数据并行,派大星在大多数情况下(14 个中有 12 个)优于 DeepSpeed-DP,并且数据并行方式训练8B和12B之间模型大小的唯一解决方案。 不难看出,尤其是针对小模型,改进是非常明显了(0.90x-1.49x)。 而在增加模型大小时,派大星不会显着降低计算效率。 此外,派大星在增加 GPU 数量时显示出超线性可扩展性。 若是将派大星与模型并行解决方案进行了比较,又会是怎样的结果? 例如在上图中,还比较了DeepSpeed在8个GPU卡上使用Zero-DP方案叠加2路模型并行和4路模型并行的性能。 派大星在所有测试用例上实现了最大的模型规模120亿参数,以及最佳的性能效率。 在模型并行的帮助下,DeepSpeed将模型规模扩展到了80亿参数。 但是,MP引入了更多的通信开销;性能明显低于派大星和 DeepSpeed-DP。 …… 效果是有够惊艳的了,但接下来的一个问题便是: 关键技术是什么? 破局者:异构训练或许你会说了,让数据并行不就完事了吗? 事实却并非如此。 对于预训练模型来说,最常用的数据并行技术不适用,这是因为模型数据无法再容纳在单个 GPU 的内存中。 GPU硬件的存储规模上限,像一堵墙一样限制住了PTM的可训练规模,因此从业人员通常称之为”GPU内存墙”现象。 近两年来,通过利用并行训练在多个 GPU 内存之间分配模型数据,例ZeRO-DP、模型并行、流水线并行尝试使 PTM 大小突破内存墙。 但是,使用这些技术又需要不断扩大GPU规模,也意味着更高设备的投入,那么此局怎么破? 异构训练技术,了解一下。 它不仅可以显著提升单GPU训练模型的规模,而且可以和并行训练技术正交使用。 异构训练通过在CPU和GPU中,容纳模型数据并仅在必要时将数据移动到当前设备来利用 GPU 内存、CPU 内存(由 DRAM 或 NVMe 内存组成)。 其他方案如数据并行、模型并行、流水线并行,都在异构训练基础上进一步扩展GPU规模。 预训练模型在训练期间,存在必须管理的两种类型训练数据: 模型数据由参数、梯度和优化器状态组成,其规模与模型结构定义相关; 非模型数据主要由算子生成的中间张量组成,根据训练任务的配置动态变化,例如批量大小。 模型数据和非模型数据相互竞争GPU内存。 然而,目前最佳的异构训练方案DeepSpeed的Zero-Offload/Infinity,仍存在很大优化空间。 在不考虑非模型数据的情况下,DeepSpeed在CPU和GPU内存之间静态划分模型数据,并且它们的内存布局对于不同的训练配置是恒定的。 这种静态分区策略会导致几个问题。 首先,当GPU内存或CPU内存不足以满足其相应的模型数据要求时,即使当时其他设备上仍有可用内存,系统也会崩溃。 其次,当数据以张量为粒度的不同内存空间之间传输时通信效率低下,并且当你可以预先将模型数据放置在目标计算设备上时,一些CPU-GPU通信量是不必要的。 因此DeepSpeed在微信的数据中心单GPU只能运行60亿参数的模型,而且效率十分低下,远不如在DGX上的报告结果130亿参数。 派大星则通过以细粒度的方式管理模型数据,以更有效地使用异构内存来克服这些缺点。 它将模型数据张量组织成块,即相同大小的连续内存块。 块在异构内存空间中的分布在训练期间根据它们的张量状态动态编排。 通过重用不共存的块,派大星还比DeepSpeed的方案进一步降低了模型数据的内存占用。 派大星使用预热迭代来收集运行时模型数据可用 GPU 内存的统计数据。 基于收集到的统计数据的有效块驱逐策略和设备感知算子放置策略,为的就是减少 CPU-GPU 数据移动量。 最后,使用零冗余优化器(ZeroReduencyOptimizer)的Zero-DP数据并行方法,通过块的集合GPU 通信来使用扩展到多个GPU。 团队介绍这项研究主要由腾讯微信AI团队和新加坡国立大学团队共同完成。 论文一作是来自微信AI的高级工程师Jiarui Fang,清华大学博士毕业。 其主要工作是通过创新并行计算技术提升在线和离线NLP任务的运算效率。 他曾经还曾开源过一款Tranformer模型推理加速工具TurboTransformer。 …… 那么最后,你是否也想训练一个专属的大模型呢?戳下方链接试试吧~ 派大星开源地址: https://github.com/Tencent/PatrickStar 论文地址: https://arxiv.org/abs/2108.05818 推荐阅读【重磅】斯坦福李飞飞《注意力与Transformer》总结,84页ppt开放下载! 一文总结微软研究院Transformer霸榜模型三部曲! Swin Transformer为主干,清华等提出MoBY自监督学习方法,代码已开源 加性注意力机制!清华和MSRA提出Fastformer:又快又好的Transformer新变体! MLP进军下游视觉任务!目标检测与分割领域最新MLP架构研究进展! 周志华教授:如何做研究与写论文?(附完整的PPT全文) 都2021 年了,AI大牛纷纷离职!各家大厂的 AI Lab 现状如何? 常用 Normalization 方法的总结与思考:BN、LN、IN、GN 注意力可以使MLP完全替代CNN吗?未来有哪些研究方向? 欢迎大家加入DLer-计算机视觉&Transformer群! 大家好,这是计算机视觉&Transformer论文分享群里,群里会第一时间发布最新的Transformer前沿论文解读及交流分享会,主要设计方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、视频超分、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。 进群请备注:研究方向+学校/公司+昵称(如Transformer+上交+小明) ??长按识别,邀请您进群!

上一篇:2022-11-04_《霸王别姬》《活着》编剧芦苇谈“编剧的精髓” 下一篇:2023-03-28_播客仍在“自娱自乐“

TAG标签:

18
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价