首页> 中国专利> 一种算法模型全生命周期管理工具系统及其实现方法

一种算法模型全生命周期管理工具系统及其实现方法

摘要

本发明提供一种算法模型全生命周期管理工具系统及其实现方法。包括:数据管理模块,用于数据上传,数据加载和数据信息记录展示;环境管理模块,用于构建所需环境或者使用已经存在的环境,环境本身的信息与任务运行绑定的信息记录在相应的数据库中;模型管理模块:用于记录模型的本身信息和运行信息;运行管理模块:用于将单个任务串接起来运行。本发明用于提高模型开发上线的效率,保障模型的开发质量和并建立起模型优化的反馈循环策略。

著录项

  • 公开/公告号CN112667597A

    专利类型发明专利

  • 公开/公告日2021-04-16

    原文格式PDF

  • 申请/专利权人 北京晶派科技有限公司;

    申请/专利号CN202011386606.5

  • 申请日2020-12-01

  • 分类号G06F16/21(20190101);G06F16/2458(20190101);G06F16/25(20190101);G06N20/00(20190101);

  • 代理机构44248 深圳市科吉华烽知识产权事务所(普通合伙);

  • 代理人胡吉科

  • 地址 100083 北京市海淀区中关村东路8号东升大厦AB座七层706单元

  • 入库时间 2023-06-19 10:38:35

说明书

技术领域

本发明属于算法领域,尤其涉及一种算法模型全生命周期管理工具系统及其实现方法。

背景技术

机器学习模型从开发到上线部署的过程存在诸多的痛点:例如,开发阶段数据未能进行有效管理,数据的存储地址,访问方式多样不统一;数据信息杂乱,没有系统存储和合理统一的查找途径,开发环境亦然,通常无环境管理系统,造成:一是无法有效利用已经存在的依赖环境,产生冗余; 二是环境信息缺失,使用时会存在潜在的问题。

此外模型研发时通常有工作流的需求,还可能会伴随大量测试产生较多的冗余模型; 开发完成后在生产环境进行部署上线,如果缺少合理的机制也会存在诸多问题,例如:上线标准难以衡量,模型的形式多种多样,导致部署效率低等;维护阶段对模型使用情况的记录,对性能的追踪若不及时,很可能会出现由于模型表现变差而带来的收益下降情况。

发明内容

为了解决以上技术问题,本发明提供一种算法模型全生命周期管理工具系统,用于提高模型开发上线的效率,保障模型的开发质量和并建立起模型优化的正反馈循环策略。包括:如下几个模块:

数据管理模块,用于数据上传,数据加载和数据信息记录展示;

环境管理模块,用于构建所需环境或者使用已经存在的环境,环境本身的信息与任务运行绑定的信息记录在相应的数据库中;

模型管理模块:用于记录模型的本身信息和运行信息;

运行管理模块:用于将单个任务串接起来成线性结构的形式运行。

其中,用于记录模型的本身信息,包括:创建者,模型类型,使用数据,环境等。

本发明的算法模型全生命周期管理工具系统名称为Titan。

优选的,所述环境管理模块所支持的环境为:所述环境管理模块所支持的环境多种虚拟环境,包括但不限于Anaconda环境或Docker环境,所述系统可基于文件帮助用户自动构建所需环境或者支持指定已经存在的环境,环境本身的信息与任务运行绑定的信息会在相应的数据库中被记录。

本发明进一步采用以上技术方案,用户可在此基础上自由修改以适应特定的需求, 在程序运行时,本系统会先基于文件帮助用户自动构建所需环境(也支持指定已经存在的环境使用),环境本身的信息与任务运行绑定的信息会在相应的数据库中被记录,方便用户随时追溯任务运行的环境信息。

优选的,模型管理模块:所述模型的本身信息和运行信息,由所述系统主动记录,或者采用所述系统提供的接口,记录中间结果诸如评价指标,日志信息等到数据库中。

优选的,所述运行管理模块通过定义不同的工作流(flow)文件,不同的运行参数传递,高效的区分了单元测试,集成测试,边界测试等,并提供完整的信息保证测试过程的正确性和可复现性。

命令行运行举例:

Titan run –参数名称 参数内容

系统提供不同的参数内容以标识此次任务的类型(属于什么任务);亦提供不同类型的参数名称:指明任务运行在何种环境下的,传递给模型使用的参数等等。Titan会获取并识别这些参数和对应的内容。

图形界面针对固定的参数可提供下拉框选择相应的参数内容,效果与命令行使用相同。本系统对于测试参数提供一下测试类型;

单元测试:对程序中的最小可测试单元进行检查和验证;

集成测试:将所有模块按照设计要求组装成为子系统或系统,进行测试。

边界测试:探测和验证代码在处理极端的或偏门的情况时会发生什么。

本发明支持线性工作流,有向无环工作流,循环结构工作流,其通过自定义的工作流配置文件flow.yaml实现,在该文件中不仅定义了工作流的结构,也记录了与任务相关的所有信息:项目名称,代码地址,环境地址,数据文件,计算参数等等。

其中,广义的计算参数包括配置模型本身的参数和配置计算资源的参数。前者根据不同模型有不同参数及组合,是在模型运行前为模型进行计算框架设置。例如针对神经网络模型,定义模型的层数,每层的结点数,激活函数的种类,是否开启dropout等等。后者则表示对计算资源的声明,包括不限于对所用CPU个数,内存需求和是否使用GPU的声明。

本发明进一步采用以上技术特征,其优点在于,通过该系统可以快速判断模型是否达到了既定的上线标准,同时将规范化的工作流配置文件作为模型的主入口,可以简化部署的步骤,提高效率。其中,工作流是将单个程序(任务)串接起来,表示成线性结构的形式去运行。

相应的,本发明还提供一种算法模型全生命周期管理工具系统的实现方法,包括如下几个步骤:

步骤A:数据上传:使用者借助提供的命令行命令或图形界面上传数据文件,文件将上传至文件型数据库,该数据库是云端数据存储,数据信息的相关信息存储在数据库中;

步骤B:环境准备:使用者在提供的环境描述文件的基础上,依据自己需要的添加依赖;

步骤C:模型构建:在主要程序代码完成后,使用者编写工作流配置文件,所述配置文件通过命令行或图形界面页面运行;

步骤D:运行:系统自动构建运行环境,自动下载数据到相应的代码运行环境下,自动解析工作流并向云服务发起任务,顺次执行工作流中的节点,运行的中间信息与计算结果等将存贮在对应数据库数据库中;用户可以在运行时添加不同的参数或标签,表示不同的任务或测试类型。

本发明采用以上技术方案,其优点在于,数据管理模块包含数据上传,数据加载,数据信息记录展示等功能。计算数据本身会被上传至云存储,而附带的信息诸如数据的名称,描述,版本号等则会存贮在数据库中。用户在代码中通过名称即可调用相应的数据,本系统会先检测本地是否同样的数据文件缓存,避免重复下载。若检测为否后数据将被下载到默认文件夹并软连接到用户指定的地址。因此不论在什么运行环境或者不同的物理机下,用户均可以通过名称访问对应的数据,达成统一的数据访问的目标。 又得益于数据库的记录,数据文件的具体信息例如样本量,特征个数,版本号以及被使用的记录都可便捷查看。

优选的,本方法还包括:步骤E:模型部署:模型开发并测试完毕后即可推进到上线使用的阶段,使用者发起上线请求,审核者调取模型运行测试结果,判断模型是否达成上线标准。

优选的,还包括:步骤F:模型监控阶段:发布后的模型会受到持续性的监控;如果模型表现持续下降达不到预期的阈值,将触发警报模块,通过上线的平台发出警戒信息,并通知相应的模型开发者或维护者进行处理。处理完成后再依照如上的步骤发布模型。

本发明采用以上技术特征,其优点在于:部署完成后的模型可以进入到大规模实际应用的阶段。但潜在的代码错误(bug)或者糟糕的模型表现会直接影响业务的效率和效果。同时针对模型情况的监控可以避免潜在的代码错误(bug)或者糟糕的模型表现直接影响业务的效率和效果。模型运行状态监测以及消息提醒主要由对接的部署平台承担,本发明侧重在模型使用表现的监测上,有如下几点:

1.利用描述性统计的手段,监控模型的输入数据和预测结果。

2.基于一些预先设定的关键性指标,定期监测模型的表现是否出现下降。

3.相应的,如果模型表现持续下降达不到预期的阈值,将触发本发明的警报模块,通过上线的平台对发出警戒信息,并通知相应的模型开发者或维护者进行处理。处理完成后再依照如上的步骤上线模型,监控表现,如此往复。

本发明作为一种针对算法模型的全生命周期管理工具系统带来了如下效果:

1.首先数据的统一访问形式缩短了数据的收集时间,减少了对应的代码量。其次自动构建环境功能节约了时间的同时也提高了环境构建的稳定性.

2.工作流赋予了用户极大的灵活度去组合各个任务节点,丰富了功能性,提高了组合运行的效率,多样参数和不同工作流(flow)文件的加入也相应节约了测试时间。

3.采用统一聚合的数据库来管理信息,信息的完整度和查询的便捷度更高,进一步提升了用户的开发效率,也利于模型过程的追溯和复现。

4.模型性能监控构建了正向的模型反馈优化途径,有助于及时止损并能迭代提升模型表现。

附图说明

图1是本发明一种实施例的数据上传流程图。

图2是本发明一种实施例模型运行流程图。

图3是模型部署审核流程图。

图4是模型表现监控流程图。

图5是本发明实施例2的流程图。

具体实施方式

下面结合附图,对本发明的较优的实施例作进一步的详细说明:

实施例1

本模型开发阶段包括如下几个步骤:

步骤一:数据上传:

如图1所示:使用者借助提供的命令行命令或图形界面上传数据文件,文件将上传至云存储,数据信息的相关信息存储在数据库中。

步骤二:环境准备:

使用者在提供的环境描述文件的基础上,依据自己需要的添加依赖,本发明支持但不限于:conda环境和docker环境。

步骤三:模型构建运行:

在主要程序代码完成后,使用者编写flow.yaml文件,包含数据,环境和要执行的程序工作流等信息。flow.yaml文件同样可以通过命令行和图形界面运行。如图2所示,依据文件中的信息依次执行以下动作:自动下载数据到相应的代码执行根目录下,自动构建开发环境,自动解析工作流并向云服务发起任务,顺次执行工作流中的节点,运行的中间信息与计算结果等将存贮在对应数据库和云存储上。若运行时添加不同的参数或标签,可以表示不同的测试类型。

步骤四:模型部署:

如图3所示:模型开发并测试完毕后即可推进到上线使用的阶段,使用者发起上线请求,审核者调取模型运行测试结果,判断模型是否达成上线标准。

步骤五:模型监控阶段:

如图4所示:发布后的模型会受到持续性的监控。如果模型表现持续下降达不到预期的阈值,将触发警报模块,通过上线的平台发出警戒信息,并通知相应的模型开发者或维护者进行处理。处理完成后再依照如上的步骤发布模型。

实施例2

如图5所示,其中“tasks”表示待执行的任务流清单,任何一个可执行的程序脚本均可作为工作流中的一个节点。而Titan则是通过定义上下游节点的依赖来实现不同类型工作流的构建,一个项目中允许存在多个不同flow文件,例如可以代表不同类型的测试任务。 工作流可以通过命令行或者GUI跨平台运行,以此保证用户使用体验的统一性。同时支持在运行时设置参数用以区分多种任务类型等。底层的计算由其它计算调度平台负责云上的资源调度和任务运行。模型的运行信息等由Titan主动记录,但用户亦可借助Titan提供的一系列接口,记录中间结果诸如评价指标,日志信息等到数据库中。

在任务完成后,有权限的用户通过图形界面可以查看模型的基本数据(创建者,输入数据,所用环境,运行结果等),能够比较多个模型的表现,也可以像数据库一样对模型进行查找、删除。此外本发明也对接了可视化工具用于展示神经网络的结构和细节,充足的信息可以帮助模型创建者或者其他用户对相关工作进行快速回顾或上手。

本实施例中,通常程序测试都是复杂繁琐且耗时的,本发明通过定义不同的flow,不同的运行参数传递,高效的区分了单元测试,集成测试,边界测试等等。并提供完整的信息保证测试过程的正确性和可复现性,审核人员也可以快速判断模型是否达到了既定的上线标准,同时将规范化的flow文件作为模型的主入口,可以简化部署的步骤,提高效率。

实施例3

某数据属性预测项目,该数据类型为二分类,在本地使用训练数据构建机器学习模型,完成后部署在生产环境,用于对未知数据进行预测,判定数据的属性(类别)。

模型开发测试阶段:

步骤一:收集数据,处理数据,上传数据。用户:数据处理人员,模型开发者。

针对某一特定问题,用户需要收集涉及这一问题的可能数据,通常会对数据进行一定的清洗处理等操作(该步骤不包含在Titan的作用边界内)。结束后用户就获得了一份较干净可以用于训练机器学习模型的数据。

用户通过命令行或者页面提交上传数据的请求,并选择关联相关信息到数据集上。例:“Titan dataset upload train.csv --info training_data”。Titan负责将数据上传到存储,保证数据在所有主机上的可访问性,统一性。

步骤二:准备环境,编写代码,配置环境定义文件和工作流定义文件。用户:模型开发者。

用户基于训练数据的分析选择合适的算法,编写代码,又基于代码的要求配置环境依赖,编写环境定义文件。通常在完成一个最小可执行单元后,用户需要完善flow文件,其定义了项目的的基本信息,包含使用的数据名称、从哪里构建环境(环境定义文件)、程序的主程序从哪个脚本,如何运行、结果文件的存储名称和地址等等。当一切准备就绪,就可以跳转到步骤三。

步骤三:程序开发与测试。用户:模型开发者,测试人员。在实际中,程序的开发往往是伴随着测试螺旋推进的。以在命令行为例,用户在终端键入相应的命令以运行对应的程序,例如“titan run unit_test_flow.yml --type unit_test --backend aws --learning_rate 0.01”,表示启动titan按照unit_test_flow.yml中的定义的运行方式启动程序,并且指明将该程序分配在aws上运行。该模型需要的一个参数为learning rate,取值是0.01。

步骤四:信息查看。用户:模型开发者,测试人员。Titan提供了便捷查看程序运行状态和计算结果的方式,同样以命令行为例。在终端运行“titan runs list”展示近期的任务清单,或“titan runs list --run-id 569”查看一个具体的任务的基本信息,运行状态等。而借由“titan runs show --run-id 569”,可展示详尽的计算结果。如果运行出现中断失败等问题,“titan log --run-id”负责输出对应的日志内容,并且该日志内容高度可定制,由用户具体在程序中的记录行为决定。便于用户查找出错信息来源并修正。由于可能的任务失败或者主观对计算结果的不满意,用户皆可遵循步骤三的内容,修改代码或参数后继续运行程序,如此往复。

模型上线阶段:

步骤五:上线准备。用户:模型开发者,上线审核人员,上线操作人员。

在经历完整且细致的测试后,可由模型开发者提起上线申请(该步骤不包含在Titan的作用边界内),将模型部署在相应的生产环境中使用。申请审核人员收到申请后,类似通过“titan runs show --flow-id 111”查看该模型的运行历史,通过了哪些测试,计算结果如何等。基于上线标准的对比,判定该模型是否达到上线标准。此后上线人员将达到标准的模型一揽子文件部署在生产环境即可。(该步骤不包含在Titan的作用边界内)。

模型维护阶段:

步骤六:持续监控模型运行情况和表现。用户:运维人员,模型开发者。Titan提供了api接口,用于返回模型的运行状态和对应的计算结果等信息到上线平台,由上线平台做后续的判断及处理。如果监控到模型表现持续下降的情况,可触发相应的警报。再由运维人员或直接系统通知对应的模型开发者进行处理,开发者可能将从步骤二或者步骤一重新开始,重复个过程。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号