首页> 中国专利> 一种基于微服务的机器学习实训系统及方法

一种基于微服务的机器学习实训系统及方法

摘要

本发明提供一种基于微服务的机器学习实训系统,包括用户数据管理服务,用于响应用户的操作动作以及存储用户相关信息,以及提供用户操作界面,用户相关信息包括用户名、手机号、登录密码、用户操作数据;任务管理服务,与用户管理服务相连,用于提供任务管理接口和维护用户的任务及任务状态;数据存储服务,与用户管理服务相连,用于提供数据集的存储和修改操作;执行机管理服务,与任务管理服务相连,实现执行机的注册与发现,并通过调度算法给任务分配计算资源;计算资源,包含多个执行机,执行机为安装有机器学习代码运行环境的计算机,用于执行计算任务;并同时调用任务管理服务记录开始执行时间和任务状态。

著录项

  • 公开/公告号CN112799742A

    专利类型发明专利

  • 公开/公告日2021-05-14

    原文格式PDF

  • 申请/专利权人 上海海事大学;

    申请/专利号CN202110177370.2

  • 发明设计人 贺敬依;胡西川;

    申请日2021-02-09

  • 分类号G06F9/445(20180101);G06F9/48(20060101);G06N20/00(20190101);

  • 代理机构31332 上海互顺专利代理事务所(普通合伙);

  • 代理人裴姣姣

  • 地址 201306 上海市浦东新区临港新城海港大道1550号

  • 入库时间 2023-06-19 10:58:46

说明书

技术领域

本发明涉及微服务的技术改进领域,特别是涉及一种基于微服务的机器学习实训系统。

背景技术

以往技术人员进行编程前都需要安装配置一个完整的开发环境,用以运行所编写的代码,但对于刚接触编程的初学者们来说比较困难,尤其是需要配置多种开发环境的时候,在这个过程中经常会出现各种各样的错误,就会涌现出放弃学习的念头。尤其是机器学习相关的开发环境,有更多的软件库需要安装,甚至要关心硬件平台,安装硬件所适配的安装包,否则将无法正常运行。

当被环境问题折磨的苦不堪言的时候,在线编译器其实是个不错的选择。跟本地环境相比,在线编译器非常的轻量级,打开网址随手可得,不用关心配置,代码敲进去,RUN一下,就能立刻得到结果,而且可以在非常多的编译器之间来回切换。目前已存在各种编程语言的在线编译器,例如codingground [https://www.tutorialspoint.com/codingground.htm]、techio[https://tech.io/snippet]和 rextester[https://rextester.com],通过对上面三种现有在线编译器的分析,不难发现,这些编译器只提供了基本的编程语言运行环境,没有一些高级工具库的安装,不能满足机器学习代码的运行需求。

应用机器学习技术的一系列过程通常包括:将现实世界问题转换为机器学习问题、收集数据、进行特征工程、选择或设计模型架构、调整模型参数、评估模型性能、部署机器学习到在线服务并维护服务高可用。要从零开始完成这一系列过程往往需要业务问题专家、数据科学家、算法专家、能将算法工程化的开发工程师、能保证系统对外稳定服务的运维工程师,另外,还需要有人负责解决可以支持训练和模型服务等必备的大规模集群运维等问题。如此复杂的过程和人员配置,对于刚入门特别是正在学习的在校学生来说,短期内想要体验机器学习根本无法实现。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于微服务的机器学习实训系统及方法,通过该平台普通学生都可以搭建简单的机器学习模型,而对于更有经验的同学和老师来说,没有了环境搭建、模型部署、服务运维和资源申请等细节工作,将他们部署模型的时间由天级别降到了分钟级别,这大大的提高了学生的学习兴趣和老师的工作效率。

为实现上述目的及其他相关目的,本发明提供一种基于微服务的机器学习实训系统,所述系统包括:

用户数据管理服务,用于响应用户的操作动作以及存储用户相关信息,以及提供用户操作界面,用户相关信息包括用户名、手机号、登录密码、用户操作数据;

任务管理服务,与所述用户管理服务相连,用于提供任务管理接口和维护用户的任务及任务状态,其中所述任务状态至少包括:初始状态、等待状态、执行状态、停止状态和完成状态;

数据存储服务,与所述用户管理服务相连,用于提供数据集的存储和修改操作,所述修改操作包括:增加、检索、更新和删除操作,以使用户可以查询到公共数据集和自主上传的数据集;

执行机管理服务,与所述任务管理服务相连,实现执行机的注册与发现,并通过调度算法给任务分配计算资源;

所述计算资源,包含多个执行机,所述执行机为安装有机器学习代码运行环境的计算机,用于执行计算任务;并同时调用任务管理服务记录开始执行时间和任务状态。

一种实现方式中,所述用户数据管理服务,用于:调用所述任务管理服务注册idle状态的任务,以及从所述任务管理服务获取任务列表,并显示到用户界面;以及上传自定义机器学习训练数据集至所述数据存储服务,并从数据存储服务获取数据集列表。

一种实现方式中,所述用户数据管理服务,包括web应用和web数据库;

所述web应用用于响应用户的操作动作;

所述web数据库存储用户相关信息,所述用户相关信息包括用户名、手机号、登录密码、用户操作数据。

一种实现方式中,所述执行机管理服务用于给idle状态的任务分配执行机,使该任务的变更为wait状态,以及利用微服务的注册与发现特性管理执行机,执行机启动后向执行机管理服务注册。

此外,还公开了一种基于微服务的机器学习实训方法,所述方法包括:

通过用户数据管理服务运行用户预先设置的任务数据,并将该任务加入任务列表中;

通过任务管理服务基于所述任务列表为该任务创建初始状态的任务;

经由执行机管理服务检测到具备该初始状态的任务,给该任务分配计算资源,所述计算资源包括至少一台执行机,并更改该任务成为等待状态;

通过执行机检测到属于自己的任务,并在执行任务后更改任务为执行状态,且在该任务执行结束后,执行机存储运行数据,此时任务为完成状态。

如上所述,本发明实施例提供的一种基于微服务的机器学习实训系统和方法,从用户的角度,机器学习实训环境给相关学生、科研人员、工程师提供一个轻量级的机器学习算法运行环境,在任何安装有网页浏览器的设备上都能使用;由于计算资源执行机可以动态注册,在一定的授权下,用户可以安装客户端软件,将自己的计算机注册成执行机,达到充分利用计算资源的目的。从系统管理者的角度,本发明的系统是通过高度解耦的细粒度微服务来实现的,这些微服务粒度更小且专注于完成一个小任务,因此每个微服务可以进行独立部署和扩展,使得本机器学习实训环境具有高扩展性、高维护性、高弹性、低依赖性、有效支撑DevOps、技术异构性等优点。

附图说明

图1是本发明实施例的基于微服务的机器学习实训系统的一种结构示意图。

图2是本发明实施例的基于微服务的机器学习实训系统的一种具体应用示意图。

图3是本发明实施例的基于微服务的机器学习实训系统的另一种具体应用示意图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。

请参阅图1-3。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

如图1-2本发明实施例的一种基于微服务的机器学习实训系统,包括:用户数据管理服务,用于响应用户的操作动作以及存储用户相关信息,以及提供用户操作界面,用户相关信息包括用户名、手机号、登录密码、用户操作数据;任务管理服务,与所述用户管理服务相连,用于提供任务管理接口和维护用户的任务及任务状态,其中所述任务状态至少包括:初始状态、等待状态、执行状态、停止状态和完成状态;数据存储服务,与所述用户管理服务相连,用于提供数据集的存储和修改操作,所述修改操作包括:增加、检索、更新和删除操作,以使用户可以查询到公共数据集和自主上传的数据集;执行机管理服务,与所述任务管理服务相连,实现执行机的注册与发现,并通过调度算法给任务分配计算资源;所述计算资源,包含多个执行机,所述执行机为安装有机器学习代码运行环境的计算机,用于执行计算任务;并同时调用任务管理服务记录开始执行时间和任务状态。

需要说明的是,本发明机器学习实训环境采用微服务架构,微服务有着明确的上下文边界来强化应用的模块化,每个服务组件可同步开发,没有干扰或冲突,开发速度相比传统应用架构要快很多,进而实现敏捷式开发迭代,只需要明确每个组件在架构中所起到的作用,就能快速搭建起各个服务模块。本发明系统中的各功能服务的工作原理:

用户数据管理服务:维护用户信息、用户操作数据(代码、数据集、模型等)。例如包含web应用和web数据库,通过web数据库将web应用接收的信息进行存储。

用户数据管理服务同时也是UI用户操作界面,主要界面如图3所示。其主要功能是响应用户的操作动作以及存储用户相关的信息。用户相关信息包括用户名、手机号、登录密码、用户操作数据等。

与用户数据管理服务有交互的服务有两个,分别为任务管理服务和数据存储服务。本服务调用任务管理服务注册idle状态的任务,此时任务中包含的字段见图1中初始状态节点的第三个区域,任务数据存储在任务管理服务中;本服务可以从任务管理服务获取任务列表,并显示到用户界面;本服务可以上传自定义机器学习训练数据集到数据存储服务;本服务可以从数据存储服务获取数据集列表。

任务管理服务:维护所有用户的任务及任务状态(初始状态、等待状态、执行状态、停止状态和完成状态)。

任务管理服务在本系统中是一个较为重要的服务,主要提供任务管理接口。提供任务的增加、修改、删除和查询操作。

首先,如图1所示,本发明实施例提供了各种状态和任务属性的对应关系,对应的,在表1和表2中分别给出了任务属性与其对应的描述。在start创建任务开始,任务为初始状态idle,分到到服务器以后为wait等待状态,在等待条件结束开始执行进入执行状态Run,执行结束以后为finish完成状态,若执行停止则为停止状态,进入停止状态以后可以重新启动,在此进行wait等待状态。在任务为wait等待状态、stop停止状态、idle初始状态和finish完成状态的时候可以通过删除任务而终止。

表1

表2

如图2所示,包括任务管理和任务数据库,具体的,任务管理可以是用于进行任务管理的软件程序,用于是实现本发明所说的任务管理,具体的,本领域技术人员可以通过软件代码实现本发明不做具体赘述。

数据存储服务:提供数据集的存储和CRUD操作(增加(Create)、检索 (Retrieve)、更新(Update)和删除(Delete))。

数据存储服务存储训练数据集,用户可以查询到公共数据集和自主上传的数据集。

执行机:安装有机器学习代码运行环境的计算机,通过启动计算服务主动向执行机管理服务注册并入系统。

执行机指的是一系列动态的服务,它们各自从任务管理服务中查找属于自己的wait状态的服务,根据查找的任务数据,从数据存储服务获取需要的数据集,同时调用任务管理服务记录开始执行时间(start_time),此时任务为run 状态;待任务执行结束后,调用任务管理服务记录执行结果数据(task_output 和finish_time),此时任务为finish状态。若run状态时,任务被停止,记录停止时间(stop_time),此时任务为停止状态。

执行机管理服务:实现执行机的注册与发现,并通过调度算法给任务分配执行机计算资源。

如图2所示,执行机管理服务包括执行机管理和执行机数据库,具体的,执行机管理可以是用于进行执行机管理的软件程序,用于是实现本发明所说的执行机管理,具体的,本领域技术人员可以通过软件代码实现本发明不做具体赘述。

执行机管理服务是一个调度服务,其主要功能是给idle状态的任务分配执行机,使其变成wait状态,这样,该任务才能被执行机所识别并进行后续处理。想要分配执行机,就需要管理着一些执行机,执行机管理服务利用微服务的注册与发现特性管理执行机,执行机启动后向本服务注册;执行机管理服务给idle 状态的任务分配执行机前,进行健康检查,发现执行机。

一个微服务架构系统,除了各种各样的服务,另一个重要元素是服务之间的通信。本发明系统服务间的通信关系如图2所示。具体的信息交互模式、通信协议、实现框架、消息格式在下文进行说明:

1、RESTful协议

REST本质上是一种架构风格,其中表现状态转化是一组架构约束和原则。而满足这种架构风格的软件系统体系结构被认为是RESTful的。RESTful体系结构强调:1)使用URI来定位资源;2)通过表现进行资源操作,资源可以是XML、 JSON、二进制文件等;3)客户端通过使用4种HTTP动词(GET、POST、PUT、 DELETE)使服务器端发生表现层状态转化。RESTfulAPI是指一种API,它使调用资源非常方便和直观,同时也降低了服务的复杂性。

用户数据管理服务涉及到的输入输出接口都是RESTful的,这是Web开发常用的通信协议,不引入其它协议,从而保持本服务的独立性。如图2,使用RESTful接口进行通信的有:注册任务、任务列表、上传数据、数据列表。

2、RPC协议

RPC(Remote Procedure Call)既“远程过程调用”。RPC就是允许程序调用另一个地址空间(通常是另一台机器上)的类方法或函数的一种服务。它是一种架设在计算机网络之上并隐藏底层网络技术,可以像调用本地服务一样调用远端程序,在编码代价不高的情况下提升吞吐的能力。

微服务RPC框架有多种,本发明使用的是谷歌的gRPC,gRPC是谷歌开发并开源的一款实现RPC服务的高性能框架,它是基于http2.0协议的,其工作效率比基于http1.1协议的RESTful框架高。要将方法调用以及调用参数、响应参数等在两个服务器之间进行传输,就需要将这些参数序列化,gRPC采用的是 protocol buffer的语法(检查proto),通过proto语法可以定义好要调用的方法、参数以及响应格式,可以很方便地完成远程方法调用,而且非常利于扩展和更新参数。

本发明除用户数据管理服务以外的其它后端服务通信,使用RPC的方式进行。如图2,使用gRPC框架进行通信的有:分配执行机、发现idle任务、执行任务、发现wait任务、服务注册、服务发现、数据集名、数据文件;图3 是本发明实施例提供的一种机器学习实训环境用户操作面板设计图。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号