一种全流程溯源管理的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种全流程溯源管理的方法和装置。
背景技术
伴随着现代信息技术的快速发展,人类社会进入大数据时代,大数据正深刻改变着人类社会发展方向。大数据的核心是利用数据的价值,人工智能和机器学习是利用数据价值的关键技术。近年来,越来越多的企业、机构借助人工智能和机器学习技术,从大数据中提炼商业见解,辅助商业决策,推动现代商业运营,解决了许多传统方法难以解决的问题,创造了巨大价值。
随着大数据的积累、机器学习算法的改进和新算法的提出、先进硬件资源提供的算力不断增强,以及机器学习和深度学习各种基础框架和工具箱的发展,在生产环境开发和部署一个新的复杂机器学习系统逐渐变得简单,但是,应用者们经过几年持续地在真实系统中积累了各种机器学习模型后,发现维护它们会非常困难,且成本昂贵。
而根据Google(谷歌公司)科学家D.Sculley等人在《Hidden Technical Debt inMachine Learning Systems》一文中提出的CACE原则:改变任何东西改变所有东西(Changing Anything Changes Everything),可知:机器学习流程中各环节(例如包括:数据输入、数据加工方法、特征工程、模型参数等)都有可能由于任何参数的变化而产生一个新的数据模型。
因此,对机器学习项目中模型构建到上线服务流程及其各环节进行全流程溯源管理是必要和重要的,当前,部分产品和系统从不同角度有侧重地提出了一些技术解决方案,例如:
(1)通过Git来进行管理。Git是一个免费、开源的分布式的版本控制系统,用以高效地处理从很小到非常大型项目的版本管理。能够在项目生命周期中追踪、查看软件系统的变更和演进,并方便开发者进行协同开发,使得项目中各开发者能够在本地完成开发而最终通过版本控制系统将各开发者的工作合并在一起进行管理。该工具被广泛应用于软件开发和部署;
(2)通过Comet来进行管理。Comet是一个对机器学习试验历史、代码变更和模型性能表现进行跟踪、可视化对比的机器学习项目版本管理解决方案,允许数据科学家和开发人员轻松地监控、比较和优化其机器学习模型,且能够与Git集成,支持团队协作。
(3)通过华为云Model Arts来进行管理。Model Arts是2018年10月华为云在HUAWEI CONNECT 2018会上发布的面向AI开发者的AI全流程开发平台与工具,实现在AI开发全生命周期中,为原始数据、标注数据、训练作业、算法模型、推理服务等,提供全流程可视化管理。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)Git是一个代码版本管理的优秀工具,但它不太适用于机器学习模型全流程溯源管理,尽管代码是一个主要组成部分;
(2)Comet侧重解决模型试验环节变更历史追溯、版本对比管理以及协作开发中的问题,但未能够将模型试验的结果与生产环境中的模型服务对应起来,需用户在说明文档中0维/护对应关系,当线上模型服务异常或版本变更时,无法很好的与模型试验进行关联溯源;另外,对于模型线上服务的运行时参数也缺乏管理,不利于降低线上模型维护的难度和成本。
(3)华为云Model Arts侧重于对建模流程和计算软硬件资源以及运行时参数配置的管理,而缺少对机器学习项目主要组成部分“代码”的版本管理,需用户通过文件名来区分代码不同版本。另外,模型服务不是一个孤立的过程,线上服务的运行往往需要上游作业的触发,输出也会作业为下游作业的输入和启动触发条件,而且不同模型服务的运行周期不同。Model Arts尚未支持线上模型服务依赖配置的管理和监控,从而难以溯源分析上游变化对模型服务的影响以及模型本身版本变化对下游的影响范围。
发明内容
有鉴于此,本发明实施例提供一种全流程溯源管理的方法和装置,能够便捷地实现全流程的溯源管理,当服务出现异常时,很快溯源定位是哪个环节出现问题并预警通知哪些相关人,从而减轻了模型构建和服务维护人员的负担,提升模型构建和服务的效率和质量。
为实现上述目的,根据本发明实施例的一个方面,提供了一种全流程溯源管理的方法。
一种全流程溯源管理的方法,包括:将全流程划分为多个子流程;对每个所述子流程对应的作业信息进行版本管理;通过建立各子流程之间的对应关系,并根据各子流程的作业信息对应的版本信息实现全流程的溯源管理。
可选地,将全流程划分为多个子流程包括:将全流程经过一次或多次划分,以得到一个或多个不同层级的子流程。
可选地,所述全流程为机器学习模型的全流程,且划分得到的多个子流程包括:模型训练子流程、模型预测子流程和模型线上服务子流程;其中,所述模型训练子流程包括原始数据清洗加工、第一特征工程、第一模型训练和模型评估4个下一层级的子流程;所述模型预测子流程包括待预测数据清洗加工、第二特征工程和第一模型预测3个下一层级的子流程。
可选地,还包括:通过以下三种方式中的一种从所述模型训练子流程训练出的模型中挑选最优模型以用于模型线上服务:方式一:由建模人员对所述模型训练子流程训练出的不同版本的模型进行对比,挑选出最优模型;方式二:通过预设的挑选规则从所述模型中挑选出最优模型,所述挑选规则包括:1)定期从当前众多版本中筛选出模型性能评估指标最优的一个模型;2)定期从当前众多版本中筛选出模型性能评估指标在一定阈值之上的最新迭代的一个模型;方式三:根据所述挑选规则从所述模型中筛选出模型性能评估指标在一定阈值之上的多个模型,再由建模人员对筛选出的模型的不同版本进行对比,挑选出最优模型。
可选地,所述模型线上服务子流程对模型性能进行指标评估,且当指标评估结果不满足预设要求时,从所述模型训练子流程训练出的模型中筛选出满足预设要求的模型并替换线上服务的模型。
根据本发明实施例的另一方面,提供了一种全流程溯源管理的装置。
一种全流程溯源管理的装置,包括:流程划分模块,用于将全流程划分为多个子流程;版本管理模块,用于对每个所述子流程对应的作业信息进行版本管理;溯源管理模块,用于通过建立各子流程之间的对应关系,并根据各子流程的作业信息对应的版本信息实现全流程的溯源管理。
可选地,所述流程划分模块还用于:将全流程经过一次或多次划分,以得到一个或多个不同层级的子流程。
可选地,所述全流程为机器学习模型的全流程,且划分得到的多个子流程包括:模型训练子流程、模型预测子流程和模型线上服务子流程;其中,所述模型训练子流程包括原始数据清洗加工、第一特征工程、第一模型训练和模型评估4个下一层级的子流程;所述模型预测子流程包括待预测数据清洗加工、第二特征工程和第一模型预测3个下一层级的子流程。
可选地,还包括模型筛选模块,用于:通过以下三种方式中的一种从所述模型训练子流程训练出的模型中挑选最优模型以用于模型线上服务:方式一:由建模人员对所述模型训练子流程训练出的不同版本的模型进行对比,挑选出最优模型;方式二:通过预设的挑选规则从所述模型中挑选出最优模型,所述挑选规则包括:1)定期从当前众多版本中筛选出模型性能评估指标最优的一个模型;2)定期从当前众多版本中筛选出模型性能评估指标在一定阈值之上的最新迭代的一个模型;方式三:根据所述挑选规则从所述模型中筛选出模型性能评估指标在一定阈值之上的多个模型,再由建模人员对筛选出的模型的不同版本进行对比,挑选出最优模型。
可选地,所述模型线上服务子流程对模型性能进行指标评估,且当指标评估结果不满足预设要求时,从所述模型训练子流程训练出的模型中筛选出满足预设要求的模型并替换线上服务的模型。
根据本发明实施例的又一方面,提供了一种全流程溯源管理的电子设备。
一种全流程溯源管理的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的全流程溯源管理的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的全流程溯源管理的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过将全流程划分为多个子流程;再对每个子流程对应的作业信息进行版本管理;然后,通过建立各子流程之间的对应关系,并根据各子流程的作业信息对应的版本信息实现全流程的溯源管理,可以便捷地追溯某一版本线上模型来自于哪个版本的预测脚本和模型文件,分别依赖和被依赖于哪些上游作业和下游作业,模型文件来自于哪个模型训练作业,模型训练作业来自于哪个版本的训练脚本和哪个版本的训练数据,当模型预测服务出现异常,溯源定位是哪个环节出现问题并预警通知哪些相关人,从而减轻了模型构建和服务维护人员的负担,提升模型构建和服务的效率和质量。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的全流程溯源管理的方法的主要步骤示意图;
图2是本发明实施例的模型训练子流程及模型预测子流程的溯源管理原理示意图;
图3是本发明一个实施例的模型训练子流程的溯源表结构以及表之间的关联关系示意图;
图4是本发明一个实施例的模型版本信息对比表示意图;
图5是是本发明一个实施例的模型预测子流程的溯源表结构以及表之间的关联关系示意图;
图6是本发明实施例的模型线上服务子流程进行模型筛选的过程示意图;
图7是根据本发明实施例的全流程溯源管理的装置的主要模块示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了解决现有技术中存在的问题,本发明对现有技术进行了细致的分析和总结,发现对机器学习模型的维护非常困难且成本昂贵的原因主要在于:
(1)机器学习模型的构建和上线服务是一个快速试验和多次探索研究的复杂过程。构建一个性能指标表现良好的可用于生产环境的模型服务,需对用什么数据源、如何加工处理、构建哪些模型特征、选择什么算法和模型架构、如何调整模型参数和超参数、模型性能指标表现如何等多方面进行多次探索研究、对比验证,并根据之前试验表现指导设计下一轮试验。然而,目前缺少对这些过程的合理记录和管理的方法和工具,试验设计难以对比,模型结果难以复现;
(2)一个真实系统中的模型服务往往包括数据清洗预处理、特征工程、模型开发构建、模型性能评估、模型上线服务以及模型更新迭代等主要内容,流程长、环节多,且各环节关联紧密,上游环节的变化会直接对下游环节产生复杂的影响,根因溯源困难;
(3)由于一个完整的机器学习模型构建和上线服务过程的上述特点,一般会将流程中相对独立的环节拆分出来,分配给团队中的相应角色,多人协作,以缩短开发周期,尽快上线服务于相关产品。但是,如果各环节版本对应关系、接口规范缺乏统一科学管理,则团队成员之间沟通成本增加、协作困难,甚至影响模型输出结果的可用性;
(4)由于产品、业务的需要,模型会进行迭代更新,模型服务在生产环境可能存在多个版本,对模型服务的多版本管理难于常规的代码管理。一方面,模型服务不同于传统软件,它不仅包含代码,还包含模型服务依赖的模型文件和数据等大型文件以及其运行时软硬件环境参数和模型参数;另一方面,生产环境中的线上模型可能由于多种原因出现异常,需要便捷及时地复现结果和溯源根因,切换到另一版本模型服务,而切换版本时需要对该版本的性能指标表现、运行时软硬件环境参数和模型参数有全面的了解,以确保版本回滚正常。
而对于现有技术中提出的3种对机器学习项目中模型构建到上线服务流程及其各环节进行全流程溯源管理的方法来说,每种方法都具有不同程度的缺陷,主要在于:
对于(1)通过Git来进行管理,Git是一个代码版本管理的优秀工具,但它不太适用于机器学习模型全流程溯源管理,尽管代码是一个主要组成部分。模型构建和上线服务过程往往涉及其它多个环节的重要依赖,例如上下游的触发作业、模型运行的软硬件环境参数、模型运行时参数和超参数以及模型性能表现等等,这其中很多参数是建模人员在训练或上线模型过程中配置产生的,不是写在代码或文件中,每一次运行对比可能会有部分变化,难以通过Git进行版本管理。如果强制要求将所有配置参数写到文件中,会增加建模人员维护成本,且这些模型配置通过Git进行版本管理时,不便进行直观的可视化管理和对比,也难以应用于模型开发全流程;
对于(2)通过Comet来进行管理,Comet侧重解决模型试验环节变更历史追溯、版本对比管理以及协作开发中的问题,但未能够将模型试验的结果与生产环境中的模型服务对应起来,需用户在说明文档中维护对应关系,当线上模型服务异常或版本变更时,无法很好的与模型试验进行关联溯源;另外,对于模型线上服务的运行时参数也缺乏管理,不利于降低线上模型维护的难度和成本;
对于(3)通过华为云Model Arts来进行管理,华为云Model Arts侧重于对建模流程和计算软硬件资源以及运行时参数配置的管理,而缺少对机器学习项目主要组成部分“代码”的版本管理,需用户通过文件名来区分代码不同版本。另外,模型服务不是一个孤立的过程,线上服务的运行往往需要上游作业的触发,输出也会作业为下游作业的输入和启动触发条件,而且不同模型服务的运行周期不同。Model Arts尚未支持线上模型服务依赖配置的管理和监控,从而难以溯源分析上游变化对模型服务的影响以及模型本身版本变化对下游的影响范围。
结合上述分析,本发明提供了一种全流程溯源管理的方法和装置,可以对机器学习模型从模型构建到上线服务的全流程进行管理。具体表现在:
(1)在机器学习模型构建环节,对数据清洗、特征工程、模型训练、模型构建时的软硬件环境参数、运行时参数和超参数、模型评估、模型性能表现以及涉及到的数据集进行全流程版本溯源管理和各环节流畅协作;
(2)在机器学习模型预测环节,对数据清洗、特征工程、模型预测、模型预测时的软硬件环境参数、运行时参数和超参数以及涉及到的数据集进行全流程版本溯源管理和各环节流畅协作,并对模型预测环节与上一步模型构建环节输出的模型文件版本、下一步的生产环境模型服务配置溯源、协作以及多版本模型筛选择优;
(3)对生产环境模型服务的运行软硬件环境参数、运行周期、上下游依赖作业、模型预测结果监控、预警消息传达的流程溯源管理以及线上模型自动或半自动回滚,以便进行模型异常的根因溯源定位和影响范围分析;
(4)本发明旨在减轻建模人员维护成本,使整个模型构建和上线服务过程中复杂的处理过程清晰化、可追溯、可对比、可复现。通过对全流程各步骤版本管理和可视化对比,方便建模人员清晰的了解哪些步骤做了哪些调整对模型性能评估结果产生了什么影响,能够缩短迭代出更优模型周期,也方便复现各版本结果。
下面结合附图介绍本发明实施例的具体实现过程。
图1是根据本发明实施例的全流程溯源管理的方法的主要步骤示意图。如图1所示,本发明实施例的全流程溯源管理的方法主要包括如下的步骤S101至步骤S103。
步骤S101:将全流程划分为多个子流程;
步骤S102:对每个子流程对应的作业信息进行版本管理;
步骤S103:通过建立各子流程之间的对应关系,并根据各子流程的作业信息对应的版本信息实现全流程的溯源管理。
根据本发明的一个实施例,步骤S101在将全流程划分为多个子流程时,具体了可以是:
将全流程经过一次或多次划分,以得到一个或多个不同层级的子流程。
根据本发明的一个实施例,全流程为机器学习模型的全流程,且划分得到的多个子流程包括:
模型训练子流程、模型预测子流程和模型线上服务子流程;
其中,模型训练子流程包括原始数据清洗加工、第一特征工程、第一模型训练和模型评估4个下一层级的子流程;模型预测子流程包括待预测数据清洗加工、第二特征工程和第一模型预测3个下一层级的子流程。
图2是本发明实施例的模型训练子流程及模型预测子流程的溯源管理原理示意图。
模型训练子流程一般包括原始数据清洗加工、特征工程、模型训练和模型评估这4个步骤(下一层级的子流程)。这4个步骤紧密关联,会随着模型探索、验证的情况进行多次迭代。因此,原始数据清洗加工、特征工程、模型训练和模型评估这4个步骤对应的代码会有不同的版本,代码不同,其输出的数据文件、模型文件和模型评估性能指标也会相应地产生对应的版本。对各步骤多次迭代的版本进行管理,提供不同版本对比工具和各步骤之间的对应关系追溯工具,方便建模人员分析版本之间的差异和模型评估结果的关系,能够缩短迭代出更优模型周期,也方便复现各版本结果。
如图2中模型训练部分(虚线上半部分)所示。模型训练过程中数据清洗模块、特征工程模块、模型训练模块、参数配置模块由于探索迭代的需要,会产生一个或多个版本(由模块上v1、v2、v3示意);相应地,各模块的输出也有对应的版本(由输出文件上v1、v2、v3示意),虚线矩形框是模型训练的上下游作业,不在本发明的考虑范围之内。通过Git和DVC(Data Version Control,数据版本控制)对模型训练过程中的代码(数据清洗代码、特征工程代码、模型训练代码、模型评估代码)、数据文件(原始数据集、清洗加工后数据集、模型训练集)和模型文件进行版本管理,在页面配置每一步操作所依赖的数据版本信息(包括代码、数据文件和模型文件等),由数据库(例如:关系型数据库)记录各步骤之间的对应关系、各步骤选用的代码或数据的版本、页面配置的模型训练参数和软硬件环境参数、模型训练好的模型文件以及模型评估的性能指标。一条数据库记录对应一个模型训练作业版本。当对当前版本进行某一个或多个步骤的修改时,保存后则会在数据库生产一条新的记录,对应该模型训练作业的一个新版本。
图3是本发明一个实施例的模型训练子流程的溯源表结构以及表之间的关联关系示意图。在图3中,各表中“PK”标识的字段为主键;连接符号
表示“一对一”关系,连接符号
表示“一对多”关系。根据图3进行模型训练子流程的溯源的详细实现过程如下:用户在模型训练页面配置一个模型训练作业时,填写模型训练作业名称和版本号,选择模型训练特征集和标签集以及版本号,从Git仓库中选择模型训练代码和版本号,配置模型训练参数(包括训练集/验证集拆分比例、模型迭代训练次数、批次数据大小、学习率等运行参数等)和软硬件环境参数(包括计算引擎、软件镜像、硬件规格、分布式训练节点数等参数)、输出模型文件路径、模型评估代码和版本号以及模型评估性能指标值。
模型训练子流程涉及的信息按图3所示的溯源表结构存储至数据库。在进行模型训练子流程的溯源时,具体可从以下4个方面来进行。以表1-4为主表,(1)一个模型训练作业(由“模型训练作业ID”唯一标识)对应的模型训练特征表(由“模型训练特征表ID”唯一标识)可通过表1-4中“父作业ID”与表1-3中“特征工程作业ID”进行关联,得到模型训练特征表对应的特征工程代码Repo、Tag(标签)、负责人以及加工出该特征表的上游数据(清洗后特征数据集ID),然后通过表1-3中“父作业ID”与表1-2中“数据清洗作业ID”进行关联,得到清洗后特征数据集对应的数据清洗代码Repo、Tag、负责人以及加工出该数据集的上游数据(原始特征数据集ID),再通过表1-2中“父作业ID”与表1-1中“上游作业ID”进行关联,得到原始数据集的相关信息。(2)一个模型训练作业(由“模型训练作业ID”唯一标识)对应的模型训练标签表(由“模型训练标签表ID”唯一标识)可通过表1-4中“父作业ID”与表1-9中“标签加工作业ID”进行关联,得到模型训练标签表对应的标签加工代码Repo、Tag、负责人以及加工出该标签表的上游数据(原始标签数据集ID),再通过表1-9中“父作业ID”与表1-8中“上游作业ID”进行关联,得到原始标签数据集的相关信息。(3)一个模型训练作业(由“模型训练作业ID”唯一标识)对应的运行参数(由“Runconfig ID”唯一标识)可通过表1-4中的“Runconfig ID”与表1-10中的“Runconfig ID”进行关联,得到该模型训练作业对应的模型训练参数和软硬件环境参数。(4)对于每一个版本得模型,可按表1-11形式记录存储该版本模型的页面配置相关信息以及模型评估的性能指标相关信息,以便模型预测环节为线上预测服务挑选最优模型。通过上述4个方面依赖关系的溯源映射以及相关信息的记录维护从而将整个流程的上下游完整的记录在数据库中。需要注意的是,在以上的表中,虽然表1-1和表1-8存储的字段相同,但内容不同,表1-1存储的是数据清洗作业与父作业的依赖关系;表1-8记录的是标签加工作业与父作业的依赖关系。
通过上述技术方案将每个版本的各步骤上下游的完整配置保存至数据库。在模型迭代探索和模型定期自动更新两种场景下,均可从数据库中调出当前模型版本的记录以及建模人员想要对比的一个或多个历史模型版本的记录,以表1(包括表1-1至表1-11)示意的形式呈现,从而满足建模人员便捷地进行版本之间的对比以及上下游的追溯。
以模型迭代探索场景为例,假设数据清洗、特征加工、模型训练和运行时参数分别迭代产生了m、n、p、q个版本,则整个模型训练Pipeline(子流程)会有m*n*p*q个版本。在没有本发明提出的全流程溯源管理方案的情况下,建模人员需维护m*n*p*q个版本各步骤的对应关系费时耗力,且容易出错,复现某一版本的结果也非常困难。而通过本发明的技术方案,大大减少了建模人员需要维护的版本数,且不易出错,使得版本的复现及组合变得简单、方便。
以模型定期自动更新场景为例,当经过多次的模型迭代探索,可挑选出一个性能表现优秀且稳定的模型及其对应的模型训练Pipeline后,由于数据随时间的变化,也需要定期重新训练模型和评估模型。在该场景下,可将挑选数出的模型训练Pipeline配置为定期训练作业,每次训练产生一个模型训练作业版本,并按上述数据库、表的设计,记录一条完整记录。在模型预测环节,可根据一定规则从多个版本中挑选出一个版本用于模型预测。
通过本发明实施例的技术方案对模型训练环节各步骤进行版本溯源管理后,建模人员可便捷地进行不同版本对比工具和各步骤之间的对应关系追溯。例如:建模人员可将同一模型的多个版本进行对比,并进行多维度的排序、筛选过滤。
图4是本发明一个实施例的模型版本信息对比表示意图。如图4所示,其中示出了建模人员对不同版本的模型的具体信息进行对比的记录表形式,表中不同的背景色代表不同的对比项目,在实际执行中,可根据需要选择不同的对比项目进行比对。建模人员可从数据清洗、特征工程、模型训练和模型服务四个环节的多个对比项进行对比,从而分析版本之间的差异与模型评估结果的关系,更明了、深入地理解某步骤修改对模型性能评估指标的影响。
如图2中模型预测部分(虚线下半部分)所示,模型预测环节一般包括待预测数据清洗加工、特征工程、模型预测三个步骤。这三个步骤相对于模型训练环节,变动相对较少,但也需对各步骤的版本以及各步骤之间的对应关系进行溯源管理。
对模型预测子流程进行溯源管理的原理与模型训练子流程类似,但需依赖于模型训练子流程模型好的模型文件,需要依据模型训练子流程模型评估的性能指标从多个版本中挑选出一个最优模型文件用于模型预测。通过Git和DVC对模型预测过程中的代码(数据清洗代码、特征工程代码、模型预测代码)、数据文件(原始数据集、清洗加工后数据集、模型预测集)和模型预测结果进行版本管理,在页面配置每一步操作依赖的数据版本信息(包括代码、数据文件和模型文件等),由关系型数据库记录各步骤之间的对应关系、各步骤选用的代码或数据的版本、页面配置的模型预测参数和软硬件环境参数、模型训练好的模型文件以及模型预测结果集。一条数据库的记录对应一个模型预测作业版本。当对当前版本进行某一个或多个步骤的修改时,保存后则会在数据库生成一条新的记录,对应该模型预测作业的一个新版本。
图5是是本发明一个实施例的模型预测子流程的溯源表结构以及表之间的关联关系示意图。如图5所示,模型预测子流程涉及的信息按照图5所示的溯源表结构(表2-1至表2-10)存储至数据库。在进行模型预测子流程的溯源时,具体可从以下4个方面来进行。以表2-4为主表,(1)一个模型预测作业(由“模型预测作业ID”唯一标识)对应的模型预测特征表(由“模型预测特征表ID”唯一标识)可通过表2-4中“父作业ID”与表2-3中“特征工程作业ID”进行关联,得到模型预测特征表对应的特征工程代码Repo、Tag、负责人以及加工出该特征表的上游数据(清洗后特征数据集ID),然后通过表2-3中“父作业ID”与表2-2中“数据清洗作业ID”进行关联,得到清洗后特征数据集对应的数据清洗代码Repo、Tag、负责人以及加工出该数据集的上游数据(原始特征数据集ID),再通过表2-2中“父作业ID”与表2-1中“上游作业ID”进行关联,得到原始数据集的相关信息。(2)一个模型预测作业(由“模型预测作业ID”唯一标识)对应的运行参数(由“Runconfig ID”唯一标识)可通过表2-4中的“Runconfig ID”与表1-8中的“Runconfig ID”进行关联,得到该模型预测作业对应的模型预测参数和软硬件环境参数。(3)一个模型预测作业(由“模型预测作业ID”唯一标识)使用的是哪个版本的模型以及该版本模型的相关信息可通过表2-4中的“模型ID”与表2-9中的“模型ID”进行关联得到,进一步按图2所示的溯源路径即可溯源出该版本模型训练的整个流程。(4)一个模型预测作业(由“模型预测作业ID”唯一标识)输出的模型预测结果按表2-10形式记录存储。通过上述4个方面依赖关系的溯源映射以及相关信息的记录维护,从而将整个流程的上下游完整的记录在数据库中。
与模型训练子流程类似,相同预测功能的模型有不同的版本,精度不同、模型文件大小不同、对应的数据预处理脚本、预测脚本版本不同,需要进行对比,从而决定选择哪个版本部署为线上某种类型的服务(批量服务、在线服务或边缘服务)。因为不同的服务形态对模型的要求(精度、模型文件大小、对应的数据预处理脚本等)不同。
最后,在模型预测环节,还需要为线上服务子流程挑选一个最优模型以用于进行线上服务。根据本发明的实施例,通过以下三种方式中的一种从模型训练子流程训练出的模型中挑选最优模型以用于模型线上服务:
方式一:由建模人员对模型训练子流程训练出的不同版本的模型进行对比,挑选出最优模型;
方式二:通过预设的挑选规则从模型中挑选出最优模型,挑选规则包括:1)定期从当前众多版本中筛选出模型性能评估指标最优的一个模型;2)定期从当前众多版本中筛选出模型性能评估指标在一定阈值之上的最新迭代的一个模型;
方式三:方式一与方拾二结合,根据挑选规则从模型中筛选出模型性能评估指标在一定阈值之上的多个模型,再由建模人员对筛选出的模型的不同版本进行对比,挑选出最优模型。
在挑选出最优模型后,即可将该挑选出的最优模型部署到线上进行服务。图6是本发明实施例的模型线上服务子流程进行模型筛选的过程示意图。如图6所示,模型线上服务是把模型预测环节的流程部署为一项线上服务,接收上游作业产生的待预测数据作为输入,经模型预测Pipeline输出预测结果作为下游作业的输入。对于一项线上服务时,需要对服务的状态和质量进行监控,当出现异常时快速对出错的环节和原因进行定位和分析,并对相关人进行预警通知,同时根据用户定义的策略决定是否对下游作业采取“熔断触发”机制,即当检测到预测结果相关质量指标低于设定阈值时,是否继续输出给下游作业。另一方面,当检测到预测结果相关质量指标低于设定阈值时,可由模型筛选模块根据配置的策略从表1-11中自动或加人工决策的半自动地筛选出备用模型,替换线上异常模型,进行版本回滚。即:模型线上服务子流程对模型性能进行指标评估,且当指标评估结果不满足预设要求时,从模型训练子流程训练出的模型中筛选出满足预设要求的模型并替换线上服务的模型。其中,在对模型进行筛选时,可按照前述的3种从模型训练子流程训练出的模型中挑选最优模型的方式来执行。
下面结合图6介绍模型线上服务子流程进行溯源的过程,为方便阐述,将模型预测环节待预测数据清洗加工、特征工程、模型预测三个步骤抽象为一个模型预测Pipeline,版本号与模型预测作业版本号一致,模型预测Pipeline的输入来自于上游作业的输出或模型预测请求中传递的特征参数;将模型性能指标评估所需的实际标签加工过程抽象为一个标签处理Pipeline。模型性能指标评估模型整合预测结果和实际标签,根据模型类型计算出相应的模型性能评估指标,例如:分类模型指标包括准确率、召回率、F1得分(是统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的准确率和召回率)等,回归模型指标包括平均绝对值误差、均方误差、R平方值等。根据监控质量指标与设定阈值的差异决定是否触出发预警通知模块和模型筛选模块。
通过前述模型训练子流程、模型预测子流程及模型线上服务子流程这三个环节溯源管理以及三个环节之间的关联的整合,本发明实现了对机器学习模型从模型构建到上线服务的全流程各步骤进行溯源管理和版本之间参数配置的对比,即便捷地追溯某一版本线上模型来自于哪个版本的预测脚本和模型文件,分别依赖和被依赖于哪些上游作业和下游作业,模型文件来自于哪个模型训练作业,模型训练作业来自于哪个版本的训练脚本和哪个版本的训练数据,当模型预测服务出现异常,溯源定位是哪个环节出现问题并预警通知哪些相关人。将本发明所提供的全流程溯源的技术原理和解决方案应用于模型开发平台类产品,可减轻模型构建和服务维护人员负担,提升模型构建和服务的效率和质量。
图7是根据本发明实施例的全流程溯源管理的装置的主要模块示意图。如图7所示,本发明实施例的全流程溯源管理的装置700主要包括流程划分模块701、版本管理模块702和溯源管理模块703。
流程划分模块701,用于将全流程划分为多个子流程;
版本管理模块702,用于对每个子流程对应的作业信息进行版本管理;
溯源管理模块703,用于通过建立各子流程之间的对应关系,并根据各子流程的作业信息对应的版本信息实现全流程的溯源管理。
根据本发明的一个实施例,流程划分模块701还可以用于:
将全流程经过一次或多次划分,以得到一个或多个不同层级的子流程。
根据本发明的另一个实施例,全流程为机器学习模型的全流程,且划分得到的多个子流程包括:
模型训练子流程、模型预测子流程和模型线上服务子流程;
其中,模型训练子流程包括原始数据清洗加工、第一特征工程、第一模型训练和模型评估4个下一层级的子流程;模型预测子流程包括待预测数据清洗加工、第二特征工程和第一模型预测3个下一层级的子流程。
根据本发明的又一个实施例,全流程溯源管理的装置700还可以包括模型筛选模块(图中未示出),用于:通过以下三种方式中的一种从模型训练子流程训练出的模型中挑选最优模型以用于模型线上服务:
方式一:由建模人员对模型训练子流程训练出的不同版本的模型进行对比,挑选出最优模型;
方式二:通过预设的挑选规则从模型中挑选出最优模型,挑选规则包括:1)定期从当前众多版本中筛选出模型性能评估指标最优的一个模型;2)定期从当前众多版本中筛选出模型性能评估指标在一定阈值之上的最新迭代的一个模型;
方式三:根据挑选规则从模型中筛选出模型性能评估指标在一定阈值之上的多个模型,再由建模人员对筛选出的模型的不同版本进行对比,挑选出最优模型。
根据本发明的再一个实施例,模型线上服务子流程对模型性能进行指标评估,且当指标评估结果不满足预设要求时,从模型训练子流程训练出的模型中筛选出满足预设要求的模型并替换线上服务的模型。
根据本发明实施例的技术方案,通过将全流程划分为多个子流程;再对每个子流程对应的作业信息进行版本管理;然后,通过建立各子流程之间的对应关系,并根据各子流程的作业信息对应的版本信息实现全流程的溯源管理,可以便捷地追溯某一版本线上模型来自于哪个版本的预测脚本和模型文件,分别依赖和被依赖于哪些上游作业和下游作业,模型文件来自于哪个模型训练作业,模型训练作业来自于哪个版本的训练脚本和哪个版本的训练数据,当模型预测服务出现异常,溯源定位是哪个环节出现问题并预警通知哪些相关人,从而减轻了模型构建和服务维护人员的负担,提升模型构建和服务的效率和质量。
图8示出了可以应用本发明实施例的全流程溯源管理的方法或全流程溯源管理的装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的全流程溯源管理的方法一般由服务器805执行,相应地,全流程溯源管理的装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统900的结构示意图。图9示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括流程划分模块、版本管理模块和溯源管理模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,溯源管理模块还可以被描述为“用于将全流程划分为多个子流程的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:将全流程划分为多个子流程;对每个所述子流程对应的作业信息进行版本管理;通过建立各子流程之间的对应关系,并根据各子流程的作业信息对应的版本信息实现全流程的溯源管理。
根据本发明实施例的技术方案,通过将全流程划分为多个子流程;再对每个子流程对应的作业信息进行版本管理;然后,通过建立各子流程之间的对应关系,并根据各子流程的作业信息对应的版本信息实现全流程的溯源管理,可以便捷地追溯某一版本线上模型来自于哪个版本的预测脚本和模型文件,分别依赖和被依赖于哪些上游作业和下游作业,模型文件来自于哪个模型训练作业,模型训练作业来自于哪个版本的训练脚本和哪个版本的训练数据,当模型预测服务出现异常,溯源定位是哪个环节出现问题并预警通知哪些相关人,从而减轻了模型构建和服务维护人员的负担,提升模型构建和服务的效率和质量。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。