至顶网软件频道消息:GraphPipe是一个新的开源软件项目,它指向了下一波人工智能领域的前景。
今天,人工智能及其“表兄”
机器学习主要是实验和测试。我们看到这类实验的数量正在激增,因为任何人都可以访问在线框架来构建模型,并且可以根据需要购买云计算算力来测试它们。开发人员们正在测试用人工智能解决他们公司内部的日常问题。
人工智能的下一波浪潮将涉及大规模部署——企业为客户提供人工智能支持的
应用程序;员工利用
人工智能来完成重要的、时间很紧的任务——从供应链到市场营销。这种规模带来了全新的问题,而Oracle 最近在GitHub开源的GraphPipe已经在直面这些挑战。
Oracle 的云开发架构师Vish Abrams所在的深度学习团队创造了GraphPipe。Vish Abrams表示:“接下来的问题是,现在我已经构建了这个东西,我该如何部署它,我又该如何真正地让它保持每天的运行。” Vish Abrams表示:“在一两年内,这将成为一个巨大的问题,所以拥有这样的工具将会是非常有价值的。”
人工智能的核心是通过数学模型运行数据并获得结果。 GraphPipe是一种高性能开放标准,用于传输人工智能模型中使用的张量数据。这意味着它可以帮助开发人员应对诸如在一个地方运行人工智能模型(比如云数据中心)并在另一个地方提供结果(比如客户的智能手机)等挑战。
Abrams并没有宣称GraphPipe是计算机科学的一次革命——GraphPipe应用了和现在的系统使用的相同的广泛原则来允许网络通信。但GraphPipe采用了这些技术并针对人工智能模型对其进行优化,这些人工智能模型通常需要非常快速地移动大量数据以提供结果。
Abrams表示:“这并不是重塑网络传输。” Abrams表示:“它是用一种标准化的高效方式,将你发送给模型并获得反馈的数学数据传送方式进行打包。”
像GraphPipe这样的工具让开发人员能够有效地将人工智能模型投入到新的问题中,这可能会让今天的人工智能浪潮有别于过去的尝试。在二十世纪八十年代,人工智能也曾引起了一股热潮,开发人员们试图打造出能够自己做出决定的“专家系统”。但是,他表示,计算基础架构的缺失让这些模型和实验无法得到支持,因此在随后的几十年里,“人工智能的冬天”降临了。
由于能够随需应变的云存储和计算处理能力,以及能够进行大规模并行计算的专用GPU处理器的出现,过去五年,这一切都已经发生了改变。Abrams表示:“这一次,机器学习系统提供了多得多的实用价值。”
既然Oracle已经将GraphPipe作为开源项目,那么任何人都可以免费使用该工具并根据他们的经验做出改进。Abrams是开源项目的长期贡献者,也是OpenStack公司Nebula的前首席技术官,他在博客文章中为开发人员深入介绍了GraphPipe。
下面我们将详细说明GraphPipe的作用以及它是如何在Oracle的深度学习团队中形成的。
GraphPipe能够如何帮助人工智能开发人员
GraphPipe可帮助开发人员有效地服务“远程”人工智能模型——也就是模型可以通过互联网访问,而不是在本地运行。在今天,这样做已经是可能的了;它只是缺乏效率或者标准化。
Abrams表示:“你基本上是将每个单独的模型都包装在自定义的API中。” Abrams表示:“这不难做到;只是非常单调乏味。”另一种选择是使用TensorFlow Serving的协议缓冲,但该软件仅适用于使用TensorFlow构建的模型,而且可能难以构建和部署。
现有方法在处理大量数据方面也不是很好,而这种限制可能会扼杀开发人员的创造力,因为他们会避免使用依赖大型数据集的模型。
Abrams表示,例如,如果你的远程人工智能模式是试图将猫的图片和狗的图片区分开,现有的传输技术可能没问题,因为你只是向模型发送一个图像,然后得到表示这是猫的图片还是狗的图片的一点点数据,以及一点点关于所描述的对象在图像中的位置的数据。但是,他说,如果你要发送的是一个巨大的浮点数阵列,而且要得到的结果是另一个巨大的浮点数阵列,这种技术就不行了。
如果你要将来自多个不同模型的结果合并到一个模型中,或者如果你在一个位置训练模型的一部分并将它们部署到另一个地方,你可能就需要更有效的通信。或者,对于面向客户的移动应用或物联网应用,终端设备通常缺乏在本地运行模型的能力,并且必须向远程服务发出请求,这就需要高效且稳定的连接。
Abrams表示:“这似乎是人工智能领域中可以使用一些帮助的地方。”
最后,GraphPipe为开发人员提供了互操作性方面的优势。今天,存在着很多种彼此竞争的机器模型格式——TensorFlow、Caffe2、MXNet等等——但是没有标准化的方法来保证它们给出的数据是一致的。有人提议用ONNX(开放式神经网络交换,Open Neural Network Exchange)这种格式解决这个问题。GraphPipe也尝试实现一致性,但是却是在网络I/O层面。Abrams表示:“聚焦于I/O层面的一个好处是你不必处理将模型转化为不同格式的问题,而这往往是很多问题的根源。”
GraphPipe如何成为现实
Abrams的深度学习团队通过走出去寻找开发人员可能遇到的麻烦,发现了对GraphPipe的需求。团队成员开始运行远程人工智能模型——使用谷歌创建的AlphaZero AI算法——来学习如何玩一个简单的游戏:Connect Four。当他们进行这些测试时,他们发现了对更好的远程模型服务的需求。
Oracle正在将其这款工具的两个元素开源。第一个是GraphPipe协议——一种在网络上传输张量数据的标准化、高性能协议,使用FlatBuffers作为通用消息传递框架。第二个是服务器和客户端的示例实现,让从任何框架部署和查询机器学习模型变得更加容易。
Abrams表示:“我们认为这可以让更多有趣的分布式架构在未来出现。”
GraphPipe等承诺的标准让开发人员可以在技术基础上花费更少的时间,并且将更多的时间花在试验模型上,这就促进了人工智能的创新。而且一旦他们找到了可用的模型,他们可以充满信心地相信可以将这个模型在企业规模上应用。
正如Abrams在他的博客文章中所写的:“标准允许研究人员使用他们想要的任何工具来构建最好的模型,并确保用户可以不用定制代码的情况下使用模型的预测。”