如何看待华为 4 月 25 日发布的盘古智能大模型?在这个行业处于什么水平?

相关报道: [文章: 循环智能×华为云,联合推出全球最大中文语言模型]
关注者
699
被浏览
350,816

40 个回答

更新,因为下面有问到论文的情况,实际在这个领域我们已经有三篇顶会论文:

1、关于全自动并行的策略寻优:

• EuroPar2021—自动并行双递归《Efficient and Systematic Partitioning of Large and Deep Neural Networks for Parallelization》。

2、关于图算融合和算子自动生成的

  • Micro 2020:《Optimizing the Memory Hierarchy by Compositing Automatic Transformations on Computations and Data》
  • PLDI 2021:《AKG: Automatic Kernel Generation for Neural Processing Units using Polyhedral Transformations》

另外还有几篇论文在路上,有了结果再和大家同步。


利益相关。

其实,这次HDC大会,华为联合鹏城发布了两个千亿的NLP大模型(其中一个模型还和循环智能进行了合作),都是盘古命名的。

一个是4月25日发布的Transformer encoder-decoder的中文理解模型;另外一个4月26日发布的是Transformer decoder的中文预训练模型。这两个模型是不同的定位,也是分别训练出来的。其中第二个预训练模型现在已经开源出来了。

MindSpore/mindsporegitee.com图标PanGu-Alphagit.openi.org.cn图标https://git.openi.org.cn/PCL-Platform.Intelligence/PanGu-Alpha/src/branch/master/PANGU-%ce%b1.pdfgit.openi.org.cn

这种超大的模型考验的是全栈和全流程的能力:

1、丰富的数据集和良好的数据清洗

2、硬件系统:芯片、互联、整机

3、硬件使能:高性能的算子库和融合能力

4、AI框架:分布式并行、编译优化

5、AI使能平台:资源管理和调度

6、优秀的算法和模型设计

7、全面的系统工程:包括精度调优、性能调优、模型切分、集群可靠性等等

只有这些能力都达到一流/没有短板,你才能训练出这样的大模型,否则即便给你K级集群,你也用不起来。所以这两个千亿模型训练出来是鹏城、华为EI/智能计算/海思/诺亚实验室/中央软件院等通力协作的结果。


MindSpore作为AI框架有幸同时支撑了这两个千亿模型的训练,过程其实非常艰辛,但总算熬过来。下面就简单介绍一下作为AI框架支撑千亿模型的挑战和解决方案:

挑战:


千亿参数,TB级显存的模型

以盘古2000亿(基于Transformer decoder结构的预训练模型)为例,如果我们训练时权重都用标准的 FP32 数据格式,那么算下来,权重占的空间就达到了 750GB,训练过程中内存开销还会数倍上升。这 750GB 参数,不是放在硬盘上,也不是加载到内存中,而是需要移到昇腾基础硬件平台 HBM(High Bandwidth Memory高带宽存储器)内存中,以利用昇腾基础软硬件平台进行模型训练。

模型大 ,意味着数据也大,而且都需要是高质量数据。为了满足数据需求,研发团队从互联网爬取了80TB文本,并最后清洗为1TB的中文数据集。

这样的模型与数据,已经不是我们几台服务器能加载上的了,更不用说进行训练。好在研发团队会提供 API,一般算法工程师直接调用接口就能试试效果。


图注:盘古千亿模型架构。
图注:盘古-α千亿模型架构。


超大规模并行

如果给你足够的计算力,你能想到如何训练这么大的模型吗?我们最常用的分布式训练方式数据并行,单独这么做肯定是不行的,因为没有哪个 计算硬件能放下 800GB 的参数。那么再加上模型并行呢?又产生了新问题,我们该如何拆分如此巨大的「盘古」?硬件产品(如GPU等)之间的梯度流、数据流通信又是什么样的?

显然训练如此庞大的模型,远比我们想象中的复杂,需要大量的工程化操作,并保证这些操作不会或极少影响到模型最终收敛效果。

如果手动来写分布式训练逻辑,那么需要综合考虑计算量与类型、集群带宽、拓扑结构、样本数量等等一大堆复杂的东西,然后再设计出性能比较优秀的并行切分策略,并编写大量并行切分和节点间的通信代码。如果系统环境变了,还要重新设计并修改算法,想想就觉得头大。

MindSpore的解决方案

5 大维度的并行能力

MindSpore提供了5维的并行方式:数据并行、算子级模型并行、Pipeline模型并行、优化器模型并行和重计算,并且在图编译阶段,有机融合了5个维度的并行。这5维并行方式组合起来构成了盘古的并行策略。


1、数据并行

数据并行是最基本,应用最广的并行方式,其将训练数据(mini-batch)切分,每台设备取得其中一份;每台设备拥有完整的模型。在训练时,每台设备经过梯度计算后,需要经过设备间的梯度同步,然后才能进行模型参数的更新。

2、算子级模型并行

算子级模型并行是对模型网络中的每个算子涉及到的张量进行切分。MindSpore对每个算子都独立建模,每个算子可以拥有不同的切分策略。

以矩阵乘算子MatMul(x, w)为例,x是训练数据,w是模型参数,两者都是二维矩阵。并行策略((4, 1), (1, 1))表示将x按行切4份,保持w不切,如果一共有4台设备,那么每台设备拥有一份x的切片,和完整的w。

3、Pipeline 模型并行

Pipeline模型并行将模型的按层分成多个stage,再把各个sage映射到多台设备上。为了提高设备资源的利用率,又将mini-batch划分成多个micro-batch,这样就能够使得不同设备在同一时刻处理不同micro-batch的数据。

一种Pipeline并行方式(Gpipe) 要求反向计算要等所有设备的正向计算完成后才开始,而反向计算可能依赖于正向的输出,导致每个卡正向计算过程中累积的activation内存与micro-batch数量成正比,从而限制了micro-batch的数量。MindSpore的Pipeline并行中,将反向提前,每个micro-batch计算完成后,就开始计算反向,有效降低activation存储时间,从而提升整体并行效率。

4、优化器模型并行

优化器模型并行将优化器涉及到的参数和梯度切分到多台设备上。以Adam优化器为例,其内部可能有多份与权重同等大小的“动量”需要参与计算。在数据并行的情况下,每个卡都拥有完整的“动量”,它们在每个卡上都重复计算,造成了内存及计算的浪费。通过引入优化器并行,每个卡只保存权重及“动量”的切片,能降低每个卡的静态内存及提升计算效率。


5、重计算

重计算(Rematerialization)针对正向算子的输出累计保存在内存中,导致内存峰值过大的问题,舍弃了部分正向算子的输出,而是在反向阶段用到时再重新计算一遍。这样做有效地降低了训练过程中的内存使用峰值。如下图所示,第一个内存峰值通过重计算消除,第二个内存峰值可以通过前面讲到的优化器并行消除。


有了这5维的并行维度后,如何将其组合起来作用于盘古,并且如何将切分后的模型分片分配到每台设备上仍然是难题。MindSpore自动并行,把这5个维度并行有机组合起来,可以实现非常高效的大模型分布式训练能力

下图(b)是一典型的树形的硬件拓扑结构,其带宽随着树深度的增加而降低,并且会产生一些流量冲突。为了利用此特征,MindSpore的目标是最大化计算通信比,将通信量大的并行方式(算子级并行)放置在服务器内部的多卡之间;将通信量较小(Pipeline并行)的放置在同一机架内的服务器间;将数据并行(优化器并行)的部分放置在不同机架间,因为该通信可以和计算同时执行(overlap),对带宽要求较低。


在盘古2000亿模型中,MindSpore将64层(layer)划分为16个stage,每个stage包含4层。在每层中,利用算子级并行的方式对张量进行切分。

如下图中的Q,K,V的参数在实际中(按列)被切了8份,输入张量(按行)被切了16份,输出张量因此被切了128份(8*16)。重计算配置是配置在每层内的,也就是重计算引入的多余的计算量不会超过一层的计算量。总计,MindSpore使用了2048块昇腾处理器来训练盘古。


MindSpore对外屏蔽了复杂并行实现的细节,使得用户像编写单机模型脚本那样简单。用户在单机脚本的基础上,仅通过少了配置就能实现多维度的混合并行。下图是简化版的盘古脚本,其中红色加粗字体表示的在MindSpore中的并行策略。将红色加粗字体去掉,则是单机脚本。


图算跨层联合优化,发挥硬件极致性能

除了跨节点间的大规模自动外,在单卡节点内,MindSpore通过图层和算子层的跨层协同优化,来进一步发挥昇腾算力。

在传统的NN网络中,不同算子承载的计算量和计算复杂度也各不相同。如LayerNorm由11个基本算子组成,而Add则只有1个基本算子。这种基于用户角度的算子定义,通常是无法充分发挥硬件资源计算能力的。因为计算量过大、过复杂的算子,通常很难生成切分较好的高性能算子。从而降低设备利用率;而计算量过小的算子,由于计算无法有效隐藏数据搬移开销,也可能会造成计算的空等时延,从而降低设备利用率。

为了提升硬件利用率,MindSpore使用了图算融合优化技术,通过图层和算子层联合优化,并将“用户使用角度的易用性算子”进行重组融合,然后转换为“硬件执行角度的高性能算子”,从而充分提升硬件资源利用率,进而提升整网执行性能。具体优化流程如下图所示:


以LayerNorm算子为例,通过算子拆分和重组,11个小算子,组成了1个单算子和2个融合算子。这些重组后的算子可以生成更加高性能的算子,从而大大降低了整体网络运行时间。


在盘古模型中,图算融合帮助整体训练时间减少了20%以上。除此之外,对于其它 NLP、CV等任务,图算融合在优化性能方面都有不错的表现。


总结一下

即使给我们足够的算力,超大模型的训练还是异常复杂,远比想象中的困难。对于我们一般算法工程师来说,针对某个任务,上亿参数量已经算大的了,但是并不会感到训练上会有什么困难,因为各个深度学习框架直接调用数据并行接口就能搞定。

但是如果模型继续增大到百亿级、千亿级甚至万亿级,并行与优化策略的复杂度猛然上升,算法工程师一点点地编写与优化代码可太难了。MindSpore通过编译器并行优化能力,把计算逻辑和并行逻辑解耦,单卡串行代码自动实现分布式并行,从而使得算法科学家将精力都解放到模型本身上。

为了从预训练获取更多的知识, GPT-3 与盘古 这样的模型会越来越大,毕竟到现在我们还没看到大模型预训练效果的极限在哪。届时,这类模型对基础设施的需求会更大,并行与优化策略也会更加复杂。预训练的效果,看的也已经不是模型本身,而是基础设施构建得是否足够优秀。大规模计算集群及软硬件协同优化,这次在盘古 的训练上得到了充分的完美体现。

当然,也诚如以上所言,盘古只是对超大规模分布式训练、超大规模中文预训练模型的一次探索,未来还需要更多的研究工作者投入到通用智能与大规模分布式计算的研究工作中。


更新-盘古-a的相对全面的情况:

盘古-Alpha:中国AI研究新突破:「盘古α」发布zhuanlan.zhihu.com图标

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

看了雪锋的回答,作为同行,也提供一些视角。

大模型训练的几个分布式策略的技术点,数据并行、算子拆分、流水并行、优化器模型并行、重算,从原理上,在之前的工作都有过比较细致的讨论,数据并行比如Horovod、算子拆分比如Mesh-TF,Megatron-LM、流水并行比如GPipe、PipeDream,优化器模型并行比如DeepSpeed里的ZeRO的工作,重算在GPipe甚至更早在天奇的工作里也有讨论过。

难点在于新硬件+新框架上把这一砣东西在工程实现上全部组织起来,跑出体面的性能并且保证易用性和通用性。在这一点上要为坚持硬核技术投入的同行鼓掌。期待看到国内更多类似的工作。

图算融合,在GPU上我们关注比较多,有相对成体系化的作法,在昇腾这种偏DSA的架构上,做好确实会有不少挑战,因为融合与否对性能的影响直觉上更为critical,而DSA上做算子融合既会有更大的性能空间,实现的挑战也会相应更大一些。在图算融合的介绍里我看似乎没有提到算子融合可能带来计算优化和通信优化的trade-off的问题,也许同行在实现过程中已经注意到了,略提一下。

如果稍微picky一些的话,就是在这个工作里,还是看到了更多在follow和实现已有工作,重在工程实现,摘除硬件和自研框架因素以外技术上的原创相对少了一些,当然,能够把这么多pieces组织在一起,形成一个有机的系统也是非常不容易的。不过在看到这个工作的通用性被充分证明之前,我还是会稍微保留一些观点。原因是Transformer类模型因为其规整的结构,其实对于做大模型训练系统是相对友好的。这也是我们看DeepSpeed和Megatron-LM的会发现代码量并不大,但针对Transformer类大模型训练的支持确还不错的原因,因为有一些domain-specific system的味道了。如果内举不避亲的话,我其实觉得之前国平主持的DAPPLE的工作在分布式策略的自动化探索上会更究竟通用一些,但相较同行的工作在系统工程实现上欠缺了一些。

另一个值得思考的点就是微软最近的ZeRO-Infinity的工作,通过精细的设计GPU/CPU内存/NVMe外存的swap-in/out策略,使得单机八卡/16卡的GPU机型也可能训练起超大规模的模型,这就有了一些以巧破局的味道,和友商的这个工作也可以算相映成趣。当然,我相信以友商的系统实现能力,把ZeRO-Infinity的功能支持在MindSpore里不会有本质上的挑战。实际上ZeRO-Infinity的工作和其他工作也是存在近似正交互补性的。

除了用超大规模集群训练超大规模模型以外,大模型的业务benefit还需要更多的证明,只看几篇PR是不够的,还是需要有更多真实的业务把大模型的应用实在的体现出来,才可能把大模型的技术更加普及起来。与此同时,把大模型的训练/finetune/布署平民化,也是一个非常值得关注的话题,所谓的affordable AI了。毕竟,我们需要更多人可以参与到一个新技术的研究中,才可能加快促进这项技术的演化发展。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

对训练超大规模预训练模型感兴趣的朋友可以参阅oneflow 小伙伴儿这篇博客,无论用不用oneflow 都推荐阅读,可能是网上解读相关技术最好的一篇文章

https://zhuanlan.zhihu.com/p/371499074zhuanlan.zhihu.com图标

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

利益相关。

我们总架的回答已经很详细了,补一个github链接。

mindspore-ai/mindsporegithub.com图标

机器之心的文章:

https://zhuanlan.zhihu.com/p/368023852zhuanlan.zhihu.com图标

框架能不能进千亿参数俱乐部,现在可以做为一个标杆了。感谢模型开发过程中产学研伙伴的支持,这是属于全体中国AI开源从业者的骄傲与荣光。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

很符合华为的做事风格:AI算法效果不好?棒子加粗直接横扫。

余承东运气不错,刚来cloud BU大杀器也准备好了。模型不开源,实测结果出来之前暂不做评价。

先说说几个影响:

  1. 算法,算力,数据,是AI产业的三大要素。现在整个行业已经进入AI2.0时代,此前的1.0时代主要比拼算法,比如AI四小龙各种打榜,跑分,PR搞得不亦乐乎。但是在2.0时代,算力可能是竞争力关键所在。
  2. 自从GPT-3出来后山呼海啸的宣传中,国内几家大公司都在大模型赛道上开始较劲。以后AI2.0时代大概率是巨头们的竞技场。几千块卡并行训练不是小公司玩得起的。
  3. AI服务会走向集中化,垄断化。什么蒸馏,剪枝,one-shot learning,这些奇技淫巧都不如大数据+大算力=大力出奇迹来得直接有效。这也是巨头们乐见的,可以强化他们的竞争优势。
  4. 大模型目前的商业模式还有待探索。强如openAI貌似也没有找到合适的盈利点,做了一段时间的公测和吹比活动就结束了。比普通模型高出几个数量级的成本带来的只是几个百分点的精度提高是否具有费效比,目前还是个问号。当然行业还在发展中,前期可以不用太关注优化和成本问题。
  5. 最后,大模型里的安全和隐私问题更加难以厘清,之前GPT-3直接吐出用户账号密码的事情要怎么避免,仍然是需要关注的事情。

先说这些,以后再更。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

4月25日,华为云发布盘古系列超大规模预训练模型,包括30亿参数的全球最大视觉(CV)预训练模型,以及与循环智能、鹏城实验室联合开发的千亿参数、40TB训练数据的全球最大中文语言(NLP)预训练模型。

其中,盘古NLP大模型由华为云、循环智能和鹏城实验室联合开发,具备领先的语言理解和模型生成能力:在权威的中文语言理解评测基准CLUE榜单中,盘古NLP大模型在总排行榜及分类、阅读理解单项均排名第一,刷新三项榜单世界历史纪录;总排行榜得分83.046,多项子任务得分业界领先, 向人类水平(85.61)迈进了一大步。

外界对盘古大模型充满了好奇,在华为开发者大会(Cloud)期间,参与大模型开发的两位华为云专家回答了以下几个大家关心的问题。

谢凌曦博士专访

Q:作为一个开发者,请问这些预训练模型的易用性如何?使用成本有多高?

谢凌曦:预训练模型设计的目的就是为了让大家降低使用成本。模型的预训练过程,成本是比较高的,但这个成本不需要开发者来承担。而在使用这些大模型的时候,它本身的易用性会使得使用成本进一步降低,达到一个比较合适的水平。比如说,我们会开发出一些比较通俗易懂的Pipeline,如果你是有一定基础的开发人员,你可以从我们的Pipeline当中去做更多的定制化的开发,更好地去释放我们预训练模型的能力。如果你只是一个AI开发小白,想用大模型去做AI简单的开发,我们也会给你更加通俗易懂的界面,让大家能够用一些拖拉拽的方式使用盘古大模型。总体来讲,大家在使用预训练模型的时候,计算时长、调参所需要重复的代价等都会被降到很低,总体来讲是对开发者非常友好的。

Q:对于新入门计算机视觉的人来说,需要掌握什么哪些知识才能快速进入到学习和研发中?

谢凌曦:人工智能、计算机视觉,经过几十年的发展,到现在已经拥有很庞大的知识体系。如果一个初学者想要把这些东西都了解以后再开始做研究,效率会稍微有点低。我给大家的建议是,你在学习过程当中,可以先找准一个问题。刚开始的时候,这个问题可能是相对初级的问题,但一定有具体的场景。比如想做弱监督学习,一般就是遇到某个实际的问题,它确实需要弱监督算法。但是这个时候我是不是一定要掌握全监督才能去做弱监督呢?并不是这样的。你可以先去查阅一些资料,了解当前的弱监督学习方法,它的基线是什么,它的前沿在哪里。然后你就可以开始做一些简单的实验。实验的过程当中,一般会遇到一些困难或者一些疑惑。解决这些困难和疑惑的过程,一般就会把你引导到它的基础,比如说全监督到底是怎么做的。当你有了更多基础以后,回过头来,也会发现你对当前做的算法有了一个更好的理解。

所以我的建议是大家可以找一本机器学习、计算机视觉这类介绍比较深入的教材去看。但是不要局限于这个教材:一边做具体的课题,一边去学习知识,效率会比较高。

张晓鹏博士专访

Q:盘古CV大模型有哪些成功的落地?跟业界相比处在什么位置?

张晓鹏:视觉预训练CV大模型,结合相关流程化开发,已经在华为内部以及其他合作项目上,有100+成功落地,这些方向涵盖了各行各业,包括工业视觉、网络审查、零售商超,以及医疗等场景,都获得了一些相较于之前不使用预训练大模型更高的结果。在某些场景上,比如刚才提到的遥感影像分割,我们通过设计针对遥感影像的预训练算法,在没有增加额外标注代价的情况下,达到了最多12%的分割精度提升。还有另外一个比较有意思的现象,我们使用超大规模图像进行的预训练模型具有更好的可迁移性,即直接把这样一个模型,迁移到了工业质检的缺陷上进行推理,我们非常欣喜地发现,我们在下游数据集上没有进行任何微调,但是在工业缺陷检测上,获得了比之前我的模型不停地高度的优化,甚至利用下游的数据微调更好的结果,这个结果基本上会高出3到4个百分点。这个启发我们,模型数据一旦够多,其实它的泛化能力能够获得更好的保障。

第二,我们是国内最早做视觉预训练大模型的公司之一。在国外是Facebook和谷歌从2019年开始在图像上做了一些应用。我们视觉预训练模型大概从2019年底的时候就开始了,通过自研的一些列改进算法,我们首次在基于imagNet 的无监督预训练模型线性分类精度上达到了全监督基线的水平,同时在小样本学习上大大领先现有技术,这些都是业界领先的成果。

Q: 华为的预训练是采用什么类型数据和学习任务?大模型如何保证端侧性能?

张晓鹏:针对视觉图像不同角度,以及不同场景的变化,我们采取的方法非常简单。一,我们可能有海量数据集,这个数据集规模已经达到了亿级甚至十亿级这样的规模,我们相信这个海量的数据集,它能够建模,我们实际场景图像的方方面面。另外一个,我们采取了什么样的学习方式。其实它的一个核心思想,就是2019年开始,比较火的基于全局的对比度自监督学习方法。

当然我们在这上面做了很多改进。包括如何来利用弱标签信息,如何把全局的信息拓展到局部来更好建模局部相关关系。同时也会呼应刚才提到的,如何处理不同视角,不同尺度图像问题,怎么来让它进行高效的建模,这里面就是让它进行不同的数据增强,我们在预训练算法里面,集成了十余种数据增强方法,让它通过不同的数据增强,使得整个模型具有针对不同数据增强的不变性。

到目前为止,我们在一个大模型,搭载模型蒸馏、抽取以及行业大模型,我们现在已经适配了大概十余种预训练模型。而这十余种模型都是通过我们一个大模型的抽取,蒸馏所得到的,它在相应的行业上,得到了非常大的精度提升。同时也极大的减少了标注代价以及模型迭代周期。

Q:华为的预训练模型是如何结合不同行业知识,解决标注数据大的问题?

张晓鹏:举一个我们在HDC Cloud上发布的国网电力智能巡检的例子,这就是非常典型的利用盘古CV大模型解决行业知识。

在国网电力巡检模型开发的过程中,它有海量的数据,标注非常困难,我们做了什么呢?通过我们的视觉预训练算法,在海量的巡检数据上进行预训练,这个预训练是利用了无人机巡检的数十TB,上百万规模的数量,进行预训练,它的预训练可以看到我们非常多的数据,它的内在分布。我们的大模型,模型参数越大,也看了更多的数据,所以说它能够更好的建模无人机巡检过程中的图片的细微差异。

利用我们的视觉预训练大模型,它能够提供更好的表征以后,因为它的缺陷和正常样本的表征能力更强,我们在标注代价上,基本上减少了80%以上,这一块整个在人力上是一个非常大的提升。除了减少标注,我们一个模型可以适配我们电力行业一百多种缺陷,从而让模型迭代周期大大减少,整个迭代效率大概提升了10倍,我们在每次迭代过程中反馈给人需要标注的整体的工作量就会越少,通过这两种模式,我们实现了在电力行业方面,利用我们视觉预训练模型,极大的提升了我们的开发效率。

千亿参数,TB 级内存的模型

以盘古 2000 亿为例,如果我们训练时权重都用标准的 FP32 数据格式,那么算下来,权重占的空间就达到了 750GB,训练过程中内存开销还会数倍上升。这 750GB 参数,不是放在硬盘上,也不是加载到内存中,而是需要移到昇腾Atlas训练服务器 HBM(High Bandwidth Memory 高带宽存储器)内存中,以利用昇腾Atlas训练服务器训练模型。

模型大 ,意味着数据也大,而且都需要是高质量数据。为了满足数据需求,研发团队从互联网爬取了 80 TB 文本,并最后清洗为 1TB 的中文数据集。

这样的模型与数据,已经不是我们几台服务器能加载上的了,更不用说进行训练。好在研发团队会提供 API,一般算法工程师直接调用接口就能试试效果。

可以说,目前盘古是业界首创的千亿规模中文预训练模型,其中最高参数量达 2000 亿。

超大规模自动并行,算法工程师的福音

先考虑一个问题,你想到如何训练这样的大模型了吗?

如果给你足够的计算力,你能想到如何训练这么大的模型吗?我们最常用的分布式训练方式数据并行,单独这么做肯定是不行的,因为没有哪个计算硬件能放下 800GB 的参数。那么再加上模型并行呢?又产生了新问题,我们该如何拆分如此巨大的「盘古」?硬件产品(如 NPU、GPU 等)之间的梯度流、数据流通信又是什么样的?

显然训练如此庞大的模型,远比我们想象中的复杂,需要大量的工程化操作,并保证这些操作不会或极少影响到模型最终收敛效果。

难道盘古真得靠手动并行优化?

如果手动来写分布式训练逻辑,那么需要综合考虑计算量与类型、集群带宽、拓扑结构、样本数量等等一大堆复杂的东西,然后再设计出性能比较优秀的并行切分策略,并编写大量并行切分和节点间的通信代码。如果系统环境变了,还要重新设计并修改算法,想想就觉得头大。

倘若我们用 TensorFlow 或其他类似框架,MirroredStrategy 这一系列自带的分布式策略完全用不上,看起来自行写并行策略是必不可少的。然而,盘古 真正的训练是一种软硬件协同的方式,MindSpore 计算框架、CANN 异构计算架构、昇腾基础软硬件平台整套基础设施。其中,MindSpore 提供的,就包含了至关重要的自动并行能力。

融合 5 大维度,强大的自动并行

MindSpore 自动并行提供了 5 维的并行方式:数据并行、算子级模型并行、Pipeline 模型并行、优化器模型并行和重计算,并且在图编译阶段,有机融合了 5 个维度的并行。这 5 维并行方式组合起来构成了盘古的并行策略。

a. 数据并行

数据并行是最基本,应用最广的并行方式,其将训练数据(mini-batch)切分,每台设备取得其中一份;每台设备拥有完整的模型。在训练时,每台设备经过梯度计算后,需要经过设备间的梯度同步,然后才能进行模型参数的更新。

b. 算子级模型并行

算子级模型并行是对模型网络中的每个算子涉及到的张量进行切分。MindSpore 对每个算子都独立建模,每个算子可以拥有不同的切分策略。

以矩阵乘算子 MatMul(x, w)为例,x 是训练数据,w 是模型参数,两者都是二维矩阵。并行策略 ((4, 1), (1, 1)) 表示将 x 按行切 4 份,保持 w 不切,如果一共有 4 台设备,那么每台设备拥有一份 x 的切片,和完整的 w。

c.Pipeline 模型并行

Pipeline 模型并行将模型的按层分成多个 stage,再把各个 sage 映射到多台设备上。为了提高设备资源的利用率,又将 mini-batch 划分成多个 micro-batch, 这样就能够使得不同设备在同一时刻处理不同 micro-batch 的数据。

一种 Pipeline 并行方式(Gpipe) 要求反向计算要等所有设备的正向计算完成后才开始,而反向计算可能依赖于正向的输出,导致每个卡正向计算过程中累积的 activation 内存与 micro-batch 数量成正比,从而限制了 micro-batch 的数量。MindSpore 的 Pipeline 并行中,将反向提前,每个 micro-batch 计算完成后,就开始计算反向,有效降低 activation 存储时间,从而提升整体并行效率。

d. 优化器模型并行

优化器模型并行将优化器涉及到的参数和梯度切分到多台设备上。以 Adam 优化器为例,其内部可能有多份与权重同等大小的「动量」需要参与计算。在数据并行的情况下,每个卡都拥有完整的「动量」,它们在每个卡上都重复计算,造成了内存及计算的浪费。通过引入优化器并行,每个卡只保存权重及「动量」的切片,能降低每个卡的静态内存及提升计算效率。

e. 重计算

重计算 (Rematerialization) 针对正向算子的输出累计保存在内存中,导致内存峰值过大的问题,舍弃了部分正向算子的输出,而是在反向阶段用到时再重新计算一遍。这样做有效地降低了训练过程中的内存使用峰值。如下图所示,第一个内存峰值通过重计算消除,第二个内存峰值可以通过前面讲到的优化器并行消除。

有了这 5 维的并行维度后,如何将其组合起来作用于盘古,并且如何将切分后的模型分片分配到每台设备上仍然是难题。MindSpore 自动并行,把这 5 个维度并行有机组合起来,可以实现非常高效的大模型分布式训练能力。

下图 (b) 是一典型的树形的硬件拓扑结构,其带宽随着树深度的增加而降低,并且会产生一些流量冲突。为了利用此特征,MindSpore 的目标是最大化计算通信比,将通信量大的并行方式(算子级并行)放置在服务器内部的多卡之间;将通信量较小(Pipeline 并行)的放置在同一机架内的服务器间;将数据并行(优化器并行)的部分放置在不同机架间,因为该通信可以和计算同时执行(overlap),对带宽要求较低。

在盘古 2000 亿模型中,MindSpore 将 64 层(layer)划分为 16 个 stage,每个 stage 包含 4 层。在每层中,利用算子级并行的方式对张量进行切分。

如下图中的 Q,K,V 的参数在实际中(按列)被切了 8 份,输入张量(按行)被切了 16 份,输出张量因此被切了 128 份(8*16)。重计算配置是配置在每层内的,也就是重计算引入的多余的计算量不会超过一层的计算量。总计,MindSpore 使用了 2048 块昇腾处理器来训练盘古。

MindSpore 对外屏蔽了复杂并行实现的细节,使得用户像编写单机模型脚本那样简单。用户在单机脚本的基础上,仅通过少了配置就能实现多维度的混合并行。下图是简化版的盘古脚本,其中红色加粗字体表示的在 MindSpore 中的并行策略。将红色加粗字体去掉,则是单机脚本。

图算跨层联合优化,发挥硬件极致性能

除了跨节点间的大规模自动外,在单卡节点内,MindSpore 通过图层和算子层的跨层协同优化,来进一步发挥昇腾算力。

在传统的 NN 网络中,不同算子承载的计算量和计算复杂度也各不相同。如 LayerNorm 由 11 个基本算子组成,而 Add 则只有 1 个基本算子。这种基于用户角度的算子定义,通常是无法充分发挥硬件资源计算能力的。因为计算量过大、过复杂的算子,通常很难生成切分较好的高性能算子。从而降低设备利用率;而计算量过小的算子,由于计算无法有效隐藏数据搬移开销,也可能会造成计算的空等时延,从而降低设备利用率。

为了提升硬件利用率,MindSpore 使用了图算融合优化技术,通过图层和算子层联合优化,并将「用户使用角度的易用性算子」进行重组融合,然后转换为「硬件执行角度的高性能算子」,从而充分提升硬件资源利用率,进而提升整网执行性能。具体优化流程如下图所示:

以 LayerNorm 算子为例,通过算子拆分和重组,11 个小算子,组成了 1 个单算子和 2 个融合算子。这些重组后的算子可以生成更加高性能的算子,从而大大降低了整体网络运行时间。

在盘古模型中,图算融合帮助整体训练时间减少了 20% 以上。除此之外,对于其它 NLP、CV 等任务,图算融合在优化性能方面都有不错的表现。

点击关注,第一时间了解华为云新鲜技术~

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

匿名给ms提点建议吧

这么好的问题场景,多发几篇顶会,硬通货拿来炫多好;多关注代码质量,别搞成典型华为产品,ms代码水平距离tf pytorch太远了,架构师也要重构感知下代码;尊重知识产权IP,给创新性人才更好工作环境;这是个持久战,别像典型华为项目,领导新鲜感就1-2年,后面不受重视就不投入了。

============

再补充几句正面的评价吧:

搞定AI芯片,搞定片间互联,从0构建底层软件,算子,框架,算法,数据,最后挑战超大规模模型成功。即使是在NV GPU集群上做到,都不简单。

可能只有行家才明白这个工作的分量!

客观来说,短时间国内无人能追赶!我们可以等着看,过多久谁能超越这一工作。这么多大厂,ai芯片公司在投入,我想一段时间内,这将是一个标杆,估计大家都会盯着这个团队的人才。

有好的问题,才有好的创新。不能过度的夸大学术,而忽视了工程。没人可以一开始就想清楚所有事情,都是在工程中才会有更深入的探索和发现,才会诞生更扎实的创新。

可能很多技术思路有人发过文章,但是正在工程实现时,问题的上下文可能不一样,细微问题的差异是会带来新的思路的,中软内部一直讲价值,但是真正清楚问题的是底层工程师,大多都缺少抽象形式化的能力,所以很多时候只能拿结果说话。应该是有很多创新的,我们可以期待一些论文发表出来。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

华为现在推出“盘古NLP语言训练”模型,可喜可贺!!希望能很快落地一个更为普遍的应用场景里,推出一个大众的交互入口,供人们交互测试,以便更快的完善和优化模型。

“智能时代”的各种应用产品,关键还是要在实际应用场景的交互迭代中,才能测试出真实的水平,也能更快修正完善。不是说紧紧在实验室进行了一些“深度学习”训练,推出一个完善模型架构,就能跟牛逼。如果不很快去落地到实际应用场景的话,就会有“画饼”之嫌。

NLP技术主要就是自然语言的理解,关键的应用场景就是日常口语话的人机交互!这种应用场景在“科大讯飞”和“百度”早几年就在已经推出并落地到了实际应用场景

科大讯飞的语音识别是全国应用最广泛的。百度不但在搜索框添加了语音搜索功能,而且还推出了“小度”机器人和“智能音箱”等硬件产品,供人们使用。

盘古NLP语言训练模型的架构很完善,也学习了很多资料包,但是目前很多时候可能还只是停留在实验室里,实际的推出的应用场景也不多,也好像还没有推出一个很完善的自然语言交互的『大众化入口』,供人们使用,以迭代优化模型,增加理解和识别的准确性。

先占一个位(2021.4.27)后续有时间拆解一下,这个超级神物,「盘古」的 NLP 模型。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

华为云盘古大模型:业界首个千亿级生成与理解中文NLP大模型、业界最大的CV大模型,华为还将持续推出多模态和科学计算大模型。

盘古大模型具备极强的泛化能力,一个模型适用大量复杂行业场景,少量样本也能达到高精度;基于预训练+下游微调的工业化AI开发模式,让全球领先的AI真正进入千行百业。

华为云盘古NLP大模型在中文语言理解测评中,在总榜、分类榜、阅读理解榜获得三项第一,大幅刷新业界纪录。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

从鹏城的同学朋友圈看到的消息,能有大公司去做这种很大的中文语义模型是一件好事。

模型结构上大概看了一下都比较熟悉,低风险的选择。

接下来就看商业化能做到什么程度了。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

本来以为这项工作不会开源,不过今天放出了代码和技术报告(论文)(除了200B的模型没有开放,更小的模型都开放了下载):

PanGu-Alphagit.openi.org.cn图标


技术报告git.openi.org.cn

我简单看了一下论文,使用的是语言建模的框架(类似GPT系列),不过之前有人提这个是抄GPT3作业的工作,个人不大同意:

1、显然这篇工作没有使用稀疏注意力(技术报告第十页),GPT3交替地使用稀疏和稠密注意力;

2、模型方面,他们加了一个额外的transformer层,用位置编码作为注意力的query收集所有下层表示,输出的表示用于生成下一个token;

模型结构

3、这种工作不是从把英文模型放到现成的中文语料上跑一遍就可以了,中文语料的收集和处理也是重点;

4、预训练大规模模型的重点实际是分布式训练,虽然我们日常看到这类工作会感叹“有卡真好”,但是真的给你这么多卡你也不一定做得出来。

--------接下来是remark时间--------

个人认为,这类工作可以看作是大厂炫手腕的手段(最近阿里和智源似乎也放出了大型中文预训练模型),正如

所说,这类工作的商业模式还有待探索。

GPT3算是珠玉在前,所以看到这种工作也不大惊喜,不过有中文预训练总是好的。只是这种体量的模型,小家小户tune也tune不起。

-------接下来是反对时间--------

首先批量反对一下两位民科/营销号

,例如 的这个回答:

全篇都在介绍Wolfram Alpha,可见不仅对盘古alpha没有任何了解,甚至连这篇工作是什么类型的应用都不知道。

再谨慎反对一下

的回答,他认为精巧的模型要好过巨无霸模型,这还有待讨论。抛开应用来谈模型大小是不对的,以往追求小而精的模型是因为小的服务器/设备上很难容纳大型模型,并且大模型还存在时延问题。但在时延要求不高的场景下,这类模型完全可以按API的形式给下游服务提供者使用的。所以还是上面讲的,这类大模型的商业模式还有待探索。

--------接下来是吐槽时间--------

我了解到这个工作是通过知名[最小质数]流媒体量子位的推送:

“工厂模式” (注:是一种软件开发的设计模式)

开发模式是“预训练+下游微调”

然后又说“这种模式的一大优点,是具有极强的泛化能力”,

量子位小编,请问是工厂模式具有极强的泛化能力,还是预训练+微调具有极强的泛化能力?

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

AI 1.0改几行python的时代已经成为历史。

AI 2.0 以openai为首的信仰派终于站在了浪潮之巅,很幸运huawei能够跟进这样的工作,这也证明了huawei做自己TPU的战略眼光。

做ai的小伙伴要注意了,如果你不懂计算机,只会改python,那么你真的会失业。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

只有一个字才能概括,大!

至于什么训练方式多难多难,什么什么的都不是重点,只能说是技术和工程部分,打个比方,奇虾长那么大,甚至还是海洋霸主(寒武纪的),肯定有什么特别之处,长成这样肯定也很有技术含量,但是奇虾却在进化中没有了显著突破,最终进入了死胡同 最终灭绝,这个和目前nlp领域差不多,无论是之前通过GPT2大放异彩的OPENAI 还是现在的华为,都在朝着大而前进,给了庞大的训练数据进行训练,训练出的模型已经具有各种功能性,但是本质还是那样,不过华为的和openai存在架构差异,指不定可以走的更远,也可能更近,这个是目前nlp领域遇到的问题,可能也不是问题,目前看来这么大就能实现这样的功能,以后搞个更大的又更强,未来技术革新一步步小下来也不是不可以...虽然代价可能接近推倒重来。

参数多,千亿级,训练语料大,TB级,但是感觉和gpt3一样,都是朝着大发展,但是关键突破却还木得,不过国内终于有一个能跟上的,还是值得赞扬的。

如果基础这段时间依旧没什么突破,那么下一个模型必然也是大,大,大,在进化中,这算是一个死胡同,如何绕开这个死胡同,这个是世界人工智能行业都要面临的一个挑战。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

这俩要是没证据乱说话的话,建议华为AI部门给这俩寄律师函

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

PanGu-AIphagit.openi.org.cn图标

求大佬评价,机器学习超超超入门小白表示看不懂

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

话说这个该怎么黑,真的看不懂

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

华为就喜欢当第一,新推的盘古AI已够秒杀国外GPT-3了

嗯,这个标题的确有点太那个啥,说不定就因为标题党夸张等嫌疑而被和谐或被迫改正。不过呢,看了这次华为官宣推出的盘古人工智能,的确给人有点惊艳的感觉。在这次HDC华为开发者大会上,那个让我们大家都很熟悉的余大嘴再次宣布一个很重磅的世界第一:华为云盘古大模型。这个惊人的千亿级的参数规模,已经逼近人类神经元的数量了。


  话说,华为怎么这么喜欢当第一呢,说中国第一倒也罢了,居然还自豪官宣世界第一。这个重磅的世界第一AI,是业界首个千亿级生成与理解中文NLP大模型,是业界最大的CV大模型。你没看错,它并不仅仅局限于人工智能的某一个单独的领域比如自然语言处理NLP,而是海纳百川,集AI多个热门方向于一身的全能型人工智能。

  这个颇有开天辟地的中国传统文化元素的盘古AI大模型,包含自然语言处理(NLP)大模型、计算机视觉(CV)大模型、多模态大模型、科学计算大模型。据机智客了解,华为云盘古NLP大模型:是业界首个千亿参数中文语言预训练模型,预训练阶段学习了40TB中文文本数据,是最接近人类中文理解能力的AI大模型。具体而言,盘古NLP大模型在权威的中文语言理解评测基准CLUE榜单中,总成绩及分类、阅读理解单项均排名第一,刷新三项榜单世界历史纪录,总成绩得分83.046。

  而其中的华为云盘古CV大模型,则是目前业界最大的视觉预训练模型,包含超过30亿参数。而它的“肌肉力量”呢?则是在ImageNet 1%、10%数据集上的小样本分类精度上,达到了业界最高水平。

  当然,大,并不是华为盘古AI大模型唯一的特色,还有让开发者能感同身受体会到优势的开发模式呢。它的开发模式,是“预训练+下游微调”,这也是与目前全球主流大模型(如Bert)所匹配的一种模式。也就是说,在泛化能力(这是机器学习领域最基本的概念)上说一数二。另外,对于困扰开发者的样本规模问题,华为盘古AI大模型还能做到在少量样本的情况达到高精度,在这方面超越了GPT系列。

  瞧瞧,已在超越GPT系列了。虽然这里我们不能横向简单对比盘古AI和GPT-3,毕竟GPT-3已经公开并有多次演示和应用了,不过在规模、泛化能力、样本少的问题等方面,盘古AI大模型有着显著的优势。再者说,盘古AI大模型不仅适用于推理、训练场景,还能够实现“端边云协同”。这就意味着不必在不同的终端,再去开发不同的算子,大大提高了效率。就问你厉害不厉害吧。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

深夜刷完发布会就来了,业余小白,纯粹从用户体验角度谈谈感想,期待盘古尽快开放公网访问,抛炉渣引玉石。

本篇不对盘古的原理进行评述(本人是业余的),仅仅对国外类似产品做介绍,猜测盘古大模型的功能~

不喜请跳过,勿喷,谢谢!

我觉得华为的这个工作可以和国外的Wolfram Alpha相比较。不过两者侧重点是不一样的,盘古是自然语言处理,Wolfram侧重逻辑推理。

不多介绍,直接上图:

先看看盘古的表现:

原视频链接见:PCL-Platform.Intelligence/PanGu-Alpha: 千亿级开源中文预训练语言模型「盘古α」

https://git.openi.org.cn/PCL-Platform.Intelligence/PanGu-Alpha/src/branch/master/serving_demo/PanGu-Alpha-serving-demo.avigit.openi.org.cn


Wolfram Alpha在自然语言处理方面不如盘古PanGu,但是在逻辑推理方面表现确是一流的,毕竟WA是做数学(Mathmatica软件)出身。不同于搜索互联网信息,WolframAlpha将从公众的和获得授权的资源中,发掘、建立起一个异常庞大的经过组织的数据库,再利用高级的自然语言算法进行处理,最终构造出一个类似于谷歌搜索的工具。

Wolfram Alpha 是一个科学引擎,是一套十分强大的科学问答系统,具体的介绍可以见维基百科上的解释,根据官方的介绍,它可以完成数学、统计学、物理、化学、材料学、工程学、天文学、地质科学、生命科学、计算机科学、测量学、天气、地理、人文历史、文化、音乐、文学、体育等等的功能,如果真的要一个个都写出来的话,估计能占满一整个屏幕。上文列出来的只是这个引擎能做到的事情的很小一部分,所以足以见得这个引擎的强大。认真讲起来,它就是百科全书。

  1. 自然语言处理(Wolfram目前仅支持英文和日文)

(1)常识类问答

按照发明者StephenWolfram的说法,这个网站其实是一个计算知识引擎,而不是搜索引擎。其真正的创新之处,在于能够马上理解问题,并给出答案。在被问到“珠穆朗玛峰有多高”之类的问题时,WolframAlpha不仅能告诉你海拔高度,还能告诉你这座世界第一高峰的地理位置、附近有什么城镇,以及一系列图表。

天气:

(2)简单推理

如果你想知道:周恩来24岁时是哪一年?

基于自然语言理解,它能准确理解你的意思,先寻找周恩来总理的出生日1898年3月17,然后推理得出周总理24岁的时候是1922年3月17,星期五。而不是简单的根据,“周恩来”,“24岁”这几个关键词匹配网页结果。

倘若输入“抛10次,4次正面向上”,WolframAlpha可以猜到,你其实是想知道抛硬币的概率问题。

甚至连某地下一次日食的时间,或者国际空间站现在的位置,WolframAlpha都能给你答案。

“好奇号”的位置:

(3)音乐类

要是问“什么是升D大调”,WolframAlpha可以把它演奏出来

2 科学计算

(1)数学计算

函数绘图、求解微分方程、求极限、矩阵计算、统计分析等,对于求解数学问题,你可以得到完整的解答过程。WolframAlpha能实现以简单的方式输入所有的结构化数据。

求微分、积分、解微分方程:

未知系数方程、微分方程求解:


各种概率分布:

数学公式画出爱因斯坦头像:

线性代数、矩阵分析、数值分析、几何等等。

也支持手写公式识别哦:

它已经成为数学家们进行逻辑推理、公式推导的利器了。大大提高了科研人员的效率。

(5)数据可视化

WolframAlpha对于数据处理将以最具美学原理的动态生成方法形成树形结构、图形布局及其它图形。能够自动生成报告,自动进行布局、色彩选择、尺寸和排版,为任何计算结果的输出提供最优化的视觉效果。

(6)以化学为例

苯的结构式:

香兰素:

另外机器学习、数据分析、医学、工程、金融等等都支持,下面是官方文档截图:

功能无穷无尽不再赘述。

大家不妨期待盘古开放访问入口后,与这个软件一较高下。

WolframAlpha搜索引擎地址与盘古开源地址:

Wolfram|Alpha: Making the world’s knowledge computablewww.wolframalpha.com图标PanGu-Alphagit.openi.org.cn
继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

利益无关酱油党

先声明,不是很喜欢华为,但是必须承认华为的技术实力,在世界上都是天花板级的。

线下参加过各个大厂的技术分享和厂品发布会。总结就是华为真的牛逼。

就拿为的智慧城市来说,基本上实现傻瓜式操作了,系统里要加什么功能,拿鼠标一拖就生成,对我们这种开发人员简直是降维碾压。

这个东西部署起来以后,对每一根电线杆子,每一个路灯,都能完成智能监测,简单的小问题在后台直接就能远程解决,即使是复杂一点的问题,也能第一时间检测到,联系附近的维修人员敏捷维护。

智能大模型不知道具体能达到什么高度,但是目前的开源技术都已经能实现过去想象不到的功能了。

如果大嘴说的是真的,那么可以想象,马上讲川普港普的智能机器人也会问世,可能到时候华为的客服跟你打电话,你都分不清是人类还是机器人

比赛博更朋克

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

太复杂,我看不懂,但是就说一点感悟:名字起的真带劲啊!

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

很好奇商业前景如何?

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

中国AI研究新突破:「盘古α」发布 - 知乎 zhuanlan.zhihu.com/p/36

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

有没有大神给非计算机专业的人,通俗的讲讲这是用来干啥的?

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

这可能触及到喷子的盲区了,怎么没看到喷子来刷:牢厂、996、爱国警告等。

对于这个模型,不懂呀,听大佬分析,以及等落地项目成果。

会不会让手机语音助手以及华为智能音箱系列能够更准确的理解日常的指令。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

不邀自来,占个坑关注这个模型的走向。

看了不少相关的推送和报道,技术细节太少了,感觉仍然是大模型+大数据+大算力之下的“大力出奇迹”,在高校搞NLP研究的感觉复现渺茫,不知道预训练模型是否会开源,还是像OpenAI的GPT3那样

近年来的NLP模型,感觉还是BERT对学术界足够良心呀

回到题内话,看评测任务,盘古大模型在部分任务快要接近人类的分数了。但实际上,那怕模型的任务评分优于人类,也未能代表模型真正做到像人类那样思考,在实际应用中,仍然无法解决很多突发的情形。

不过,看介绍,模型是融合了知识库的:

其描述为:

如何融合行业知识?

行业知识来源于行业数据。盘古团队使用了大量行业语音和文本数据。这些数据来自销售、客服等企业与客户之间的沟通场景,涵盖金融、保险、教育、地产、本地生活、电商、汽车等诸多行业,构成了庞大的行业知识库。借助这些数据进行微调,模型的行业特定意图和知识理解能力大幅提高。

此外,与 GPT-3 直接使用端到端生成的方式不同,由于盘古模型同时具备生成能力和少样本理解能力,开发者可以根据业务需求灵活搭建 pipeline,包括与行业知识库进行对接,实现行业知识与通用知识的融合,最大程度上满足个性化的业务需求。

这里可以看到,与行业知识对接,在训练阶段,依然是依赖于训练数据的,在应用阶段也没有说明如何与“行业知识库”对接。

总体上来看,盘古大模型应该是很好的通用的语言模型,但是要用到业界,估计还是得考虑怎么更好地考虑行业知识(尤其是行业知识不断变化、增长的情形)

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

泻药,计算机方面我不是太专业,就不说了。

从模型来讲,算是技术展示。个人观点除了类似GPT和BERT思路外(使用各种注意力头组成transformer然后大力出奇迹),没看到什么新意。例如解决什么新任务,如解决彩票假设问题,也就是从头训练出tiny Bert模型,而不是先训练bert再蒸馏。

类似的中文模型度娘做了好多了,例如ERNIE。

另外华为在微信上公开了一个应用叫“EI体验空间”,做了一些NLP行业应用demo。应该相关,感兴趣可以体验一下。

爪机码字,有啥理解不对或者错误也在所难免,欢迎轻喷。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

All you need is money.

其实,哪怕是这么大的一个模型,神经元数目与人脑相当,其实也还是抽取了语料中非常底层的相关性,远远没有达到从语言中对世界建模的能力,还早着呢。

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

一周前阿里PLUG可是直接拿出来测试链接的,随便用,而盘古只是PPT演示,感觉还是让子弹飞一会再说

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

完全不懂,但是看见有头部公司在用,国家电网,工商银行,新浪微博,美图秀秀,vipkid在线网课这些公司足够够全面了,电力关乎千家万户最考虑稳定,工商银行金融安全没问题吧,新浪热搜流量瞬间膨胀应对大流量没问题吧!vip上网课不可能给人家整的一卡一卡的吧!总上来说应该挺牛的吧!哈哈哈哈哈,瞎回答的!

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续

华为云盘古大模型:世界第一、千亿参数,逼近人类神经元

其名盘古,开天辟地。

据介绍,盘古大模型横揽AI领域四大热门方向:

  • 自然语言处理(NLP)大模型
  • 计算机视觉(CV)大模型
  • 多模态大模型
  • 科学计算大模型

华为云盘古大模型包括4大系列:

  • 华为云盘古NLP大模型:是业界首个千亿参数中文语言预训练模型,预训练阶段学习了40TB中文文本数据,是最接近人类中文理解能力的AI大模型。
  • 华为云盘古CV大模型:是目前业界最大的视觉预训练模型,包含超过30亿参数。
  • 未来将持续推出多模态和科学计算大模型。

具体而言,盘古NLP大模型在权威的中文语言理解评测基准CLUE榜单中,总成绩及分类、阅读理解单项均排名第一,刷新三项榜单世界历史纪录,总成绩得分83.046。

而盘古CV大模型,则在ImageNet 1%、10%数据集上的小样本分类精度上,达到了业界最高水平。



盘古NLP大模型的三大突破

盘古NLP大模型是全球最大的千亿参数中文语言预训练模型,由华为云、循环智能和鹏城实验室联合开发,预训练阶段学习了40TB中文文本数据,并通过行业数据的样本调优提升模型在场景中的应用性能。

盘古NLP大模型在三个方面实现了突破性进展:

第一,具备领先的语言理解和模型生成能力:在权威的中文语言理解评测基准CLUE榜单中,盘古NLP大模型在总排行榜及分类、阅读理解单项均排名第一,刷新三项榜单世界历史纪录;总排行榜得分83.046,多项子任务得分业界领先, 向人类水平(85.61)迈进了一大步。



盘古NLP大模型位列CLUE榜单总排行榜第一

在NLPCC2018文本摘要任务中,盘古NLP大模型取得了Rouge平均分0.53的业界最佳成绩,超越第二名百分之六十。

第二,盘古NLP大模型在预训练阶段沉淀了大量的通用知识,既能做理解又能做生成。除了能像GPT-3等仅基于端到端生成的方式以外,大模型还可以通过少样本学习对意图进行识别,转化为知识库和数据库查询。通过功能的模块化组合支持行业知识库和数据库的嵌入,进而对接行业经验,使能全场景的快速适配与扩展。比如在华为云和循环智能合作构建的金融客服场景中,盘古NLP大模型能更好地赋能销售环节,帮助服务人员快速提升业务水平,重塑消费者体验。

第三,盘古NLP大模型采用大模型小样本调优的路线,实现了小样本学习任务上超越GPT系列。比如在客户需求分析场景中,使用盘古NLP大模型生产语义标签时,得到目标结果所需的样本量仅为GPT系列模型的十分之一,即AI生产效率可提升十倍。

30亿参数,全球最大视觉预训练模型

盘古CV大模型是目前业界最大的视觉预训练模型,包含超过30亿参数。盘古CV大模型首次兼顾了图像判别与生成能力,从而能够同时满足底层图像处理与高层语义理解需求,同时能够方便融合行业知识微调,快速适配各种下游任务。盘古CV大模型性能表现优异,在ImageNet 1%、10%数据集上的小样本分类精度上均达到目前业界最高水平(SOTA)。

盘古CV大模型致力于解决AI工程难以泛化和复制的问题,开创AI开发工业化新模式,大大节约研发成本。此外,盘古CV大模型提供模型预训练、微调、部署和迭代的功能,形成了AI开发完整闭环,极大提升AI开发效率。目前,盘古CV大模型已经在医学影像、金融、工业质检等100余项实际任务中得到了验证,不仅大幅提升了业务测试精度,还能平均节约90%以上的研发成本。

华为云盘古大模型,是如何炼成的?

左手CANN算子,右手MindSpore框架,主要依托的便是这两大“基本功”。

CANN是华为推出的异构计算架构,2018年推出1.0版本至今,已经迭代到了3.0版本。

目前不仅使用于推理、训练场景,还能够实现“端边云协同”。这就意味着不必在不同的终端,再去开发不同的算子,大大提高了效率。

例如基于CANN,就能让ResNet-50模型的训练时间降低到28s。

MindSpore则是华为于2019年推出的全场景AI计算框架,其中的一大特色,就是具有全自动混合并行方案。

而华为云盘古大模型,基于二者之外,还融合了三种并行技术:模型并行、数据并行和流水线并行。

如此一来,开发者就只需要编写单机算法代码、添加少量并行标签,就可以实现模型训练的自动切分。

举个实战例子,用盘古训练超大模型静态图,性能直接提升了40%之多!

为了训练这个模型,田奇(华为云人工智能首席科技家)与杨植麟(循环智能联合创始人)联合带领的研究团队花了近半年的时间,给模型喂了 40TB 的行业文本数据和超过 400 万小时的行业语音数据。

所有这些努力,都是为了克服 GPT-3 的落地难题。

「GPT-3 是一个学术界的产物,是一个学术研究的重大突破,但在落地过程中仍然面临很多问题。」杨植麟告诉机器之心,「导致这个问题的原因是,学术研究往往以人工收集构造的相对通用化的数据集作为 benchmark,往往以较理想化的设定来进行实验(比如类别均衡的多分类问题),这些都跟实际应用有出入。盘古模型实际上针对性地解决了这些问题。跟以往的大规模预训练模型不同,盘古模型从第一天起就是奔着商业化落地的角度进行设计和研发。」

作为一个深耕 NLP 企业服务的团队,循环智能看到了 GPT-3 等大规模预训练模型的潜力,但也看到了它们在落地过程中的局限。「盘古」模型正是为了克服这些局限而生。在最近的一次访谈中,循环智能 NLP Moonshot 团队向机器之心介绍了这个项目的初衷、挑战和具体的解决方案。

GPT-3 很强,但到了业界不好用

GPT-3 是 OpenAI 在去年 5 月份发布的语言模型,不仅可以答题、翻译、写文章,还带有一些数学计算的能力,因此在人工智能领域掀起了一场巨浪。

GPT-3 很强,这是社区公认的事实,所以循环智能最初是想开发一个中文版 GPT-3。但在开发过程中,他们发现:GPT 类模型在复杂的商业场景中既不好用,也不高效。

具体来说,问题出在三个方面。

第一个问题是:GPT 对于复杂商用场景的少样本学习能力较弱。少样本学习是指利用少量标注样本完成模型的学习任务。在高质量数据紧缺、经济效益至上的产业界,这一能力非常重要。

此前,Schick 和 Schutze 已经在 PET 工作中证明:在少样本学习方面,千亿参数的 GPT-3 模型的语言理解能力还比不上亿级参数量的 BERT。在复杂的企业级落地场景中,这一缺陷将使得模型在利用数据方面非常低效。

比如在下面这两段保险场景对话中,模型需要判断服务人员是否正确讲解了「现金价值可以通过退保的形式返回」这个专业保险知识。正例需要完整说明以下方面:(1)要用退保的形式;(2)退回的是现金价值。

对话 1:

服务人员:「它有一个养老的功能,以后您不想保了,那么到一定年限,到现金价值的高峰期间可以退保,拿到现金价值 」

对话 2:

服务人员:「您如果说保的时间,不会,因为交的钱是固定的。只是您这个保单对应的现金价值是每年往上涨的」

显然,对话 1 同时提及了退保和退回现金价值两个主要因素,应被判断为正例;而对话 2 只提及了现金价值,并不涉及现金价值赎回的介绍,应被判断为负例。但针对 30 亿参数的中文 GPT 模型 CPM 的少样本学习测试发现,该模型并没有给出正确答案。

再比如,在下面这段教育场景对话中,模型需要判断课程顾问是否推荐了全科辅导班。如果推荐了,则判断为正例,否则判断为负例。

对话 3:

课程顾问:「啊没有那么多,你是考虑单科辅导班还是全科辅导班?」

客户:「这个这个我还没考虑好 」

显然,在这段对话中,课程顾问只是单纯询问,并未体现推荐,因此应被判断为负例,但 CPM 依然没有正确识别。

除了少样本学习,实际应用中还存在一些需要通过大量样本进行学习的场景,这就要涉及到模型的微调问题。但现实是,GPT-3 对于微调并不友好,在落地场景中难以进一步优化,这也是 GPT 模型存在的第二大问题。

商业场景对于模型的准确率和召回率有着很高的要求。虽然 P-Tuning 等工作提出了针对 GPT-3 的新型微调方式,但在面对复杂场景时,我们仍然难以通过使用更多标注数据对 GPT-3 进行进一步优化。

「比如说我们现在用到的一个场景里面,通过少量样本得到 GPT-3 的准确率是 65%。在学术研究的语境下,这个准确率听起来也不是很差,但是你实际场景就没法用。这时我们要加一些数据对模型进行优化,要做到 90% 才能用,但我们实验发现 GPT-3 结合微调的提升并不明显,这就大大限制了它的使用场景。」杨植麟表示。

GPT-3 是一个百科全书式的存在,但在很多落地场景中,我们更需要的是一个领域「专家」。为了打造这个「专家」,我们需要将行业的知识库接入 AI 流水线,将通用 AI 能力跟行业知识相结合,实现基于行业知识的精确理解和预测。

「例如,在实时辅助场景中,我们希望模型能够实时地给销售推送知识、讲解要点、推荐产品,通过增强智能的方式提升销售能力。在这个场景中,就需要大量外部知识的接入,才能达到较好的推荐效果。」循环智能资深算法总监陈虞君解释说。

但与之相矛盾的是,GPT-3 只能进行直接的、端到端的生成(把知识库做成很长的一段文字,直接放进 prompt 中),难以融入领域知识,这便是它的第三大问题。

在这三大问题的限制下,GPT-3 的强大能力很难直接在商业场景中得到发挥。

盘古:打通 NLP 技术到产业的最后一公里

好用、高效是业界对一个模型的基本要求。要达到这个要求,首先要克服以上三大问题,这也是「盘古」模型的创新之处。

如何提高少样本学习能力?

为了克服少样本学习难题,循环智能的研究团队进行了两方面的努力。

一是利用迁移学习。与 GPT-3 的少样本学习方式不同,盘古模型的技术路线是通过元学习的方式在任务之间进行迁移,从而实现少样本学习的目标。这种方式可以更好地利用任务之间的相似性,得到更好的少样本学习结果。

二是将 P-tuning、priming 等最新技术融入到盘古的微调框架中,进一步提升微调效果。

下面两个图展示了 CNN、中文版 GPT-3(CPM)、BERT、RoBERTa 和盘古在少样本场景下的学习能力。

复杂商用场景实测不同模型少样本学习达到的 F1 结果(100%表示跟 full label 结果相同)

各模型复杂商用场景实测得到目标 F1 结果所需的平均样本量

从第一幅图可以看出,在样本极少的情况下,盘古的少样本学习能力远超上述 GPT 系列和 BERT 系列。

第二幅图则显示,要得到相同的 F1 结果,盘古所需的数据量仅为中文 GPT-3 的 1/9,实现了近 10 倍的生产效率提升。「也就是说,以前可能两个星期才能完成的一些工作,现在你用一两天就可以做完。所以,这个模型实际上有很大机会去变革生产效率。」循环智能资深算法总监杜羽伦解释说。

如何解决大模型微调难题?

大模型微调难题的解决也分为两个方面。

首先,为了增强预训练与微调的一致性,研究者在预训练阶段加入了基于 prompt 的任务。Prompt pattern 的选择和数据增强机制保证了微调阶段使用的 prompt 得到充分的预训练,大幅度降低了基于 prompt 的微调的难度。在下游数据充足时,微调难度的降低使得模型可以随着数据变多而持续优化;在下游数据稀缺时,微调难度的降低使得模型的少样本学习效果得到显著提升。

随着预训练模型规模的增大,微调难度不断上升,过拟合十分严重。因此,他们分析了过拟合的主要来源,采用了 gradient dropout 等机制对微调过程进行正则化,可以较大程度缓解过拟合的问题。

下图展示了研究团队针对销售线索评分场景进行实测的结果。在销售线索评分场景中,数据相对充裕,模型通过分析数十万条历史数据的成单情况对每条销售线索的客户意向度进行评分。在这种情况下,由于更适合微调,盘古模型在最终的销售转化率上取得较大提升。

基于对话内容的销售线索评分场景中,使用不同模型的实测销售线索转化率对比

继续浏览内容
知乎
发现更大的世界
打开
浏览器
继续