CN116523030B - 动态调度模型训练资源的方法及装置 - Google Patents
动态调度模型训练资源的方法及装置 Download PDFInfo
- Publication number
- CN116523030B CN116523030B CN202310792482.8A CN202310792482A CN116523030B CN 116523030 B CN116523030 B CN 116523030B CN 202310792482 A CN202310792482 A CN 202310792482A CN 116523030 B CN116523030 B CN 116523030B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- speed
- slices
- reinforcement learning
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012549 training Methods 0.000 title claims abstract description 65
- 230000002787 reinforcement Effects 0.000 claims abstract description 98
- 230000007613 environmental effect Effects 0.000 claims description 134
- 230000003993 interaction Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000004064 recycling Methods 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例披露一种动态调度模型训练资源的方法及装置。该方法包括:先将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片;再选取若干环境状态切片对应分配给集群中的若干第一节点,以使该若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本,该经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型;之后,根据经验样本的生成速度和消耗速度之间的大小关系,增加第一节点和/或第二节点,或者,在确定出集群的空闲资源量小于其他的高优先级任务的需求资源量的情况下,删除部分第一节点和/或部分第二节点。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种动态调度模型训练资源的方法及装置。
背景技术
强化学习(Reinforcement Learning,简称RL)是一种应用广泛的机器学习技术,一个智能体(agent)需要在一个未知的环境(environment)中通过与环境的持续交互来学习最佳策略(optimal policy),即策略通过接收环境当前状态(current state)的观察结果,作出响应(response),执行动作来与该环境交互。
有些强化学习系统使用神经网络来作为策略表示,对于环境当前状态的观察结果作为神经网络的输入,输出为需要执行的动作。使用强化学习训练一个神经网络策略在许多业务场景下计算量大,耗时长,需要消耗大量的计算资源。由此提出,通过基于图形处理器(Graphics Processing Unit,简称GPU)等硬件资源的分布式训练来加速。大规模的硬件资源一般通过组建成一个集群来管理和调度,多种作业会共享集群资源。
由此,本说明书实施例披露一种动态调度模型训练资源的方案,可以优化强化学习的训练过程,包括进一步提高训练速度,提高集群资源利用率等。
发明内容
本说明书实施例描述一种动态调度模型训练资源的方法,可以有效提高强化学习的训练速度、提高集群资源利用率等。
根据第一方面,提供一种动态调度模型训练资源的方法,包括:
将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片。选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型。在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,增加第二节点;或,在确定出所述第二速度大于所述第一速度的情况下,增加第一节点;或,在确定出所述第一速度等于所述第二速度的情况下,增加第一节点和第二节点。
在一个实施例中,在增加第一节点之后,所述方法还包括:向新增的第一节点分配待处理的环境状态切片。
在一个实施例中,所述方法还包括:确定出存在第一节点完成对已接收的环境状态切片的处理;向该第一节点分配待处理的环境状态切片。
在一个实施例中,所述方法还包括:确定出存在第一节点被中止;回收该第一节点未处理完的环境状态切片,重新标记为待处理。
在一个实施例中,所述方法还包括:确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务;删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量。
在一个具体的实施例中,在删除部分第一节点之后,所述方法还包括:回收所述部分第一节点正在处理的环境状态切片,重新标记为待处理。
在一个实施例中,所述控制器维护第一列表和第二列表,所述第一列表包括待处理的环境状态切片,所述第二列表包括处理中的环境状态切片。
在一个具体的实施例中,选取若干环境状态切片对应分配给所述集群中的若干第一节点,包括:从初始包括所述多个环境状态切片的第一列表中读取所述若干环境状态切片,对应分配给所述若干第一节点;将所述若干环境状态切片从所述第一列表移动至初始为空的第二列表。
在一个具体的实施例中,在增加第一节点后,所述方法还包括:从所述第一列表中读取环境状态切片,发送给新增的第一节点;将被读取的环境状态切片从所述第一列表移动至第二列表。
在一个具体的实施例中,所述方法还包括:确定出存在第一节点完成对已接收的环境状态切片的处理;将处理完的环境状态切片从所述第二列表中删除。
在一个具体的实施例中,所述方法还包括:监听到存在第一节点被中止;将该第一节点未处理完的环境状态切片从所述第二列表移动到所述第一列表。
根据第二方面,提供一种动态调度模型训练资源的方法,包括:
将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片。选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型。在确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务的情况下,删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量。
在一个实施例中,删除部分第一节点和/或部分第二节点,包括:在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,删除部分第一节点;或,在确定出所述第二速度大于所述第一速度的情况下,删除部分第二节点;或,在确定出所述第一速度等于所述第二速度的情况下,删除部分第一节点和部分第二节点。
根据第三方面,提供一种动态调度模型训练资源的装置,包括:
状态切分模块,配置为将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片。状态分配模块,配置为选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型。节点增设模块,配置为在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,增加第二节点;或,在确定出所述第二速度大于所述第一速度的情况下,增加第一节点;或,在确定出所述第一速度等于所述第二速度的情况下,增加第一节点和第二节点。
根据第四方面,提供一种动态调度模型训练资源的装置,包括:
状态切分模块,配置为将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片。状态分配模块,配置为选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型。节点删除模块,配置为在确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务的情况下,删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面提供的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一方面或第二方面提供的方法。
采用本说明书实施例披露的上述方法及装置,1)通过动态弹性调度,可以实现利用集群空闲资源,动态增加训练节点和/或经验采集实例的数量,保持经验生成速度和训练速度的平衡,从而加速强化学习训练,提高集群资源利用率。2)实现当强化学习作业的部分资源被高优先级作业抢占后,强化学习任务还可以继续进行。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出基于神经网络的强化学习训练的架构示意图;
图2示出分布式训练强化学习模型的架构示意图;
图3示出本说明书实施例披露的支持动态弹性资源的分布式强化学习的集群资源管理架构示意图;
图4示出本说明书实施例披露的动态调度模型训练资源的方法流程示意图之一;
图5示出本说明书实施例披露的动态调度模型训练资源的方法流程示意图之二;
图6示出本说明书实施例披露的动态调度模型训练资源的装置结构示意图之一;
图7示出本说明书实施例披露的动态调度模型训练资源的装置结构示意图之二。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
承前所述,有些强化学习系统使用神经网络来作为策略表示。如图1所示,基于神经网络的强化学习系统可以分成2个部分:经验采集(experience generation)和模型训练(model training)。
经验采集时,会对不同的环境状态生成对应的经验(experience), 放到重放缓冲区(replay buffer) 里。经验生成过程需要对一个或者多个模型做推理。示例性的,可以将任意一个经验样本记作(s,a,s′,r),表示智能体根据环境的当前状态s做出动作a后,环境变化为下一状态s′并做出反馈r。
模型训练时,会从重放缓冲区中读取一批次经验样本, 作为训练的数据输入,然后调用指定的算法,例如,深度Q值网络(Deep Q Network,简称DQN)、可信域策略优化(Trust Region Policy Optimization,简称TRPO)、近端策略优化(Proximal PolicyOptimization,简称PPO)等,训练一个或者多个模型,更新模型参数。然后继续读取下一批经验样本, 反复这个过程。并定期(如过一定时间或者一定的训练批次个数后)传递训练更新的模型,让经验采集使用更新后的模型。
举例来说,基于人类反馈的强化学习(Reinforcement Learning from HumanFeedback,简称RLHF)过程,是以强化学习方式来微调语言模型(NLP model),经验采集时会使用4个模型做推理:行动者模型(actor model)、评论者模型(critic model)、奖励模型(reward model)和参考模型(reference model)。模型训练时会使用PPO 算法来训练 2 个模型:行动者模型和评论者模型。需要定时的把行动者模型和评论者模型更新到经验采集阶段。
在许多业务场景下,强化学习训练的数据量大、计算量大、耗时长,此时可以使用分布式训练来加速。如图2所示,经验采集时可以使用多组资源生成多个实例(instance),分别对应于不同的环境状态,来生成不同的经验, 放入重放缓冲区里面。
模型分布式训练,使用多个训练节点(node)组网来加速训练,每个训练节点有独立的硬件资源。
大规模的硬件资源一般通过组建成一个集群(如Kubernetes集群)来管理和调度,多种作业(或称多种计算任务)会共享集群资源。
一方面,强化学习作业中,经验采集的计算量和模型训练的计算量往往不一致。比如在一些RLHF场景下,经验采集的计算量是模型训练的计算量4倍以上。如果使用相同数量的资源,经验采集的速度远远小于模型训练的速度。
另一方面,不同作业有不同的优先级(如在线服务作业的优先级高于离线训练作业),对资源需要的数量和时间也不一样。这样导致集群空闲资源数量会不断的变化。
强化学习作业可以和其他不同优先级的作业共享集群资源。如果有比强化学习作业优先级高的作业要启动,并且集群空闲资源数量不够时,可以从强化学习作业抢占(preempt)资源,这会导致强化学习作业被中止。
基于以上观察和分析,本说明书实施例提出动态调度模型训练资源的方案,支持动态弹性资源的分布式强化学习,在该方案中,经验采集的实例个数和模型训练的节点个数可以动态变化,从而动态的利用集群的空闲资源,高效的训练强化学习作业,并且,还可以在保证高优先级作业资源需求下,强化学习作业不被中止。
下面结合图3、图4和图5,介绍上述方案的实现步骤。对比图3和图2可以发现,本说明书实施例方案新设计了一个控制器(master),此控制器主要有2个功能,一是负责添加/减少经验采集的实例个数和模型训练的节点个数,二是负责管理和分发生成经验所需的环境状态。
图4示出本说明书实施例披露的动态调度模型训练资源的方法流程示意图之一。需理解,该方法可以由针对强化学习任务配置的控制器(例如,图3中示意的控制器)执行,控制器还可以被换称为控制节点、主控节点等,控制器可以依托于集群中或集群外的资源实现。
如图4所示,所述方法包括以下步骤:
步骤S410,将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片;步骤S420,选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型;步骤S430,以使得若干第一节点生成经验样本的第一速度与若干第二节点消耗经验样本的第二速度相匹配为目标,增加第一节点和/或第二节点。
对以上步骤的展开介绍如下:
在步骤S410,将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片(environment state shard)。一般地,其中多个子空间互不交叠。
需理解,环境状态空间包括所有可能的环境状态,可以根据业务场景预先定义。在一个例子中,在人机对话交互的业务场景(此时可以采用RLHF算法)中,所有可能的环境状态包括预定义的所有文本行(prompt)范式。在另一个例子中,在推荐业务场景中,所有可能的环境状态包括向用户推荐的所有备选商品。
在一个实施例中,环境状态空间中的环境状态是离散、有限的,例如上述人机对话场景或推荐业务场景下的环境状态,此时,可以将有限的环境状态形成的总集划分成多个子集,作为多个环境状态切片。一般地,多个子集之间互斥且并集为所述总集。例如,假定环境状态空间中包括10万个环境状态,此时,可以将其划分为1百个环境状态切片,每个环境状态切片中包括1千个环境状态。
在另一个实施例中,环境状态空间中的环境状态是无限的。此时,在一个具体的实施例中,可以根据环境状态的取值规则或限定区间等,划分出多个子规则或多个子区间,作为待处理的多个环境状态切片。示例性的,环境状态为温度值,其取值区间为[0,100],此时,可以将之等分成长度为10的10个区间,作为多个环境状态切片。在另一个具体的实施例中,还可以对环境状态空间进行大规模随机采样,并对采样结果进行划分,得到多个环境状态切片。
另一方面,可以对环境状态切片的处理状态进行标记,以便对环境状态切片进行发放、回收和删除等,进而辅助实现第一节点的动态增删。在一种实施方式中,可以为每个环境状态切片添加标签,标签的类型为待处理、处理中或已处理。相应,本步骤中还可以包括:为上述多个环境状态切片分别添加待处理标签。
在另一种实施方式中,控制器维护待处理列表(todo_list),其指示待处理的环境状态切片,以及处理中列表(doing_list),其指示处理中的环境状态切片。相应,本步骤中还可以包括:将上述多个环境状态切片放入待处理列表,以及,初始化一个为空的处理中列表。需理解,文中或将待处理列表换称为第一列表,将处理中列表换称为第二列表;另外,“第一列表”中的“第一”和“第二列表”中的“第二”,以及文中他处的类似用语,均是为了区分同类事物,不具有其他限定作用。
以上,可以实现对全量环境状态的切片处理。
在步骤S420,选取若干环境状态切片对应分配给集群中的若干第一节点。
需理解,第一节点对应图3中示意的经验采集实例,其基于集群资源而创建;文中的“若干”指代一个或多个。
在一个实施例中,控制器监听到某个第一节点的创建或状态变更为空闲状态,选取一个待处理的环境状态切片分配给该第一节点。在另一个实施例中,响应于第一节点发起的状态数据请求,选取一个待处理的环境状态切片分配给该第一节点。
在一个实施例中,可以从多个环境状态切片中随机选取出若干环境状态切片。
在一个实施例中,可以从第一列表中读取若干环境状态切片,并将若干环境状态切片的数据对应分配给若干第一节点,以及,将若干环境状态切片从第一列表移动至第二列表。
进一步,在一个例子中,响应于某个第一节点发起的状态数据请求,从第一列表中读取一个环境状态切片,并将切片数据发送给该第一节点,以及,将该一个环境状态切片从第一列表移出后移入第二列表。
由上,在步骤S420,若干第一节点可以各自接收到环境状态切片。
需说明,第一节点在接收到环境状态切片后,可以利用强化学习模型与环境交互生成经验样本。具体地,任意的第一节点可以将环境状态切片中的环境状态,作为当前环境的初始状态,从而基于此初始状态与环境进行交互。
在一个实施例中,环境状态切片中包括有限数量的环境状态,此时,可以将各个环境状态分别作为环境的初始状态后进行交互。在另一个实施例中,环境状态切片中包括环境状态的取值子规则或取值子区间,此时,可以采样预定数量的环境状态,并将采样到的各个环境状态分别作为环境的初始状态后进行交互。
另一方面,在以环境状态切片中的某个环境状态作为初始状态后,跟环境进行交互的次数以及经验样本的生成、构建,与强化学习应用的具体业务场景相适应。在一个实施例中,在人机对话交互的场景中,以某个环境状态作为环境的当前状态后,只需交互一次,执行一次动作,就可以得到一个经验样本,并判定对该某个环境状态的处理完毕。示例性的,可以将构建的经验样本记作(s,a,s′,r),表示智能体根据环境的当前状态s做出动作a后,环境变化为下一状态s′并做出反馈r。在另一个实施例中,在电子游戏(如下棋等)场景中,在以某个环境状态初始化当前环境后,可能需要进行多次交互,直到游戏结束(如某一方获胜或平局),进而构建出一个或多个经验样本。
进一步,由第一节点生成的经验样本被存储至重放缓冲区。在一个实施例中,第一节点可以在将环境状态切片处理完后,在将处理过程中生成的全部经验样本一次性放入重放缓冲区。在另一个实施例中,第一节点可以将生成的经验样本即时放入重放缓冲区。
经验样本被存储至重放缓冲区后,由集群中的若干第二节点进行读取以训练所述强化学习模型。需理解,第二节点对应图3中示意的训练节点,其基于集群资源而创建;另外,一般地,训练阶段需训练的强化学习模型与经验采集阶段使用的强化学习模型相同,或者是后者的真子集。
通常,若干第二节点为多个第二节点,多个第二节点可以对强化学习模型进行分布式训练。需理解,此分布式训练可以是模型并行或数据并行,对于具体训练方式不作赘述。假定有些时刻,若干第二节点为一个第二节点,此时变成一方独自利用经验样本进行强化学习模型训练,对于训练方式同样不作赘述。
以上,介绍第一节点根据接收到的环境状态切片生成经验样本,以及第二节点根据被放入重放缓冲区中的经验样本对强化学习模型进行分布式训练。
回到图4,在步骤S430,以使得若干第一节点生成经验样本的第一速度与若干第二节点消耗经验样本的第二速度相匹配为目标,增加第一节点和/或第二节点。如此,可以提高集群资源的利用率。
需理解,强化学习任务与其他计算任务共享集群任务。当存在其他计算任务执行完毕或中止执行时等,原本被占用的集群资源得到释放,这部分资源处于空闲状态。
在一个实施例中,控制器可以通过监听机制,获知集群存在空闲资源。在另一个实施例中,集群中的管理节点将集群资源的使用情况定期上报给控制器,控制器可以据此获知集群中存在空闲资源。
在一种实施方式中,在确定出集群存在空闲资源后,进一步判断若干第一节点生成经验样本的第一速度与若干第二节点消耗经验样本的第二速度之间的大小关系,并根据判断出的大小关系,以缩小第一速度和第二速度之间的差距或保持二者持续匹配为目标,确定针对第一节点和第二节点的增加方案。
在一个实施例中,在确定出第一速度大于第二速度的情况下,增加第二节点。
在另一个实施例中,在确定出第二速度大于所述第一速度的情况下,增加第一节点。
在又一个实施例中,在确定出第一速度等于第二速度的情况下,增加第一节点和第二节点。
进一步,在一个具体的实施例中,在增加第一节点之后,所述动态调度方法还包括:向新增的第一节点分配待处理的环境状态切片。示例性的,响应于新增的第一节点发起的状态数据请求,从第一列表中读取环境状态切分发送给该第一节点,并将被读取的环境状态切片从第一列表移动至第二列表。
在另一种实施方式中,直接判断上述第一速度与第二速度之间的大小关系,再尝试增加第一节点和/或第二节点。此时,若集群资源中存在空闲资源,则增加成功,否则增加失败。
以上,通过动态弹性调度,可以实现利用集群空闲资源,动态增加第一节点和/第二节点的数量,保持第一节点生成经验样本和第二节点消费经验样本的速度平衡,从而加速强化学习训练,提高集群资源利用率。
本说明书实施例还提供另一种动态调度方法,可以实现在有高优先级作业需要抢占资源时,释放部分第一节点和/或第二节点,使得强化学习任务还可以继续进行,而不是被中止。具体地,图5示出本说明书实施例披露的动态调度模型训练资源的方法流程示意图之二。需理解,该方法可以由针对强化学习任务配置的控制器(例如,图3中示意的控制器)执行。图5示出的动态调度方法可以单独实施,也可以和图4示出的动态调度方法联合实施。
如图5所示,所述方法包括以下步骤:
步骤S510,将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片;步骤S520,选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型;步骤S530,确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务;步骤S540,删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量。
对以上步骤的展开介绍如下:
首先,执行步骤S510和步骤S520。需说明,对这两个步骤的介绍可以参见前述对步骤S410和S420的介绍,不作赘述。
然后,在步骤S530,确定出集群的空闲资源量小于其他计算任务的需求资源量,且其他计算任务的优先级高于强化学习任务。
需理解,多个作业共享集群资源,有时会为不同作业设定不同的优先级,例如,在线服务作业的优先级高于离线训练作业,此时,可以计算高优先级作业需求的资源量,并确定集群的空闲资源量是否大于高优先级作业的需求资源量。若大于或等于,则可以直接执行高优先级作业,而不影响其他作业执行。否则,需执行步骤S540,让强化学习任务为高优先级任务腾出资源。
在步骤S540,删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量。
需理解,可以在尽可能保持第一节点生成经验样本和第二节点消费经验样本的速度平衡(或者说相等)的前提下,进行第一节点和第二节点的删除,从而降低对强化学习训练的影响,提高集群资源的利用率。
在一个实施例中,在判断出若干第一节点生成经验样本的第一速度大于若干第二节点消耗经验样本的第二速度的情况下,删除部分第一节点。
在另一个实施例中,在判断出第一速度小于第二速度的情况下,删除部分第二节点。
在又一个实施例中,在判断出第一速度等于第二速度的情况下,删除部分第一节点和第二节点。
进一步,在一个具体的实施例中,在删除部分第一节点之后,可以回收该部分第一节点正在处理的环境状态切片,重新标记为待处理。在一个示例中,将该部分第一节点正在处理的环境状态切片从第二列表移入第一列表。
以上,可以实现当强化学习作业的部分资源被高优先级作业抢占后,强化学习任务还可以继续进行。
对于图4或图5示意的动态调度模型训练资源的方法,根据又一方面的实施例,动态调度方法还可以包括:确定出存在第一节点完成对已接收的环境状态切片的处理,向该第一节点分配待处理的环境状态切片,或者,若不存在待处理的环境状态切片,则可以删除该第一节点,从而释放相应资源。示例性的,响应于第一节点发送的处理完成通知,从第一列表中读取环境状态切片发送给该第一节点,并将被读取的环境状态切片从第一列表移动至第二列表,以及,将该处理完成通知指示的处理完的环境状态切片从第二列表中删除。
根据再一方面的实施例,动态调度方法还可以包括:确定出存在第一节点被中止,回收该第一节点未处理完的环境状态切片,重新标记为待处理。需理解,除了因高优先级作业抢占资源,还可能因为网络环境变化等,导致某些第一节点被中止。在一个具体的实施例中,监听到某个第一节点被中止,将该某个第一节点原先正在处理的环境状态切片从第二列表中移入第一列表。示例性的,假定某个第一节点对环境状态切片中的部分状态进行了处理,并已经对应生成的经验样本放入重放缓冲区,此时,也可以将该环境状态切片更新为只包括未处理环境状态,之后再移动至第一列表。
综上,采用本说明书实施例提供的动态调度模型训练资源的方案,1)通过动态弹性调度,可以实现利用集群空闲资源,动态增加训练节点和/或经验采集实例的数量,保持经验生成速度和训练速度的平衡,从而加速强化学习训练,提高集群资源利用率。2)实现当强化学习作业的部分资源被高优先级作业抢占后,强化学习任务还可以继续进行。
与上述动态调度方法相对应的,本说明书实施例还提供动态调度装置。图6示出本说明书实施例披露的动态调度模型训练资源的装置结构示意图之一。示例性的,该装置集成于针对强化学习任务配置的控制器。如图6所示,所述装置600包括:
状态切分模块610,配置为将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片。状态分配模块620,配置为选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型。节点增设模块630,配置为以使得若干第一节点生成经验样本的第一速度与若干第二节点消耗经验样本的第二速度相匹配为目标,增加第一节点和/或第二节点。
在一个实施例中,节点增设模块630具体配置为:在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,增加第二节点;或,在确定出所述第二速度大于所述第一速度的情况下,增加第一节点;或,在确定出所述第一速度等于所述第二速度的情况下,增加第一节点和第二节点。
在一个实施例中,所述状态分配模块620还配置为:向新增的第一节点分配待处理的环境状态切片。
在一个实施例中,所述状态分配模块620还配置为:在确定出存在第一节点完成对已接收的环境状态切片的处理的情况下,向该第一节点分配待处理的环境状态切片。
在一个实施例中,装置600还包括状态回收模块640,配置为在确定出存在第一节点被中止的情况下,回收该第一节点未处理完的环境状态切片,重新标记为待处理。
在一个实施例中,装置600还包括节点删除模块650,配置为在确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务的情况下,删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量。
在一个具体的实施例中,装置600还包括状态回收模块640,配置为回收所述部分第一节点正在处理的环境状态切片,重新标记为待处理。
在一个实施例中,所述控制器维护第一列表和第二列表,所述第一列表包括待处理的环境状态切片,所述第二列表包括处理中的环境状态切片。
在一个具体的实施例中,第一状态分配模块620具体配置为:从初始包括所述多个环境状态切片的第一列表中读取所述若干环境状态切片,对应分配给所述若干第一节点;将所述若干环境状态切片从所述第一列表移动至初始为空的第二列表。
在一个具体的实施例中,所述第一状态分配模块620还配置为:从所述第一列表中读取环境状态切片,发送给新增的第一节点;将被读取的环境状态切片从所述第一列表移动至第二列表。
在一个具体的实施例中,所述第一状态分配模块620还配置为:确定出存在第一节点完成对已接收的环境状态切片的处理;将处理完的环境状态切片从所述第二列表中删除。
在一个具体的实施例中,所述第一状态分配模块620还配置为:监听到存在第一节点被中止;将该第一节点未处理完的环境状态切片从所述第二列表移动到所述第一列表。
图7示出本说明书实施例披露的动态调度模型训练资源的装置结构示意图之二。示例性的,该装置集成于针对强化学习任务配置的控制器。如图7所示,所述装置700包括:
状态切分模块710,配置为将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片。状态分配模块720,配置为选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型。节点删除模块730,配置为在确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务的情况下,删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量。
在一个实施例中,节点删除模块730具体配置为:在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,删除部分第一节点;或,在确定出所述第二速度大于所述第一速度的情况下,删除部分第二节点;或,在确定出所述第一速度等于所述第二速度的情况下,删除部分第一节点和部分第二节点。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4所描述的方法。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (16)
1.一种动态调度模型训练资源的方法,包括:
将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片;
选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型;
在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,增加第二节点;或,
在确定出所述第二速度大于所述第一速度的情况下,增加第一节点;或,
在确定出所述第一速度等于所述第二速度的情况下,增加第一节点和第二节点;
其中,在增加第一节点之后,所述方法还包括:向新增的第一节点分配待处理的环境状态切片。
2.根据权利要求1所述的方法,还包括:
在确定出所述集群中存在空闲资源的情况下,确定所述第一速度和第二速度之间的大小关系。
3.根据权利要求1所述的方法,还包括:
确定出存在第一节点完成对已接收的环境状态切片的处理;
向该第一节点分配待处理的环境状态切片。
4.根据权利要求1所述的方法,还包括:
确定出存在第一节点被中止;
回收该第一节点未处理完的环境状态切片,重新标记为待处理。
5.根据权利要求1所述的方法,还包括:
确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务;
删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量。
6.根据权利要求5所述的方法,其中,在删除部分第一节点之后,所述方法还包括:
回收所述部分第一节点正在处理的环境状态切片,重新标记为待处理。
7.根据权利要求1所述的方法,其中,控制器维护第一列表和第二列表,所述第一列表包括待处理的环境状态切片,所述第二列表包括处理中的环境状态切片。
8.根据权利要求7所述的方法,其中,选取若干环境状态切片对应分配给所述集群中的若干第一节点,包括:
从初始包括所述多个环境状态切片的第一列表中读取所述若干环境状态切片,对应分配给所述若干第一节点;
将所述若干环境状态切片从所述第一列表移动至初始为空的第二列表。
9.根据权利要求7所述的方法,其中,在增加第一节点后,所述方法还包括:
从所述第一列表中读取环境状态切片,发送给新增的第一节点;
将被读取的环境状态切片从所述第一列表移动至第二列表。
10.根据权利要求7所述的方法,还包括:
确定出存在第一节点完成对已接收的环境状态切片的处理;
将处理完的环境状态切片从所述第二列表中删除。
11.根据权利要求7所述的方法,还包括:
监听到存在第一节点被中止;
将该第一节点未处理完的环境状态切片从所述第二列表移动到所述第一列表。
12.一种动态调度模型训练资源的方法,包括:
将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片;
选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型;
在确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务的情况下,删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量;
其中,删除部分第一节点和/或部分第二节点,包括:
在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,删除部分第一节点;或,
在确定出所述第二速度大于所述第一速度的情况下,删除部分第二节点;或,
在确定出所述第一速度等于所述第二速度的情况下,删除部分第一节点和部分第二节点。
13.一种动态调度模型训练资源的装置,包括:
状态切分模块,配置为将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片;
状态分配模块,配置为选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型;
节点增设模块,配置为在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,增加第二节点;或,在确定出所述第二速度大于所述第一速度的情况下,增加第一节点;或,在确定出所述第一速度等于所述第二速度的情况下,增加第一节点和第二节点;
状态分配模块,配置为向新增的第一节点分配待处理的环境状态切片。
14.一种动态调度模型训练资源的装置,包括:
状态切分模块,配置为将强化学习任务对应的环境状态空间切分成多个子空间,作为待处理的多个环境状态切片;
状态分配模块,配置为选取若干环境状态切片对应分配给集群中的若干第一节点,以使所述若干第一节点各自基于接收到的环境状态切片,利用强化学习模型与环境交互生成经验样本;所述经验样本被存储至重放缓冲区,并由所述集群中的若干第二节点进行读取以训练所述强化学习模型;
节点删除模块,配置为在确定出所述集群的空闲资源量小于其他计算任务的需求资源量,且所述其他计算任务的优先级高于所述强化学习任务的情况下,删除部分第一节点和/或部分第二节点,以使所述空闲资源量大于或等于所述需求资源量;
其中,所述节点删除模块具体配置为:在确定出所述若干第一节点生成经验样本的第一速度大于所述若干第二节点消耗经验样本的第二速度的情况下,删除部分第一节点;或,在确定出所述第二速度大于所述第一速度的情况下,删除部分第二节点;或,在确定出所述第一速度等于所述第二速度的情况下,删除部分第一节点和部分第二节点。
15.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310792482.8A CN116523030B (zh) | 2023-06-30 | 2023-06-30 | 动态调度模型训练资源的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310792482.8A CN116523030B (zh) | 2023-06-30 | 2023-06-30 | 动态调度模型训练资源的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116523030A CN116523030A (zh) | 2023-08-01 |
CN116523030B true CN116523030B (zh) | 2023-09-15 |
Family
ID=87405092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310792482.8A Active CN116523030B (zh) | 2023-06-30 | 2023-06-30 | 动态调度模型训练资源的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116523030B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111191728A (zh) * | 2019-12-31 | 2020-05-22 | 中国电子科技集团公司信息科学研究院 | 基于异步或同步的深度强化学习分布式训练方法及系统 |
CN112000473A (zh) * | 2020-08-12 | 2020-11-27 | 中国银联股份有限公司 | 深度学习模型的分布式训练方法以及装置 |
CN112256653A (zh) * | 2020-11-06 | 2021-01-22 | 网易(杭州)网络有限公司 | 一种数据采样方法和装置 |
CN113469372A (zh) * | 2021-07-02 | 2021-10-01 | 北京市商汤科技开发有限公司 | 强化学习训练方法、装置、电子设备以及存储介质 |
CN114020413A (zh) * | 2021-11-05 | 2022-02-08 | 沈阳飞机设计研究所扬州协同创新研究院有限公司 | 一种基于Kubernetes容器集群的分布式强化学习系统设计方法 |
CN114638167A (zh) * | 2022-03-22 | 2022-06-17 | 北京航空航天大学 | 基于多智能体强化学习的高性能集群资源公平分配方法 |
CN114707404A (zh) * | 2022-03-14 | 2022-07-05 | 北京电子工程总体研究所 | 一种分布并行多智能体协同训练系统及方法 |
CN114839879A (zh) * | 2022-05-19 | 2022-08-02 | 南京大学 | 一种基于分布式强化学习的自主设备决策控制方法 |
US11513866B1 (en) * | 2017-04-21 | 2022-11-29 | Yahoo Assets Llc | Method and system for managing resource utilization based on reinforcement learning |
-
2023
- 2023-06-30 CN CN202310792482.8A patent/CN116523030B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11513866B1 (en) * | 2017-04-21 | 2022-11-29 | Yahoo Assets Llc | Method and system for managing resource utilization based on reinforcement learning |
CN111191728A (zh) * | 2019-12-31 | 2020-05-22 | 中国电子科技集团公司信息科学研究院 | 基于异步或同步的深度强化学习分布式训练方法及系统 |
CN112000473A (zh) * | 2020-08-12 | 2020-11-27 | 中国银联股份有限公司 | 深度学习模型的分布式训练方法以及装置 |
CN112256653A (zh) * | 2020-11-06 | 2021-01-22 | 网易(杭州)网络有限公司 | 一种数据采样方法和装置 |
CN113469372A (zh) * | 2021-07-02 | 2021-10-01 | 北京市商汤科技开发有限公司 | 强化学习训练方法、装置、电子设备以及存储介质 |
CN114020413A (zh) * | 2021-11-05 | 2022-02-08 | 沈阳飞机设计研究所扬州协同创新研究院有限公司 | 一种基于Kubernetes容器集群的分布式强化学习系统设计方法 |
CN114707404A (zh) * | 2022-03-14 | 2022-07-05 | 北京电子工程总体研究所 | 一种分布并行多智能体协同训练系统及方法 |
CN114638167A (zh) * | 2022-03-22 | 2022-06-17 | 北京航空航天大学 | 基于多智能体强化学习的高性能集群资源公平分配方法 |
CN114839879A (zh) * | 2022-05-19 | 2022-08-02 | 南京大学 | 一种基于分布式强化学习的自主设备决策控制方法 |
Non-Patent Citations (2)
Title |
---|
Eric Liang,et al.RLlib:abstractions for distributed reinforcement learning.《cs.AI》.2018,1-10页. * |
深度强化学习训练与推理的性能优化;张红杰;《中国博士学位论文全文数据库 信息科技辑》;第2023年卷(第01期);I140-22 * |
Also Published As
Publication number | Publication date |
---|---|
CN116523030A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | Offloading tasks with dependency and service caching in mobile edge computing | |
Jayanetti et al. | Deep reinforcement learning for energy and time optimized scheduling of precedence-constrained tasks in edge–cloud computing environments | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN113656179B (zh) | 云计算资源的调度方法及装置、电子设备和存储介质 | |
CN114072766A (zh) | 用于数字劳动力智能编排的系统和方法 | |
CN112000457B (zh) | 管理处理系统中的任务的方法、设备和计算机程序产品 | |
Zhang et al. | Efficient task scheduling with stochastic delay cost in mobile edge computing | |
CN111143039B (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN109379445A (zh) | 一种推送消息的发送方法及装置 | |
CN116702907B (zh) | 一种服务器无感知的大语言模型推理系统、方法和设备 | |
Tang et al. | Dependent task offloading for multiple jobs in edge computing | |
CN110569252A (zh) | 一种数据处理系统及方法 | |
US20230037783A1 (en) | Resource scheduling method and related apparatus | |
CN106021512A (zh) | 一种页面刷新方法及装置 | |
CN107608781A (zh) | 一种负载预测方法、装置以及网元 | |
CN111597035A (zh) | 基于多线程的仿真引擎时间推进方法及系统 | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN112685157B (zh) | 任务处理方法、装置、计算机设备及存储介质 | |
CN116523030B (zh) | 动态调度模型训练资源的方法及装置 | |
CN113254200B (zh) | 资源编排方法及智能体 | |
CN116756282A (zh) | 任务处理方法、服务器、语言预测系统和人机交互系统 | |
CN114584627B (zh) | 一种具有网络监控功能的中台调度系统及方法 | |
Liu et al. | An integrated optimization method to task scheduling and VM placement for green datacenters | |
CN115858667A (zh) | 用于同步数据的方法、装置、设备和存储介质 | |
CN113626217B (zh) | 异步消息处理方法、装置、电子设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |