Fork me on GitHub

中原银行 AI 平台建设实践

以下文章来源于 https://zhuanlan.zhihu.com/p/608202613

转载地址
导读: 本文将分享中原银行在 AI 平台建设过程中的一些实践和思考。

主要从以下几方面展开:

​1. AI 平台建设目标

  1. AI 平台建设实践
  2. AI 平台建设思考
  3. ModelOps 建设实践

分享嘉宾|刘顺华 中原银行 AI 平台负责人

编辑整理|霍傲 九江银行

出品社区|DataFun


01/AI平台建设目标


首先,介绍一下中原银行 AI 平台的建设背景、建设目标和建设历程,以及平台建设所依据的方法论,即 MLOps 相关的一些理念。


1. 建设背景



一个完整的 AI 模型的开发流程:

  • 首先是需要对业务需求进行分析,然后确定一个业务目标,并根据确立的目标来搜集所需要的数据,而后面对数据进行清洗标注等一些的处理;
  • 数据准备好之后就可以进行特征工程和模型训练,模型训练完成并通过评估之后就可以部署到生产环境;
  • 最后对部署到生产环境的模型进行监控,等到模型性能衰减到一定程度之后,就需要对模型进行及时的更新迭代,这是开发一个 AI 模型比较规范的流程。

之前的做法是,在数据准备阶段可能拿到的数据是 Excel 或者 CSV 文件,然后申请一台高性能 CPU 或 GPU 服务器,最后通过 notebook 尝试做一些模型实验,并最终得到一个模型。由于数据科学家的专业性,一般其工程能力较为薄弱,在模型上线过程中可能会遇到困难,模型上线后需要不断的迭代开发,其中也涉及到频繁的模型部署上线,以保证生产稳定性。

之前做法存在的问题:

  • 在技术层面,由于计算资源即服务器是各自申请使用,会导致总体上的资源分配不均衡,互相隔离的服务器也会导致数据、资源共享复用困难,还会导致模型训练环境不一致,对后续维护或者是工作交接造成困扰;
  • 在数据存储同步方面,由于每个人所需要的数据各自都会去同步存储管理,会加大存储和数据管理的开销,也增大了负责数据 pipeline 开发和运维工作人员的工作压力;
  • 在模型构建方面,传统的开发工具较为简陋,对于模型开发和评估的全流程都需要手动实现;
  • 对于代码和模型管理方面,传统的 AI 模型开发流程对于代码和模型的版本管理基本是缺失的;
  • 对于模型部署上线方面,一方面是传统数据科学家对于模型的实时服务的发布上线和模型的批量定时调度存在一定的困难,这会导致模型的持续集成、持续部署、持续训练的流程不畅;另一方面是模型开发上线是一个工程问题,它涉及到数据处理、模型构建、模型部署以及模型上线等多个角色之间的相互配合。而由于缺少一个协同的工作平台,会导致各个角色之间工作协同的困难。

2. 建设目标



对于以上描述的问题,结合面向应用系统的 DevOps,作为平台的开发者很容易想到应该提供一个一站式的平台实现 AI 模型的开发、部署、上线、运维。因此中原银行的 AI 平台建设目标也是主要包括以下几个方面。

  • 首先是对于模型开发训练所需要的基础环境,基础资源,比如算力资源、存储资源、算法框架进行统一的管理,并且对普通用户屏蔽具体的细节,真正做到资源的共享复用和开箱即用。
  • 对于模型开发训练所需要的开发环境进行集成,提供应用的代码开发调试的集成开发环境,并且提供智能化的版本管理工具。
  • 对于建模所需要的数据,平台需要提供统一的数据接入、存储、管理和治理服务,并且同时加强对于公共数据和私有数据的权限管理以及生命周期的管理,从而提高数据的共享复用。
  • 最后对于模型的开发训练,平台也需要提供一站式的工程化能力,从而提高模型的训练和评估的效率,同时降低模型的部署上线和监控的难度。

3. MLOps 概念

从上面对 AI 平台建设目标的介绍中,可以看出中原银行进行 AI 平台建设思路与当前比较主流的 MLOps 的理念是一致的,这里简单介绍一下 MLOps。



MLOps 是机器学习时代的 DevOps,旨在统一 ML 系统开发(dev)和 ML 系统部署(ops)。它的主要作用是连接模型构建团队与业务及运维团队,建立起一个标准化的模型开发,部署与运维流程,以应对越来越多基于 ML 的应用的工程化问题,使得企业组织能更好的利用机器学习的能力来促进业务增长。

MLOps 要解决的核心问题为:

  • 缩短模型开发部署的迭代周期,曾有报告显示很大一部分的公司需要 30~90 天才能上线一个模型,更有甚者需要 90 天以上才能上线一个模型。
  • 由于一些算法工程师花在模型部署方面的时间比例明显偏多,所以 MLOps 希望通过更标准化、自动化的流程与基础设施来提升模型交付的整体效率。
  • 另一个核心问题是 MLOps 希望通过提供一个协作平台,让业务、数据、算法、运维等角色既能专注自己更擅长的工作,又能进行高效协作,从而提高业务的价值产出。


MLOps 的原则为:

  • 自动化,从数据接入到模型训练到最后的部署上线,能自动化的都要自动化;
  • 持续性,既持续集成、持续部署、持续训练,以保证生产上的模型能够及时的更新迭代;
  • 版本化,对于数据代码、模型都应该有版本管理的功能;
  • 测试,需要对数据、模型和应用的 pipeline 都进行测试,以保证输出结果与预期的业务目标相符合;
  • 监控,需要对数据和模型进行监控,以保证能够及时发现模型的异常情况,并触发预警。
  • 再现性,应该保证整个建模过程以及结果的可复现性。

4. 建设历程

基于以上的建设背景、建设目标和 MLOps 方法论,中原银行在19年开始与北京九章云极公司合作,一起建设中原银行的 AI 平台。



这几年平台主要经历了这几个阶段:

  • 2019.08 产品第一次上线;
  • 2020.10 对计算集群进行了扩容,对版本进行了升级;
  • 2022.09 将训练集群和推理集群进行了拆分;
  • 目前正在搭建容灾环境。

--

02/AI 平台建设实践


以上对 AI 平台的建设目标和所依赖的方法论做了一个整体的介绍。第二部分将以 MLOps 的方法论为指导,结合 AI 建模流程,具体介绍一下 AI 平台应该具备的一些功能和需要注意的问题。



从这张功能架构图中可以看出,中原银行的 AI 平台围绕建模流程提供数据接入、数据预处理、数据探索、模型训练、模型评估、模型发布和模型服务等几大功能,另外还提供了项目管理和系统管理的相关功能。下面将从平台用户的角度,给大家简单介绍一下 AI 平台各模块应该提供哪些功能和需要注意的问题。


1. 数据接入与管理



在数据接入方面,平台提供了多种数据接入方式,还提供了数据管理和元数据管理功能,并且支持数据的接入即分析,能够帮助用户快速的了解数据的基本信息,比如数据的分布和数据质量情况。


2. 数据处理与加工



在数据预处理和数据探索方面,中原银行 AI 平台具有以下功能:

  • 在进行数据探索之前需要创建数据探索任务,创建任务的同时平台会对所需要的计算资源和存储资源进行管理和分配;
  • 平台可以通过预置的一些数据处理和特征工程相关的算子,支持用户在 web 页面或者通过拖拉拽的方式,实现对数据进行清洗、转换、统计以及特征转换和衍生、特征选择等;
  • 平台可以通过预置的可视化处理算子,实现对数据处理过程的可视化,帮助用户能够及时的了解每一步处理之后数据集的变化情况;
  • 可以保存数据处理和特征工程过程,方便后续重新执行,或者是对新进来的数据执行相同的数据处理过程。

3. 模型开发与训练

数据处理完成之后,就可以进行模型开发和模型训练。

  • 在模型开发方面,平台提供了三种建模方式分别是**:** 面向数据科学家的自编码建模,面向IT工程师的工作流建模(即拖拉拽建模 ),以及面向业务人员的自动建模 。通过这三种建模方式,可以使不同角色和不同能力的人都可以参与到 AI 模型的构建过程中,降低智能化应用的获得门槛。
  • 在模型训练方面,平台提供了模型超参数的调优、训练所需资源的申请和配置,以及训练所依赖环境的自定义安装、训练过程实时的可视化监控、以及训练日志的查看等功能。


① 编码建模



对于自编码建模,平台提供了开箱即用的集成开发环境,支持用户使用 Python、R 等多种语言进行模型的开发、调试和发布,并可以通过功能即服务(FAAS)技术,使得用户不但可以操作自己工作空间中的各类文件,也可以直接使用整个项目下的数据集和算子等一些对象,从而提高在同一个项目下不同用户角色之间的工作协同。

② 工作流建模



对于工作流建模,用户可以根据需求通过拖拉拽数据集、数据处理算子、特征工程算子、模型训练和评估相关的算子来快速的构建工作流。同时对于工作流的调试,平台也支持分步调试。比如执行到此处、从此处执行、单步执行该节点等,而不需要运行整个工作流,可以大大节约工作流的设计时间,提高整体设计效率。

而且支持查看每个模块的运行日志和输入输出,从而跟踪模型训练的过程。

③ 训练过程可视化



前面已经提到平台对于模型的训练过程进行了可视化,让数据人员能够实时的、直观的跟踪参数调优的效果,以及模型训练过程中资源的使用情况,方便模型训练人员能够根据实际情况对超参数进行调优,降低训练模型的难度。


4. 模型评估



在模型训练过程中,还需要不断的对模型进行评估,以方便最终选择最优的模型。在这方面,平台不仅提供了 ROC、AUC、准确率、召回率、特异度等多种常用的一些评估指标,同时还支持多维度的可视化、交叉对比,超参数对比以及自动的模型评估对比。


5. 模型发布



模型通过评估之后,对于满足要求的模型需要对外发布成服务,以便第三方应用的使用。AI 平台是通过模型仓库对模型进行统一的管理。

模型仓库通过衔接模型训练任务和模型服务,不仅能够简化模型从构建到一键部署发布成服务的工作,而且还能够对模型进行分类管理,并提供统一的模型管理服务,比如模型文件校验、模型性能评估、可视化解释等管理功能。另外,模型仓库不仅能够管理在平台中通过工作流或自动建模训练得到的模型,而且也支持管理平台之外使用开源机器学习框架直接以代码的方式开发训练得到的模型。


6. 模型服务

AI 平台通过模型仓库的功能,上面已提到可以提供模型的管理功能,当然也可以提供多种对外发布的模型服务功能。



对于在线模型服务, AI 平台可以根据模型的类别提供与之适配的 Java 或 Python 运行环境,业务系统可通过多种方式直接调用模型服务所提供的接口进行数据预测。

对于无法直接调用在线模型服务的系统或者需要进行大批量数据预测的场景,平台支持将模型以 SDK 的方式导出,SDK 中包含有模型数据及相应的开发接口。

另外对于在线模型服务,平台还支持灰度发布、正式发布、影子发布等多种方式。



在模型发布成服务之后,需要对线上的模型进行监控,AI 平台支持持续对模型的运行日志、资源的使用情况、调用情况、模型的性能进行监控。具体实现方式是通过定时任务,使用新接入数据,对模型进行自动评估,跟踪模型评价指标的变化趋势。


7. 环境管理与资源调度

最后再介绍一下 AI 平台的环境管理和资源调度的实现方式。



平台使用K8S对物理服务器的计算资源与存储空间进行统一调度,通过为不同的租户创建 Namespace,并对计算资源和存储空间进行隔离,以最大限度提高服务器的物理资源利用率。各个 Namespace 的资源限额可以在创建租户时配置。

平台还通过 Docker 技术为数据处理、代码编程、模型服务提供可定制化的运行时环境,用户可以使用 Dockerfile 的镜像构建方式自行构建包含特定编程环境、编程框架、中间件、服务的 Docker 镜像。Docker 镜像为应用环境的迁移、复用提供了极大的灵活性,用户只需要导出 Dockerfile 便可以在新的环境中快速的复制出原有的环境。

另外,平台还支持多种资源调度方式,并支持对在线模型服务的计算资源和实例个数进行设置,以实现水平扩展能力。


8. 系统架构



以上就是对 AI 平台提供的一些具体功能的介绍。

--

03/AI 平台建设思考


以上两个部分以 MLOps 的方法论为指导,从平台用户的角度给大家简单介绍了 AI 平台面向用户需要提供的一些基本功能和实现这些功能需要注意的一些问题。但是一个完整的、强大的 AI 平台不仅要提供这些功能,从平台建设者和管理者的视角来看,**还需要提供资源管理、环境构建、数据治理以及特征管理等更深层次的功能。**接下来,将从 AI 基础层的三要素:算力、算法、数据以及 AI 平台运行维护方面,再来探讨一下 AI 平台如何建设。


1. 云化 AI 能力



算力方面所面临的问题包括:

  • 首先,AI 是一个高资源消耗和强计算的技术,算力的强弱直接关系到 AI 模型训练的精度与实时推理的结果。对于开发一个模型的原始的做法,可能是每个项目组或者数据科学家都会申请自己的高性能服务器,这种方式的明显缺点是不能充分利用昂贵的服务器资源。
  • 另外根据不同的业务场景,AI 应用所需要的资源类型也可能会不同。比如有些场景需要 CPU,有些场景就需要 GPU,而且每批服务器的型号和架构可能也不同,这就会给数据科学家对这些资源的使用和管理带来很大的挑战。

针对这些问题,作为平台建设者,目标是对数据科学家屏蔽这些算力资源管理的细节,做到 IaaS 即基础设施即服务,让数据科学家能够把更多的精力放在模型开发训练本身。

具体的做法为:

  • 使用 K8S 对物理服务器的计算资源与存储空间进行统一的管理和调度,为每个租户创建自己的 namespace,并且对计算资源和存储存储空间进行隔离。
  • 用户在进行模型开发之前,可以在 web 页面中申请所需要的资源类型和资源配额,同时平台通过提供多种资源调度方式,使得用户自己可以根据实际的模型开发训练过程对资源分配和占用情况进行调整。
  • AI 平台也对接了 CDH 的大数据集群,对于大数据量的处理任务,可以通过大数据技术提高处理效率。

对于 GPU 资源,目前平台虽然对 GPU 服务器进行了统一的管理,但是使用方式还是独占的模式,这就导致了目前平台 GPU 利用率低下、GPU 资源紧张,这也是目前平台的痛点。

目前正在进行 GPU 虚拟化的研究,目标是能够对 GPU 资源进行统一的虚拟化管理,然后根据实际的需求进行分配,从而提高 GPU 的资源利用率。


2. 算法



AI 平台算法层面应具有的功能包括:

  • 集成常用的开源算法,方便数据科学家在平台上直接使用。
  • 提供常用的数据处理和模型训练相关的算法封装,即平台里的算子,这样能够方便用户直接通过拖拉拽的方式进行模型开发,并且允许用户自定义算子。
  • 提供一些自动建模的工具,针对一些特定的业务场景,普通用户也能够开发自己的 AI 模型,并且也能够取得不错的模型效果。

总的来说,AI 平台在算法层面应该能够帮助降低模型开发门槛,帮助 AI 模型的快速落地。

在算法层面,中原银行 AI 平台具有的功能:

  • 集成了主流的开源机器学习算法库和深度学习框架,比如 Scikit-learn、Pytorch、XGBoost、TensorFlow 等;
  • 提供丰富的算子库,内置了200多种常用的数据处理、特征工程、机器学习、模型预测与评估等相关的一些算子,并且也提供这些算子的相应源代码,允许用户直接组建工作流与模型构建,进行快速的 AI 模型的构建;
  • 通过提供集成的开发环境,支持用户使用 Python、R 等语言,对算子进行编辑,或者是开发自己的算子;
  • 基于 Docker 技术实现对算子的封装集成,支持用户将自定义算子发布到算子库中,从而方便共享复用,能帮助成为公司的重要的智力资产;
  • 在自动建模方面,**集成一些常见的自动建模框架和自研的自动机器学习算法提供了自动建模的功能,**实现了在图像识别、反欺诈、自然语言处理、产品推荐、时序预测场景的自动机器学习。

3. 数据

虽然在算力和算法层面也在不断取得进步,但是人们也发现仅靠持续不断的提供强大的算力、持续丰富算法框架和参数调优手段,模型的性能提升空间越来越小,反而是高质量的数据和合理的数据处理过程,对模型性能的提升有显著的作用。人工智能届的大牛吴恩达教授在一次会议上也指出应该将重点转向以数据为中心来开发机器学习系统,可见数据对机器学习的重要性。那怎么样去提升数据质量呢?



数据层面常常会遇到如下问题:

  • 数据来源多样,如银行的数据不仅会涉及到交易数据,还会涉及到运营数据、用户行为数据,而且还涉及到众多外部数据,如征信、工商、司法等;
  • 数据类型多种多样,不仅有结构化数据,还有文本图片、视频、音频等半结构化和非结构化数据;
  • 数据开发缺少统一的标准,数据中隐藏的有价值的信息难以挖掘出来;
  • 对于海量的数据,不仅清晰标注加工处理存在困难,如何存储也是一个较大的挑战;
  • AI 建模的数据需求,有些方面与传统需求不同,如在数据的采集方面,AI 需求可能需要采集的数据范围更广,数据类型更多样,在数据的加工衍生方面也更具有针对性,且对于离线数据和实时数据的消费方式也有别于传统的应用。

面对这些问题,中原银行建设了统一的数据中台,不但对数据资产进行了统一的加工、存储,而且还建立了数据治理体系,比如元数据管理、主数据管理、数据血缘管理、数据质量管理,以及数据生命周期管理。但是这些都是面对传统的数据需求建立的,而 AI 需求有些方面是与这些传统需求是不同的,比如数据的采集范围更广更多样、数据的加工衍生更具有专业性、离线数据和实时数据的消费方式也有别于传统应该。因此如何提供面向 AI 的数据服务和数据治理是我们现在关注的一个重要问题。

中原银行现在的做法是首先 数据工程师基于数据仓库把数据按照一定的业务逻辑加工成公共明细数据、公共汇总数据、以及集市数据;然后数据科学家将需要的公共数据从数据仓库同步到特征仓库中加工成面向建模的私有数据用于模型训练,对于特征仓库中数据的生命周期管理,已经做到了行级别管控。

但是目前的特征仓库的功能还比较弱,对实时数据和非结构化数据的支持还在研究中;而且对离线特征的加工和实时特征的加工也没有做到统一。这些都是下一步需要增强的地方。


4. 部署架构

最后介绍一下 AI 平台的部署架构,因为模型一旦部署上线就会参与到业务过程,有些还是特别重要的面向客户的实时交易场景,故模型调用服务是非常重要的。



为了减少模型训练对于模型推理的影响,提高模型推理的稳定性。今年中原银行将 AI 平台拆分成了两个集群,一个用于模型训练 ,一个用于模型的推理。当模型训练完成之后再部署到推理环境,从而用于对外提供服务。

今年也正在搭建容灾环境,从而进一步的提高模型推理的健壮性。

从这个部署架构中可以看出,无论是训练集群还是推理集群,用户都是在生产环境中直接使用的,因为真实的业务数据都在生产环境中,这样做会方便数据科学家开展工作。当然这样做也会带来一定的数据安全问题。

对于模型服务需要配合应用系统的联调测试的情况,也会允许用户通过模型管理平台把模型部署到测试集群。

--

04/ModelOps 建设与实践


以上是从 MLOps 和 AI 基础层三要素方面介绍中原银行在 AI 平台建设方面的实践。在最后这一部分,简单介绍一下中原银行在模型管理方面的工作,这块的内容也是比较多的,但由于篇幅有限,这里只作简单介绍。


1. 模型管理的背景



我们之所以要对模型进行管理,主要有三方面原因:

  • 模型有风险;
  • 监管有要求;
  • 行内有痛点。

2. 模型管理的目标

中原银行模型管理的核心目标是通过建设模型管理平台,构建全行模型生态,实现模型全流程、一站式管理,打造模型风险管理闭环,提升模型管理精细化水平,提高模型相关工作的效率和可靠性。



具体分为四个方面:

  • 在流程管理方面,以项目的视角看待模型工作,将模型生命周期进一步扩展,拉通模型需求管理流程、开发训练流程、上线流程,以及资产管理流程,无缝对接行内 OA 等管理系统,实现模型全生命周期流程的管理;
  • 在敏捷部署方面,通过加强模型相关人员的协同,来降低模型开发训练门槛、实现模型的自动化部署。
  • 在资产管理方面,通过构建资产库和相关的制度,对模型资产进行集中管理和治理。
  • 在监控预警方面,打造产品级的监控预警,实现了模型监控的标准化、配置化、可视化。

3. ModelOps 介绍

从以上模型管理目标可以看出,中原银行进行模型管理的思路与当前比较流行的 ModelOps 的理念是比较一致的。



上图介绍了 ModelOps 的基本理念。


4. ModelOps 与 MLOps

从 MLOps 和 ModelOps 的理念可以看出来,双方是互补的解决方案,而不是竞争的关系。


MLOps 是机器学习时代的 DevOps,它的主要作用是连接业务、模型构建团队和运维团队,建立起一个标准化的模型开发、部署与运维流程,使组织能规模化应用机器学习项目。但是 MLOps 无法在业务的整个生命周期中管理和生产模型。

而 ModelOps 专注于开展各类模型治理及模型全生命周期管理。但是ModelOps 无法直接构建模型,它需要与生产模型的工具进行配合工作。


5. 中原银行 ModelOps 体系

根据中原银行的实际情况,对于模型的管理制定了一套基于模型管理平台、 AI 平台、智策平台的模型支撑体系架构。



6. 中原银行 ModelOps 体系



从这张系统架构图中可以直观的看出,模型管理平台主要负责模型的全生命周期管理,包括模型的需求管理、开发管理、上线管理、资产管理以及监控管理等,AI 平台和智策平台主要负责模型的具体开发。


7. 模型管理组织架构

以上从技术层面对模型管理做了简单的介绍。而一旦涉及到管理,就必须保证管理措施能够顺利的执行,那就必须从组织架构和制度层面提供相应的保障。



在组织架构方面,从上到下设计了一套服务于模型管理的组织框架,明确了各自的分工,主要包括高级管理层、模型评审委员会、模型开发和应用部门、模型验证和审批部门以及审计部门等。


8. 模型管理制度建设

在制度建设方面,中原银行先后制定了1个议事规则,3大办法,4个标准,和1套管理规范。



9. 模型管理关键流程



以上从技术和制度的角度,给大家从整体上简单介绍了模型管理的方法论。这里再给大家具体介绍一下模型上线前相关阶段中比较关键的流程。中原银行将模型上线前分为了三个阶段:需求阶段、开发训练阶段和上线阶段,上图展示了各个阶段中相应的管理流程。


10. 模型资产管理和治理



在模型管理中,另一个核心的问题是对模型资产的管理和治理,中原银行也是首先从制度层面发布了模型资产管理的相关规范,后通过模型管理平台提供相应的管理工具,对模型进行管理和治理。

以上就是中原银行在 AI 平台建设和模型管理相关方面的一些实践,谢谢大家。


分享嘉宾

刘顺华|中原银行 数据信息部 AI平台负责人

刘顺华,17年郑州大学硕士研究生毕业,计算机专业,之后进入中原银行工作。长期参与数据平台建设,曾负责 BI 产品的设计和研发,对报表、交互式分析、可视化分析、增强分析有深刻的理解。现在负责 AI 平台建设,主要包括机器学习、联邦学习、MLOps/ModeOps 等相关平台的搭建。


**


本文地址:https://www.6aiq.com/article/1676977200752
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出