本周AI热点回顾:Python之父加入微软;Hinton推翻自己30年的学术成果;AI性能基准测试有了「中国标准」...

点击左上方蓝字关注我们

01

Python之父宣布加入微软

在从 Dropbox 退休一年后,64 岁的 Python 之父吉多 · 范罗苏姆(Guido van Rossum)宣布复出并加盟微软。

去年 10 月,Guido van Rossum 从 Dropbox 离职,宣布退休。然而,今天看来他的退休之旅已经结束。van Rossum 表示,他加入微软后,将致力于「使用户更好地使用 Python(并且不仅仅是在 Windows 系统上)」。

微软发言人表示欢迎 van Rossum 加入微软开发者部门,「微软承诺为 Python 社区做出贡献,并与它一起成长,Guido 的加入是这一承诺的体现。」

Python 诞生于 1989 年。当时,Guido van Rossum 厌倦了已有编程语言的缺点,决定创造一种新的编程语言,于是 Python 诞生了。不管是 20 世纪 90 年代中期任职于美国国家标准与技术研究院 NIST 时还是之后在多家公司工作期间,van Rossum 一直积极从事 Python 语言的开发工作。

从 1989 到 2020,Python 已经成为最受欢迎的编程语言之一。

仅仅在几年前,鉴于微软对待开源的消极态度,van Rossum 加入微软这件事简直无法想象。然而,情况已经发生变化,目前微软是最活跃的企业开源贡献者之一,也是全球最大开源代码托管平台 GitHub 的所有者。

目前尚不清楚 van Rossum 将在微软从事什么工作,他在推特中表示「有很多选择」,「微软有大量开源工作」。

而在这条推文下,很多开发者已经开始畅想能在 Excel 中使用 Python 了。

2005年开始,Guido加入谷歌。在那里,他开发了内部代码审查工具Mondrian,并在谷歌App Engine项目工作。还用 Python 语言为 Google 写了面向网页的代码浏览工具。

2013年,他加入了以Python建立主要架构的云服务提供商Dropbox,开发了Mypy,目前最流行的Python静态类型检查器之一。

2019年10月,Guido宣布退休。

退休后,Guido回归Python开发者社区,只不过,他不再是“仁慈的独裁者(BDFL)”了,只作为社区的一名核心贡献者。

信息来源:量子位

02

AI性能基准测试从此有了「中国标准」!英伟达、谷歌可以试试这套算力卷

在秀算力这件事上,近几年一个叫MLPerf的AI性能基准测试,经常跃入人们的视线。为了拿这个标准证明实力,英伟达、谷歌等「算力」大厂的表现,可谓是赚足了眼球。

早在2018年12月,也就是MLPerf首次出炉之际,英伟达便基于自家Tesla V100,在包括图像分类、物体分割、推荐系统等六项测试中均取得优秀成绩,拿下全场最佳。

而此后,英伟达更是频频刷榜,就在刚刚过去不久的最新性能测试中,英伟达又凭借A100 GPU打破了八项AI性能纪录。

谷歌方面也是毫不示弱,凭借4096块TPU V3将BERT的训练时间缩短到了23秒。对此,谷歌AI掌门人Jeff Dean还在社交平台发文表示:

很高兴看到MLPerf 0.7的结果,谷歌TPU在八项基准测试中,创造了六项纪录。

我们需要(换)更大的标准了,因为我们现在在30秒内,就可以训练ResNet-50、BERT、Transformer、SSD 等模型。

那么问题来了,令这些「算力」大厂们竞相追逐的MLPerf这套「考题」,真的是「AI性能基准测试的唯一标准」吗?要达到理想的AI或者高性能计算(HPC)基准测试,具有三方面的挑战:

  • 首先,基准工作负载(workload)需要表示关于硬件利用率、设置成本和计算模式等的实际问题。

  • 其次,基准测试工作负载最好能够自动适应不同规模的机器。

  • 最后,使用简单、较少的指标,就可以衡量AI应用上的整个系统性能。

反观MLPerf,正如Jeff Dean所言,它具有固定的工作负载大小,这本身或许就是个错误。因为增加的算力,应当被用来解决更大规模的问题,而不是用更少的时间去解决相同的问题。而像LINPACK这样的基准测试,在没有代表性工作负载的情况下,又无法反映AI的跨栈性能。

针对上述问题,清华大学、鹏城实验室、中科院计算所联合推出了一套「中国AI试卷」——AIPerf。

简单来说,AIPerf的特点如下:

  • 基于的是自动化机器学习(AutoML)算法,能够实现深度学习模型的实时生成,对不同规模机器有自适应扩展性,并可检验系统对通用AI模型的效果。

  • 通过全新的解析方式计算浮点数运算量,可快速准确的预测AI任务中需要的浮点数运算,以此计算浮点数运算速率并作为评测分数。

那么,中国的这套「AI试卷」具体难度几何?科学与否?摊开这套「AI试卷」,全貌如下:

刚才也提到,AIPerf是基于AutoML算法来实现,在框架方面,研究人员选择的是一款较为用户友好的AutoML框架——NNI (Neural Network Intelligence)。

但在此基础上,研究人员针对「AI加速器闲置」、「模型生成耗时」等问题,对NNI框架进行了修改。

AIPerf的工作流程如下:

  • 通过SSH访问主节点,收集从属节点的信息,并创建SLURM配置脚本。

  • 主节点通过SLURM,将工作负载并行和异步地分配给对应请求和可用资源的从属节点。

  • 从属节点接收到工作负载后,并行地进行架构搜索和模型训练。

  • 从属节点上的CPU,据当前历史模型列表搜索新的架构(该列表中包含了测试数据集上详细的模型信息和精度),然后将架构存储在缓冲区(如网络文件系统)中,以便后期训练。

  • 从属节点上的AI加速器加载「候选架构」和「数据」,利用数据并行性与HPO一起训练后,将结果存储在历史模型列表中。

  • 一旦满足条件(如达到用户定义的时间),运行就会终止。根据记录的指标计算出最终结果,然后上报。

在这套「试卷」中,研究人员还是用FLOPS作为主要的指标,直接描述AI加速器的计算能力。在AIPerf中,浮点数运算速率被当作一个数学问题来求解。通过对深度神经网络的分解,对每个部分的运算量进行解析的分析,得到浮点数运算量。

结合任务运行时间,即可得到浮点数运算速率并作为benchmark分数。

对于高性能计算来说,早在1993年便诞生了「TOP500」榜单,从一开始的美国、日本霸榜,到中国算力的崛起,不难看出国家在这项建设中的投入。原因很简单,高性能计算对于各个国家发展航天事业、石油勘探、水利工程,再到新兴的高科技产业,都起到至关重要的作用。

 

信息来源:量子位

03

飞桨推出异构参数服务器架构,异构硬件高效组合,训练速度提升65%以上

 

在搜索推荐领域中,通常推荐模型的网络并不复杂,但是由于对应的特征空间大,所以通常会使用算力要求不高但是规模非常庞大的 Embedding 和 FC 层来将用户及商品的高维稀疏特征向量转化为低维的稠密特征向量,导致这类模型的参数维度可以达到千亿甚至万亿级别。因此,在搜索推荐场景中,单次 Batch 训练中前后向计算的时间远低于数据读取、拉取和更新参数等过程的时间,再加上庞大的数据和参数量,导致内存要求很高,甚至可以达到几十 T,而拥有这类特点的训练任务通常都被称为 IO 密集型训练任务。

单机训练肯定无法承受这样的任务,只有分布式训练才是解决问题的方法。简单来说,分布式训练就是使用多个硬件设备共同完成训练任务,可以分为 All-Reduce Collective 和 Parameter Server (参数服务器)两种训练架构。

由于推荐搜索领域模型的 Embedding 层规模庞大以及训练数据样本长度不固定等原因,导致容易出现显存不足和卡间同步时间耗费等问题,所以 Collective 架构很少被用于搜索推荐领域。再来看看参数服务器架构。与 Collective 相比,参数服务器架构中除了 Trainer 之外还有一个角色叫 Server。但是在应对 IO 密集型任务时,传统参数服务器模式会出现以下问题:

  • 如果使用的是 CPU 机器作 Trainer,通常 CPU 核心数较多,且购置价格便宜,训练中可以充分利用 CPU 多核的优势,使用异步训练模式,在简单模型上可以极大提升数据吞吐量,对提升整体训练速度有不俗的表现。但是 AI 开发者为了追求模型效果开始逐步在推荐模型中增加复杂网络部分,CPU 计算能力的弱势便暴露无遗,训练耗时会变得不可接受。

传统参数服务器架构(CPU 机器)遇到算力瓶颈

  • 如果更新集群硬件,改为使用的是 GPU 机器作 Trainer,则可能会出现资源利用率低和网络带宽不足的问题:

  • 资源利用率低:IO 密集型任务主要还是数据读取和模型读取 (IO) 的性能对训练速度更具决定性。在这方面使用 GPU 的集群如同「杀鸡用牛刀」,并不会对整体的训练速度产生多少帮助,而且硬件资源得不到充分利用。而如果加大 Batchsize 提高单次前向后向计算占比,也会受到单机 IO 吞吐能力的制约,而且由于模型高度稀疏,模型效果也会受到影响。

那么有没有可以高效调整机器配比,快速支持新硬件的接入,使用 GPU 等高算力的同时还不用担心 IO 瓶颈的方法呢?上面的要求好像很多,其实核心问题就在于硬件的配置,传统的参数服务器对硬件的统一性要求太严格,而现实是单一「兵种」是无法应对大部分「战场」的。如果能同时使用不同的硬件同时参与到训练中,让它们各司其职,发挥各自优势,很多问题就可以迎刃而解了!

为了应对上述问题,飞桨框架 2.0 版本基于工业实践,创新性地推出了大规模稀疏异构参数服务器功能,一举解除了传统参数服务器模式必须严格使用同一种硬件型号 Trainer 节点的枷锁,使训练任务对硬件型号不敏感,即可以同时使用不同的硬件进行混合异构训练,如 CPU、AI 专用芯片(如百度昆仑 XPU)以及不同型号的 GPU 如 V100、P40、K40 等。同时还可以解决大规模稀疏特征模型训练场景下,IO 占比过高导致的芯片资源利用率过低的问题。通过异构参数服务器训练架构,用户可以在硬件异构集群中部署分布式训练任务,例如云服务器集群,实现对不同算力的芯片高效利用,为用户提供更高吞吐、更低资源消耗的训练能力。

图 5:异构参数服务器架构示意图

如之前所述,在传统参数服务器模式下,前向及反向步骤在 Trainer 端完成,参数更新在 Server 端完成。而在异构参数服务器架构中,原先那样粗粒度的任务分工显然不再适用,只有让不同硬件参加到训练任务中,并在自己最擅长的领域工作,才能各显神通。因此飞桨的研发人员在传统的 CPU-Trainer 之外,又部署了一类 Heter-Trainer,并在 Heter-Trainer 上配置有 Service。这样 CPU-Trainer 便将 Heter-Trainer 视为特殊的 Server,从而对 Heter-Trainer 的异构算力不敏感,使 Heter-Trainer 可以混部各类不同型号芯片(例如 GPU 或 XPU 等)。

值得注意的是,异构参数服务器架构并不只是简单的将计算任务拆分。拆分后,异构硬件间的通信代价高的问题也需要解决。为了解决这个问题,飞桨的整个传输通信过程得到了优化。该过程将不会完全依赖于硬件自身的吞吐,而是引入类协程任务调度机制,该机制采用了异步等待和多 Queue 流水线等方式对任务进行灵活调度,避免传输队列阻塞,对任务进行灵活调度,并且还优化了 Heter-Trainer 的吞吐机制,高效的避免传输队列阻塞。

此外,异构参数服务器训练架构在各个硬件设备上还引入了异构存储机制,将模型训练所用到的参数,按照一定层级分别存储到 SSD、内存和显存中,并且支持参数在 SSD、内存、显存之间的快速拷贝,使模型规模不再受限于内存或显存的规格,可以进一步支持更大参数规模的模型训练。

飞桨的异构参数服务器架构不仅可以支持 CPU 机器、GPU 机器和 XPU 机器的混合模式,而且支持全部 CPU-Trainer 或 GPU-Trainer 的那样的传统参数服务器的硬件组合,甚至在 GPU 单类型机器的集群内采用 Heter 模式,可以达到训练提速的效果。

想要了解飞桨异构参数服务器架构使用方法,请访问下方链接。

信息来源:飞桨PaddlePaddle

04

Adobe:没有人比我更懂P图

今年的Adobe Max大会,比以往还要接地气。

除了越来越接近美图秀秀的简单操作,这次的Adobe不仅带来了艺术,还带来了富有生活气息的场景建议:如何更好地在朋友圈装杯?例如,买不起Gucci爱马仕的T恤,没关系。只要掌握它们的纹理,下一秒就是你家的了:

又例如,化身设计大师,鼠标这么一拉,拼贴画素材瞬间变成海岸线别墅,还可带高光阴影的那种:

昔日只能通过论文开源代码手动实现的功能,如今Adobe把它们打包送了出来。那就先来介绍这项技术吧。

这项技术可谓是设计师的福音——让空白2D场景,添加现实中的纹理不用你去设计,不用你专门从素材库里找资料,直接从现实场景中一键导入。

在以前提取图片信息的时候,最多可以提取颜色。现在,不只是颜色,还可以提取当中的材料和纹理。这个小姐姐,就将现实生活中的毛衣变成了院子里的床单的纹理。

这也就是此次技术——Material World。甚至,还可以批量处理不同材料,瞬间将空白变成了极具真实感的场景。

或许,你还注意到,小姐姐在对地面的处理时,用了不同的材料进行叠加合并。值得一提的是,Material World 是一项基于Adobe Sensei服务的web应用,里面部署了AI技术,任何人可在云端中运行这项技术。

而Adobe Sensei服务,是一个可以应用于 Adobe 旗下各款产品(比如Photoshop、Premiere、Illustrator 等软件中)的底层人工智能工具,于2016年正式发布,Adobe发布的神秘AI新技术,大部分由它支持。

视频博主们加了美颜清晰特效一般的Vlog,到底是怎么拍出来的?轮到自己拍视频时,摄像头好歹也几千万像素,结果拍出来的东西就跟P站视频一样,自带马赛克特效。

你的视频 vs 视频博主的视频:

事实上,这并不是像素与分辨率的问题,而是因为视频拍摄的帧数过低,导致变得模糊了。

没关系,Adobe贴心地给你推出了“事后补救”的小工具Sharp Shot (Adobe Sensei支持),哪怕视频像上世纪90年代末的纪录片一样模糊,它也能给你修复过来。原理也很简单,利用深度学习对AI进行训练,对帧数较少的模糊视频进行补帧、或是照片去模糊化。

这一刻,朋友们微妙地原谅了你的录像技术(右边是处理好的):

可以放心地将处理后的Vlog往朋友圈发啦。下面这项技术,是属于设计师的福利时间。

现在的图 vs 甲方需求的图:

半小时?光是让这些房子符合透视原理,就得一个个调上大半天!别生气,Adobe双手给你奉上了超级矢量图工具2D Plus,无论是将房子聚拢/分散、沿海岸线形状透视、还是加上高光阴影,鼠标就能P图:

那么,阴影是不是还需要画上去?

当然不用,Adobe帮你把体力活都干了,阴影角度和大小也完全符合光线要求。

就像作者介绍的:“2D图像中,所有最有用的3D功能需求都在这里了。”半小时一下子变得充裕了起来,甚至还能摸鱼25分钟。

信息来源:量子位

05

70岁Hinton还在努力推翻自己积累了30年的学术成果,他让我知道了什么叫做生命力

在论文中,Capsule被Hinton大神定义为这样一组神经元:其活动向量所表示的是特定实体类型的实例化参数。

他的实验表明,鉴别式训练的多层Capsule系统,在MNIST手写数据集上表现出目前最先进的性能,并且在识别高度重叠数字的效果要远好于CNN。

该论文无疑将是今年12月初NIPS大会的重头戏。

不过,对于这篇论文的预热,Hinton大神可是早有准备。

一个月前,在多伦多接受媒体采访时,Hinton大神断然宣称要放弃反向传播,让整个人工智能从头再造。不明就里的媒体们顿时蒙圈不少。

8月份的时候,Hinton大神还用一场“卷积神经网络都有哪些问题?”的演讲来介绍他手中的Capsule研究,他认为“CNN的特征提取层与次抽样层交叉存取,将相同类型的相邻特征检测器的输出汇集到一起”是大有问题的。

当时的演讲中,Hinton大神可没少提CNN之父Yann LeCun的不同观点。毕竟,当前的CNN一味追求识别率,对于图像内容的“理解”帮助有限。

而要进一步推进人工智能,让它能像人脑一样理解图像内容、构建抽象逻辑,仅仅是认出像素的排序肯定是不够的,必须要找到方法来对其中的内容进行良好的表示……这就意味着新的方法和技术。

而当前的深度学习理论,自从Hinton大神在2007年(先以受限玻尔兹曼机进行训练、再用有监督的反向传播算法进行调优)确立起来后,除了神经网络结构上的小修小改,很多进展都集中在梯度流上。

正如知乎大V“SIY.Z”在《浅析Hinton最近提出的Capsule计划》时所举的例子。 (https://zhuanlan.zhihu.com/p/29435406)

sigmoid会饱和,造成梯度消失。于是有了ReLU。

ReLU负半轴是死区,造成梯度变0。于是有了LeakyReLU,PReLU。

强调梯度和权值分布的稳定性,由此有了ELU,以及较新的SELU。

太深了,梯度传不下去,于是有了highway。

干脆连highway的参数都不要,直接变残差,于是有了ResNet。

强行稳定参数的均值和方差,于是有了BatchNorm。

在梯度流中增加噪声,于是有了 Dropout。

RNN梯度不稳定,于是加几个通路和门控,于是有了LSTM。

LSTM简化一下,有了GRU。

GAN的JS散度有问题,会导致梯度消失或无效,于是有了WGAN。

WGAN对梯度的clip有问题,于是有了WGAN-GP。

而本质上的变革,特别是针对当前CNN所无力解决的动态视觉内容、三维视觉等难题……进行更为基础的研究,或许真有可能另辟蹊径。

这当然是苦力活,Hinton大神亲自操刀的话,成功了会毁掉自己赖以成名的反向传播算法和深度学习理论,失败了则将重蹈爱因斯坦晚年“宇宙常数”的覆辙。

所以,李飞飞对他在这里的勇气大为赞赏:

如今Capsule的论文刚刚出来,深度学习的各路大神并没有贸然对其下评论,深夜中的外媒亦尚未就此发稿,甚至就连技术圈内一向口水不断的Hacker News,今天也是静悄悄地一片。

不过,可以肯定的一点是,一个月后的NIPS大会,Capsule更进一步的效果必定会有所显现。

至于Hinton此举对于深度学习和整个人工智能界的后续影响,包括Yann LeCun在内的各路大神恐怕都不敢冒下结论,咱们还是静等时间来验证Hinton大神的苦心孤诣到底值不值得吧。

这正如Hinton大神在接受吴恩达采访时所说的:

如果你的直觉很准,那你就应该坚持,最终必能有所成就;反过来你直觉不好,那坚不坚持也就无所谓了。反正你从直觉里也找不到坚持它们的理由。

尽管意义不同,Hinton大神此举却让营长想到了同在古稀之年的开尔文勋爵,他1900年那场关于物理学“两朵乌云”的演讲可是“预言”得贼准:

“紫外灾难”让年近不惑的普朗克为量子力学开创了先河,“以太漂移”让刚刚毕业的爱因斯坦开始思考狭义相对论,经典物理学的大厦就此崩塌。

那么,人工智能上空所飘荡的到底是一朵“乌云”呢?还是一个新的时代?让我们拭目以待。

信息来源:新智元

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个开源开放、技术领先、功能完备的产业级深度学习平台,包括飞桨开源平台和飞桨企业版。飞桨开源平台包含核心框架、基础模型库、端到端开发套件与工具组件,持续开源核心能力,为产业、学术、科研创新提供基础底座。飞桨企业版基于飞桨开源平台,针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。

END

已标记关键词 清除标记