2018年5月10日星期四

实时人工智能:微软发布Project Brainwave预览版

编者按:随着各大公司对于数据计算的要求越来越高,实时AI成为了研究者们关注的重点。在美国西雅图举行的微软Build开发者大会上,微软发布了最新的基于FPGA的Project Brainwave预览版。Project Brainwave是一个旨在加速实时AI计算的硬件架构,能够部署在Azure云端以及边缘设备上,帮助用户实现低成本的实时AI计算。本文译自微软人工智能博客"Real-time AI: Microsoft announces preview of Project Brainwave"

本周,在美国西雅图举行的微软Build开发者大会上,微软发布了Project Brainwave预览版,并将其整合到了Azure机器学习服务中。Project Brainwave是一个旨在加速实时AI计算的硬件架构,部署在名为"现场可编程门阵列(Field Programmable Gate Array,简称FPGA)"的英特尔计算机芯片上。与最流行的行业基准相比,Project Brainwave可以将实时AI计算的延迟时间降到最小,并且成本控制在可接受的范围。Project Brainwave预览版的发布将使Azure成为最高效的AI云计算平台,也是让FPGA成为通用型平台的第一步。

Project Brainwave硬件模型

Esri是一家地理信息分析公司,每天需要处理各种来自卫星图像、视频数据流和传感器信号等异构数据。数据的处理需要高强度的密集计算,常常会导致计算延迟。

同时,Esri公司对海量数据实时处理能力的要求也越来越高。例如,公司希望从数千条视频中提取信息,对汽车、自行车、公交车、行人和其它物体进行侦测,以便了解当前的交通状况和异常情况;或者公司希望通过对卫星数据进行实时分析,来侦测受损住宅等各种不同物体。

因此,Esri公司需要借助微软Project Brainwave进行更加高效和低成本的实时AI分析

Project Brainwave预览版能为客户提供超高速图像识别能力,它还可以让用户进行基于AI的实时计算,而不用将任务进行分拆再进行单独计算。目前,Project Brainwave支持深度学习框架TensorFlow,也将支持微软认知工具包。

除了整合到Azure平台,微软还将Project Brainwave推广应用到"边缘设备"上这样用户仍然可以在不联网的情况下利用Project Brainwave获得业界领先的计算速度。不用联网的Brainwave可以被直接嵌入到生产设备中,这样计算不需要每次都在云端运行,哪怕每次只能节省很少的时间和金钱成本,也会形成累积效应,产生巨大的效益。

在必应和Azure上部署FPGA

早在Project Brainwave处于探索阶段时,FPGA就已经不算是什么新鲜事物了,但在此之前从未有人认真考虑过将它用于大规模计算。所以微软的研究团队开始着手验证FPGA用于更贴近实际场景的可行性。

最开始,Project Brainwave团队将这一技术在必应搜索引擎和Azure云中进行落地。

微软高级研究员、Brainwave项目技术负责人Eric Chung表示,必应必须是一项"低延迟"的服务——当用户在必应搜索框中输入搜索查询时,他们希望能够瞬间获得搜索结果。这意味着必应工程师要在不牺牲毫秒级响应速度的前提下不断设法提高搜索结果的质量。而与此同时,搜索引擎数据库中的数据,无论在数量和类型上都是在不断增加的。借助可编程硬件FPGA,团队得以将基于深层神经网络的搜索技术迅速融入到必应中,极大提升了系统返回搜索结果的速度

过去几年间,微软也一直在使用FPGA来加速Azure云计算平台


AI要实时处理海量数据

从借助FPGA实现更高效的计算处理的想法诞生,到Project Brainwave公开预览版的发布,时隔五年的时间。这段时间里,AI革命的全面爆发引发了新的巨大需求:人们希望系统能够处理文档扫描、图像信息搜寻、语音识别和对话翻译等AI任务所需的海量数据

Project Brainwave团队负责人Doug Burger而Project Brainwave刚好能够满足AI计算的需求。其硬件设计可以迅速演进,并在每次改进后能够重新映射到FPGA,满足快速变化中的AI算法要求

与其它类型的计算机芯片相比,FPGA更加灵活,可以根据AI领域的最新发展快速地进行重新编程

随着AI处理的任务越来越复杂(例如分析视频内容等非结构化数据)以及AI算法的复杂度越来越高(例如用于执行诸如"在这些视频中搜索所有关于海滨城市的镜头"等搜索指令),人们对于能够以合理成本快速处理AI任务的系统的需求只会越来越大。

提高流水线检测效率

捷普集团 (Jabil)是全球领先的电子技术解决方案提供商。每天,工人都会在流水线上将成千上万个零部件装配成产品,然后交付给客户。在这个过程中,自动光学检测系统会对这些产品进行扫描,查找出所有潜在的异常情况,随后,系统会将异常的产品送去进行手工检查。高速运转的系统要求手工检查员在几秒钟内就要判定出某件产品是否确实存在缺陷。

为了让AI能够更加快速、准确地监测图像,减少系统错误的异常警报,捷普集团与微软合作,利用微软Project Brainwave来提高AI的计算速度。此外,研究人员还在探索如何利用Project Brainwave更好地预测制造设备需要维护的时间,从而减少停产维修的时间。

从图像分析、搜索引擎到智能制造,人们对实时AI计算的需求正变得越来越多,我们希望微软Project Brainwave能够推动实时AI计算的发展,让AI带给我们更多的可能性。

微信超链接:https://mp.weixin.qq.com/s/bAPiPURZd-YsbV5PbzwpQQ

]]> 原文: https://ift.tt/2I9RQ2X
RSS Feed

机器知心

IFTTT

自适应注意力机制在Image Caption中的应用

本期推荐的论文笔记来自 PaperWeekly 社区用户 @jamiechoi本文主要讨论自适应的注意力机制在 Image Caption 中的应用。作者提出了带有视觉标记的自适应 Attention 模型,在每一个 time step,由模型决定更依赖于图像还是视觉标记。

关于作者:蔡文杰,华南理工大学硕士生,研究方向为Image Caption。

■ 论文 | Knowing When to Look: Adaptive Attention via A Visual Sentinel for Image Captioning

■ 链接 | https://ift.tt/2rwqUnA

■ 源码 | github.com/jiasenlu/AdaptiveAttention

Introduction

目前大多数的基于 Attention 机制的 Image Captioning 模型采用的都是 encoder-decoder 框架。然而在 decode 的时候,decoder 应该对不同的词有不同的 Attention 策略。例如,"the"、"of"等词,或者是跟在"cell"后面的"phone"等组合词,这类词叫做非视觉词(Non-visual Word),更多依赖的是语义信息而不是视觉信息。而且,在生成 caption 的过程中,非视觉词的梯度会误导或者降低视觉信息的有效性

因此,本文提出了带有视觉标记的自适应 Attention 模型(Adative Attention Model with a Visual Sentinel),在每一个 time step,模型决定更依赖于图像还是 Visual Sentinel。其中,visual sentinel 存放了 decoder 已经知道的信息。 

本文的贡献在于:

  • 提出了带有视觉标记的自适应 Attention 模型 

  • 提出了新的 Spatial Attention 机制 

  • 提出了 LSTM 的扩展,在 hidden state 以外加入了一个额外的 Visual Sentinel Vector

Method

Spatial Attention Model 

文章介绍了普通的 encoder-decoder 框架,这里不再赘述。但文章定义了 context vector ct,对于没有 attention 机制的模型,ct 就是图像经过 CNN 后提取出的 feature map,是不变的;而对于有 attention 机制的模型,基于 hidden state,decoder 会关注图像的不同区域,c就是该区域经过 CNN 后提取出的 feature map。

文章对 c的定义如下:

其中 g 是 attention function,V=[v1,...,vk] 代表 k 个区域的图像 feature,ht 是 t 时刻 RNN 的 hidden state。 由此可以得到 k 个区域的 attention 分布 αt:

这里把 V 与 ht 相加,而有些论文则使用一个双线性矩阵来连接它们。

其中是所有元素为 1 的向量,目的是让相乘得到 k*k 大小的矩阵。最终本文的 ct 为:

show, attend and tell [1] 使用 ht−1 的做法不同,本文使用的是 ht。结构如下:

作者认为 ct 可以看作 ht 的残差连接,可以在预测下一个词时降低不确定性或者提供情报。(不是应该做一个实验验证使用 ht 和 ht−1 的差别?)并且发现,这种 Spatial Attention 方式比其他模型表现更好。

Adaptive Attention Model 

decoder 存储了长时和短时的视觉和语义信息,而 Visual Sentinel st 作为从里面提取的一个新的元件,用来扩展上述的 Spatial Attention Model,就得到了 Adaptive Attention Model。 

具体的扩展方式就是在原有的 LSTM 基础上加了两个公式:

其中 xt 是 LSTM 的输入,mt 是 memory cell(有些论文里用 ct 表示)。 

这里的 gt 叫 sentinel gate,公式形式类似于 LSTM 中的 input gate, forget gate, output gate,决定了模型到底关注图像还是 visual sentinel;而 st 公式的构造与 LSTM 中的 ht=ot⊙tanh(ct) 类似。

Adaptive Attention Model 中的 Context Vector:

βt∈[0,1] 可以视为真正意义上的 sentinel gate,控制模型关注 visual sentinel 和 ct 的程度。与此同时,Spatial Attention 部分 k 个区域的 attention 分布 αt 也被扩展成了 αt^,做法是在 zt 后面拼接上一个元素:

扩展后的 αt^ 有 k+1 个元素,而 βt=αt^[k+1]。(CVPR 和 arXiv 版本的原文都写的是 βt=αt[k+1],我在 Github 上问了作者,这确实是个笔误 [2])。

这里的 Wg 与中的 Wg 是相同的(为什么这样做?Wh 也一样吗?作者在这里没有提到,在后续论文 [3] 里的公式 (9) 提到了)。

上述公式可以简化为:

最终单词的概率分布

具体架构如下:

Implementation Details

文章选择了 ResNet 的最后一层卷积层的特征来表示图像,维度是 2048x7x7,并使用来表示 k 个局部图像特征,而全局图像特征则是局部特征的平均: 

局部图像特征需要经过转换:

最终全局图像特征将与 word embedding 拼接在一起成为 LSTM 的输入:xt=[wt;vg] 局部图像特征则用在了 attention 部分。

Experiment

Table 1 在 test splits 上对比了在 Flickr30k 和 MSCOCO 数据集上模型与其他模型的表现,可以看到,模型的 Spatial Attention 部分就已经比其他模型表现好了,而加入了 Adaptive Attention 部分以后表现更加出色。

Table 2 在 COCO server 上对比了模型与其他模型的表现可以看到,Adaptive Attention 模型(emsemble后)的表现是当时 SOTA 的结果。

Fig 4 是 Spatial Attention的权重 α 的可视化结果,前两列是成功的样本,最后一列是失败的样本。模型进行 attention 的区域基本都是合理的,只是可能对一些物体的材质判断失误。

Fig 5 主要是 sentinel gate 1−β 的可视化,对于视觉词,模型给出的概率较大,即更倾向于关注图像特征 ct,对于非视觉词的概率则比较小。同时,同一个词在不同的上下文中的概率也是不一样的。如"a",在一开始的概率较高,因为开始时没有任何的语义信息可以依赖、以及需要确定单复数。

Fig 6 对 COCO 和 Flickr30k 中词典中的词被认为是视觉词的平均概率进行了排序,来看看模型能否分辨出视觉词与非视觉词,两个数据集间的相关性为 0.483。其中:

1. 对于一些实际上是视觉词,但是与其他词有很大关联性的词,模型也会把它视为非视觉词,如"phone"一般都跟在"cell"后面;

2. 不同数据集上不同的词的概率不一样,如"UNK",可能是由于训练数据分布的不同;

3. 对于一些有相近意义的同源词,如"crossing", "cross", "crossed",他们的概率却相差很大。(为什么?) 模型没有依赖外部的语料信息,完全是自动地发现这些趋势。

Fig 11 显示了使用弱监督方法生成的 bounding box 与真实 bounding box 的对比。本文是第一个使用这种方法来评估 image caption 的 attention 效果的

具体生成方法是,对于某个单词而言,先用 NLTK 将其映射到大类上,如"boy", "girl"映射到 people。然后图像中 attention weight 小于阈值(每个单词的阈值都不一样)的部分就会被分割出来,取分割后的最大连通分量来生成 bounding box。

并计算生成的和真实 bounding box 的 IOU (intersection over union),对于 spatial attention 和 adaptive attention 模型,其平均定位准确率分别为 0.362 和 0.373。说明了,知道何时关注图像,也能让模型更清楚到底要去关注图像的哪个部分

Fig 7 显示了 top 45 个 COCO 数据集中出现最频繁的词的定位准确性。对于一些体积较小的物体,其准确率是比较低的,这是因为 attention map 是从 7x7 的 feature map 中直接放大的,而 7x7 的 feature map 并不能很好地包含这些小物体的信息。

Fig 8 显示了单词"of"在 spatial attention 和 adaptive attention 模型中的 attention map。如果没有 visual sentinel,非视觉词如"of"的 attention 就会高度集中在图像的边缘部分,可能会在反向传播时形成噪声影响训练。

总结

本文提出了 Adaptive Attention 机制,其模型公式都非常简单,Adaptive Attention 部分增加的几个变量也非常简洁,但却对模型的表现有了很大的提升。文章进行的详尽的实验又进一步验证了 Adaptive Attention 的有效性,可谓非常巧妙。

相关链接

[1]. Show, Attend and Tell: Neural Image Caption Generation with Visual Attention

https://ift.tt/2oceFcF

[2]. 笔误

https://ift.tt/2rwuBKi

[3]. Neural Baby Talk

https://ift.tt/2K6qrzG

]]> 原文: https://ift.tt/2rx2TNf
RSS Feed

机器知心

IFTTT

2018年5月9日星期三

开放协同、共建生态 推动AI落地应用 ——“智涌钱塘”2018AI Cloud生态国际峰会在杭举行

3月30日,"智涌钱塘"2018AI Cloud生态国际峰会在G20主会场·杭州国际博览中心隆重举行。

此次峰会由杭州市政府指导,杭州海康威视数字技术股份有限公司(以下简称海康威视)主办。来自全球的2000余名国内外重量级专家、政府机构和产业界人士,相聚钱塘江畔,见证《智涌钱塘·杭州宣言》的发布和AI Cloud生态的启动,深入探讨人工智能在各行各业的应用和发展趋势,带来一场"智能春潮"蓬勃涌动的产业盛会。

杭州市副市长陈新华出席峰会并致辞。中国工程院原常务副院长、院士潘云鹤,海康威视总裁胡扬忠,海康威视高级副总裁毕会娟、徐习明作主题演讲。来自知名市场研究公司IHS Markit 、微软、Intel、NVIDIA、滴滴出行、浪潮集团、新华三集团、西部数据、希捷科技、华尊科技、安恒信息等200余家知名企业的业界嘉宾出席峰会。

会场聚焦:四大看点 引领智能浪潮

此次峰会主题为"智涌钱塘",重点突出两个方面,一个是"智",另一个是"钱塘"。"智"主要是指这次峰会的聚焦点为人工智能,通过各行各业的合作和共建生态,大力推动人工智能的落地应用和产业化发展。钱塘,代指峰会的举办地杭州。"智涌钱塘",逐浪智能潮,弄潮儿精神如同浩浩荡荡的钱塘江水,奔流不息,一个充满智慧、智能的未来已然开启。

峰会的四大核心看点均围绕"智涌"展开。智涌·观象,峰会围绕AI发展趋势进行观点碰撞,洞见AI发展之势;智涌·弄潮,深度聚焦AI领域,掀起一场AI在各行各业应用的产业浪潮;智涌·共筑,峰会上,全球AI产业领军企业携手共建AI生态圈,共筑AI产业生态;智涌·未来,协力共促AI产业的蓬勃发展,共建智慧未来。

峰会聚焦人工智能,设置了1场主论坛、5场分论坛,分别为公共安全高峰论坛、公共服务高峰论坛、商业高峰论坛、金融高峰论坛、海外高峰论坛。大会还开设了人工智能产品和技术展示区,重点展示智能物联网AI Cloud架构及其在多个行业领域的智能应用。

嘉宾建言:开放协同共建AICloud生态

人工智能被认为是又一次将对人类社会产生颠覆式影响的技术。如何共建AI产业生态体系,加速人工智能落地应用,成为本次峰会探讨的热点话题。

中国工程院原常务副院长、院士潘云鹤在演讲中提出,随着智慧城市、智慧医疗、无人驾驶等社会新需求的爆发,以及互联网、移动计算、云计算、物联网等信息环境的巨变,人工智能正在走向2.0时代,大数据智能、群体智能、跨媒体智能、人机混合增强智能、自主智能系统是新一代人工智能的发展方向。

"大量的应用需求,正在以碎片化的方式涌现。AI落地应用面临数据、算力、应用三大因素制约,要加速AI产业落地,唯有各方开放协同,共建AI产业生态体系。"海康威视总裁胡扬忠表示,为让更多合作伙伴能参与到AI Cloud生态的共建、共享中,海康威视将全面开放,包括开放AI Cloud的软件平台、提供开放的训练系统、提供AI服务能力、提供数据标注和数据共享服务等。

海康威视高级副总裁毕会娟博士对AI Cloud进行了详细阐述。毕会娟表示,AI Cloud架构将实现四大能力和一个目标:实现AI资源的可调度,让AI像电能,成为信息系统的可调度资源;实现数据的按需汇聚,让数据像水源,受控地流向需要的地方;实现应用的场景化,让应用像阳光,照亮业务场景的每个角落;实现运维的一体化,让运维像空气,不刷存在感却无处不在。与各界合作伙伴一起,以建立可成长的生态为目标,让生态像大树,扎根合作沃土不断成长。

海康威视高级副总裁徐习明指出,AI Cloud在各行各业的应用,既能实现"眼明手快,敏捷反应"的效果,也能满足"谋定后动,以智驭行"的要求。通过AI Cloud生态合作伙伴的协同努力,AI Cloud正在为社会带来积极改变:例如,为城市带来平安守护,为交通带来安全畅通,为商业带来精准高效,为能源带来安全生产,为金融带来贴心风控等等。

生态启动:发布《杭州宣言》共创智能未来

为进一步满足不同行业、不同用户对人工智能的应用需求,推动人工智能的蓬勃发展,峰会发布了《杭州宣言》,呼吁全球科技界、产业界紧密合作,共创智能未来。

《宣言》倡议:创新AI技术,推进数字经济与实体经济的深度融合,提升实体经济的创新力和新动力,形成更广泛的经济发展新形态;共建AI Cloud生态,推动产业协同发展,让人工智能发挥更大效能,拓展产业经济增长新空间。健全法律法规,积极推动形成人工智能产业技术标准和行业规范,实现AI与人类文明的和谐发展。

会上,AI产业知名企业海康威视、微软、Intel、NVIDIA、滴滴出行、浪潮集团、新华三集团、西部数据、希捷科技、华尊科技、安恒信息携手率先启动了AI Cloud生态,开启共建、共享的生态圈建设。AICloud生态致力于为合作伙伴搭建合作共赢的舞台,将以开放的姿态迎接更多合作伙伴的加入,共享AI成果,携手推动AI的落地应用。

政府声音:"智汇杭州、智涌钱塘" 共商共建AI生态圈

杭州市副市长陈新华在致辞中指出:当前,新一代科技革命和产业变革蓬勃兴起,云计算大数据、物联网等前沿技术广泛渗透,特别是新一代人工智能已从技术变革跨入创新应用的重要窗口,成为国家、地区抢占科技制高点、提升综合竞争力的核心驱动。杭州围绕人工智能企业培育、技术研发、产业化应用等进行了一系列探索实践。在数据资源、实际应用、产业生态和人才集聚等方面都具备了良好基础。

站在新技术、新产业、新经济的风口,杭州正在以人工智能为核心,加快打造信息经济升级版,努力建设国内外人工智能产业高地。未来将重点抓好"人工智能研发体系、应用体系、生态体系、保障体系"四大体系建设。

杭州市经信委主任夏积亮在接受采访时提到:近年来,人工智能技术发展非常迅猛,其中杭州的企业尤为明显。我们诞生了很多人工智能相关的优秀企业。他们的产品和技术影响着各个行业的变革,提供了更先进的生产力和更安全的城市环境。杭州的优势在于既有像海康威视这样的人工智能龙头企业,也涌现了许多创新企业,慢慢地就会形成完整的生态产业链。

潮头推引,智涌而至。智涌钱塘,蕴含的是一个更美好的钱塘,一个更智慧、智能的未来。就像"云栖大会"一样,我们希望 "智涌钱塘"在未来也成为杭州的一张重要的名片。今年的峰会只是个起步。人工智能领域已经成为杭州整体产业格局中非常重要的一部分,后续我们会进一步加大人工智能行业发展的支持力度,争取有越来越多的人工智能相关企业能够在杭州落根、生长,并鼓励更多的合作企业加入这个生态之中。

]]> 原文: https://ift.tt/2ryk0yg
RSS Feed

机器知心

IFTTT

多核计算芯片领域国际权威Kunle Olukotun教授:解读用摩尔定律扩展机器学习性能

文章授权转载自:鲲云科技。

4月18日,由鲲云科技协办的2018全球人工智能应用创新峰会在深圳落下帷幕,一场聚焦于人工智能落地应用的高端峰会暂告一段落。而峰会所传达的最新科研成果和前沿思想却在持续发酵。


峰会上,鲲云邀请到了来自全球人工智能各个领域的权威大咖进行个人演讲,分享他们的最新观点。本文所分享的《摩尔定律机器学习的性能提升》,便是由其中一位大咖——Kunle Olukotun教授带来的。

Kunle Olukotun是斯坦福大学教授,Afara芯片创始人,UltraSPARC T1 芯片架构师。是多核计算芯片领域国际权威。

Kunle Olukotun教授


在他的演讲中,Kunle Olukotun教授介绍了DAWN(数据分析的下一步)项目。 其中包括一系列用于开发机器学习加速器的算法,方法和工具。这些加速器可由具有特定领域知识但没有硬件或机器学习背景的人员开发。通过忽略多核锁定; 低精度算术;并行编程语言和设计空间探索,该项目帮助提供高性能,高生产力和高效率的机器学习实现。

以下是Kunle Olukotun教授的演讲实录,我们进行了不改变原意的整理:

机器学习的兴起

最近在影像识别、自然语言处理的进步,都是由机器学习所驱动的。这些应用已经在整个社会产生了非常重大的影响,我们觉得未来可能会出现自动驾驶的汽车,另外有一些更个性化的药物,比如根据基因序列产生出来的。它的药物作用是专门为你的基因所创造出来的。还可以进行医疗的诊断和预测。预测的质量有可能比医生预测的质量更高,所以机器学习有非常大的潜力。

开发高质量的机器学习应用,非常具有挑战性。前景非常好,但要开发应用程序却非常具有挑战性。这需要我们有深入的机器学习的知识、定制的工具以及这些要素如何组合以实现高性能的系统。


DAWN 提案

我们研究的项目包括什么?只要有数据以及某一个领域专业的知识,我们可以使任何人建立起自己的产品级机器学习产品。这也意味着这样的人不需要有机器学习方面博士学位,也没有必要成为一个DB系统的专家,更不需要理解最新的硬件。如果不了解最新硬件,不具备这方面的情况下,机器学习可以怎么样做呢?


20世纪80年代的机器学习

机器学习在20世纪80年代,这里显示的是例如影像识别或者自然语言处理任务的准确度以及它跟你对于机器学习的算法所提供的数据规模的关系。

80年代,当我们第一次讨论机器学习时,大家知道怎么样建立起一个多层神经网络。那个时代,一个普通的算法表现反倒更好,机器学习表现没有那么好。因为机器学习需要更多计算、更加复杂的模型。当然,机器学习有了这些之后,就能超过传统的算法。这就是为什么现在对于机器学习有那么多高期望。


软件 1.0 vs 软件 2.0

换句话说,在说到软件2.0,就是实现的一个概念,软件1.0大家都懂,先写代码,写完之后还要理解某一个领域,再把这个领域的专业知识进行应用。这样就可以做一个算法出来,然后可以把这个算法放到一个系统中。但软件2.0就不一样了。2.0你要做一个模型,就是一个神经网络,然后要把一些数据放到一个神经网络的架构中。软件2.0中最重要的一点是训练的数据量和能够训练一个非常复杂的神经网络的能力。这是要看计算能力了。训练数据就是编程2.0的关键。


训练数据的机遇和挑战

我现在想跟大家说一下训练数据。我们经常说训练数据就是新时代的石油。如果你想要做一些全新的基于神经网络的系统,就需要训练数据,也必须要标签。你要知道这是一个猫,那是一只狗,那是一部车。如果这是很简单的贴标签,那网上随便谁都可以做。但如果要看一个非常复杂的图像,比如诊断一个人有没有患癌,就需要一个专家。


呼吸管主要想法

这种训练数据的获得就更加难。传统训练的另外一个问题是,标签是静态的。但其实你要解决的问题不同,可能把这个标签改变了。但这个训练数据不会进行进化。我们做model时就在想怎么样才能更加容易更加高层次的生成训练数据,让我们更加容易的创造更多的训练数据。我们叫做弱监督,不再给很多标签,而是有更多的噪音输入,给它们进行训练。

整个系统看起来像是这样的,用一个标签功能。比如你看到这个化学物品,可能这个人得了那种病,就可以生成一系列标签功能,再把它跟数据合成。这样就可以去噪音,可以知道哪个标签是比较好用的,哪个标签成功率是90%,哪个标签只有50%的正确率。在基于有概率的标签,就能够做一个噪声感知判别模型

我们的目标是希望能够用这个创建应用程序。比如这是一个知识库,我们想做的事情是让这个神经网络的训练变得更加容易,希望让这个训练的数据更加容易。解决方案就是创造另外一个全新的神经网络模型。如果要让我们更加容易的做这个神经网络,让软件2.0做得更加容易,要做更多神经网络的训练,要做更多计算。


机器学习受计算限制

这个机器训练模型是受到计算能力所限制的。百度的工程师说可能需要让计算性能改善100倍。我们怎么做到?比如这个微处理器的改善,这是在过去40年微处理器改善的趋势,我的研究团队参加了这个研究。在这里会看到最顶层的是摩尔定律。每隔18月或者2年处理器性能会翻一番。但这个单线程的性能已经达到一个顶点,主要是因为功耗的问题,因为功耗是有限制的。这就限制了我们进行计算的能力。

当然,这也就影响了随之的表现以及影响了整个行业。这个行业就在一个芯片上多放一些核,就能有效使用能耗,不需要一个芯片把所有的事都做了。我也参与到这个多核的技术研发中。说到能耗和性能时,可以说这个能耗是效率乘性能就等于整个能耗。你就会知道功率是固定的,但你想要做的事情是希望它的性能可以改善,性能改善就可以训练更加复杂的神经网络的模型。


每年机器学习Arxiv论文


但问题是软件的算法也没有在原地踏步。这就给我们看到Arxiv的论文,在过去十几年,关于机器学习的论文的增长,它的增长是比摩尔定律更快。我们看到有多新的想法不断创造出来,但是我们没有办法去执行这些好的想法。

要懂执行这些算法的硬件,我们需要的时间更加长,它比软件算法的改善需要的时间更长。你的Arxiv设计时间大概需要两年。运用在Arxiv的想法在它做完时就已经过时了,因为设计时间那么长。

所以我们必须找一个更加灵活的方法解决这个问题。我们到现在还不知道到底是要让这个通用的机器设计怎么进行设计,而且现在的机器视觉想做的东西可能跟自然语言不一样,跟决策也不一样。比如商业决策或者其他地方的决策,也是不一样的。我们当然想要加快机器学习的速度,希望它们至少能够增加100倍。另外我们也希望让它每瓦特的性能提高,让我们可以在TB甚至PB上的大数据用实时/交互式机器学习。我们也可以开发一个神经架构。


关键问题和方法

现在最重要最核心的问题是怎么样在得到每一瓦类ASIC性能同时又能得到处理器一般的灵活性。这看起来是互相矛盾的,但我觉得有解决方法。我们必须要同时改善算法、编程语言、编译器和硬件架构。

硬件感知机器学习算法可以改善效率,旧的计算模型也是前人开发出来的,他们要决定人来开发算法,计算是确定性的,因为这个人必须要知道到底怎么样去进行调试。但在软件2.0应用的底层模型是基于神经网络的,他们是根据概率的机器模型,是由数据进行训练的。而且技术很有意思,它们不需要是确定的,也不需要永远都是100%正确的,只需要在统计学上正确就可以了。既然它只需要统计学上正确,那我们有很多机会来改善它的性能,可以使用基础性的计算模型来改善。

方法一:硬件感知机器学习算法,可显著提高效率


现在说说用什么样的方法、算法做这个模型。它是改善或者最小化一个损失模型或者所谓的Loss function。我们有很多数据或者训练的例子,可能有数以十亿计的数据,其中有很多不同的机器与学习的方法,能够做分类或者深度学习等等。我们最重要的进行优化的方法是大家可能都熟悉的随机梯度下降。我们看着一个例子,就可以估计渐变。反过来,也可以看到某一个模型点,然后就可以推到一个训练集的数据点。有很多次迭代,最终得到最优化的模型,可以通过非常小的程序迭代来进行改善。

这个迭代的机器学习是有两种效率需要看。


  1. 统计学效率,我们到底需要做多少次迭代才能得到最高质量的训练结果
  2. 硬件效率,每次迭代需要多长时间。我们进行训练的总时间,是越低越好、越少越好,但我们需要进行一个取舍和衡量。



我们是不是要改善一个硬件效率,让统计效率稍微低一点。随机梯度下降法的核心是可能有数十亿个小的步骤。你可以问一个问题,我们能不能够并行做一个事情。这看起来是一个顺序的算法,但可以并行做。怎么样并行做?我在教我的学生时,你在放你的数据时,必须要锁了它,所以做一个已经编码的SGD。但锁了之后发现它做得没有那么好,因为加了更多处理器时会变得更加慢。

另外一件事情是低精度。低精度使用的能量能源会低了,另外存储的内容也会下降。也能够把你所需要的带宽尽量降低。既然你可以同时并行的处理计算更多信息。比如有8字节数据而不是16字节或者32字节的数据,也能增加吞吐量。这是我们经常要做的,比如在TPU、FPGA都在用。它最大的问题是准确性会降低。刚才说要做判断,低准确性是可以的。我们以前觉得训练至少需要16位的准确性。但我们做了一个高准确率低精度,我们能够随着更接近最佳值时把它的渐变变得更加小,我们在逐渐靠近中心。

方法二:编写一个机器学习程序并在所有这些体系结构上高效运行



加速器上可以有更好的效率,我们把机器学习的算法映射到加速器上,可以看到这些机构,它们也有一个编程模式。比如说有集群信息、GPU、FPGA。我们有一个算法,如果想进行有效的训练,需要在硬件的架构上进行实现。我们对于这个算法的描述以及有效的执行之间,是有一条鸿沟的。

因此,我们可不可以编写一个机器学习程序,它能够在这些体系结构上都高效运用。这样就可以填补这个鸿沟了。我们把这个叫做适定于特定情况的语言。现在有AI的应用,把不同领域的语言结合起来,他们专注于这个应用不同的组成部分。比如有一个比较稠密或者稀疏的算法,还有算法中的关系。比如你的重点是不是图像的算法。

总的来说,有各个不同领域的语言,把它结合起来,你怎么样把它组合起来。我们可以使用一个Delite DSL框架,可以在不同领域进行应用。我们有一个Delite DSL框架,把它叫做OptiML。这里有一些绿点,我们希望把它们分成群,有蓝色的X。首先把每一个样本分配到最近的平均值,计算到当前平均值的距离。将每一个群集移动到分配给他们的点的平均值。在这里有一个高层次的描述,可以在多核集群GPU上进行应用,甚至是FPGA。

我们看一下TensorFlow,也是注重于机器学习的,也使用了很多OptiML中使用的想法,它也是高性能适用于不同领域的语言。这里有一个高度抽象化,它比TensorFlow做得更好,而且同样给出描述。我们需要以这个领域为主的语言,就意味着需要不同的架构,所以就是Delite。任何人想开发以特定领域为基础的语言,我们希望这个工作变得更加容易。我们在这当中有一个嵌入在Scala中的DSL和IR。

除此之外,我们在继续改善机器学习,我们看到现在在做什么事情,也要看未来怎么做。怎么使用比较低的精度,稀疏性也是比较有意思的,很多开发者在关注稀疏新的神经网络模型。我们想要这个东西是比较灵活性的,加速性也是可编程的。这是为什么我们在用FPGA,这个架构现在受到越来越多的注意力。

对于分层控制也一样,在控制模板中也定义了哪些程序是要有加速器加速的,所以必须有加速器的范围。另外也需要有方法进行嵌套,怎么样进行合适的嵌套。最终用Spatial语言写了SGD,我们有自定义语言做加速器范围、内存分配,非常明确的内存传输方法和梯度计算。这是非常高层级的,让开发者能很容易的进行定义。

你们可以拿这个,用这个再运行到深度学习,比如TensorFlow,可以用这个模型转化成Spatial语言写的代码。用这个方法做卷积,用了一个流水线缓冲。在做的时候可以自动进行主动学习,他们可以知道怎么样进行选择,来平衡流水线。同时也能够选择PC的大小,以平衡储存器和带宽,也会为很多FPGA的带宽生成代码,也可以看到初步结果显示至少比人工生成的资料库DNAVO效果更加好。

现在的问题是FPGA总的表现怎么样,这张图给大家看到了,在不同的芯片中,全部把它们标准化成28纳米,CPU在左边,能耗效率是1-10。专用的硬件是右边,有效率大概是1000-10000,CPU是最灵活和最能够编译的,专用的硬件是不可以进行编码,但我们会发现专用的硬件比一个GPU的效率高1000倍。GPU比CPU大概好10倍。

但我们看看能不能够在维持FPGA的灵活性的方法,但让编码性更加靠近CPU,能耗更加靠近GPU和FPGA。这就是一个变形模式的可重构架构,这是一个空间表示,可以关注到这个架构,以跟FPGA相似的方式进行理解。这里有PCU和PMU,模式记忆单元和模式计算单元。一个是更看带宽的,带宽能以不同方法配置满足这个程序的需要。另外可以把它们组合到一起来满足你们所需要的空间运用。

我们做了这个之后,如果跟25纳米的这个比较一下,它的性能能够改善95倍,每瓦的能耗能改善77倍。但我们能做很多事,这要看架构到底怎么做,它看起来是怎么样的,怎么样进行一个平衡。性能和能耗的取舍怎么样,还有可编程性的取舍。这是我们最关注的东西和我们现在在做的事。我们非常希望软件定义的硬件架构,能够更加节省能耗,同时也能够更加可编程,比FPGA的表现更加好一些。

总 结  

我总结一下,我们的确觉得能一石二鸟,什么都能有,功率能做得很好,性能做得好,可编程性也非常高,但需要做全栈的方法,要综合整合的方法做,需要算法,比如Hogwild和HALP,在语言和编译器方面也需要进行改善,让它们更好的更有效的进行执行。原有的语言是不够的,需要高层级专门面向加速器的抽象语言,才能更好的理解这个域相关的语言和我们所需要的代表加速器的语言。我们需要一个中间的形式,就好象Spatial。


]]> 原文: https://ift.tt/2KN7wLc
RSS Feed

机器知心

IFTTT

M2 模型杀回 Coding 和 Agent 领域,MiniMax 想要「普惠智能」-InfoQ每周精要No.900

「每周精要」 NO. 900 2025/11/01 头条 HEADLINE M2 模型杀回 Coding 和 Agent 领域,MiniMax 想要「普惠智能」 精选 SELECTED a16z 将 3000 万开发者标价 3 万亿 网友:几个初创公司 + 大模型就...