基于Kubeflow的人工智能平台建设探讨

2021-12-09 06:42葛华利王甲卫苑学贺
科学与信息化 2021年29期
关键词:组件机器部署

葛华利 王甲卫 苑学贺

北京中电普华信息技术有限公司 北京 100192

1 人工智能平台概述

人工智能技术作为近年来的发展最为迅速的一门技术,已经悄然地遍布到人们生活的方方面面,从智能语音输入,OCR文字识别,到无人驾驶汽车,人工智能已经发展成为最为火热的行业。

人工智能平台作为企业发力人工智能业务有力的基础架构抓手,能够随时随地使用数据。实现丰富的数据源接入,包括关系型数据库、文本文件、分布式数据引擎、MPP数据库、流数据、API数据、图片数据等,实现企业各类数据统一接入与管理。数据进入之后,可以作为样本数据进入样本库。从样本数据收集,分类,清洗,标注,管理的全生命周期流程,到模型框架的构建,模型结构的设计,再到模型的训练,模型参数的调优,最后再到模型的部署发布,对外提供服务,能够在统一的平台上进行一站式操作,并且平台具备完整的管理、监控。运维流程。

通常,从事人工智能模型的设计开发,需要大量的专业基础知识,如果没有一定的知识积累及经验积累,很难迅速的开发出理想的模型。但通过预训练的模型以及简洁明了的人工智能平台,即便从业时间很短,且经验不丰富的人员也可以迅速的开发出适合自己需求的模型。经过预先训练但可自定义的人工智能构建块可以在不熟悉编程或数据科学的情况下使用。从本质上讲,无须大量的模型培训即可完成工作。

简而言之,人工智能平台,瞄准于为用户提供全方位的样本数据管理和模型训练、推理服务能力,覆盖样本数据集管理、模型开发、模型训练、模型库管理和模型服务5大功能的AI全生命周期管理平台,助力用户快速高效地实现相关模型产品、业务升级,聚力AI未来。

2 kubeflow架构

Kubeflow是一个基于 Kubernetes 构建的可组合、可以移植、可扩展的机器学习平台[1],可以很好支持在公有云或私有云上实现完整的Machine Learning工作流程。Kubeflow 作为一个基于云原生构建的机器学习任务工具大集合,Kubeflow把诸多对机器学习的支持,比如模型训练,超参数训练,模型部署等进行组合并以容器化的方式进行部署,并提供系统的高可用及扩展性,研究人员就可以利用Kubeflow进行不同的机器学习任务,或者是可以验证某个模型的识别精度及能力,或者是快速落地基于特定模型的落地场景。为了让机器学习模型正常工作,往往还需要将其整合至应用程序当中具体包括Web应用程序、移动应用程序。利用Kubeflow,研究人员无须学习最新概念与平台知识、也不必处理入口与网络证书等复杂因素,即可轻松将模型部署至应用程序之内。正是基于此,kubeflow所有的组件、模块均基于Kubernetes部署发布。整体的架构图如图1所示[2]:

图1 Kubeflow整体架构

Kubeflow的组件包括:Serving、Metadata、Tools、Jupyter Notebooks、Traing Operators、Workflow Building以及Pipelines。

图2 Kubeflow组件

组件简要说明如下:

服务化(Serving)

模型的在线部署,将模型转化为服务,支持版本控制及无须停止线上服务、切换模型等。对外提供人工智能的能力。供外部系统调用或使用。

元数据(Metadata)

跟踪和管理机器学习过程中的元数据。

工具(Tools)

控制面板及监控工具,图形化操作,方便用户使用。

编辑器(Jupyter Notebooks)

模型开发、训练的使用的代码编码器。

训练器(Training Operators)

集成多种算法框架,供开发者选择使用。

工作流(Workflow Building)

工作流组件,用于定义复杂的ML工作流。

管道(Pipeliness)

用于执行定义好的工作流[3]。

人工智能构建模型,绝不仅仅是“建模”而已。在真实的生产应用环境中,整个机器学习的Pipeline,还包括了环境配置、数据管道搭建、数据整合、分析、视觉化,模型训练,模型验证发布,监控日志等多个环节,涉及不同的技术、服务和工具。

Kubeflow囊括了所有人工智能模型构建需要用到整体流程,从数据采集,验证,到模型训练和服务发布,几乎所有的步骤Kubeflow都提供解决方案的组件,Kubeflow将人工智能构建模型的各个阶段涉及的组件以微服务的方式进行组合,并最终以容器化的方式进行部署,提供整个流程各个系统的高可用及方便进行扩展。当然,如果具备私有云环境,完全可以构建自有的kubeflow平台。也可以选择使用谷歌云(GCP)、亚马孙(AWS)、微软(Azure)上提供的容器集群或本地已有的容器集群作为底层的kubernetes。目前kubeflow1.2已经在kubernetes1.16版本上通过兼容性测试[4]。

3 基于kubeflow构建人工智能平台

目前我们可以基于kubeflow来构建所需的人工智能平台,充分利用本地的Kubernetes集群,同时,可以按需建设所需要的样本库、模型库、算法库、训练管理能力、服务发布管理等能力等。样本库用来管理已有或将要产生的样本数据,在经过样本预处理、样本脱敏以及样本标注之后,可以作为模型训练的训练集、验证集和测试集。如果进一步提升样本库的易用性,集成自动标注能力将更有利于样本数据的处理。通过少量样本预训练模型后即可实现自动标注功能,极大地节省标注所耗费的人力和时间。模型库用来管理已有的模型或即将训练完成的模型。在模型数量、种类达到一定数量规模时,系统化、条理化的管理是非常有必要的。模型的框架、API接口、输入参数、输出参数、模型运行所需资源等信息,都可以通过模型库进行管理,并做成不同维度的指标,方便使用。算法库用来管理各种算法、算子,在团队训练时,各团队业务方向不同,训练推理所使用框架不同,算法中用到的算子也不尽相同,通过Kubeflow可以形成统一的管理机制和体系。训练管理在多人多任务时显得尤为重要,平台的资源调度,训练任务的优先级等,都需要统一调度安排。运行管理可以依据Kubeflow本身自有组件的功能,也可以进行二次开发,适配个性化需求。

图3 基于Kubeflow的人工智能平台

4 结束语

Kubeflow基于云基础设施提供快速AI训练、部署环境,支持规模化地构建和部署AI应用,可以加速实现AI技术从验证、到实用再到技术落地的速度。消除这一环节中的应用环境障碍、组件选型适配障碍,减少配置复杂度,降低人为错误,获得更好的开发使用体验。重点是,无论有什么样的场景需求,都可以定制化自己的AI工作流程,并且让系统自动调度分配闲置的机器。所以Kubeflow非常适合构建人工智能平台,通过Kubeflow的使用,将会极大的提高开发、应用生产力。

猜你喜欢
组件机器部署
机器狗
无人机智能巡检在光伏电站组件诊断中的应用
机器狗
一种基于Kubernetes的Web应用部署与配置系统
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
晋城:安排部署 统防统治
一种嵌入式软件组件更新方法的研究与实现
部署
通用(OA)办公自动化系统的组件运用
未来机器城