编者注:想了解更多应用数据科学到你的业务里的信息,可以查看2018年3月5日至8日的Strata数据圣何塞大会上的机器学习议题。大会注册已经开始。
更多人工智能内容请关注2018年4月10-13日人工智能北京大会。
AI的希望是很大的,但是真正要在企业内部构建和实现AI确很有挑战性。随着越来越多的企业学着在正式的生产环境里构建智能的产品,工程团队将面对着机器学习开发过程带来的复杂性——从数据获取和清洗到特征工程、建模、训练、部署和生产环境的设施等。应对这些挑战的核心是构建一个有效的AI平台策略,就如Facebook的FBLearner Flow和Uber的Michelangelo那样。通常,这个任务是说起来容易做起来难。构建一个平台的过程就有它自己的复杂性,特别是因为“平台”这个词自身的定义就很宽泛和不明确。在本博文里,我会逐一介绍构建一个适合你的业务所需的AI平台所要考虑的关键点,以及如何避开常见的坑。
谁将使用这个平台?
机器学习平台通常被不正式地宣称是为软件工程师和数据科学家共同设计的。但是,大部分平台并不能为两种角色同时都服务好。更糟的是,这些平台甚至无法给任何一种角色提供对真实工作足够有用的价值。我个人在构建PredictionIO和Salesforce的Einstein AI平台上的经验帮助我理解了这两种截然不同的用户,他们的需求集的差异是巨大的。
首先看看数据科学家群体。这些用户通常有着数学和统计学的背景,是R、Python科学计算包和数据可视化这些工具的重度用户。这个群体负责分析数据和调优模型来获得最精确的结果。因此他们关心的是一个平台是否能支持特定的算法类,在平台上他们已经熟练使用的工具是否能工作良好,以及是否能和他们使用的可视化工具集成。他们还想知道平台支持什么特征工程技术,以及他们是否能在平台上使用他们自己预先训练好的模型,诸如此类的需求。
对于软件工程师群体而言,他们通常很熟悉如何构建Web或移动应用,更关注于平台是否能和他们希望的数据源集成,以及平台提供的接口和内嵌的算法是否足以构建特定的应用。他们想知道如何获取模型产出的结果,是否支持模型版本化,以及是否有特定的软件编程模型来使用,诸如此类的需求。
为了能成功地为你的企业实现一个AI平台,你必须真正地理解你的用户,并相应的去为他们服务。例如,有很多数据科学家偏好于手工微调算法的每一个参数,但是如果你的用户是想要一个能工作的成品回归算法,自动化的模型调优就成为平台要有的一个非常重要的技术。你希望帮助这些用户来减轻调整正则化参数的麻烦,从而让他们能关注于他们首要的任务。
你是要解决简单性还是灵活性?
你可能想知道为什么构建一个服务于两种或多种用户的单一平台是如此困难。为什么不在平台上简单地提供更多的功能?这个问题最终就归结到对于简单性和灵活性的艰难选择上。决定哪个部分应该为了简单性而被抽象出来以及哪些部分应该为了灵活性而被构建成可定制化这件事更像是一门艺术而不是科学。
对一些用户而言,一个理想的平台是能把所有的数据科学的细节抽象掉的平台。很多软件工程师开心地使用Salesforce的Einstein深度学习API来识别图像里的物体以及进行文字里的情感分类,他们不操心这些AI模型是怎么被构建的,或者背后用的是什么算法。
对别的用户而言,一个理想的平台是有着最大程度的灵活性的平台。也有不少软件工程师喜欢在Apache PreditionIO上构建完全定制化的AI引擎。他们会自己来修改Spark ML管道,并很享受能定制化和微调每个组件的自由(从数据准备到模型选择,再到实时的服务逻辑等),从而能创建一个独一无二的AI应用。
你怎么来平衡产品和工程的决策?
随着AI平台被越来越多的用户使用,很多艰难但是有趣的产品和工程的决策浮现了出来。这个平台应该测量什么?它应该提供预制的指标吗?它能应对来自AI研究、开发和产品部门各种不一样的需求?它的成本与可扩展策略是什么?这个平台应该是云端不可知的吗?可视化工具应该是这个平台的一部分吗?为了能更有效地回答这些问题,你必须要一次只完全针对一种类型用户的一个全应用场景,从最高业务优先级的事情开始。
你的多层级方法是什么?
有些时候,现实是你需要为多种类型的用户构建AI能力。在这种情况下,能力的分离就必须是明确的。
例如,Salesforce的Einstein人工智能层有3个主要模块。首先是几个独立的和机器学习开发相关的服务。其中一个服务是用于执行资源密集型的任务,并负责为每个任务智能地调度和管理分布式计算单元。另外一个服务则是进行任务调度,管理任务的依赖包和监控状态。这些低层次的服务为数据科学家和软件工程师提供了最大的灵活性,从而允许他们用自己喜欢的方式构建AI解决方案。
其次,需要有一个应用框架来标准化某些常用AI应用的设计模式——特别在Saleforce的场景里,即多租户的AI应用。用户将依然需要写代码,但是会写的很少,因为很多常用的功能都被抽象出来了。通过放弃一些灵活性,平台为基于其上的AI应用提供了弹性和可扩展性。
最后,API和用户接口被提供用于让用户只写很少量的代码,甚至是不用编程就能构建AI应用。
结论
一些没有想清楚它们的AI策略的公司通常会在不同的方向间摇摆不定。它们是在追逐风口。在可见的未来,对能服务于多种开发类型的AI平台的需求必将持续增加。正确的AI解决方案是既能匹配用户的技能集而且能解决最高优先级业务问题的方案。
This article originally appeared in English: "Key considerations for building an AI platform".
Simon Chan
Simon Chan是Salesforce的Einstein平台的资深产品管理主管。他主管平台的开发,交付产品来帮助任何希望使用Salesforce来开发智能App的产品。Simon是一个产品创新者和持续创业者。他在全球多个地区(伦敦、中国香港、广州、北京、硅谷)拥有超过14年的技术管理经验。在Salesforce之前Simon是PredictionIO的CEO和联合创始人。PredictionIO是一个领先的开源机器学习服务器,后被Salesforce收购。Simon拥有密歇根大学安娜堡分校的计算机科学学士学位和伦敦大学学院的机器学习博士学位。
领取专属 10元无门槛券
私享最新 技术干货