机器学习模型全生命周期管理框架的制作方法

文档序号:27320788发布日期:2021-11-10 00:38阅读:540来源:国知局
机器学习模型全生命周期管理框架的制作方法
机器学习模型全生命周期管理框架
1.相关申请的交叉引用
2.本技术要求于2019年2月15日提交的美国申请no.16/277,057的优先权,该美国申请的公开内容通过引用整体并入本文。


背景技术:

3.1.领域
4.所公开的主题涉及一种新颖的框架,其中,机器学习模型可使用不同的平台通过不同的算法进行训练,并在整个生命周期中进行管理。
5.2.相关技术的描述
6.以前,没有能够管理机器学习模型的整个生命周期的单一框架。因此,例如执行容易出错的手动步骤以发现、加载、卸载、测试和监测人工智能(ai)模型。
7.目前,tensorflow以开源方式提供它自己的服务平台。例如,tensorflow服务是用于服务机器学习模型的开源软件库。该库处理机器学习的推理方面,并可经由高性能、引用计数的查找表向客户端提供版本化的访问。多个模型,或者实际上同一模型的多个版本,可同时获得服务,且tensorflow服务具有对tensorflow模型的开箱即用的支持。
8.虽然tensorflow服务具有对tensorflow模型的开箱即用的支持,但是tensorflow服务缺乏对由其他平台(caf
é
(咖啡)、torch(火炬)等)训练的机器学习模型的支持。而且,tensorflow服务仅向机器学习模型提供服务功能,而不提供全生命周期管理。
9.因此,期望技术方案来解决如下技术问题,在该技术问题中,模型所有者缺乏技术手段来清楚和透彻地研究自己的模型,且在ai模型管理的过程中容易受到人为错误的影响,因此导致数据科学家无法专注于模型训练。


技术实现要素:

10.鉴于缺乏对由其他平台训练的机器学习模型的支持和对全生命周期管理的支持,作为替代,本文公开的主题表示一种新颖的框架,该框架提供机器学习模型的全生命周期管理,包括模型持久性服务、用于由各种平台训练的模型的开箱即用的模型服务功能,这样的服务当然包括tensorflow、模型测试服务和模型报告服务。
11.在示例性实施例中,存在一种装置,该装置包括:至少一个存储器,配置成存储计算机程序代码;和至少一个硬件处理器,配置成访问所述计算机程序代码并根据所述计算机程序代码的指令操作,所述计算机程序代码包括:模型存储代码,配置成使得至少一个硬件处理器存储人工智能(ai)模型;模型服务代码,配置成使得至少一个硬件处理器将ai模型加载到服务平台中;模型测试代码,配置成使得至少一个硬件处理器针对加载到服务平台中的ai模型,加载和测试测试单元;以及监测和报告代码,配置成使得至少一个硬件处理器从存储ai模型、将ai模型加载到服务平台中以及测试测试单元的结果中,收集多个报告。
12.根据实施例,模型存储代码进一步配置成使得至少一个硬件处理器从存储器移除ai模型。
13.根据实施例,模型服务代码进一步配置成使得至少一个硬件处理器周期性地获取多个ai模型。
14.根据实施例,模型服务代码进一步配置成使得至少一个硬件处理器周期性地将多个ai模型加载到多个服务平台中的相应服务平台中。
15.根据实施例,监测代码进一步配置成使得至少一个硬件处理器将多个报告存储在多个数据库中的相应数据库中。
16.根据实施例,模型存储代码配置成使得至少一个硬件处理器连续地检查是否存储多个模型中的模型。
17.根据实施例,模型服务代码配置成使得至少一个硬件处理器连续地检查是否将多个模型中的模型加载到服务平台中。
18.根据实施例,模型服务代码配置成使得至少一个硬件处理器连续地检查是否针对加载到服务平台中的多个模型中的模型,加载和测试测试单元。
19.根据实施例,模型监测和报告代码配置成使得至少一个硬件处理器连续地检查是否提供多个报告中的报告。
20.根据实施例,模型监测和报告代码配置成使得至少一个硬件处理器检查是否针对加载到服务平台中的ai模型,基于测试单元的测试结果来升级或移除ai模型。
附图说明
21.根据以下详细描述和附图,所公开的主题的进一步特征、性质和各种优点将更加明显,在附图中:
22.图1是根据实施例的系统的简化框图的示意性图示。
23.图2a是根据实施例的通信系统的简化流程图的示意性图示。
24.图2b是根据实施例的通信系统的简化流程图的示意性图示。
25.图2c是根据实施例的通信系统的简化流程图的示意性图示。
26.图2d是根据实施例的通信系统的简化流程图的示意性图示。
27.图3a是根据实施例的通信系统的简化流程图的示意性图示。
28.图3b是根据实施例的通信系统的简化流程图的示意性图示。
29.图4是根据实施例的系统的简化框图的示意性图示。
具体实施方式
30.图1示出了根据本公开的实施例的框架100的简化框图。框架100包括作为表示层的web接口101。框架100还包括ai应用102、ai模型测试层103、ai模型服务层107、ai模型存储层111和监测/报告层114。
31.ai模型存储层111可用于管理一个或多个机器学习模型的物理存储,且一旦模型存储在该层中,则可保证服务的可用性和模型的一致性。如下文进一步描述的,ai模型存储层111可包括存储管理器112,存储管理器112可连续地运行,且可负责向该层添加新模型以及从该层移除现有模型,这样的模型可由ai模型持久性块113指示,在ai模型持久性块113指示中可获得tensorflow模型和其他模型。多个常用的持久性模式,包括普通文件系统、hdfs和亚马逊s3,将是可用的。当然,用户还可提供他们自己的存储模式,只要与公共接口
保持一致即可。
32.ai模型服务层107可用于实时地服务ai模型。服务管理器108可连续地运行,且可周期性地与存储管理器112通信,以获取要被服务的所有模型,包括新添加的模型。服务管理器108进一步配置成根据模型的类型,将所获取的模型中的模型加载到诸如tensorflow服务平台109和其他服务平台110的不同服务平台中的服务平台中。
33.对于每个模型,模型所有者负责创建模型测试单元,该模型测试单元包括测试脚本、外部资源和逻辑,以生成例如测试结果。ai模型测试层103可用于存储这样的ai模型测试单元,作为图1中所示的模型测试持久性块105的一部分,且连续运行的测试管理器106可加载来自模型测试持久性105的所有测试单元,并基于每个测试单元的设置,针对ai模型服务层107测试每个模型。
34.监测/报告层114还可连续地运行,且可负责监测整个系统或框架100,从ai模型测试层103、ai模型服务层107和ai模型存储层111中的其他层以及持久性功能中,收集所有测试和/或监测结果的多个报告,测试和/或监测结果存储在模型测试结果数据库115和系统监测结果数据库116中对应的数据库中。
35.图2a示出了可实现ai模型存储层111的流程图200a。在s201,连续运行的存储管理器112可前进到s202并确定是否如上所述添加或移除一个或多个模型。如果在s202,存储管理器112确定添加或移除这些模型中的一个或多个模型,则存储管理器112可前进到s203以添加或移除一个或多个模型。如果在s202,存储管理器112确定不添加或移除这些模型中的一个或多个模型,则再次在s201,存储管理器112将继续运行。
36.图2b示出了可实现ai模型服务层107的流程图200b。在s211,连续运行的服务管理器108可前进到s212并确定是否如上所述获取一个或多个模型。如果在s212,服务管理器108确定获取这些模型中的一个或多个模型,则服务管理器108可前进到s213以获取一个或多个模型。如果在s212,服务管理器108确定不获取这些模型中的一个或多个模型,则再次在s211,服务管理器108将继续运行。
37.图2c示出了可实现ai模型测试层103的流程图200c。在s221,连续运行的测试管理器106可前进到s222并确定是否如上所述加载一个或多个模型测试单元。如果在s222,测试管理器106确定加载一个或多个模型测试单元,则测试管理器106可前进到s223以加载一个或多个模型测试单元。如果在s222,测试管理器106确定不加载一个或多个模型测试单元,则再次在s221,测试管理器106将继续运行。
38.图2d示出了可实现监测/报告层114的流程图200d。在s231,监测/报告层114可前进到s232,并确定是否如上所述提供来自其他层和/或一些持久性功能的、关于测试或监测结果的多个报告的任何收集。如果在s232,监测/报告层114确定提供来自其他层和/或一些持久性功能的、关于测试或监测结果的多个报告的任何收集,则监测/报告层114可前进到s223以提供来自其他层和/或一些持久性功能的、关于测试或监测结果的多个报告的任何收集。如果在s232,监测/报告层114确定不加载一个或多个模型测试单元,则再次在s231,监测/报告层114将继续运行。
39.图3a示出了可实现框架100的流程图300a。例如,存在单一框架100,单一框架100可用于管理机器学习模型的整个生命周期,包括ai应用所使用的新训练的机器学习模型的典型生命周期:新模型或旧模型的新版本由ai平台训练;通过功能、集成测试,有时还有性
能测试,被部署到生产系统;生产ai应用可直接调用模型,或者优选地通过模型服务平台,间接地调用模型。框架100可包括使用多个平台(tensorflow、caf
é
、torch)通过不同算法(线性回归、贝叶斯、支持向量机、卷积神经网络、递归神经网络等)训练的机器学习模型,这些模型将被ai应用用于各种目的,且可集成在如本文所述的同一框架中。例如,在s301,框架100可管理持久性层中的现有模型和新添加的模型。在s302,框架100可将这些模型加载到模型服务平台中。在s303,框架100可执行单元测试、集成测试,和/或在s304,用各种结果来报告测试。
40.根据示例性实施例,这样的框架100可基于可插拔的配置策略和测试结果,以便以编程的方式将良好执行的新模型升级到生产使用,或从服务平台移除表现不佳的模型。一旦客户将新模型保存到模型库并提供模型测试和可配置的测试结果评估模块,则这样的框架100就提供上述所有功能,而无需用户干预。
41.图3b示出了框架100的多个方面,在单个框架中集成全生命周期机器学习模型管理功能。对于可扩展性,在s311和s312处,框架在缩减场景中向初学者提供快速的单机部署模式,以评估或构建概念项目的验证。此外,根据示例性实施例,框架100可在分布式扩展场景中向高需求ai应用提供高可扩展性,例如在s313和s314提供高可用性、工业生产级模式。
42.对于可扩展性,在s315和s316,框架100提供开箱即用的典型使用模块,以用于快速采用和迁移。此外,根据示例性实施例,可扩展性模式s316将具有灵活性以允许客户指定和插入他们自己的模块,例如自己的测试结果评估模块,以满足独特的要求。
43.在ai模型的全生命周期中,将记录全面的报告和监测结果。因此,数据科学家和ai应用所有者将具有模型的完整图像,且完全理解模型。
44.可以将本文所描述的技术实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中。例如,图4示出了适合于实施所公开的主题的某些实施例的计算机系统400。
45.可使用任何合适的机器代码或计算机语言来对计算机软件进行编码,任何合适的机器代码或计算机语言可经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可由一个或多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过解释、微代码等执行。
46.指令可在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。
47.图4所示的计算机系统400的组件本质上是示例性的,并不旨在对实施本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统400的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖性或要求。
48.计算机系统400可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户例如通过下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口装置还可用于捕获不一定与人的意识输入直接相关的某些媒体,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
49.输入人机接口装置可包括下述中的一项或多项(每种中仅示出一个):键盘401、鼠标402、触控板403、触摸屏410、操纵杆405、麦克风406、扫描仪407、相机408。
50.计算机系统400还可包括某些人机接口输出装置。此类人机接口输出装置可例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可包括触觉输出装置(例如触摸屏410的触觉反馈、或操纵杆405,但是也可以是不作为输入设备的触觉反馈装置)、音频输出装置(例如:扬声器409、耳机(未描绘))、视觉输出装置(例如包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕的屏幕410,每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能

其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)来输出二维视觉输出或超过三维输出。
51.计算机系统400还可包括人类可访问存储装置及其关联介质:例如包括具有cd/dvd等介质421的cd/dvd rom/rw 420的光学介质、指状驱动器422、可拆卸硬盘驱动器或固态驱动器423、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用rom/asic/pld的装置(未描绘)等。
52.本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其他瞬时信号。
53.计算机系统400还可包括到达一个或多个通信网络的接口。网络可例如是无线网络、有线网络、光网络。网络可进一步是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、耐延迟网络等。网络的示例包括诸如以太网之类的局域网、无线lan、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括canbus的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(449)的外部网络接口适配器(例如计算机系统400的usb端口);如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统400的内核中(例如,连接pc计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统400可使用这些网络中的任何一个与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些canbus装置的canbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可在那些网络和网络接口的每一个上使用某些协议和协议栈。
54.上述人机接口装置、人机可访问的存储装置和网络接口可附接到计算机系统400的内核440。
55.内核440可包括一个或多个中央处理单元(cpu)441、图形处理单元(gpu)442、现场可编程门区域(fpga)443形式的专用可编程处理单元、用于某些任务的硬件加速器444等。这些装置以及只读存储器(rom)445、随机存取存储器446、诸如内部非用户可访问的硬盘驱动器、ssd等之类的内部大容量存储器447可通过系统总线448连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线448,以能够通过附加的cpu、gpu等进行扩展。外围装置可直接连接到内核的系统总线448或通过外围总线449连接到内核的系统总线448。外围总线的体系结构包括pci、usb等。
56.cpu 441、gpu 442、fpga 443和加速器444可执行某些指令,这些指令可组合来构成上述计算机代码。该计算机代码可存储在rom 445或ram 446中。过渡数据可存储在
ram446中,而永久数据可例如存储在内部大容量存储器447中。可通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可与下述紧密关联:一个或多个cpu 441、gpu 442、大容量存储器447、rom 445、ram 446等。
57.计算机可读介质可在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
58.作为非限制性示例,可由于一个或多个处理器(包括cpu、gpu、fpga、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构400,特别是内核440的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储器相关联的介质,以及某些非暂时性的内核440的存储器,例如内核内部大容量存储器447或rom 445。可将实施本公开的各种实施例的软件存储在此类装置中并由内核440执行。根据特定需要,计算机可读介质可包括一个或多个存储装置或芯片。软件可引起内核740,特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在ram 446中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可由于硬连线或以其他方式体现在电路(例如,加速器444)中的逻辑而使得计算机系统提供功能,该电路可替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可包括存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或两者都包括。本公开包括硬件和软件的任何合适的组合。
59.虽然本公开已经描述了多个示例性实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多系统和方法,这些系统和方法虽然未在本文中明确示出或描述,但是其体现了本公开的原理,因此落入本公开的精神和范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1