苑学贺,杨永艳,庞帆,张宏伟
(北京中电普华信息技术有限公司,北京 100107)
随着人工智能技术的发展,AI 智能服务及其产品在各行业和领域中应用越发普及。对于如电力公司这类大型企业,由于安全性及专业性考虑,无法采用开放的互联网AI 平台、服务及产品。提出在主流云平台Kubernetes(后文简称K8S)容器框架基础上,导入先进的OpenVINO™Model Server 组件套件,构建企业级的人工智能云服务平台,充分利用云平台良好的可扩展能力,为企业用户提供用户体验更高的AI 服务及产品。研究成果以某省电力公司为研究对象,对企业现有AI 建设现状及应用情况开展调研;对人工智能服务平台进行规划设计,并提出相关设计;对该平台关键技术进行了相关研究及论证,并通过测试验证了其先进性。
人工智能技术及其相关产品在各行业及各领域近几年陆续展开了较好的研究和应用,已取得不俗的建设成效。以某省电力公司为例,经文章作者实地调研,自2019 年至今,公司遵照《国家电网公司人工智能专项规划》开展了企业级人工智能建设,并已建成系列AI 应用系统或平台,已建成的人工智能平台包括不限于人工智能推理平台、语音服务平台、人脸识别平台等,支撑的应用主要包含五方面:1)完成通用卡证、通用票据和通用文字识别等通用OCR 的部署实施,支撑了财务部和后勤部的通用专用发票识别、加油小票识别和车辆表盘自动识别;2)图像识别方面,完成绝缘子模型和反违章模型部署,具备了支撑设备部输电线路绝缘子识别和安检部七类反违章识别能力;3)在智能语音方面,语音服务平台已完成在线听写、在线转写等八类语音引擎,录音转写和语义理解模型的部署,支撑了调控中心的智能客服建设;4)人脸识别方面,已完成1∶1、1∶N等人脸识别算法和模型部署,支撑了后勤门禁刷脸认证,消费人脸认证等智能后勤业务使用;5)在流程机器人方面,通过RPA+AI 建设,实现了业务流程简化、电子化、可配置化,起到了基层减负的作用,支撑了各市/区县公司的用电检查数据统计和财务智能对账等业务开展[1]。
但由于建设厂家不同,技术路线差异等原因,各专业人工智能算法模型采用不同的AI 技术框架构建,模型的技术标准、管理规范、模型的存储和运行环境等各不相同,已建成的人工智能推理平台、语音服务平台、人脸识别平台只能通过接口的方式提供服务,无法直观的进行功能展示,用户体验较差[2]。让人工智能更紧密的结合业务发展,进一步提升用户体验,为用户提供更高效的人工智能服务能力,满足日益增长的业务需求,是该电力公司亟需开展的重点工作。同时,各人工智能平台由各自承建团队研发建设、运行维护,对不同模型及数据难以集约化管理,导致建设和运维成本较高[3]。由此提出有必要建设人工智能服务平台,通过云服务方式提供各类即席AI 服务发布、对各自模型和算法进行规划化、集约化管理,加深用户对AI 产品的认知和可信度,赋能业务发展。
随着云计算、云平台的技术发展,为上述问题提供了较好的技术解决方案。越来越多互联网厂家采用云技术提供各自AI 服务和产品,将云作为人工智能在各行业落地部署及应用发布的重要载体已成为主流趋势[4]。AIaaS(AI as a Service)人工智能云服务平台是目前主流的人工智能平台的服务方式,类似于WordPress 中的博客有很多在线的插件,用户可以根据自己的需要免费或者付费的方式下载并安装自己需要的插件。国内常见的互联网公司如:阿里云、华为云、腾讯云、百度云皆有自己的人工智能服务平台。文献[5]介绍了IBM 公司在Cloud-AI 服务云上部署并发布了Watson Studio、Watson Machine Learning、及其他AI 服务,其中Watson Studio 用于构建和培训AI 模型,准备数据和对数据执行分析;Watson Machine Learning 用于帮助数据研究员和开发人员共同努力,加速部署流程,并将AI 集成到应用程序中。文献[6]介绍了亚马逊公司提供的人工智能云服务平台,集成部署了Amazon Comprehend、Amazon Forecast、Amazon Len、Amazon Personalize 等AI 组件,通过AI 云发布提供的AI 服务包括图像和视频分析、自然语言、个性化建议、虚拟助手、智能预测等。
然而,上述互联网的AI 云服务AIaaS 平台及其AI 服务产品大都是成熟的普适性的商用套件,难以满足企业级用户实际的应用及业务发展需要。同时,由于安全性、数据私密性考虑,大型国企难以直接应用互联网的商用AIaaS 平台及其产品[7]。鉴于云计算的本源是虚拟化技术,容器技术是云虚拟化较好的实现方法,具有对CPU、内存等系统资源占用少、启动快、可扩展性强等优点,通过容器化技术将数据处理、AI 智能算法和模型部署在容器中,能够较好地支撑各业务AI 应用管理、部署和服务[8]。由此,提出采用开源的K8S 容器化技术,并导入集成OpenVINO ™Model Server 组件套件,搭建企业级AIaaS 人工智能云服务平台,实现AI 模型和算法快速部署、集约化管理和共享发布。
基于上述调研情况,提出的AIaaS 平台需整合多种现有的主流机器学习计算框架,支持模型从数据集选择、模型创建、训练及发布的全流程一站式管理,构建面向电力企业业务领域的算法库、模型库及数据样本库[9]。如图1 所示,总体架构由基础能力资源层、人工智能服务平台层、人工智能应用层三层构成:基础能力资源层为企业信息化建设提供所需的计算、存储、网络等IDC 基础资源;人工智能服务平台层为人工智能服务、运维、运营提供所需的能力组件及功能模块;人工智能应用层聚集AI 企业业务及其应用,从人工智能服务平台层调用所需的AI 产品或服务[10]。文章重点关注人工智能服务平台层的构建。
图1 总体架构设计图
AIaaS 平台功能架构如图2 所示,总体规划包括数据管理、模型开发、平台服务、运营管理、运维管理、安全管理六大功能模块集。
图2 功能架构设计图
功能模块设计说明如下:
1)数据管理,通过从数据中台接入视频、图像、语音、文本等多类型业务数据,提供数据预处理、数据标注、数据存储以用于模型训练数据准备,并形成企业级样本库;
2)模型开发,实现模型的构建、训练、迭代、发布,主要包括模型创建、模型训练、模型验证评价、算法模型库管理、模型发布;
3)平台服务,面向用户或各类业务系统提供统一的机器学习、计算机视觉、自然语言处理、知识图谱、智能语音等应用服务或接口服务;
4)运营管理,向运营人员提供服务管理、服务商店、应用管理、接口管理等运营管理功能;
5)运维管理,向运维人员提供配置管理、资源管理、作业管理、日志管理、监控告警、角色管理等运行维护功能;
6)安全管理,解决平台提供服务的过程中产生的诸如身份鉴别、访问控制和数据隐私保护等安全问题,支持对访问的终端及客户端进行认证及操作日志安全审计等功能。
文中规划的AIaaS 平台具备两大能力:1)模型和算法的集约化纳管、部署,以减少部署和运维成本;2)服务和产品的发布,提高用户体验水平。业务架构如图3 所示,为支撑人工智能业务开展,AIaaS 平台具备三大业务能力,具体包括即席服务、能力介绍和案例推广。
图3 业务架构设计图
业务架构设计说明如下:
1)即席服务:作为统一的人工智能体验中心,通过人工智能即席服务,实现服务在线展示和在线试用能力,提供统一直观的人工智能体验;
2)能力介绍:作为统一的能力展示中心,实现人工智能图像、语音、RPA 等模型能力在线展示,用户可以查看相关模型能力,并根据应用需求进行查询,帮助用户实现人工智能技术场景;
3)案列推广:作为统一的方案分享中心,对已有的人工智能成功案列和场景进行归纳总结,统一发布到应用案例,供用户进行查看,帮助用户学习和使用相似案例。
即席服务业务按服务对象分为业务类即席服务和公共类即席服务。对电力业务专属性强的AI 服务归属于业务类即席服务,如视频质量监测、安全生产智能监控、智能信访、智能审计、输电线路智能监拍等;其他公共类的即席服务包括人脸识别、通用文字识别、通用票据识别、通用卡证识别、出行类文字识别、语音识别等。
为支撑AIaaS 平台建设,如图4 所示,提出了平台技术架构图,其由平台层、模型层、展现层、应用层构成。
图4 技术架构设计图
技术架构设计说明如下:
1)平台层可预置诸多开源模型及算法,如通用文字识别、人脸识别、语音语义等;
2)模型层主要是基于模型库,为第三方供应商提供模型统一管理、逻辑隔离的能力;
3)展现层基于平台和模型层内的行业算法,提供如资源视图、可视化作业、智能检索等能力;
4)应用层主要依托于底层的人工智能能力,构筑人工智能创新类应用。
云计算的核心本质是虚拟化技术,AIaaS 以云平台为载体的进行构建。K8S 是基于容器的集群管理平台,能高效管理更多的虚拟化节点,更适合构建大型企业级企业平台,其架构如图5 所示。
图5 K8S架构示意图
Master 作为主节点负责多个业务节点Node 的调度管理。Node 作为工作节点,负责具体业务的处理,包含Pod、Service、Volume、Namespace、Lable 等组件。Master 作为主节点,管理并控制了多个Node 节点;在Node 节点上,Pod 组件作为被管理的最小单元,可部署多个Docker 容器,类似逻辑主机,每个Pod 分配单独的IP 地址,可视为单独的Linux 主机进行系统部署应用[11]。
OpenVINO™Model Server 是英特尔公司推出的面向人工智能的组件套件,可基于英特尔架构的强大算力,便捷、高效地完成AI 模型部署。组件架构设计如图6 所示,为支持AI 服务更好地发布和调用,设计了两种标准API 接口gRPC、REST,可供用户在本地或远程不同场景下调用,被调用的AI 服务及其模型被部署在容器内的OpenVINO™Model Server 框架内[12]。服务中的系统调度器接收到工作任务后,会把其分配给推理引擎,推理引擎一方面,会根据不同的基础设施组件,如可扩展处理器、服务器GPU、现场可编程门阵列(Field Programmable Gate Array,FPGA)等,调用其相对应的设备优化插件;另一方面,则会把经过模型优化器优化转换的中间表示文件(Intermediate Representation,IR)与设备优化插件相结合,从而在容器中提供高性能推理服务,并在不同架构硬件基础设施上都能发挥出更高效能[13]。
图6 OpenVINO™Model Server 架构图
在高性能开源K8S 容器平台上导入并集成OpenVINO ™Model Server 组件设计方案如图7 所示。在基础设施架构层,充分利旧现有的计算、存储与网络产品,构建数据中心基础设施架构,为用户及其AI 服务提供强大的计算、存储和数据传输能力;K8S 虚拟化层具备节点管理和调度能力,可充分利用基础设施的资源能力,并具备较好的可扩展性;AI服务层面向用户,提供客户多样化场景的AI 服务调用,满足AIaaS 平台即席服务、能力介绍、案列推广等业务场景和用户需求[14]。
图7 技术方案设计图
提出的方案设计具备以下优势:1)实现了模型便捷部署和快速推理,较大降低了运维成本;2)通过容器镜像部署方式,避免了部署环境及框架约束,提高了横向扩展能力;3)标准化的API 调用访问能力满足了远端及近端多场景的调用需求,提高了AI 服务能力。
以输电线路缺陷视觉智能检测场景为例,可通过监拍装置或无人机应用AI 模型对线路及杆塔缺陷进行智能分析检测[15]。基于AIaaS 平台,工作流程包括数据采集、模型训练及模型推理阶段。当完成模型输出后,即完成了模型的部署和案例发布;用户可通过即席服务进行服务调用,通过输入现场采集的图片,并选择模型进行调用及推理,最后输出缺陷识别结果。依据模型对海量图像、视频内容实施检测的推理过程,是该服务输出高效生产力的关键环节[16]。同类技术如TensorFlow、PyTorch等,其模型部署工具通常只与某个单一框架绑定,限制了方案可用性和扩展性。
为验证AIaaS 平台框架的实际表现,对其在输电线路缺陷智能检测场景中的应用与TensorFlow 进行了对比测试检验,测试方案如下:1)测试场景:输电线路缺陷智能识别;2)深度学习模型:MobileNetV2(BS=1);3)测试组:K8S+OpenVINO™Model Serve21.1版本;对比组:TensorFlow Serving2.3.0 版本;4)测试标准:用户并发数量。
测试结果如图8 所示,TensorFlow 框架支持的并发用户数为10个,而K8S+OpenVINO™Model Server框架为34个,同时并发客户端的延时小于28 ms。
图8 验证测试结果图
实验结果表明,采用K8S+OpenVINO ™Model Server 框架构建的AIaaS 平台框架具备同类计算框架具备更好的性能,完全满足实际生产业务的应用需求。
随着人工智能结合生产业务的应用推广,将满足不同场景的AI 模型进行集约化部署管理,并提供用户高质量的用户体验,是人工智能云服务的必要趋势。针对人工智能云服务平台进行了业务和技术调研,进行了业务规划和架构设计,并提出了一种通过将OpenVINO™Model Server 组件导入集成到K8S容器的框架设计,构建了易部署、易维护的企业级AIaaS 云服务平台,具备扩展性强、服务能力好等特点。经测试验证,其平台性能高于同类技术框架,具备较好的技术先进性和推广性。后续将结合企业的安全性需要,从混合云角度考虑如何将外部的数据和模型进行有效管理,从而提高其共建共享能力。