详情
从基础设施的演变,看人工智能到底需要什么样的底层平台
作者:维金
时间:2017-11-30 14:11:03
硬件和系统软件的发展带来了新一类应用。这些应用不断完善和成熟,从而对底层资源提出更高的要求,倒逼底层基础设施去创新。反过来,基础设施的优化、创新、性价比提升也会带来颠覆式应用,给用户提供前所未有的体验。

图片来自“123rf.com.cn”

  机器学习和人工智能的时代已经到来。大数据、大容量存储、弹性计算和各类算法的发展,尤其是在深度学习领域的发展,带来了各类脑洞大开的创新应用。

  在围棋这样的复杂策略游戏中,机器已经胜过人类。图像识别、语音识别等应用更是不在话下。语音智能助手开始普及,全自动驾驶汽车上路测试。然而对于近期机器学习/人工智能的这些发展,许多讨论围绕的都是算法和应用,很少有讨论涉及底层基础设施。

  在计算技术的发展早期,只有汇编语言专家、编译器专家和操作系统专家才能开发简单的应用。目前的情况也很类似,只有获得统计学或分布式系统专业的博士学位,你才能知道如何开发人工智能系统并大规模部署。缺失的环节在于加速人工智能开发的抽象化工具。因此,只有最精英的工程团队才有完整的能力去做这方面工作。

  另一方面,相对于机器学习技术的创新,基础设施的发展也很落后。简单来说,作为当前机器学习应用基础的系统和工具实际上并不适合未来智能应用的演进。面向未来,业内需要新工具去释放人工智能的潜力,让人工智能更加平易近人、更加实用。所以在基础设施创业领域,提供智能系统开发所需的模块,这将是未来的一座大金矿。

  从基础设施1.0到基础设施2.0

  应用和基础设施之间的关系很微妙,相互限制、相互推动。

  硬件和系统软件的发展带来了新一类应用。这些应用不断完善和成熟,从而对底层资源提出更高的要求,倒逼底层基础设施去创新。反过来,基础设施的优化、创新、性价比提升也会带来颠覆式应用,给用户提供前所未有的体验。一个典型的例子就是从幻灯片到PPT,再到各种在线图片社交平台,例如Pinterest。

  本世纪初,商业互联网的发展基于来自英特尔的x86指令集,来自微软的标准化操作系统,来自甲骨文的关系数据库,来自思科的以太网设备,以及来自EMC的网络存储工具。亚马逊、eBay、雅虎,甚至最初版本的谷歌和Facebook都基于这些基础设施。这就是科技行业的“基础设施1.0”。

  然而随着网络的逐渐成熟,网民总数从1995年的1600万增长至2015年底的30多亿,应用对规模和性能的要求也大幅提升。“客户端/服务器”时代的技术不再适合互联网巨头的需要,无论是从可行性上来看还是从性价比上来看。

  因此,互联网公司开始自力更生。凭借自身的技术专业能力以及学术界进展,谷歌、Facebook和亚马逊定义了全新一类基础设施。这样的基础设施具备如下特点:规模可扩展、可编程、通常是开源的、成本低。相关技术,包括Linux、KVM、Xen、Docker、Kubernetes、Mesos、MySQL、MongoDB、Kafka、Hadoop和Spark,定义了云计算的时代。这也被称作科技行业的“基础设施2.0”。

  最核心的,这代技术的设计目标在于,让互联网可以覆盖数十亿终端用户,并以高效的方式去获取并储存来自这么多用户的信息。因此,“基础设施2.0”的创新导致了数据量的大幅增长。配合并行计算技术和算法的发展,我们就看到了当前机器学习的发展。

  基础设施3.0:走向智能系统

  “基础设施2.0”时代的终极问题是:“我们如何连接世界?”而当前的问题更多的是:“我们如何理解世界?”

  这其中的差别,即“连接”和“认知”,可以解释人工智能与上代软件的关键不同。代码自身的“认知能力”颠覆了传统编程模式。在传统应用中,程序逻辑是写死的,而在人工智能应用中,算法通过对大数据的分析自己得出逻辑。随后,这些逻辑被用于决策和预测。

  这样做的结果就是“智能”应用。但实际上,这类应用的诞生需要大量数据,并且耗费巨大的计算资源。这些限制因素导致人工智能很难被通用化,从而符合70年前冯·诺依曼提出的计算范式。所以,人工智能代表了一种基础性的新架构,要求我们重新思考基础设施、工具和开发实践。

  到目前为止,人工智能领域的研究和创新仍集中于新算法、模型训练技术和优化方法。此外,人工智能系统中只有很少一部分的代码用于学习和预测,而最麻烦的部分在于准备数据、开发功能,让分布式的基础设施能够运行,从而规模化地执行任务。

  如果想要成功开发并部署人工智能应用,那么就需要协调多个离散的系统,设计精密的流程。首先,你需要消化数据,去芜存菁,给数据打上标签。随后,为了实现预测,你必须确定适当的特性。最后,开发者必须训练模型并验证、部署、持续优化。整个过程可能需要几个月时间,即使是技术最专业的组织也是如此。

  如果想要让人工智能发挥最大的潜力,那么就必须从当前的学术理念中提炼出可以实际操作的要点。在实践中,这意味着需要进行新抽象、设计新界面、系统和工具,帮助开发者更方便地开发和部署智能应用。

  这很可能不会是渐进式的改变,而将是颠覆性的、基础性的变革。设计方式和开发方式都将发生巨变。

  对应地,在整个体系的每个层面,我们都在看到新平台和工具出现,尝试对人工智能开发范式做出优化。机会确实很多:

  1. 集成多个计算核心,支持高带宽存储的专用硬件正在出现。这些芯片针对高并发数值计算进行优化,更适合神经网络所需的快速、低精度、浮点计算任务。

  2. 系统软件将针对硬件配置提升效率,甚至充分发挥每个晶体管的能力。

  3. 无论是用于训练还是推理,分布式计算框架可以有效地扩大跨多个节点的模型运行。

  4. 数据和元数据管理系统带来了可靠、统一、可复制的数据储备,为训练和预测提供并管理大数据集。

  5. 基于实时数据和内容,超低时延的服务基础设施让机器可以迅速执行智能操作。

  6. 模型表达、问答、调试和监控工具有助于大规模地监控、调试和优化模型和应用。

  7. 端到端平台可以将整个人工智能工作流封装起来并抽象化,简化终端开发者面临的复杂性。这方面的例子包括Uber的Michelangelo和Facebook的FBLearner,已经商用的则包括Determined AI。

  过去10年,我们在技术方面看到了“云计算物种”的兴起。类似的,未来几年,我们将看到,围绕机器学习和人工智能将诞生全新的基础设施和工具生态。

  这些创新的集合就是“基础设施3.0”,而这也将充分释放人工智能的能力,给智能系统的建设提供模块化工具。我们将看到新的项目和平台,以及新公司的崛起。

上一篇:云计算向分布式延伸 共识机制有待达成 下一篇:数据驱动构建云安全的智慧大脑