Uber的新Neuropod界面抽象了多框架AI开发
Uber Technologies Inc.的自动驾驶小组今天开放了Neuropod开源,该技术旨在减少企业开发人员构建和部署人工智能模型所需的编码量。
Neuropod试图解决的问题是内部遇到的一个Uber。具有大量内部AI开发运营的企业通常在其项目中使用多个AI开发框架,例如TensorFlow和PyTorch。使用不同框架创建的模型具有非常不同的技术属性,这可能会使使用它们变得困难。
该问题主要归结为应用程序编程接口。例如,将TensorFlow计算机视觉模型整合到服务中需要向该服务以及其创建中涉及的许多开发工具添加对TensorFlow API的支持。如果公司随后希望将PyTorch模型添加到组合中,则其开发人员将不得不重新执行相同的工作。如果需要灵活使用多个AI框架,则必须在组织的所有AI应用程序中重复执行此任务。
优步(Uber)创建了Neuropod,以消除其工程师的重复工作。该工具充当TensorFlow之类的框架的API与使用它们的应用程序之间的抽象接口。该应用程序不与TensorFlow API交互,而与Neuropod交互。因此,开发人员只需要增加对Neuropod的支持,他们的工作负载将自动与多个AI框架兼容。
“ Neuropod从问题定义的概念开始-对要解决的模型的“问题”的正式描述,” Uber自动驾驶业务高级工程师Vivek Panyam在博客中解释道。“通过正式定义问题,我们可以将其视为接口并抽象出具体实现。每个Neuropod模型都实现问题定义。结果,解决相同问题的任何模型都可以互换,即使它们使用不同的框架也是如此。”
该工具提供的可互换性具有多个好处。如果软件团队在一个框架中为应用程序构建AI模型,然后使用不同的框架创建更新,更好的模型,则可以将新版本替换为旧版本。或者,如果企业希望将其AI开发工作流程从TensorFlow切换到PyTorch,该任务将变得非常容易。
Neuropod的第三个用途是简化部署模型到生产的过程。Neuropod将模型捆绑到一个统一的“ neuropod”或程序包中,比AI框架的API更易于使用。Uber使用这些程序包优化了模型服务平台,通过该平台可以在图形卡集群上部署内部模型。
Panyam写道:“没有Neuropod,模型服务平台就需要擅长远程运行Keras,远程TensorFlow,远程PyTorch,TorchScript等。” 开发人员必须为每个添加单独的优化。“但是,通过使用Neuropod,模型服务可以真正擅长远程运行Neuropod,而Neuropod可以真正擅长从多个框架运行模型。”
根据Uber的说法,到目前为止,其工程师已经使用Neuropod部署了数百个模型,这些模型涵盖了自动驾驶和餐厅菜单转录等领域。由于它是开源的,因此其他组织理论上可以根据自己的特定需求自定义该工具。 Uber已在GitHub上提供了Neuropod的代码。