shineyon 2019-05-11
大数据文摘出品
来源:medium
编译:李雷、蔡婕、雪清、橡树_hiangsug
只有不到20%的机器学习PoC(概念验证)项目能够顺利投产,而这其中的大部分也可能会止步于其方案的“产品化”阶段。从概念验证到实际产品,人工智能应用落地到底要跨越多大的鸿沟呢?来看看这篇文章怎么说。注意:文中可能存在“机器学习”和“人工智能”概念混用的情况,不必纠结于此。
今年,虽然不少公司都在部署人工智能解决方案,也取得了一定的成果,但只有少数公司做到了全面部署人工智能,从而为公司带来真正的附加价值。
据我所知,只有不到20%的机器学习PoC(概念验证)项目能够顺利投产,而这其中的大部分也可能会止步于其方案的“产品化”阶段。
PoC的困境
大多数公司首先通过概念验证(proof of concept , PoC)项目来证明人工智能方案可以削减成本,改善客户体验,或者在某种程度上形成业务差异化。
PoC通常采用相对简单的算法,训练数据也是即时可用的或内部标记的,其主要目标是证明可以用少量的数据训练算法以解决特定场景的问题。
如果PoC获得成功,那么项目将继续进入产品化阶段。
进入产品化阶段意味着AI项目将变得更加复杂。这个阶段不再需要证明该解决方案的有效性,而是要将AI项目集成到公司的基础架构中,并保证它在真实环境下能够很好地工作。
为了使项目取得成功,机器学习项目需要从一开始就将公司结构、客户、公司规模和内部工作流程等考虑在内。
PoC往往会影响系统基础架构的性能以及知识和数据管理等,这些都将阻碍它们进入下一阶段——产品化。在AI项目中,产品化阶段的困难程度往往容易被低估。在这个阶段里,系统的工作方式很有可能需要完全改变,并且当我们越来越接近解决方案的最终版本时,新的问题也会不时出现。
在人工智能集成的最后阶段,AI项目可能会跨多个业务线,甚至可能直面普通用户/客户,面临着来自企业级基础架构、安全性和技术支持等多方面的挑战。
产品:在现实生活中使用的系统。它不像PoC那样是为了测试某些东西是否有效,也不像用样本数据做的简单实验。它是用真实数据来解决现实问题的系统。
很多时候,AI方案提供商都未能证明其初始方案的有效性。为什么AI项目的实施过程会变成一场噩梦呢?其实,大多数时候,AI项目没能进入产品化阶段是因为以下因素:
比如,某公司有一个业务问题,刚好可以用人工智能来解决,但如果需要提供核心数据或必须使用新的工作流程,那么这个公司可能就会放弃该项目。实际上,在AI项目产品化之前,必须先处理好它与软件、数据安全和大规模的新的训练数据等一系列相关的问题。
另一个原因可能是低估了构建一个具有实际功能的AI所需的成本。将原型进行产品化需要很大的投资!公司管理层要确保他们能够负担得起。
机器学习的概念验证(PoC)是漫长实践过程中的第一步。当你将其扩展到实际规模的应用时,你需要站在更高的角度来看待所出现的问题。
为什么会失败?
AI项目的概念验证(PoC)路线图上存在某些挑战,比如数据的缺乏,法律上的问题,公司员工对AI相关应用的畏惧以及系统集成能力是否足够等,因此任何公司都必须在将模型产品化之前先分析相关影响因素。
在我看来,公司应该同时开展多个PoC项目,因为这样有助于了解公司的潜力,改善内部行为方式,快速终止那些没有前景的人工智能PoC,并发掘出最有前景的项目以便继续监控和投入资源。我看到有些公司指望用他们的第一个PoC来赚钱并且解决复杂问题,这么做十有八九会失败!
公司还应该考虑到,进行概念验证所需的技能与将其转化为产品所需的技能是大不相同的。如果没有一个支持AI集成的架构,那么即使是最有前景的项目也会夭折。
人工智能项目还需要得到管理层的支持,如果没有长期投资的恒心,AI应用就只能是小打小闹,永远达不到任何有意义的规模或实用性水平。这类项目的成功需要时间和耐心。
为了使PoC获得成功,必须进行广泛的研究,建立一个跨职能部门的团队,并调研和测试各种硬件规格,此外还可能需要请外部专家对模型进行微调。虽然我们在最初研究的2-3周内就做可以做出原型,但接下来的开发需要更长的时间,并且需要大量的资金和时间投入。
根据我的经验,一个好的PoC需要大约半个月时间。事实上,整个数据收集过程是非常耗时的。更不必说,大多数公司在提到使用AI都有惊奇的想法,但往往得不到对的数据。
举个例子,如果在做PoC的时候,算法可以识别在相同光线、距离和角度下拍摄到的人脸,那么在试点项目中该算法就需要适应不同的光线、距离、角度、肤色、性别,等等。这自然意味着更多的数据。
PoC中的机器学习模型所需的输入数据与产品中持续大规模的输入数据之间存在很大差别,能认识到这一点很重要,但这经常被公司或者项目组所忽视。
我在几个项目中使用了不一样的和不完善的数据集,这使我意识到:人们在将小规模的ML算法转移到生产过程中时,可能会大大低估为获取数据而投入的时间和精力,而这些数据是扩展原有ML算法所必不可少的。
关键之处在于将实际需求和POC数据集之间的“差距”最小化。因此,我强烈建议使用真实场景的数据。
构建一个可靠且相关的数据集需要很多时间。为了正确地训练一个预测模型,必须遵循特定的流程来生成符合标准的数据。
当PoC成功后,一些AI团队会考虑独立完成整个项目的数据准备工作。我相信,他们低估了公司提供所需数据的难度(信息孤岛,效率低下等)。在这一步,我们通常会开始了解公司的运作方式。
实际上,生产系统中会包含许多未知案例,训练算法会产生对大量数据的需求(通常是压倒性的)。
试点阶段
一个成功的POC将说服项目所有者交付试点阶段(a pilot phase)的资金。试点是POC与生产项目之间的一个项目步骤,组织不会关停任何其他系统或更改人员配置。在对算法进行调整和训练的过程中,试点与现有系统一起运行。这是一个必要的步骤,因为在此过程中会面临许多问题或工作流程挑战。
生产的持续时间在某种程度上是由生产所需的人工智能精度水平决定的。显然,一些项目需要更多的时间来达到一定的成熟水平(自动驾驶汽车等)。其他项目可以在明显较低的置信水平下带来积极的投资回报率(Return On Investment, ROI)。
大多数情况下,试点项目没有足够多样化的数据来进行大规模运作。
从PoC到产品
正如我们所说的,很少有项目团队能够成功地跨越这个阶段并继续下去。实际上,大多数项目从PoC到产品化需要大量不同的资源。在生产步骤中,当我们意识到可能存在的新的问题时,通常会发现项目需要更多的时间才能完全运行。此外,我们越多地涉及终端用户,就越发意识到PoCs离现实应用还有很远的距离。
PoC所有形式的数据建模都必须简化但又要反映真实情况,而在这个过程中,总会丢失一些真实性。这为ML带来了风险,因为实际数据可能比概念验证(POC)所用的训练数据更容易出现建模问题。
对此,明显的解决方案是为模型添加更多细节,并拥有更多字段、表格、关系等。但是,模型越精细,就越难以使用和理解。这也是建立在你可以获得更多数据的假设之下。我见过许多项目因为缺乏数据而失败,还有一些项目使用了数据增广技术(在图像识别项目中,这是一种减少过拟合的好方法)。
Source
部署常规的软件应用程序本就是困难的——但是如果软件是基于机器学习的,情况可能会更糟!ML具有一些特性,将使得大规模部署变得更加困难。
在我最近的一个项目中,我意识到一旦你的算法训练好后,它们就不会一直被使用。例如,你的客户/终端用户只会在需要的时候调用它们。
管理API调用的想法是关键。实际上,你需要确保免为不需要的服务器付费。一旦AI解决方案的运行成本过高,公司可能会忧心于继续使用它。
进入生产阶段后,从数据的角度来看,事情将开始变得更加复杂。除非算法的问题空间非常简单或是完全静态的,否则训练永远不会结束。问题空间在演变,新的使用案例也在不断变化,以及来自竞争对手的压力——他们也试图实施差异化ML策略,所有这些意味着组织必须使他们的模型胜任更加模糊的特定案例。而在已经很高的模型置信水平下,就训练数据而言,每1%的增量增长都相当昂贵。
信息系统中的AI集成
AI解决方案可能已准备就绪,但是还有一步工作要做。事实上,实际规模的实现还包括将AI与信息系统和架构连接起来。根据经验,我得出的结论是——人工智能部署中最大的问题是难以将认知项目与现有流程和系统进行集成。最佳选择是提供机器学习模型的API,或将其作为现有系统中的程序代码模块。
当涉及到AI项目时,无论是否成功,PoC都非常有用。我相信,通过一个特别的过程(数据分析,组织调整等),我们有可能增加PoC进入生产阶段的机会。
企业需要为与AI供应商的合作做好准备,这种合作方式应当既不会让企业的数据面临风险,也不会造成长期依赖,反而会增强其竞争优势。