人工智能应用开发全流程的成本分析
前言
人工智能应用开发的成本很大程度上会影响人工智能在各个行业的渗透率。成本越低,则渗透率越高,人工智能对行业的影响速度也越快。然而,人工智能应用开发的总体成本模型非常复杂,但大致包括以下几个层面:
一、设计和开发成本
如上篇所述,如果结合开发流程模板来开发人工智能应用,则相对比较简单。而且,随着机器学习、深度学习等人工智能算法的发展,人工智能应用的使用门槛正在逐步降低,并且结合大算力做最优算法的选择和搜索变得越来越可行,因此可以把更多成本交给机器,进一步降低人工成本。对于不同的人工智能应用,以及相同人工智能应用的不同阶段而言,人工成本和机器成本的比例都是不一样的,这需要人工智能应用开发者按照成本预算自行决策。
然而,人工智能应用开发的最主要难点还在于如何识别业务问题,并将业务问题与最匹配的应用开发流程模板联系起来,即如何进行端到端的设计。这一点是很难靠机器来代替的,目前主要以人工为主。例如,某客户想做一个智能门禁系统,以更好地管理人员的出入,保证安全。对于这样一个问题,人工智能应用开发工程师可以想到多种可能的方案,如指纹识别、人脸识别、虹膜识别等。每种识别方案背后的算法技术所依赖的软硬件的成熟度、成本,以及算法本身的成熟度都各不一样。这时就需要与业务需求方进行沟通,从成本、研发难度、精度要求、体验等各个维度来综合考虑并选择出一种最佳方案。即便是具体到某一个方案,也有很多细节需要选择。假设客户选择了人脸识别方案,那么人工智能应用开发工程师会想到一系列问题,包括并不限于
以下几点:①采用什么类型和型号的摄像头,以及摄像头如何布局和安装?②光照的变化怎么处理?如何处理强光和弱光场景?③所需识别人员有多少?④如果待识别人员名单发生变动如何处理?⑤整个软硬件系统方案是什么?⑥目标识别精度和速度是多少?⑦如果识别不了某些人,怎么处理?⑧如何对待识别人员进行动作约束?例如,需要对准并正视摄像头才可以识别,如果待识别人员不配合,需要如何处理?
这就涉及如何针对业务问题和场景,将客户需求层层分解,并转换为具体应用开发流程模板的选择问题,从而形成一个端到端的解决方案。这个阶段需要反复沟通和设计或实验验证,进而也增加了开发的成本。从降低人工智能整体设计和开发成本的角度看,人工智能应用开发平台会按照三个阶段不断演进:第一阶段,大部分依赖于人工设计和开发;第二阶段,平台提供大量的应用开发流程模板,开发者仅需要负责业务问题的转换和需求分解,以及基于模板开发时的部分参数选择或调节;第三阶段,开发流程模板会覆盖部分业务问题和需求更贴近领域具体问题,并且平台会结合更强的优化算法和大集群算力来加速调参。随着人工智能服务单位算力的成本越来越低,以及平台的积累越来越多,人工智能应用的设计和开发成本会逐步降低
二、部署和维护成本
在人工智能应用部署方面,部署成本体现在多设备部署方面。未来的人工智能推理一定是端边云协同的,因此一次开发和任意部署的能力尤为必要。
如设计和开发成本所述,在部署完成后,人工智能应用的维护往往非常重要。人工智能应用本身的脆弱性导致其维护成本非常高。在人工智能应用的运行态,推理数据量可能会很大,返回训练集中做重新训练时,重新标注的成本会很高,并且重新训练的算力成本也比较高。因此,如何自动判断人工智能应用推理表现的恶化,自动对造成这种恶化的关键数据做选择、标注并重训练模型,是大幅度降低维护成本的关键。
从降低人工智能部署和维护成本的角度看,人工智能应用开发平台会按照三个阶段不断演进:第一阶段,依赖纯人工部署和维护;第二阶段,具备端边云多场景化部署能力,并基于自动难例发现算法,采集对应用恶化起关键作用的数据,然后基于这些数据做半自动标注和重新训练,降低应用维护成本;第三阶段,可以采用纯自动方式进行模型部署和自适应更新,仅需在重新部署时引入人工确认。
三、边际成本
人工智能应用开发的边际成本主要体现在两个方面:一是将人工智能开发流程模
板进行跨场景复制时总成本的增量;二是将人工智能应用本身进行跨场景部署和维护时总成本的增量。
对于人工智能开发者而言,如果将已开发好的开发流程模板不断扩大以支持更多的业务场景,当然边际成本就会很低。但是,通常这些模板(尤其是专业模板)跟业务问题有很强的关联,而业务问题和场景差异很大。比如,同样是一个面向图像目标识别的开发流程模板,有的业务场景比较简单,如检测某个固定场景、固定光照条件下单的、清晰的目标物体,就可以套用一个简单的模板解决;而有的业务场景比较复杂,如远距离视频监控目标物体,远距离造成目标物体不清晰,并且物体较小,如果光照条件变化大,待识别的目标有多个种类并且类别间差异非常小时,算法的复杂度将急剧上升,这时就需要套用一个复杂的模板,或者重新开发一个面向此类场景的模板。因此,现有人工智能开发流程模板必须确定其所能覆盖的业务问题范围及其局限性。任何的人工智能开发流程模板都是有局限性的,只是局限性的大小不同。为了尽可能扩大模板覆盖业务问题的范围,就需要预先对很多场景进行针对性设计和抽象,并且结合算力自动选择适合当前问题的方案。
当人工智能应用开发好之后部署在不同场景时,不同环境造成的推理数据的差异是一个很大的挑战。正如前文所述,人工智能应用需要根据推理数据的变化而不断进行维护。如果维护能够尽可能自动化,那么边际成本就会更低。
从降低人工智能边际成本的角度看,人工智能应用开发平台会按照三个阶段不断演进:第一阶段,依赖已有的人工智能开发流程模板和应用,手工进行跨场景优化和复制;第二阶段,在已有开发流程模板和应用的基础上,增加一定程度的跨场景自适应能力;第三阶段,开发流程模板和应用所能支持的场景更丰富,并自动给用户的新场景提供最优模板变种,自动更新应用。
综上可以看出,当前人工智能应用的设计、开发、部署、维护阶段本身的可复制性都比较差,这使得边际成本难以降低,也造成了当前人工智能应用可复制性差的问题。
总结
综上所述,人工智能应用开发更需要借助大集群算力、模板库、业务知识库,以及每个模板内依赖的半自动标注、自动算法选择、自动模型训练和优化等人工智能应用开发平台的基础能力,才可以真正降低人工智能应用开发全生命周期的成本,使得人工智能应用更加普及,实现人工智能无处不在。
- 点赞
- 收藏
- 关注作者
评论(0)