CN115906999A - 基于Kubernetes集群的大规模强化学习训练任务的管理平台 - Google Patents
基于Kubernetes集群的大规模强化学习训练任务的管理平台 Download PDFInfo
- Publication number
- CN115906999A CN115906999A CN202310011370.4A CN202310011370A CN115906999A CN 115906999 A CN115906999 A CN 115906999A CN 202310011370 A CN202310011370 A CN 202310011370A CN 115906999 A CN115906999 A CN 115906999A
- Authority
- CN
- China
- Prior art keywords
- task
- user
- unit
- management
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于Kubernetes集群的大规模强化学习训练任务的管理平台,包括:镜像管理模块、终端、服务器,其中,终端和服务器之间采用ZeroMQ消息队列中的“请求‑应答”模式进行通信,管理平台中的用户包括:镜像库用户和平台用户;Kubernetes集群是基于Kubernetes容器管理工具建立的物理机集群,包括一个管理节点和多个物理节点,该管理平台中服务器通过Kubernetes集群的API接口通过控制管理节点实现对物理机集群的管控。本发明能提高大规模强化学习训练中的数据收集速度,并降低研究人员部署实验资源和管控实验任务的负担。
Description
技术领域
本发明属于强化学习和云计算交叉领域,具体的说是一种基于Kubernetes集群的大规模强化学习训练任务的管理平台。
背景技术
近年来,因为资源配置问题、安全问题、价格问题以及便利性等问题,越来越多的企业开始投入到云的大家庭中。云的核心是容器技术和容器编排管理系统,2008年LinuXContainers容器管理器第一次被实现,2009伯克利大学就研发出了MESOS集群管理器,而Kubernetes在2014由谷歌公司开源,进入市场比较晚,但是因为其来源于谷歌内部的Borg管理系统(Borg是一个大型内部集群管理系统,在谷歌内部已使用10年左右),Kubernetes发布之初就受到了大量公司的追捧,越来越多的企业,如亚马逊、甲骨文、微软、红帽等公司逐渐开始提供基于Kubernetes的管理平台。截至目前为止,Kubernetes已经成为容器编排与管理系统领域的霸主。
深度强化学习是深度学习和强化学习的交叉领域,从2013年DQN模型的提出,就使得AI在Atari游戏上超越了人类专家的水平。接下来的近十年时间里,深度强化学习先是与蒙特卡洛搜索树结合,多次战胜人类顶级职业棋手,后又在各类游戏中碾压人类顶级玩家,在游戏AI领域长期保持领先的地位。
强化学习是一门通过试错的方式用于解决序列决策问题的学科,主要为马尔科夫问题,又称MDP问题。MDP问题可以描述为:根据给出的当前环境st,以及使用的策略π,智能体选取相应的动作at,环境再根据当前动作演变到下一个状态st+1,,同时返回一个回报值rt,从而完成一轮交互迭代。简单来说就是一次次地训练智能体,使得累计的汇报值总和∑trt最大。采集到上述轮次数据后,研究人员会使用这些数据训练特定的模型。进而使智能体更新动作执行方式,形成一个优化循环。因为数据的收集会影响到后续数据的训练,而数据模型的训练又会反过来影响数据的交互,所以数据是需要智能体与环境在线交互得到,而不能使用现成数据集。
强化学习框架是为快速训练出一个高效智能体而设计的一套解决方案,可以提高多种算法,以及对接多种环境,正是框架的存在使得强化学习研究人员可以专心于高效算法的研究,同时也大大降低了入门的门槛。
强化学习算法的训练需要大量的训练数据,由上文可知,在线交互获取数据的方式使得数据产出率很低,基本上一个Atari游戏,就需要几十上百万轮次的训练数据来支撑算法训练,单机有限的硬件资源导致了低效的数据产出率,低效的数据产出率大大延长了模型训练的周期,从而也限制了强化学习算法的应用场景,增加了应用于复杂环境的难度。同时,研究人员试验前需要配置好相关运行环境,如CPU、GPU、内存、网络等其他资源与配置,需要将框架/算法代码放到具体环境,如容器、服务器等。同时,现有的框架/平台缺少相关任务层面的管理,所以如何设计一个便捷、高效、可扩展的训练平台成为强化学习研究的一个重要方向。
发明内容
本发明是为了解决上述现有技术存在的不足之处,提出一种基于Kubernetes集群的大规模强化学习训练任务的管理平台,以期能利用云计算中资源的扩缩容来实现强化学习训练中数据收集的速度控制、利用自设计的任务管控机制实现对实验任务的合理管控,从而能提高大规模强化学习训练中的数据收集速度,并降低研究人员部署实验资源和管控实验任务的负担。
本发明为达到上述发明目的,采用如下技术方案:
本发明一种基于Kubernetes集群的大规模强化学习训练任务的管理平台的特点包括:镜像管理模块、终端、服务器,所述终端和服务器之间采用ZeroMQ消息队列中的“请求-应答”模式进行通信,所述管理平台中的用户包括:镜像库用户和平台用户;所述Kubernetes集群是基于Kubernetes容器管理工具建立的物理机集群,包括一个管理节点和多个物理节点,所述服务器通过Kubernetes集群的API接口通过控制所述管理节点实现对物理机集群的管控;
所述镜像管理模块包括:镜像库用户管理单元、镜像管理单元;
所述终端包括:用户加密单元、任务配置单元、命令处理单元;
所述服务器包括:通信应答单元、用户管理模块、任务解析模块、集群信息自动更新模块;
所述用户管理模块包括:用户认证单元、用户管理单元;
所述任务解析模块包括:权限控制单元、任务新增单元、任务删除单元、任务查询单元、任务资源管控单元、任务生命周期管理单元、日志查询单元、集群资源查询单元;
所述集群信息自动更新模块包括:Informer自动更新单元、数据库;
所述镜像库用户管理单元用于镜像库用户登录私有镜像库时的密钥认证,若镜像库用户通过验证,则允许镜像库用户对镜像库进行管理操作,否则,返回错误信息;
所述镜像管理单元用于提供对镜像的管理操作,包括:通过push操作上传镜像,通过pull操作下载镜像,通过终端或登录网页端删除镜像;
所述用户加密单元将平台用户输入的秘钥生成唯一的不可逆编码,并与用户名一起组成用户信息并发送给服务器;
所述任务配置单元用于记录平台用户新增任务时的配置参数;
所述命令处理单元用于提交平台用户的命令请求并回显服务器的命令处理结果,所述命令请求分为新增任务命令和管理命令;若所述命令请求为新增任务命令,则将所述文件配置单元中的配置参数通过ZeroMQ消息队列中的请求方发给所述服务器;若所述命令请求为管理命令,则将用户的管理命令转换成键值对类型的字符串后通过ZeroMQ消息队列中的请求方发给服务器,所述管理命令包括:用户信息更改、查询任务、删除任务、查询集群资源状态、查询任务运行日志;
所述通信应答单元通过ZeroMQ消息队列中的应答方并行接收并处理多个终端的命令请求,并将服务器的处理结果传回给终端;
所述用户认证单元用于认证平台用户的合法性,服务器接收到平台用户的命令请求及用户信息,将从用户信息中解析到用户名及其秘钥的编码后,与所述数据库中的用户信息进行比对,若不合法,则返回错误信息,流程结束;若合法,则解析命令请求,若所述命令请求为用户信息更改,则进入用户管理单元;若为其他命令,则进入权限控制单元;
所述用户管理单元判断平台用户的类型,若为管理员用户,则允许相应的平台用户进行新增、删除、修改、查询操作,同时通过Informer自动更新单元更新数据库,并返回操作结果;若为普通用户,则只允许相应的平台用户进行秘钥修改操作,并返回操作结果;
所述权限控制单元用于接收命令请求,并对ZeroMQ消息队列中请求方所发的信息进行解析,平台数据库中记录了用户名及其有权限控制的集群资源和命名空间,通过查询数据库,获得相应平台用户的权限操作情况,比对数据库中记录和解析到的用户名、操作的集群资源和命名空间,若平台用户无操作权限,则返回错误信息,流程结束;若相应平台用户有操作权限,则判断所述命令请求的类型,若为新增任务命令,则并行进入任务生命周期管理单元和任务资源管控单元;若为删除任务命令,则进入任务删除单元;若为查询任务命令,则进入任务查询单元;若为查询集群资源状态命令,则进入集群资源查询单元;若为查询任务运行日志命令,则进入日志查询单元;
所述任务生命周期管理单元用于管理单任务的时长,若任务运行时间超过其规定时限,则管理平台自动清理该任务及其附带资源;
所述任务资源管控单元用于对用户空间的资源进行限制,并对每个平台用户配置一个任务等待队列;若新增任务的资源与相应平台用户已占有资源之和超出用户资源限额,则将新增任务放入所述任务等待队列;若新增任务的资源与相应平台用户已占有资源之和未超出限额,则进入任务新增单元;
所述任务新增单元用于解析所述新增任务命令对应的配置参数,判断配置参数中用户名所绑定的命名空间是否存在,当不存在时,在集群中创建用户名所对应的命名空间;并识别任务类型,若为强化学习单机任务,则按照配置参数创建单个Pod对象,并按照配置参数将所述训练任务启动脚本挂载到容器的指定路径,从而使得单个Pod对象初始化时,从容器的指定路径中启动所述训练任务启动脚本,并完成训练任务的创建;若为强化学习分布式任务,则按照配置参数分别创建行动者和学习者的Pod对象,并按照配置参数将所述训练任务启动脚本挂载到容器的指定路径,从而使得所述行动者和学习者对应的Pod对象在初始化时,分别启动行动者和学习者各自的训练任务启动脚本,所述行动者根据学习者的配置参数,利用DNS发现机制获得学习者的IP地址,从而与学习者建立通信连接,完成训练任务的创建;其中,Pod对象是由Kubernetes集群管理工具的Scheduler组件决策并绑定到具体的物理节点,当Pod对象所承载训练任务的在物理节点上正常运行后,表示平台新增任务成功;
所述任务删除单元用于执行终端发来的任务删除请求,并从集群中清除相应任务的资源;
所述任务查询单元接收平台用户发来的任务查询信息,若任务查询信息中指定任务名,则从所述数据库中获取相应任务名的查询信息并反馈,若任务查询信息中未指定任务名,则从所述数据库获取相应平台用户的空间下所有任务信息并反馈;
所述集群资源查询单元用于响应终端对集群资源的查询请求,服务器收到平台用户的资源查询请求后,与所述数据库进行交互,并返回当前集群资源使用情况;
所述日志查询单元用于响应终端对运行日志的查询请求,服务器接收到平台用户的日志查询请求后,返回强化学习的训练任务中的回显日志;
所述Informer自动更新单元启动时通过Kubernetes集群管理工具的List机制获取所述管理平台的资源对象,并将资源对象的状态信息写入数据库,之后通过Kubernetes集群管理工具的WatchAPI接口监控所述管理平台的资源,若有资源的新增、删除,则通过触发更新将资源的更新信息写入到数据库中;
所述数据库为MySQL,用于存储所述管理平台的信息,包括:平台用户及其秘钥信息、任务信息、资源信息。
本发明所述的基于Kubernetes集群的大规模强化学习训练任务的管理平台的特点也在于,所述管理平台还包括网络存储模块,用于存储有强化学习的训练任务启动脚本以及训练过程中需要持久化保存的训练日志;
所述网络存储模块由一个大容量存储和许多散列存储组成,大容量存储是独立的存储服务器,其他散列存储是由集群中不同的物理节点富余的存储组成,以大容量与小容量存储的配合实现对集群中存储资源的高效利用。
与现有技术相比,本发明的有益效果在于:
1、本发明利用客户端提交用户的命令请求,服务器模块接收后针对命令请求中的消息进行身份验证。服务器将通过验证的命令请求,送入权限处理单元,根据权限和消息类型进行不同处理,进而实现用户针对用户登录、任务新增、删除、查询等操作,任务新增时,平台自动控制用户资源使用上限、通过将行动者封装进Pod里来实现训练任务得高效数据收集;任务新增后,平台针对每个任务提供有自动的生命周期管理,过期自动清除该任务及其资源。平台的引入保证了用户身份隐私、用户间资源隔离、大规模强化学习训练中数据收集的可扩展性、以及高效的任务管理机制,提高了平台的可用性,降低了研究任务的难度和繁琐度。
2、本发明采用具有不可逆编码的秘钥验证机制和针对个体用户的权限资源管控机制,实现了针对用户的认证控制、权限控制以及资源控制,提高了平台的安全性、研究人员分配资源的公平性。
3、本发明将强化学习框架中的行动者和学习者封装进Kubernetes中的Pod资源中,行动者与学习者间通过DNS发现机制进行交互,并通过扩展Pod资源实现训练过程中的数据收集的扩展性,保证了大规模强化学习训练中的高速的数据收集。
4、本发明提供了针对每个任务的自动时间管理机制,超出固定最长时限将自动删除该任务,释放了相关资源,从而防止了废弃任务对资源的长期占用。
5、本发明利用数据库和Informer机制实现了针对集群资源的自动监控,通过触发更新的方式将最新资源和任务信息更新到数据库中,使得用户可以便捷地查询当前集群资源状态和任务状态。
附图说明
图1为本发明平台的系统架构图;
图2为本发明平台中终端结构图;
图3为本发明平台中服务器结构图;
图4为本发明平台中镜像库结构图;
图5为本发明平台中强化学习框架结构图。
具体实施方式
本实施样中,一种基于Kubernetes集群的大规模强化学习训练任务的管理平台,能通过针对配置参数的更改、服务器对参数的解析实现强化学习训练的高效数据收集,并提供了对于强化学习训练任务的管理机制,降低了大规模强化学习分布式训练的难度,提高了数据收集效率,并优化了任务的管控效率,从而将研究人员从复杂的资源配置、任务管理等繁琐工作中解放出来。平台的任务类型主要包括平台用户管理、任务添加、任务查询、任务删除、平台资源查询、任务运行日志查询等。如图1所示,平台组成部分包括:镜像管理模块、终端、服务器、网络存储。终端和服务器之间采用ZeroMQ消息队列中的“请求-应答”模式进行通信,平台中的用户包括:镜像库用户和平台用户;其中,Kubernetes集群是基于Kubernetes容器管理工具建立的物理机集群,包括一个管理节点和多个物理节点,服务器通过Kubernetes集群的API接口控制管理节点,从而实现对物理机集群的管控;
镜像管理模块是集群中用于管理任务镜像的部分,通过设计并实现该镜像管理模块,可以让任务部署更加便捷与快速。如图4所示,其组成包括镜像服务器和镜像终端,镜像终端通过push和pull操作镜像,此外按照功能分类,镜像管理模块可分为镜像库用户管理单元、镜像管理单元;
终端是任务的发起侧与管理侧,通过与终端的交互,研究任务可以便捷地部署实验以及管控试验任务。如图2所示,终端主要包括:用户加密单元、任务配置单元、命令处理单元,三个单元相互协作,共同完成终端侧的任务需求;
服务器是任务的接收、解析和执行侧。通过服务器的一些列处理,最终返回给终端该任务的处理结果。如图3所示,服务器主要包括:通信应答单元、用户管理模块、任务解析模块、集群信息自动更新模块,通过模块与单元间配合,完成针对不同用户、不同权限、不同任务、以及不同操作的管理与控制;
用户管理模块用于针对平台用户的管理操作,有管理员权限的研究员可以实现针对用户的增删改查,普通权限的用户只能用以更改账户密钥,其组成部分包括:用户认证单元、用户管理单元;
任务解析模块用于确定用户命令请求是资源、任务相关的以后,对该命令请求进一步解析,从而进一步细化任务处理,其组成部分包括:权限控制单元、任务新增单元、任务删除单元、任务查询单元、任务资源管控单元、任务生命周期管理单元、日志查询单元、集群资源查询单元;
集群信息自动更新模块用户实时监控集群中的资源任务信息,并实时更新到数据库中保存,其组成部分包括:Informer自动更新单元、数据库;
镜像库用户管理单元对镜像库用户登录私有镜像库时输入的密钥进行验证,若镜像库用户通过验证,则允许镜像库用户对镜像库进行管理操作,否则,返回错误信息;
镜像管理单元用于提供对镜像的管理操作,若管理操作是上传训练镜像,则在终端通过push操作即可,若是手动下载镜像,则在终端通过pull操作即可,通过平台任务创建的容器可以根据镜像名称从镜像库中自动下载镜像;
用户加密单元将平台用户输入的秘钥生成唯一的不可逆编码,并与用户名一起组成用户信息并发送给服务器;
任务配置单元用于记录平台用户新增任务时的配置参数,若为新增任务,则可根据命令帮助中的参数模板配置自己的任务参数;
命令处理单元用于提交平台用户的命令请求并回显服务器的命令处理结果,命令请求分为新增任务命令和管理命令;若为新增任务命令,则将文件配置单元中的配置参数通过ZeroMQ消息队列中的请求方发给服务器;若为管理命令,则将用户的管理命令转换成键值对类型的字符串后通过ZeroMQ消息队列中的请求方发给服务器,管理命令包括:用户信息更改、查询任务、删除任务、查询集群资源状态、查询任务运行日志,其中,用户信息更改主要指针对用户密钥的更改,查询任务指对任务状态的查询,查询集群资源状态主要指针对集群CPU、GPU和内存资源的查询;
通信应答单元通过ZeroMQ消息队列中的应答方并行接收并处理多个终端的命令请求,并将服务器的处理结果传回给终端;
用户认证单元用于认证平台用户的合法性,服务器接收到平台用户的命令请求及用户信息,将从用户信息中解析到用户名及其秘钥的不可逆编码后,与数据库中的用户信息进行比对,若不合法,则返回错误信息,流程结束;若合法,则解析命令请求,若为用户信息更改命令,则进入用户管理单元;若为其他命令,则进入权限控制单元;
用户管理单元判断平台用户的类型,若为管理员用户,则允许相应的平台用户进行新增、删除、修改、查询操作,同时通过Informer自动更新单元更新数据库,并返回操作结果;若为普通用户,则只允许相应的平台用户进行秘钥修改操作,并返回操作结果,若操作超出自己权限,则返回错误信息,流程结束;
权限控制单元用于接收命令请求,并对ZeroMQ消息队列中请求方所发的信息进行解析,平台数据库中记录了用户名及其有权限控制的集群资源和命名空间,通过查询数据库,获得相应平台用户的权限操作情况,比对数据库中记录和解析到的用户名、操作的集群资源和命名空间,若相应平台用户无操作权限,则返回错误信息,流程结束;若相应平台用户有操作权限,则判断命令请求的类型,若为新增任务命令,则并行进入任务生命周期管理单元和任务资源管控单元;若为删除任务命令,则进入任务删除单元;若为查询任务命令,则进入任务查询单元;若为查询集群资源状态命令,则进入集群资源查询单元;若为查询任务运行日志命令,则进入日志查询单元;
任务生命周期管理单元用于管理单任务的时长,针对每个平台任务分别设置计时器,若任务运行时间超过其规定时限,则管理平台自动清理该任务及其附带资源;
任务资源管控单元用于对用户空间的资源进行限制,并对每个平台用户配置一个任务等待队列;若新增任务的资源与相应平台用户已占有资源之和超出用户资源限额,则将新增任务放入任务等待队列;若新增任务的资源与相应平台用户已占有资源之和未超出限额,则进入任务新增单元;
任务新增单元用于解析新增任务命令对应的配置参数,并判断配置参数中用户名所绑定的命名空间是否存在,当不存在时,在集群中创建用户名所对应的命名空间;这里本单元会判断新增任务的类别标识,若类别标识为强化学习单机任务,则按照配置参数创建单个Pod对象,利用Kubernetes集群管理工具的Scheduler组件根据Pod对象绑定到具体物理节点,并按照配置参数将训练任务启动脚本挂载到容器的指定路径,从而使得单个Pod对象初始化时,从容器的指定路径中启动训练任务启动脚本,并完成训练任务的创建;若类别标识为强化学习分布式任务,则按照配置参数分别创建行动者和学习者的Pod对象,并按照配置参数将训练任务启动脚本挂载到容器的指定路径,从而使得行动者和学习者对应的Pod对象在初始化时,分别启动行动者和学习者各自的训练任务启动脚本,训练架构如图5所示;行动者根据学习者的配置参数,利用DNS发现机制获得学习者的IP地址,并与学习者建立通信连接,从而完成训练任务的创建;其中,Pod对象是由Kubernetes集群管理工具的Scheduler组件决策并绑定到具体的物理节点,当Pod对象所承载的训练任务在物理节点上正常运行后,表示平台新增任务成功;
任务删除单元用于执行终端发来的任务删除请求,平台根据删除请求配置参数中的任务名删除相关的service、deployment/statefulset等资源;
任务查询单元接收平台用户发来的任务查询信息,若任务查询信息中指定任务名,则从数据库中获取相应任务的状态信息并反馈,若任务查询信息中未指定任务名,则从数据库获取相应平台用户的空间下所有任务的状态信息并返回;
集群资源查询单元用于响应终端对集群资源的查询请求,服务器收到平台用户的资源查询请求后,从数据库中抓取当前集群资源的使用信息并返回;
日志查询单元用于响应终端对运行日志的查询请求,服务器接收到平台用户的日志查询请求后,返回强化学习的训练任务中的打印日志;
Informer自动更新单元启动时通过Kubernetes集群管理工具的List机制获取管理平台的资源对象,并将资源对象的状态信息写入数据库,之后通过Kubernetes集群管理工具的WatchAPI接口监控管理平台的资源,若有资源的新增、删除,则通过触发更新将资源的更新信息写入到数据库中;
数据库为MySQL,用于存储管理平台的信息,包括:平台用户及其秘钥信息、任务状态信息、资源状态信息等。
此外,本平台还包括网络存储模块,用于存储强化学习训练用到的任务启动脚本以及持久化存储训练过程中产生的日志文件;
网络存储模块由一个大容量存储和许多散列存储组成,使用NFS技术实现,大容量存储是独立的存储服务器,其他散列存储是由集群中不同的物理节点富余的存储组成,大容量与小容量存储的配合实现了对集群中存储资源的高效利用。
Claims (2)
1.一种基于Kubernetes集群的大规模强化学习训练任务的管理平台,其特征包括:镜像管理模块、终端、服务器,所述终端和服务器之间采用ZeroMQ消息队列中的“请求-应答”模式进行通信,所述管理平台中的用户包括:镜像库用户和平台用户;所述Kubernetes集群是基于Kubernetes容器管理工具建立的物理机集群,包括一个管理节点和多个物理节点,所述服务器通过Kubernetes集群的API接口通过控制所述管理节点实现对物理机集群的管控;
所述镜像管理模块包括:镜像库用户管理单元、镜像管理单元;
所述终端包括:用户加密单元、任务配置单元、命令处理单元;
所述服务器包括:通信应答单元、用户管理模块、任务解析模块、集群信息自动更新模块;
所述用户管理模块包括:用户认证单元、用户管理单元;
所述任务解析模块包括:权限控制单元、任务新增单元、任务删除单元、任务查询单元、任务资源管控单元、任务生命周期管理单元、日志查询单元、集群资源查询单元;
所述集群信息自动更新模块包括:Informer自动更新单元、数据库;
所述镜像库用户管理单元用于镜像库用户登录私有镜像库时的密钥认证,若镜像库用户通过验证,则允许镜像库用户对镜像库进行管理操作,否则,返回错误信息;
所述镜像管理单元用于提供对镜像的管理操作,包括:通过push操作上传镜像,通过pull操作下载镜像,通过终端或登录网页端删除镜像;
所述用户加密单元将平台用户输入的秘钥生成唯一的不可逆编码,并与用户名一起组成用户信息并发送给服务器;
所述任务配置单元用于记录平台用户新增任务时的配置参数;
所述命令处理单元用于提交平台用户的命令请求并回显服务器的命令处理结果,所述命令请求分为新增任务命令和管理命令;若所述命令请求为新增任务命令,则将所述文件配置单元中的配置参数通过ZeroMQ消息队列中的请求方发给所述服务器;若所述命令请求为管理命令,则将用户的管理命令转换成键值对类型的字符串后通过ZeroMQ消息队列中的请求方发给服务器,所述管理命令包括:用户信息更改、查询任务、删除任务、查询集群资源状态、查询任务运行日志;
所述通信应答单元通过ZeroMQ消息队列中的应答方并行接收并处理多个终端的命令请求,并将服务器的处理结果传回给终端;
所述用户认证单元用于认证平台用户的合法性,服务器接收到平台用户的命令请求及用户信息,将从用户信息中解析到用户名及其秘钥的编码后,与所述数据库中的用户信息进行比对,若不合法,则返回错误信息,流程结束;若合法,则解析命令请求,若所述命令请求为用户信息更改,则进入用户管理单元;若为其他命令,则进入权限控制单元;
所述用户管理单元判断平台用户的类型,若为管理员用户,则允许相应的平台用户进行新增、删除、修改、查询操作,同时通过Informer自动更新单元更新数据库,并返回操作结果;若为普通用户,则只允许相应的平台用户进行秘钥修改操作,并返回操作结果;
所述权限控制单元用于接收命令请求,并对ZeroMQ消息队列中请求方所发的信息进行解析,平台数据库中记录了用户名及其有权限控制的集群资源和命名空间,通过查询数据库,获得相应平台用户的权限操作情况,比对数据库中记录和解析到的用户名、操作的集群资源和命名空间,若平台用户无操作权限,则返回错误信息,流程结束;若相应平台用户有操作权限,则判断所述命令请求的类型,若为新增任务命令,则并行进入任务生命周期管理单元和任务资源管控单元;若为删除任务命令,则进入任务删除单元;若为查询任务命令,则进入任务查询单元;若为查询集群资源状态命令,则进入集群资源查询单元;若为查询任务运行日志命令,则进入日志查询单元;
所述任务生命周期管理单元用于管理单任务的时长,若任务运行时间超过其规定时限,则管理平台自动清理该任务及其附带资源;
所述任务资源管控单元用于对用户空间的资源进行限制,并对每个平台用户配置一个任务等待队列;若新增任务的资源与相应平台用户已占有资源之和超出用户资源限额,则将新增任务放入所述任务等待队列;若新增任务的资源与相应平台用户已占有资源之和未超出限额,则进入任务新增单元;
所述任务新增单元用于解析所述新增任务命令对应的配置参数,判断配置参数中用户名所绑定的命名空间是否存在,当不存在时,在集群中创建用户名所对应的命名空间;并识别任务类型,若为强化学习单机任务,则按照配置参数创建单个Pod对象,并按照配置参数将所述训练任务启动脚本挂载到容器的指定路径,从而使得单个Pod对象初始化时,从容器的指定路径中启动所述训练任务启动脚本,并完成训练任务的创建;若为强化学习分布式任务,则按照配置参数分别创建行动者和学习者的Pod对象,并按照配置参数将所述训练任务启动脚本挂载到容器的指定路径,从而使得所述行动者和学习者对应的Pod对象在初始化时,分别启动行动者和学习者各自的训练任务启动脚本,所述行动者根据学习者的配置参数,利用DNS发现机制获得学习者的IP地址,从而与学习者建立通信连接,完成训练任务的创建;其中,Pod对象是由Kubernetes集群管理工具的Scheduler组件决策并绑定到具体的物理节点,当Pod对象所承载训练任务的在物理节点上正常运行后,表示平台新增任务成功;
所述任务删除单元用于执行终端发来的任务删除请求,并从集群中清除相应任务的资源;
所述任务查询单元接收平台用户发来的任务查询信息,若任务查询信息中指定任务名,则从所述数据库中获取相应任务名的查询信息并反馈,若任务查询信息中未指定任务名,则从所述数据库获取相应平台用户的空间下所有任务信息并反馈;
所述集群资源查询单元用于响应终端对集群资源的查询请求,服务器收到平台用户的资源查询请求后,与所述数据库进行交互,并返回当前集群资源使用情况;
所述日志查询单元用于响应终端对运行日志的查询请求,服务器接收到平台用户的日志查询请求后,返回强化学习的训练任务中的回显日志;
所述Informer自动更新单元启动时通过Kubernetes集群管理工具的List机制获取所述管理平台的资源对象,并将资源对象的状态信息写入数据库,之后通过Kubernetes集群管理工具的WatchAPI接口监控所述管理平台的资源,若有资源的新增、删除,则通过触发更新将资源的更新信息写入到数据库中;
所述数据库为MySQL,用于存储所述管理平台的信息,包括:平台用户及其秘钥信息、任务信息、资源信息。
2.根据权利要求1所述的基于Kubernetes集群的大规模强化学习训练任务的管理平台,其特征在于,所述管理平台还包括网络存储模块,用于存储有强化学习的训练任务启动脚本以及训练过程中需要持久化保存的训练日志;
所述网络存储模块由一个大容量存储和许多散列存储组成,大容量存储是独立的存储服务器,其他散列存储是由集群中不同的物理节点富余的存储组成,以大容量与小容量存储的配合实现对集群中存储资源的高效利用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310011370.4A CN115906999A (zh) | 2023-01-05 | 2023-01-05 | 基于Kubernetes集群的大规模强化学习训练任务的管理平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310011370.4A CN115906999A (zh) | 2023-01-05 | 2023-01-05 | 基于Kubernetes集群的大规模强化学习训练任务的管理平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115906999A true CN115906999A (zh) | 2023-04-04 |
Family
ID=86489715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310011370.4A Pending CN115906999A (zh) | 2023-01-05 | 2023-01-05 | 基于Kubernetes集群的大规模强化学习训练任务的管理平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115906999A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116452951A (zh) * | 2023-04-18 | 2023-07-18 | 郑州大学 | 基于中央数据池的遥感信息提取模型分布式训练方法 |
CN116629382A (zh) * | 2023-05-29 | 2023-08-22 | 上海和今信息科技有限公司 | 基于Kubernetes的机器学习平台对接HPC集群的方法及对应的装置、系统 |
-
2023
- 2023-01-05 CN CN202310011370.4A patent/CN115906999A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116452951A (zh) * | 2023-04-18 | 2023-07-18 | 郑州大学 | 基于中央数据池的遥感信息提取模型分布式训练方法 |
CN116452951B (zh) * | 2023-04-18 | 2023-11-21 | 郑州大学 | 基于中央数据池的遥感信息提取模型分布式训练方法 |
CN116629382A (zh) * | 2023-05-29 | 2023-08-22 | 上海和今信息科技有限公司 | 基于Kubernetes的机器学习平台对接HPC集群的方法及对应的装置、系统 |
CN116629382B (zh) * | 2023-05-29 | 2024-01-02 | 上海和今信息科技有限公司 | 基于Kubernetes的机器学习平台对接HPC集群的方法、装置、系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115906999A (zh) | 基于Kubernetes集群的大规模强化学习训练任务的管理平台 | |
CN111478820B (zh) | 网络靶场大规模网络环境的网络设备配置系统与方法 | |
CN106130881B (zh) | 一种帐号登录方法及装置 | |
CN111541760B (zh) | 基于无服务器雾计算系统架构的复杂任务分配方法 | |
CN106407757B (zh) | 数据库的访问权限处理方法、装置及系统 | |
EP3480686B1 (en) | Data processing method, cluster manager, resource manager and data processing system | |
CN111443990B (zh) | 一种边缘计算任务迁移仿真系统 | |
CN106021327B (zh) | 一种支持多用户同时读写的网盘系统及其读文件方法、写文件方法 | |
CN104965695B (zh) | 模拟用户实时操作的方法和装置 | |
CN110598280A (zh) | 一种设备仿真系统和方法、计算机可读存储介质 | |
CN108572970A (zh) | 一种结构化数据的处理方法和分布式处理系统 | |
CN109739708A (zh) | 测试压力的方法、装置和系统 | |
CN109462631A (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN110119387A (zh) | 一种文件删除方法、装置、设备及可读存储介质 | |
CN110673933A (zh) | 基于ZooKeeper的分布式异步队列实现方法、装置、设备及介质 | |
CN114328432A (zh) | 一种大数据联邦学习处理方法及系统 | |
CN111935242A (zh) | 数据传输方法、装置、服务器以及存储介质 | |
CN114362983A (zh) | 一种防火墙策略管理方法、装置、计算机设备和存储介质 | |
CN110378692A (zh) | 基于区块链的数据安全处理方法及装置 | |
CN110248030A (zh) | 短信补偿机制的测试方法、装置、设备及存储介质 | |
CN112199154A (zh) | 一种基于分布式协同采样中心式优化的强化学习训练系统及方法 | |
CN112256760A (zh) | 一种数据预测方法、装置、计算机设备及存储介质 | |
Kuga et al. | An automatic team evaluation system for RoboCup soccer simulation 2D | |
CN117245645B (zh) | 机器人及其控制方法、装置、存储介质 | |
Masud et al. | PDST: A peer database simulation tool for data sharing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |