选自medium
作者:Max Grigorev
参与:Nurhachu Null、Chita
当下的人工智能发展到了哪一步?未来又会怎样发展?本文作者对过去几年的 AI 发展进行了梳理总结,并对未来的 AI 发展进行了展望。
过去一年,关于人工智能的事件、发现和发展比比皆是。很难从这些嘈杂的环境里分辨出关于 AI 的真实信号,即便可以,很多人也不知道那些信号表达的是什么信息。因此,我将尽力提炼过去一年里人工智能大环境中的一些模式来让你明确这一点。甚至,我们会在不久的将来见证其中的一些趋势。
孔子曾说:「知其不可而为之。」他真是个智者埃
你从图中发现猫了吗?
别误会,本文只是一片评论类文章。我不会全面记录 AI 2018 年的成就,只是概括其中一些趋势。而且我的描述是围绕美国展开的,因为我不太了解其他国家发生的事,比如中国。本文的目标读者包括工程师、企业家以及技术支持者。
算法
算法篇主要由深度神经网络主导。当然,你也会零零落落地听到有人部署了「经典的」机器学习模型(如梯度提升树或者多臂老虎机),并且声称这是每个人唯一需要的东西。也有一些质疑说深度学习正在做濒死挣扎。甚至还有顶尖的研究者也在质疑一些深度神经网络架构的有效性和鲁棒性。但是,无论你喜不喜欢,深度神经网络无处不在:在自动驾驶中,自然语言处理系统中,机器人中——你可以这么说。深度神经网络中没有能够与自然语言处理、生成对抗网络以及深度强化学习匹敌的进展。
深度 NLP:BERT等
虽然在 2018 年之前就有一些突破性研究将深度神经网络用于文本(如 word2vec,GLOVE 和基于LSTM的模型),但它们忽略了一个关键的概念:迁移学习。即在大规模的公开数据集上训练好一个模型,然后在你正在使用的数据集上对其进行「微调」。在计算机视觉中,用著名的 ImageNet 数据集上发现的模式来解决特定问题通常是解决方案的一部分。
问题在于,用于迁移学习的技术并不真正适用于自然语言处理问题。从某种意义上讲,像 word2vec 这样预训练的嵌入就起了这个作用,但是它们只在单个词汇上起作用,并不能捕获到语言的高级结构。
然而,在 2018 年,情况有所改变。语境化嵌入 ELMo 成为了自然语言处理中改进迁移学习的重要第一步。ULMFiT 则更进一步:不满意嵌入的语义捕获能力,它的作者提出了为整个模型进行迁移学习的方法。
但是最有趣的进展肯定是 BERT 的引入。通过让语言模型从英文维基百科的所有文章集合中学习,BERT 团队在 11 项自然语言处理任务中达到了当前最先进的结果——了不起!而且,BERT 的代码和预训练模型都发布在网上了——所以你可以将这项突破用于自己的问题中。
GAN 的很多方面
CPU 的速度不再呈指数增长了,但是关于生成对抗网络的学术论文却在持续增加。生成对抗网络一直是学术界的宠儿。尽管它的实际应用似乎很少,并且在 2018 年也鲜有变化。但是生成对抗网络还是有着待实现的惊人潜力。
出现了一种新的方法,就是逐步增加生成对抗网络:让生成器在整个训练过程中持续增加输出的分辨率。使用该方法的一篇更加令人印象深刻的论文是使用风格迁移技术来生成逼真的照片。请告诉我,下面的这些照片有多逼真?
这些照片中哪张是真人?答案是一张都没有。
GAN 是如何工作的呢?为何 GAN 会起作用?我们目前还没有深入的了解,但是已经有人迈出了重要的步伐:MIT 的一个团队对这个问题做了高质量的研究。
另一个有趣的进展就是 Adversarial Patch。虽然技术上来说它不是 GAN,但它使用黑盒(基本来说,就是不看神经网络的内部状态)和白盒的方法来制作一个「补豆,这个补丁能够欺骗基于卷积神经网络的分类器。这是一个重要的结果:它能让我们更好地理解深度神经网络的工作原理,以及认识到我们距离实现具有人类感知级别的 AI 还有多远。
你很容易分清楚烤面包机和香蕉,但人工智能还不行。
我们需要强化
自从 AlphaGo 在 2016 年战胜李世石之后,强化学习就成了一个热点。人工智能已经主宰了最后的「经典」游戏,还有什么可让它来征服呢?也许,剩下的其它所有游戏!
在训练的时候,强化学习依靠的是「激励」信号,这是对它上一次尝试动作的打分。与现实生活相反,计算机游戏提供了一个自然的环境,其中这种信号很容易获得。因此强化学习研究者把所有的注意力都给了教人工智能如何玩雅达利游戏上。
谈到 DeepMind,他们的新创造 AlphaStar 又制造了一个大新闻。这个新模型击败了一名星际争霸 II 的顶级玩家。星际争霸比围棋和象棋复杂得多,与绝大多数棋类游戏不同,它有巨大的动作空间和隐藏在玩家身上的重要信息。这场胜利对整个领域而言都是一次巨大的飞跃。
强化学习领域的另一个重量级玩家OpenAI也没闲着。他们的系统 OpenAI Five 在 8 月击败了一个领先 99.95% 玩家的 Dota 2 团队,一战成名,要知道 Dota 2 是一款非常复杂的电子游戏。
虽然 OpenAI 花了这么多注意力在电子游戏上,但他们并没忽略强化学习的一个潜在的实际应用:机器人。在现实世界中,人给予机器人的反馈非常稀少,并且创造这种反馈也很昂贵:你需要人来照看你的 R2D2,不过 OpenAI 也在尝试着迈出第一步。你会需要上百万的数据点。为了弥补这种差距,最新的一种趋势是在把机器人放到真实世界之前,先学习模拟一个环境然后并行运行大量场景来教机器人学习一些基本技巧。OpenAI 和谷歌都在使用这种方法。
重大突破:Deepfakes
Deepfakes 是一些图片或者视频,上面显示某公众人物说一些从未说过的话或者做一些从未做过的事。它们是通过在大量的镜头数据上针对某个目标人物训练一个 GAN 来创建的,然后使用期望的动作来生成新的媒体文件。2018 年 1 月发布的一款桌面应用 FakeApp 允许任何一个不具备计算机科学知识的人只需要一台电脑就可以创建 deepfakes。尽管很容易发现它生成的视频是假的,但这项技术已经走得很远了。
基础框架
TensorFlow vs Pytorch
我们已经有很多深度学习框架了。这个领域很广阔,这种多样性在表面看来也是说得通的。但实际上,最近大多数人不是使用 TensorFlow 就是在使用 Pytorch。如果你和 SRE 工程师(网站可靠性工程师)一样,关心的是可靠性、易于部署以及模型的重载,那你很有可能会选择 TensorFlow。如果你在写研究论文,并且没有在 Google 工作——你很有可能使用 PyTorch。
机器学习:一种随处可见的服务
过去一年里,我们见证了更多的人工智能解决方案被打包成 API,供没有斯坦福大学机器学习博士学位的软件工程师使用。Google Cloud 和 Azure 都已经改进了旧服务并添加了新服务。AWS 机器学习服务列表也开始看起来有点吓人了。
AWS 很快就需要 2 级层次结构来展示它们的服务了。
尽管这种狂热已经冷却了一点点,但是多家初创公司已经开始放手一搏了。大家都在承诺模型训练的速度、调用过程的易用性以及惊人的性能。仅需要输入你的信用卡账号,上传你的数据,给模型一些训练或者微调的时间,调用一下 REST(或者,对于更具前瞻性的初创公司而言是 GraphQL 类型)API,你就可以在不用弄清楚到底发生了什么的情况下成为人工智能的主人。
既然已经有这么多的选择,为啥还会有人煞费苦心地自己去创建一个模型和基础框架呢?事实上,貌似拿来即用的 MLaaS 产品在 80% 的情况中是可以很好地工作的。而剩下 20% 的情况则没那么好运了:你非但无法实际选择模型,甚至连超参数都不能控制。或者你需要在云端之外进行推理,通常也是做不到的。
重大突破:AutoML 和 AI Hub
2018 年推出的两款非常有趣的服务都是由 Google 发布的。
第一个,Google Cloud 的 AutOML 是一个定制的自然语言处理和计算机视觉模型训练产品的集合。这意味着什么呢?AutoML 的设计者通过自动微调几个预训练模型就能进行模型定制化,然后选择一个性能最好的。这意味着你不再需要因为自己定制模型而烦恼。当然,如果你想做一些真的新颖和与众不同的事情,他们的服务并不适合你。但是,作为一个附带的好处,Google 在大量的专有数据上预训练了他们的模型。想一下那些猫的图片;那些肯定要比仅仅使用 ImageNet 的泛化性能更好。
第二个是 AI Hub 和 TensorFlow Hub。在这两个之前,重用别人的模型真的是很繁琐的事情。GitHub 上随机找到的代码很少有能用的,没有很好的文档,通常不好处理。还有为了迁移学习而预训练的权重……. 可能你根本不想做这些。这正是开发 TF Hub 所要解决的问题:它是一个可靠的、精选的仓库,包含了你可以在进行微调或基于它们进行构建的模型。仅需要包含几行代码和 TF Hub 客户端,你就可以从 Google 服务器上获取代码和对应的权重。AI Hub 则更进一步:它允许你分享整个机器学习流程,而不仅仅是模型!尽管它还是一个预览版本,但是早已比某个最新文件是「三年前修改的」随机仓库好多了。
硬件
Nvidia 英伟达
如果 2018 年你认真学了机器学习,尤其是深度神经网络,那么你可能会使用一个或多个 GPU。相对来说,GPU 的领先生产商则度过了忙碌的一年。随着数字加密狂潮的冷却和紧接其后的股市暴跌,英伟达发布了基于图灵架构的全新一代消费级显卡。与发布于 2017 年的基于 Volta 芯片的显卡相比,新卡包含被称之为张量核心(Tensor Cores)的新高速矩阵乘法硬件。矩阵乘法是深度神经网络运算的核心,所以加速这些运算能够很大程度地加速神经网络在新一代 GPU 上的训练。
英伟达为那些不满于「泄而「慢」的游戏级显卡的用户升级了他们的企业级「超级计算机」。DGX-2 是一个拥有 16 块 Tesla V 卡的魔法盒,它支持 FP16 的 480 TFLOPs 运算。当然价格也升级了,真的是令人印象深刻,40 万美元。
自动硬件也进行了升级。Jetson AGX Xavier 是一款英伟达希望能够推动下一代自动驾驶技术的板级模块。具有 8 个内核的 CPU、视觉加速器、深度学习加速器——所有这一切都是日益增长的自动驾驶行业所需要的。
在一次有趣的发展中,英伟达发布了为他们的游戏卡设计的基于深度神经网络的功能:深度学习超采样(Deep Learning Super Sampling)。这个思想是为了代替抗锯齿的图像保真功能,这一功能一般是通过将一张图片渲染到比真正需要的分辨率(比如 4k)还要高的分辨率,然后再缩放到本机显示器的分辨率来完成的。现在英伟达允许开发者在发布游戏之前以极高的质量在运行的游戏上训练图像转换模型。然后,将游戏与预训练的模型一起发送给终端用户。在一次游戏会话中,并不存在旧式的抗锯齿消耗,图像帧运行在那个模型中来提高画质。
英特尔
英特尔确实不是 2018 年人工智能硬件世界的先驱。但是它似乎想改变这一点。
令人惊讶的是,英特尔的绝大多数活动发生在软件领域内。英特尔在努力使他们现有的以及即将问世的硬件变得对开发者更加友好。基于这个精神,他们发布了一对(令人惊讶而有竞争力的)工具包:OpenVINO 和 nGraph。
他们升级了神经计算棒:这是一个小型 USB 设备,它可以用一个 USB 端口加速运行在任何设备上的深度神经网络,甚至是在树莓派上。
关于英特尔独立 GPU 的传言越来越多。虽然八卦愈演愈烈,但是新设备在深度神经网络训练上的可用性还有待观察。而传闻中的专用深度学习卡是确定可用的,代号分别是 Spring Hill 和 Spring Crest,后者是基于 Nervana 的技术开发的,这是英特尔早在几年前收购的一家初创公司。
寻常和不寻常的定制硬件
Google 发布了第三代 TPU:基于 ASIC 的深度神经网络专用加速器,具有 128Gb 的超大存储空间。256 块这种设备被组装到一个 pod 容器中,最终达到了超过 100 petaflops 的性能。这一年,Google 不仅将这些设备的力量大秀于世界,它还让 TPU 在 Google Cloud 上普遍公开。
Amazon 以一种类似但不是直接面向最终应用的动作部署了 AWS Inferentia(亚马逊推理芯片):这是一个在生产中更低廉、更有效的运行模型的方式。
Google 还发布了 Edge TPU:它是我们上面讨论过的大卡的小兄弟。这款芯片体积很小:一个 1 美分硬币的表面可以放 10 张 Edge TPU。同时,可以用它进行实时的视频分析,几乎不耗能量。
一个有趣的潜在新入者是 Graphcore。这家英国公司完成了 3.1 亿美元的融资,并且在 2018 年发布了他们的第一款产品——GC2 芯片。基准测试显示,GC2 在显著的更低功耗下击败了英伟达的服务器 GPU。
重大突破:AWS Deep Racer
Amazon 发布了一款小型无人驾驶汽车 DeepRacer 及其联盟,虽然始料未及,但是也从某种程度上反映了他们之前的 DeepLens。400 美元就可以配备 Atom 处理器,4MP 的相机,WiFi,几个 USB 借口,以及足以运行数小时的电源。自动驾驶模型可以在云端使用 3D 模拟环境进行训练,然后直接部署到车内。如果你一直梦想着构建自己的自动驾驶车汽车,这就是一次机会,你不用启动一个有风投支持的公司就能做这件事。
接下来是什么?
将注意力转移到决策智能上
算法、基础框架、硬件相关的部分已经涉及到了——为了让 AI 比以往任何时候更有用,业界开始意识到,让 AI 开始应用的最大阻碍在实用方面:你如何在生产中将 AI 从一个想法变成有效、安全、可靠的系统?应用 AI,或者应用机器学习,也被称作决策智能,它是在现实世界中创造 AI 解决方案的科学。尽管过去人们已经将很多注意力放在算法背后的科学上面,但是未来很可能会将同等的注意力放在领域内的端到端应用方面。
相比被它毁掉的工作岗位,AI 似乎在创造更多的工作
「AI 将会替代我们所有的工作」,这是媒体老生常谈的论调,也是广大白领和蓝领共同的担忧。并且,从表面来看,这似乎是有道理的。但是到目前为止,它的反面似乎才是事实。例如,很多人都在通过创建标记数据集而获得报酬。
它超越了低收入国家的普通数据承包商:一些 app,例如 LevelApp,它可以让难民在自己的手机上标记数据来挣钱。Harmoni 则更进一步,他们甚至提供了设备来让难民营的移民工作以谋生计。
在数据标记的顶层,整个行业都是通过新的 AI 技术来创建的。我们可以做那些数年之前都想不到的事情,就像自动驾驶或者医药发现一样。
与机器学习更加相关的计算将发生在边缘
数据导向的系统,其工作方式是,更多的数据通常是在系统中非常边缘的地方,在输入侧。流程中靠后的阶段通常都在做下采样或者以其它方式来减少信号的保真度。另一方面,越来越复杂的 AI 模型正在借助更多的数据获得更好的性能。让 AI 组件更靠近数据的边缘是不是很有意义?
一个简单的例子:想象一下能够产生 30fps 的高质量视频的高分辨率相机。处理这些视频的计算机视觉模型运行在服务器上。相机将视频流式传输到服务器,但是上行链路的带宽是有限的,所以视频被做了高度压缩。为什么不将视觉模型放在相机上,让它来处理原始视频呢?
做这件事总是面临着多个障碍,主要是:边缘设备上可用的计算力和管理的复杂性(例如在边缘更新模型)。专用硬件(例如 Google 的 Edge TPU,苹果的 Neural Engine 等等)、更高效的模型和优化算法的出现让计算力的限制不再是问题。管理的复杂性也在通过机器学习框架和工具在不断地解决。
整合 AI 基础框架的空间
前几年满是与 AI 基础设施相关的活动:盛大的宣言、丰厚的资金回合以及高尚的承诺。在 2018 年,这个空间的竞赛冷却下来了,尽管仍然有新入场的,但是绝大多数贡献都是由现有的大玩家做出的。
其中一个可能的解释或许就是:我们对理想的人工智能系统是什么样子还不够理解。因为问题是复杂的,所以这将会需要长期、持久、专注、资源充足的努力来产生可行的解决方案——这是初创公司和小公司不擅长的事情。如果一家初创公司出其不意地「解决」了 AI 基础设施的问题,这将会是极其惊人的事情。
另一方面,机器学习基础框架工程师是特别稀缺的。一个拥有几个这种员工的苦苦挣扎的初创公司会成为更大玩家的珍贵收购目标。至少有几个玩家在参与这场竞赛,开发内部和外部的工具。例如,对 AWS 和 Google Cloud 而言,AI 基础设施服务成为了一个主要的卖点。
将它们放在一起,做一个主要的整合成为了一个合理的预测。
更加定制化的硬件
摩尔定律已经失效了,至少对 CPU 是失效了,而且已经很多年了。GPU 很快也会面临相似的命运。尽管我们的模型变得越来越有效,但是为了解决某些更加高级的问题,我们将会需要有更多的计算力。这个可以通过分布式训练来解决,但是它也会有自己的局限性和权衡。
此外,如果你想在资源有限的设备上运行更大的模型,分布式训练是没有帮助的。进入到定制化 AI 加速器时代,根据你想要的或者能够达到的定制化需求,你可以节省一个数量级的功率、成本或者延迟。
从某种程度来说,英伟达的 Tensor Core 就是这种趋势的一个例子。以后我们会看到更多这种硬件,而不是通用硬件。
对训练数据更少的依赖
有标签的数据通常都是既昂贵又不可访问的。这条规则下很少有例外。像 MNIST、ImageNet、COCO、Netflix prize 和 IMDB reviews 这种开放的高质量数据集并不多见。但是很多问题都没有对应的数据集可供使用。尽管对于研究人员而言,构建数据集并不是伟大的职业发展方向,但是那些可以赞助或者发布数据集的大公司却并不着急:他们正在构建庞大的数据集,但却让这一切都不露声色。
所以,像初创公司或者大学的研究团队一样比较小的独立个体如何来解决这种难题呢?开发越来越少依赖监督信号和越来越多依赖无标签和非结构化数据的系统——这得益于互联网和廉价传感器的普及。
这从某种程度上解释了人们对 GAN、迁移学习和强化学习兴趣的增长:所有的这些技术都是不需要或者需要较少的训练数据投资。
所以这一切全都是泡沫吗?
所以那个黑屋里有没有猫呢?我认为肯定是有的,而且不是一只,而是很多只。虽然有一些是正常的猫,具有四条腿、尾巴和胡须,而但有些则是奇怪的动物,我们才开始看到它们的基本轮廓而已。
这个行业已经进入了第七个人工智能的「夏天」。这些年来,很多的研究精力、学术资助、风险投资、媒体关注、代码都涌入这个领域。但是人们有理由指出,大部分人工智能的承诺仍然没有实现。他们上一次的 Uber 乘车背后仍然有一个人类驾驶员。仍然没有机器人在早上帮助我们做鸡蛋。我甚至不得不自己系鞋带,暴风哭泣!
然而,不计其数的研究生和软件工程师的努力并非徒劳。似乎每家大公司都已经严重依赖于人工智能,或者有未来的相关计划。AI 艺术品也开始出售。虽然自动驾驶汽车尚未出现在这里,但他们很快就会出现。