CN116414615A - 利用参数服务器执行的机器学习模型的训练方法和装置 - Google Patents

利用参数服务器执行的机器学习模型的训练方法和装置 Download PDF

Info

Publication number
CN116414615A
CN116414615A CN202111666611.6A CN202111666611A CN116414615A CN 116414615 A CN116414615 A CN 116414615A CN 202111666611 A CN202111666611 A CN 202111666611A CN 116414615 A CN116414615 A CN 116414615A
Authority
CN
China
Prior art keywords
parameter
parameter information
training
parameters
volatile memory
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
Application number
CN202111666611.6A
Other languages
English (en)
Inventor
陈宬
王艺霖
杨俊�
刘一鸣
卢冕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
4Paradigm Beijing Technology Co Ltd
Original Assignee
4Paradigm Beijing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 4Paradigm Beijing Technology Co Ltd filed Critical 4Paradigm Beijing Technology Co Ltd
Priority to CN202111666611.6A priority Critical patent/CN116414615A/zh
Publication of CN116414615A publication Critical patent/CN116414615A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开一种利用参数服务器执行的机器学习模型的训练方法和装置。参数服务器包括易失内存和持久内存,训练方法包括:针对每一批次训练样本,执行:在计算节点对当前批次训练样本所要训练的多个参数进行提取时,获取存储于易失内存或持久内存中的多个参数的参数信息;在计算节点正在训练当前批次训练样本的多个参数时,基于多个参数的参数信息,对易失内存进行异步更新,使多个参数的参数信息存储于易失内存中,并在异步更新时将易失内存中需要备份的参数的参数信息写入持久内存中;在计算节点对当前批次训练样本的多个参数训练完成时,基于计算节点回传的训练结果,对存储于易失内存中的多个参数的参数信息进行更新。

Description

利用参数服务器执行的机器学习模型的训练方法和装置
技术领域
本公开总体说来涉及计算机技术领域,更具体地讲,涉及一种利用参数服务器执行的机器学习模型的训练方法和装置以及参数服务器。
背景技术
随着数据规模的迅速增长,机器学习被广泛应用于各种领域以挖掘数据的价值。机器学习模型会用到海量训练样本进行训练,一个机器学习模型一次训练可能持续几天甚至几周。例如,工业级广告点击模型或推荐模型的训练一般统称为深度学习推荐模型(DeepLearning Recommendation Model,DLRM),而DLRM不仅模型巨大,使用传统的内存训练服务器时需要多台用于存储模型,并且模型的训练往往会持续几小时,甚至几天时间。
为了保证训练的速度,模型的参数会存放在参数服务器的易失内存(即DRAM,动态随机存取存储器)中。这些参数一旦掉电训练的模型就会丢失。为了防止训练的成果前功尽弃,业界通用的做法是在训练的过程中把模型的参数备份到持久内存(PersistentMemory,PMem)中,这个过程叫做checkpoint(检查点)。当故障发生的时候,系统可以从这些checkpoint备份中恢复继续训练。
持久内存和易失内存相比有更大的容量,且数据存储在持久内存中掉电后不会丢失。持久内存的特性正好可以用于克服DLRM训练时的不足。由于持久内存的读写速度和易失内存相比会慢一些,并且DLRM访问存在热点,所以一般会在持久内存之上加一层易失内存作为缓存加速访问,与此同时采用checkpoint备份方案保证训练过程中数据的安全。然而,在传统的方案中,用于加速访问的易失内存缓存方案和用于保证数据安全的checkpoint备份方案是完全独立的两套系统。
发明内容
本公开提供一种利用参数服务器执行的机器学习模型的训练方法和装置,用于至少解决上述问题,也可不解决上述问题。
根据本公开的第一方面,提供一种利用参数服务器执行的机器学习模型的训练方法,其中,所述参数服务器包括易失内存和持久内存,所述易失内存和持久内存用于在对所述机器学习模型进行训练过程中对所述机器学习模型的参数的参数信息进行存储,所述训练方法包括:针对每一批次训练样本,执行以下操作:在计算节点对当前批次训练样本所要训练的多个参数进行提取时,获取存储于所述易失内存或所述持久内存中的所述多个参数的参数信息;在所述计算节点正在训练当前批次训练样本的所述多个参数时,基于所述多个参数的参数信息,对所述易失内存进行异步更新,使所述多个参数的参数信息存储于所述易失内存中,并在所述异步更新时将所述易失内存中需要备份的参数的参数信息写入所述持久内存中;在所述计算节点对当前批次训练样本的所述多个参数训练完成时,基于所述计算节点回传的训练结果,对存储于所述易失内存中的所述多个参数的参数信息进行更新。
可选地,所述参数信息包括第一版本号、参数的键和参数的值中的至少一个,所述第一版本号表示对应训练批次的版本号,所述参数的键表示参数特征的取值,所述参数的值表示参数特征对应的编码值。
可选地,基于所述多个参数的参数信息,对所述易失内存进行异步更新,包括:确定所述多个参数的每个参数的参数信息的存储位置;基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,以对所述易失内存进行异步更新。
可选地,基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,包括:当所述多个参数中的任意一个参数的参数信息的所述存储位置在所述易失内存中时,对该参数信息的第一版本号和预先指定的第二版本号进行比较;当该参数信息的第一版本号小于或等于所述第二版本号时,将该参数信息写入所述持久内存中,以对该参数信息进行备份。
可选地,基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,包括:当所述多个参数中的任意一个参数的参数信息的所述存储位置在所述持久内存中时,将该参数信息读入所述易失内存中。
可选地,基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,还包括:将存储于所述易失内存中的该参数信息的第一版本号更新为当前批次的版本号,以表示该参数在当前批次被访问过。
可选地,当所述多个参数中的任意一个参数的参数信息的所述存储位置在所述持久内存中时,将该参数信息读入所述易失内存中,包括:当该参数信息的所述存储位置在所述持久内存中时,确定所述易失内存中的存储空间是否充足;当所述易失内存中的存储空间不足时,基于预设的缓存淘汰机制,将所述易失内存中需要淘汰的第一参数的第一参数信息写入所述持久内存中,并将所述第一参数信息从所述易失内存中删除;基于将所述第一参数信息从所述易失内存中删除后的存储空间,将该参数信息读入所述易失内存中。
可选地,基于预设的缓存淘汰机制,将所述易失内存中需要淘汰的第一参数的第一参数信息写入所述持久内存中,包括:对所述第一参数信息的第一版本号和预先指定的第三版本号进行比较;当所述第一参数信息的第一版本号小于或等于所述第三版本号时,将所述第一参数信息写入所述持久内存中,以对所述第一参数信息进行备份;当所述第一参数信息的第一版本号大于所述第三版本号时,将所述第一参数信息写入所述持久内存中,并确定所述第三版本号对应的批次的训练样本所训练的参数备份结束。
根据本公开的第二方面,提供一种利用参数服务器执行的机器学习模型的训练装置,其中,所述参数服务器包括易失内存和持久内存,所述易失内存和持久内存用于在对所述机器学习模型进行训练过程中对所述机器学习模型的参数的参数信息进行存储,所述训练装置包括:参数信息获取单元;内存更新单元;参数更新单元;其中,针对每一批次训练样本,执行以下操作:在计算节点对当前批次训练样本所要训练的多个参数进行提取时,参数信息获取单元被配置为获取存储于所述易失内存或所述持久内存中的所述多个参数的参数信息;在所述计算节点正在训练当前批次训练样本的所述多个参数时,内存更新单元被配置为基于所述多个参数的参数信息,对所述易失内存进行异步更新,使所述多个参数的参数信息存储于所述易失内存中,并在所述异步更新时将所述易失内存中需要备份的参数的参数信息写入所述持久内存中;在所述计算节点对当前批次训练样本的所述多个参数训练完成时,参数更新单元被配置为基于所述计算节点回传的训练结果,对存储于所述易失内存中的所述多个参数的参数信息进行更新。
可选地,所述参数信息包括第一版本号、参数的键和参数的值中的至少一个,所述第一版本号表示对应训练批次的版本号,所述参数的键表示参数特征的取值,所述参数的值表示参数特征对应的编码值。
可选地,内存更新单元被配置为:确定所述多个参数的每个参数的参数信息的存储位置;基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,以对所述易失内存进行异步更新。
可选地,内存更新单元被配置为:当所述多个参数中的任意一个参数的参数信息的所述存储位置在所述易失内存中时,对该参数信息的第一版本号和预先指定的第二版本号进行比较;当该参数信息的第一版本号小于或等于所述第二版本号时,将该参数信息写入所述持久内存中,以对该参数信息进行备份。
可选地,内存更新单元被配置为:当所述多个参数中的任意一个参数的参数信息的所述存储位置在存储于所述持久内存中时,将该参数信息读入所述易失内存中。
可选地,内存更新单元被配置为:将存储于所述易失内存中的该参数信息的第一版本号更新为当前批次的版本号,以表示该参数在当前批次被访问过。
可选地,内存更新单元被配置为:当该参数信息的所述存储位置在所述持久内存中时,确定所述易失内存中的存储空间是否充足;当所述易失内存中的存储空间不足时,基于预设的缓存淘汰机制,将所述易失内存中需要淘汰的第一参数的第一参数信息写入所述持久内存中,并将所述第一参数信息从所述易失内存中删除;基于将所述第一参数信息从所述易失内存中删除后的存储空间,将该参数信息读入所述易失内存中。
可选地,内存更新单元被配置为:对所述第一参数信息的第一版本号和预先指定的第三版本号进行比较;当所述第一参数信息的第一版本号小于或等于所述第三版本号时,将所述第一参数信息写入所述持久内存中,以对所述第一参数信息进行备份;当所述第一参数信息的第一版本号大于所述第三版本号时,将所述第一参数信息写入所述持久内存中,并确定所述第三版本号对应的批次的训练样本所训练的参数备份结束。
根据本公开的第三方面,提供一种参数服务器,包括:易失内存和持久内存,被配置为:在对所述机器学习模型进行训练过程中对所述机器学习模型的参数的参数信息进行存储,其中,针对每一批次训练样本,执行以下操作:在计算节点对当前批次训练样本所要训练的多个参数进行提取时,获取存储于所述易失内存或所述持久内存中的所述多个参数的参数信息;在所述计算节点正在训练当前批次训练样本的所述多个参数时,基于所述多个参数的参数信息,对所述易失内存进行异步更新,使所述多个参数的参数信息存储于所述易失内存中,并在所述异步更新时将所述易失内存中需要备份的参数的参数信息写入所述持久内存中;在所述计算节点对当前批次训练样本的所述多个参数训练完成时,基于所述计算节点回传的训练结果,对存储于所述易失内存中的所述多个参数的参数信息进行更新。
可选地,所述参数信息包括第一版本号、参数的键和参数的值中的至少一个,所述第一版本号表示对应训练批次的版本号,所述参数的键表示参数特征的取值,所述参数的值表示参数特征对应的编码值。
可选地,确定所述多个参数的每个参数的参数信息的存储位置;基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,以对所述易失内存进行异步更新。
可选地,当所述多个参数中的任意一个参数的参数信息的所述存储位置在所述易失内存中时,对该参数信息的第一版本号和预先指定的第二版本号进行比较;当该参数信息的第一版本号小于或等于所述第二版本号时,将该参数信息写入所述持久内存中,以对该参数信息进行备份。
可选地,当所述多个参数中的任意一个参数的参数信息的所述存储位置在存储于所述持久内存中时,将该参数信息读入所述易失内存中。
可选地,将存储于所述易失内存中的该参数信息的第一版本号更新为当前批次的版本号,以表示该参数在当前批次被访问过。
可选地,当该参数信息的所述存储位置在存储于所述持久内存中时,确定所述易失内存中的存储空间是否充足;当所述易失内存中的存储空间不足时,基于预设的缓存淘汰机制,将所述易失内存中需要淘汰的第一参数的第一参数信息写入所述持久内存中,并将所述第一参数信息从所述易失内存中删除;基于将所述第一参数信息从所述易失内存中删除后的存储空间,将该参数信息读入所述易失内存中。
可选地,对所述第一参数信息的第一版本号和预先指定的第三版本号进行比较;当所述第一参数信息的第一版本号小于或等于所述第三版本号时,将所述第一参数信息写入所述持久内存中,以对所述第一参数信息进行备份;当所述第一参数信息的第一版本号大于所述第三版本号时,将所述第一参数信息写入所述持久内存中,并确定所述第三版本号对应的批次的训练样本所训练的参数备份结束。
根据本公开的第四方面,提供一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的利用参数服务器执行的机器学习模型的训练方法。
根据本公开的第五方面,提供一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的利用参数服务器执行的机器学习模型的训练方法。
根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练方法和装置,能够针对DLRM的访问特点,在易失内存和持久内存相结合的基础上,优化缓存管理和替换机制,并且能够在最大程度提升持久内存访问速度的同时,把checkpoint的备份流程和缓存替换机制相结合,从而保证了以batch为持久化单位的模型可恢复性,以及降低了本地数据备份工作的开销。
将在接下来的描述中部分阐述本公开总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本公开总体构思的实施而得知。
附图说明
通过结合附图,从实施例的下面描述中,本公开这些和/或其它方面及优点将会变得清楚,并且更易于理解,其中:
图1是示出超高维稀疏特征的示意图;
图2是示出分布式训练流程的示意图;
图3是示出超高维稀疏特征的高频特征和低频特征的示意图;
图4是示出特征参数和访问频率的分布的示意图;
图5是示出传统checkpoint流程的示意图;
图6是示出具有持久内存的参数服务器的架构示意图;
图7是示出具有持久内存的参数服务器的工作示意图;
图8是示出根据本公开的示例性实施例的利用参数服务器对机器学习模型进行训练的总体思路示意图;
图9是示出根据本公开的示例性实施例的利用参数服务器执行的机器学习模型的训练方法的流程图;
图10是示出根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练装置的框图;
图11是示出根据本公开示例性实施例的参数服务器的框图。
具体实施方式
提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本发明的实施例的全面理解。包括各种特定细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本发明的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
机器学习模型会用到海量训练样本进行训练,一个机器学习模型一次训练可能持续几天甚至几周。例如,超高维稀疏模型会用到海量训练样本对高维参数进行训练。超高维稀疏模型是机器学习模型的一种,不同于传统的机器学习模型(例如,深度神经网络(DeepNeural Network,DNN)、卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)),超高维稀疏模型的输入是超高维稀疏特征。图1是示出超高维稀疏特征的示意图。参照图1,超高维稀疏特征有两个特点。第一,输入特征的取值空间范围巨大,超高维稀疏特征分为多个域(field),每个域都包含多个可能的取值,而这些不同种类取值的总数被称为field的维度(dimensions),例如,Field 1为日期(Day),其取值范围为星期一(Moday)、星期二(Tuesday)、…、星期日(Sunday),则Field 1的维度为7;Field 2为性别(Gender),其取值范围为男(Male)、女(Female),则Field 2的维度为2;Field 3为物品(items),假设有200万种商品(例如,嘉士伯啤酒(Carlsberg beer)、虎牌啤酒(Tiger beer)等),则Field 3的维度为200万。超高维稀疏特征的维度总和往往可能上亿甚至上十亿种。第二,对于每一条训练的样本只包含的有限的特征数。训练数据每个Field只包含某一个取值,例如,一条训练样本可只包含三个特征取值:Tuesday,Male,Tigerbeer。
由于超高维稀疏特征的维度巨大,超高维稀疏模型的训练过程会把所有特征的取值(比如Monday~Sunday,Male,Female,Tiger beer等)做为键(key),特征对应的编码(embedding)值作为值(Value)存放在参数服务器集群中。参数服务器(Parameter Server)是一个编程框架,用于分布式并行程序的编写,其中重点在于对大规模参数的分布式存储和协同的支持。离线参数服务器主要用于训练过程,需要在训练过程中存储模型参数,并提供高并发的参数查询和更新操作。
超高维稀疏模型往往需要用到多个计算节点(例如,CPU节点、GPU节点等)进行训练。图2是示出分布式训练流程的示意图。如图2所示,超高维稀疏模型训练一般分为四个步骤。步骤(1),预读并分发(Prefetch)训练数据。训练数据数量庞大,一般会放在慢速的磁盘存储,每次训练前都会预读一个批次(batch)的数据,并分发到多个计算节点进行训练。例如,一个batch为6条训练数据(S1至S6),有两个计算节点(GPU A和GPU B)用于训练。因为每条训练数据包括多个域(field)的特征(feature),通常的做法是把一个batch的6条训练数据按照预读的顺序平均分配给两个计算节点(GPU A和GPU B)进行训练,例如,将训练数据S1至S3分发到计算节点GPU A进行训练,将训练数据S4至S6分发到计算节点GPU B进行训练。步骤(2),两个计算节点从参数服务器中存储的PS Embedding表(编码表)查询训练数据特征的embedding值,这里,编码表用于将训练数据包含的特征映射为适于训练机器学习模型的特征(即,embedding值)。步骤(3),两个计算节点基于特征embedding值对超高维稀疏模型进行训练,得到超高维稀疏模型的参数梯度。步骤(4),两个计算节点将训练后得到的超高维稀疏模型的参数的新梯度推送回参数服务器。
不同域(Field)的特征取值范围不同,特征在训练样本中出现的频率也会不同。图3是示出超高维稀疏特征的高频特征和低频特征的示意图。参照图3,由于Field 1和Field2的取值范围比较小,因此,Field 1和Field 2中的每个特征在每条训练样本中出现的几率比较高,可将Field 1和Field 2中的特征确定为高频特征。而Field 3的物品种类有上百万种,而每条训练样本只会包含Field 3中某一种取值(比如Tiger beer),因此,Field 3中的每个特征在每条训练样本中出现的几率比较低,可将Field 3中的特征确定为低频特征。图4是示出特征参数和访问频率的分布的示意图。如图4所示,统计了广告点击负载,只有很少一部分的参数高频率的被访问,有79%的参数整个训练过程中只访问1次。
在对机器学习模型进行训练的过程中,为了防止训练的成果前功尽弃,业界会在一次训练过程中需要通过对模型做checkpoint来完成模型中间结果的备份。图5是示出传统checkpoint流程的示意图。如图5所示,训练参数在训练过程中存储在参数服务器的DRAM内存中(图5左侧上部)。计算节点(例如,计算节点1和计算节点2)会根据预读的训练样本去参数服务器请求所需要的参数(图5左侧下部)。当开始checkpoint备份时,系统会首先对当前模型的参数做一个镜像。做镜像的过程中,参数服务器会暂停后续batch训练新获得参数梯度的更新请求(如图中Batch N+1中新得到的A’,B’,C’,D’在参数服务器上的更新会被暂停,直到A,B,C,D的snapshot(快照)做完后才恢复新参数更新)。参数镜像生成后会通过参数服务器的网络发送到远端备份服务器上,模型的参数会生成带有时间戳的checkpoint备份文件,并写入备份服务器的磁盘中。
传统的checkpoint备份过程有以下痛点:
(1)每次备份需要占用大量额外的网络带宽、备份服务器写入带宽和磁盘备份空间。例如,对于高维稀疏模型,网络和备份存储的开销更随着模型的维度增加而成倍增加。
(2)每次做checkpoint时,需要先把当前模型做一个镜像。假设为第N个batch训练完后的模型做checkpoint备份,为了保证checkpoint的模型是一个batch训练完后完整的镜像(所有参数都是Batch N训练完成后的状态,而不会掺杂Batch N+1训练对参数的部分更新),在做镜像的过程中,Batch N+1训练会被暂停。在整个训练过程中checkpoint备份次数越多,需要额外暂停训练的等待时间就越长。
(3)因为checkpoint备份有以上两种开销,这也造成了在训练过程中做checkpoint备份的频率不能太高。传统方案只能从最近checkpoint备份的模型开始加载,checkpoint之后到故障之前的所有batch训练成果都会丢失。
非易失性存储器(NVM)泛指可在断电情况下存储数据的内存,如Flash Memory就是广泛被人所知的一种NVM,也被人称作第一代NVM,而新一代NVM(例如,但不限于,STT-RAM、PCM、ReRAM、3D xPoint),也称为持久内存,其与第一代NVM的本质区别在于:(1)性能大幅提升,更接近用于计算机主存的DRAM,(2)摆脱访问时由于物理特性限制必须要以一个固定大小字节数的倍数(如Flash通常为4KB(4*1024字节)寻址,可按单字节寻址(Byte-addressable)。
持久内存拥有和DRAM内存相似的速度的同时,存储在持久内存上的数据在系统掉电之后依然存在。这给解决模型备份问题提供了一个新的思路。然而,如果只是简单地把参数服务器中的DRAM内存替换为持久内存,这种方案并不能满足checkpoint备份的要求。举一个例子,图6是示出具有持久内存的参数服务器的架构示意图,图7是示出具有持久内存的参数服务器的工作示意图。如图6所示,将参数服务器中存储参数的DRAM替换为持久内存,完成第N个Batch的训练后,参数服务器中参数的状态是A,B,C,D。计算节点1和计算节点2正在进行Batch N+1的训练。如果成功完成Batch N+1,参数服务器上模型参数的值应该变为A’,B’,C’,D’。为了保证模型可以从某一个特定的batch恢复,我们必须要求备份的模式状态要么是保持Batch N的A,B,C,D,要么是保持Batch N+1完成时的A’,B’,C’,D’,不能存在中间状态。而如果只是简单地把参数服务器的DRAM换成持久内存,如图7所示,因为BatchN+1会修改参数A-D的值,而修改并不是一次到位,而是分多次完成。在更新参数的过程中如果断电,持久内存上的数据在恢复后有可能处于非一致性的状态(A’,B,C,D)。
尽管持久内存拥有和DRAM内存相似的速度,但是相较于DRAM内存的读写速度而言仍旧会慢一些。为了提高参数服务器的整体性能,在PMem上添加一层DRAM内存缓存是常规的做法。典型的缓存算法有很多,例如LRU(Least Recently Used,最近最少使用)和LFU(Least Frequently Used,最不经常使用)等。缓存算法一般分为几步,例如,LRU缓存算法分为以下三个步骤:步骤(1),当上层应用产生了一次对特征E的读或者写操作,系统会先在缓存中查找E是否在缓存中;步骤(2),如果E在缓存中,缓存直接返回E的值,并把E在LRU链表中的位置调整到首部,如果E不在缓存中,则会把E从PMem中读入DRAM缓存中,并把E直接插入LRU链表的首部,然后返回E的值。步骤(3),如果在步骤(2)中缓存空间已满,则把LRU链表尾部的特征(例如Z)刷回PMem。
机器学习离线训练特征给传统的缓存算法带来了很多潜在的优化点。例如,机器学习训练都是以batch为单位进行,对于每个batch中的同一个特征(例如E)的访问一定是成对出现的(即会在一个batch训练开始前先对E进行读取,然后在该batch训练结束时对E进行写入),传统的缓存算法会把在一个batch训练过程中对E的读取和写入作为两次独立的访问,并分别两次调整E在LRU链表中的位置。
为了解决上述技术问题,本公开提出了一种基于持久内存的实时备份恢复的离线训练参数服务器。具体地讲,本公开针对DLRM的访问特点,在易失内存和持久内存相结合的基础上,设计了优化的缓存管理和替换机制,在最大程度提升持久内存访问速度的同时,把checkpoint的备份流程和缓存替换机制相结合,从而保证了以batch为持久化单位的模型可恢复性,以及降低了本地数据备份工作的开销。
下面将参照图8至图10来详细描述根据本公开的示例性实施例的利用参数服务器执行的机器学习模型的训练方法和装置以及参数服务器。
图8是示出根据本公开的示例性实施例的利用参数服务器对机器学习模型进行训练的总体思路示意图。
参照图8,参数服务器可包括两个存储设备,即,DRAM和持久内存(PMEM)。持久内存可包括,但不限于,STT-RAM、PCM、ReRAM、3D xPoint。DRAM和持久内存与执行训练的各计算节点进行交互。作为示例,各计算节点可在一个batch训练开始前从参数服务器的DRAM或持久内存中拉取(pull)机器学习模型的参数(可将该拉取参数的过程命名为Pull Weights),在Pull weights过程中,可只进行根据参数的key获得参数的value并返回计算节点的操作,从而将所有传统缓存算法中的缓存链表位置调整和缓存替换等费时间的操作都延后到各计算节点对上述一个batch进行训练的阶段进行,并且可在该阶段将缓存管理和checkpoint备份相结合以提升效率(可将该阶段进行缓存替换和checkpoint的过程命名为Cache Replacement&Checkpoint)。当上述一个batch训练结束后,各计算节点会把训练结果推送(push)回参数服务器的DRAM,以进行更新Pull weights过程中拉取过的参数。下面参照图9描述根据本公开的示例性实施例的利用参数服务器执行的机器学习模型的训练方法的流程。
图9是示出根据本公开的示例性实施例的利用参数服务器执行的机器学习模型的训练方法的流程图。根据本公开参数服务器可包括易失内存和持久内存,易失内存和持久内存可用于在对机器学习模型进行训练过程中对机器学习模型的参数的参数信息(entry)进行存储。这里,参数信息可包括第一版本号、参数的键(key)和参数的值(value)中的至少一个,第一版本号可表示对应训练批次的版本号,参数的键可表示参数特征的取值,参数的值可表示参数特征对应的编码值。
参照图9,针对每一批次训练样本都可执行步骤S901、S902和S903。
在步骤S901中,在计算节点对当前批次训练样本所要训练的多个参数进行提取时,可获取存储于易失内存或持久内存中的多个参数的参数信息。这里,可在上述PullWeights的过程中,确定并获取当前批次训练样本所要训练的多个参数的参数信息。
根据本公开的示例性实施例,可通过下述算法1实现Pull Weights:
Figure BDA0003451298680000121
作为示例,算法1描述了在参数服务器上Pull Weights的流程。当计算节点向参数服务器发起Pull Weights请求的时候,计算节点会把所有要pull的参数的键和当前批次的版本号都发送到参数服务器。然后参数服务器会根据参数的键进行查找(line 5),如果参数信息是第一次出现(line 6,只会在第一遍训练时可能出现,之后大部分情况参数信息都已经在参数服务器中),参数服务器会把参数信息在DRAM中初始化(line 8-10)。Pullweights是一个轻量化的过程,即参数服务器只是根据参数的键查找参数的值(即算法1中的weight),然后将查找到的参数的值返回计算节点。同时,对于当前批次而言,拉取过的参数都会被记录为参数信息,然后传递给后台缓存替换线程池以进行后续的缓存替换等操作。
在步骤S902中,在计算节点正在训练当前批次训练样本的多个参数时,可基于多个参数的参数信息,对易失内存进行异步更新,使多个参数的参数信息存储于易失内存中,并在异步更新时将易失内存中需要备份的参数的参数信息写入持久内存中。这里,可确定多个参数的每个参数的参数信息的存储位置,然后可基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,以对易失内存进行异步更新。
根据本公开的示例性实施例,当多个参数中的任意一个参数的参数信息的存储位置在易失内存中时,可对该参数信息的第一版本号和预先指定的第二版本号进行比较。然后,当该参数信息的第一版本号小于或等于所述第二版本号时,可将该参数信息写入持久内存中,以对该参数信息进行备份。这里,第二版本号可以是在某个特定批次训练样本的训练结束后生成的checkpoint指令所指定的版本号。另外,当多个参数中的任意一个参数的参数信息的存储位置在持久内存中时,可将该参数信息读入易失内存中。这里,当该参数信息的存储位置在持久内存中时,可进一步确定易失内存中的存储空间是否充足;当易失内存中的存储空间不足时,可基于预设的缓存淘汰机制,将易失内存中需要淘汰的第一参数的第一参数信息写入持久内存中,并将第一参数信息从易失内存中删除;接下来,可基于将第一参数信息从易失内存中删除后的存储空间,将该参数信息读入易失内存中。进一步地,缓存淘汰机制可以但不限于根据LRU缓存算法来进行预先设置。更进一步地,在从易失内存中淘汰上述第一参数的过程中,可对第一参数信息的第一版本号和预先指定的第三版本号进行比较。这里,第三版本号可以是在某个特定批次训练样本的训练结束后生成的checkpoint指令所指定的版本号。当第一参数信息的第一版本号小于或等于第三版本号时,将第一参数信息写入持久内存中,以对第一参数信息进行备份。当第一参数信息的第一版本号大于第三版本号时,也将第一参数信息写入持久内存中,并确定第三版本号对应的批次的训练样本所训练的参数备份结束。
根据本公开的示例性实施例,通过上述操作,无论上述多个参数中的任意一个参数的参数信息在一开始是存储于易失内存还是持久内存中,随后都会存储于易失内存中。因此,在将该参数信息读入DRAM或写入持久内存后,均可将存储于易失内存中的该参数信息的第一版本号更新为当前批次的版本号,以表示该参数在当前批次被访问过。更进一步地,可把该参数信息对应于LRU链表中的位置调整至首部,以表示刚刚访问过该参数。
接下来,在步骤S903中,在计算节点对当前批次训练样本的多个参数训练完成时,可基于计算节点回传的训练结果,对存储于易失内存中的多个参数的参数信息进行更新。这里,在计算节点对当前批次训练样本的多个参数训练完成时,需要更新的参数均已通过上述易失内存的异步更新过程存储于易失内存中,因此加快了参数更新的速度。
根据本公开的示例性实施例,可在如上所述的Cache Replacement&Checkpoint的过程中,执行对易失内存进行异步更新的操作,并且进行相应的备份操作。作为示例,可通过下述算法2实现Cache Replacement&Checkpoint:
Figure BDA0003451298680000141
在算法2中,为了保证参数服务器在系统掉电以后,所有参数都能恢复到某一个指定批次训练样本的训练结束时的状态,可在某一个特定批次训练样本(比如batch cp)训练结束后生成checkpoint指令以开始checkpoint备份。传统的checkpoint是同步checkpoint,即当传统的checkpoint触发时,所有的训练都会被暂停,直到所有DRAM中的参数信息都被写入持久内存后才继续训练。由于同步checkpoint需要暂停训练,因此会影响整个训练的时间。根据本公开的示例性实施例的checkpoint和上述传统的checkpoint流程不同,本公开的checkpoint采用异步checkpoint流程,即当batch cp训练结束后,可在后续缓存替换的过程中,比较DRAM中每个参数的参数信息的第一版本号与cp之间的大小,并逐渐把所有第一版本号小于或等于cp的参数信息都写入持久内存中。对于batch cp而言,checkpoint cp结束的标准可以是DRAM中所有第一版本号不大于cp的参数信息都已经写入持久内存中。
接下来,根据算法2,参数服务器在开始缓存替换等操作之前,其后台线程首先会判断是否所有计算节点的Pull Weights都完成了(line 6-8)。当所有计算节点都通过PullWeights获得了当前批次需要的参数的值之后,计算节点会进入对当前批次训练样本进行训练的阶段。在该阶段中,参数服务器处于空闲状态,其后台线程可用于处理缓存预读、缓存链表顺序调整、缓存替换和checkpoint判断等工作。这里,上述后台线程可首先获取异步缓存更新任务(line 10),该任务是由之前Pull Weights提交,任务中包含了多个参数信息。然后,上述后台线程可一个一个地遍历运行任务中的所有参数信息(line 11)。根据算法2,作为示例,下面按照参数信息存储于DRAM中或者存储于持久内存中进行分别描述。
(1)如果参数F的参数信息原本就存储于DRAM中,可判断参数信息的第一版本号,即参数F在上次被访问时的版本号,如果参数信息的第一版本号小于或等于cp,说明参数F上次被访问是在batch cp之前。根据checkpoint的定义,可将DRAM中的参数F的参数信息写入持久内存中(line 14,值得注意的是,batch cp是在当前batch n之前的batch,例如,假设cp=5以及n=10,则表示参数服务器在训练完第5个batch后生成checkpoint指令,使参数服务器能够在掉电后恢复至batch 5训练结束后的状态,因此可将DRAM中所有在第1、2、3、4和5个batch中访问过的参数的参数信息均写入持久内存中),并且参数服务器的后台线程可将DRAM中参数F的参数信息的第一版本号更新为当前批次的版本号n,以表示参数F在第n个batch被访问过,并且可以将参数F的参数信息对应于LRU链表中的位置调整至首部,以表示刚刚访问过参数F(line 16-17)。
(2)如果参数F的参数信息原本是存储于持久内存中,参数服务器的后台线程可先将参数F的参数信息读入DRAM中,并将参数信息的第一版本号更新为当前批次的版本号n,并且可以将参数F的参数信息对应于LRU链表中的位置调整至首部,以表示刚刚访问过参数F(line 19-21)。如果DRAM的存储空间已经占满,可执行缓存淘汰机制,上述后台线程可将当前DRAM中第一版本号最小的参数信息写入持久内存中,并把该第一版本号最小的参数信息从DRAM中删除(line29-30)。如果该第一版本号最小的参数信息的第一版本号比cp大,表示DRAM中已经没有参数信息的第一版本号小于或等于cp了,即所有第一版本号小于或等于cp参数信息都已写入持久内存中,说明checkpoint cp已结束,此时可将持久内存中的已完成checkpoint号设置成cp(line 25)。如果参数服务器在此后发生故障重启,参数服务器可根据持久内存中的已完成checkpoint号判断出恢复后应该从第cp+1个batch开始训练。另外,当checkpoint cp结束后,参数服务器可从checkpoint指令队列中获取一个新的checkpoint指令并开始新的checkpoint流程。
如上所述,根据算法2,在Pull Weight后,参数F一定被读入DRAM中,使得计算节点训练完一个批次训练样本后,把训练结果回传至参数服务器以更新参数F时,参数F的参数信息已经存储于读写速度更快的DRAM中了。同时,对于在一个批次内参数F的读和写两次操作,只在Pull Weight完成后调整LRU链表位置,即在训练结束更新参数F时,不再调整LRU链表位置,从而省去一次没有必要的调整LRU链表位置的消耗。
根据本公开的示例性实施例的利用参数服务器执行的机器学习模型的训练方法,能够针对DLRM的访问特点,在易失内存和持久内存相结合的基础上,优化缓存管理和替换机制,并且能够在最大程度提升持久内存访问速度的同时,把checkpoint的备份流程和缓存替换机制相结合,从而保证了以batch为持久化单位的模型可恢复性,以及降低了本地数据备份工作的开销。
图10是示出根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练装置的框图。根据本公开的参数服务器包括易失内存和持久内存,易失内存和持久内存用于在对机器学习模型进行训练过程中对机器学习模型的参数的参数信息进行存储。
参照图10,根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练装置1000可包括参数信息获取单元1010、内存更新单元1020和参数更新单元1030。参数信息获取单元1010、内存更新单元1020和参数更新单元1030针对每一批次训练样本都可执行相同或相似的操作。
具体地讲,在计算节点对当前批次训练样本所要训练的多个参数进行提取时,参数信息获取单元1010可获取存储于易失内存或持久内存中的多个参数的参数信息。这里,可在上述Pull Weights的过程中,确定并获取当前批次训练样本所要训练的多个参数的参数信息。根据本公开的示例性实施例,参数信息可包括第一版本号、参数的键和参数的值中的至少一个,第一版本号表示对应训练批次的版本号,参数的键表示参数特征的取值,参数的值表示参数特征对应的编码值。
在计算节点正在训练当前批次训练样本的多个参数时,内存更新单元1020可基于多个参数的参数信息,对易失内存进行异步更新,使多个参数的参数信息存储于易失内存中,并在异步更新时将易失内存中需要备份的参数的参数信息写入持久内存中。
在计算节点对当前批次训练样本的多个参数训练完成时,参数更新单元1030可基于计算节点回传的训练结果,对存储于易失内存中的多个参数的参数信息进行更新。
根据本公开的示例性实施例,内存更新单元1020可确定多个参数的每个参数的参数信息的存储位置;然后,可基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,以对易失内存进行异步更新。
根据本公开的示例性实施例,当多个参数中的任意一个参数的参数信息的存储位置在易失内存中时,内存更新单元1020可对该参数信息的第一版本号和预先指定的第二版本号进行比较;当该参数信息的第一版本号小于或等于第二版本号时,内存更新单元1020可将该参数信息写入持久内存中,以对该参数信息进行备份。这里,第二版本号可以是在某个特定批次训练样本的训练结束后生成的checkpoint指令所指定的版本号。
根据本公开的示例性实施例,当多个参数中的任意一个参数的参数信息的存储位置在存储于持久内存中时,内存更新单元1020可将该参数信息读入易失内存中。
根据本公开的示例性实施例,当上述该参数信息的存储位置在所述持久内存中时,内存更新单元1020可确定易失内存中的存储空间是否充足;当易失内存中的存储空间不足时,内存更新单元1020可基于预设的缓存淘汰机制,将易失内存中需要淘汰的第一参数的第一参数信息写入持久内存中,并将第一参数信息从易失内存中删除;然后,内存更新单元1020可基于将第一参数信息从易失内存中删除后的存储空间,将该参数信息读入易失内存中。
根据本公开的示例性实施例,内存更新单元1020还可对第一参数信息的第一版本号和预先指定的第三版本号进行比较;当第一参数信息的第一版本号小于或等于第三版本号时,内存更新单元1020可将第一参数信息写入持久内存中,以对第一参数信息进行备份;当第一参数信息的第一版本号大于第三版本号时,内存更新单元1020可将第一参数信息写入持久内存中,并确定第三版本号对应的批次的训练样本所训练的参数备份结束。这里,第三版本号可以是在某个特定批次训练样本的训练结束后生成的checkpoint指令所指定的版本号。进一步地,缓存淘汰机制可以但不限于根据LRU缓存算法来进行预先设置。
在此基础上,根据本公开的示例性实施例,无论上述多个参数中的任意一个参数的参数信息在一开始是存储于易失内存还是持久内存中,随后都会存储于易失内存中。因此,在将该参数信息读入DRAM或写入持久内存后,内存更新单元1020均可将存储于易失内存中的该参数信息的第一版本号更新为当前批次的版本号,以表示该参数在当前批次被访问过。更进一步地,可把该参数信息对应于LRU链表中的位置调整至首部,以表示刚刚访问过该参数。
图11是示出根据本公开示例性实施例的参数服务器的框图。
参照图11,根据本公开示例性实施例的参数服务器1100可包括易失内存1110和持久内存1120。易失内存1110和持久内存1120可在对机器学习模型进行训练过程中对机器学习模型的参数的参数信息进行存储。这里,参数信息可包括第一版本号、参数的键和参数的值中的至少一个,第一版本号可表示对应训练批次的版本号,参数的键可表示参数特征的取值,参数的值可表示参数特征对应的编码值。根据本公开示例性实施例,易失内存1110可用于存储近期访问的参数,以提升参数处理的速度,在此基础上,持久内存1120可用于存储从易失内存1110下刷的参数,以对参数进行备份。
根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练方法和装置可基于如图11所示的参数服务器1100来执行。
根据本公开的示例性实施例的利用参数服务器执行的机器学习模型的训练方法和装置,能够针对DLRM的访问特点,在易失内存和持久内存相结合的基础上,优化缓存管理和替换机制,并且能够在最大程度提升持久内存访问速度的同时,把checkpoint的备份流程和缓存替换机制相结合,从而保证了以batch为持久化单位的模型可恢复性,以及降低了本地数据备份工作的开销。
以上已参照图1至图11描述了根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练方法和装置。
图10所示出的利用参数服务器执行的机器学习模型的训练装置中的各个单元可被配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,各个单元可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,各个单元所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
此外,参照图9所描述的利用参数服务器执行的机器学习模型的训练方法可通过记录在计算机可读存储介质上的程序(或指令)来实现。例如,根据本公开的示例性实施例,可提供存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行根据本公开的利用参数服务器执行的机器学习模型的训练方法。
上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在参照图9进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。
应注意,根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练装置中的各个单元可完全依赖计算机程序的运行来实现相应的功能,即,各个单元在计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
另一方面,图10所示的各个单元也可以通过硬件、软件、固件、中间件、微代码或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。
例如,本公开的示例性实施例还可以实现为计算装置,该计算装置包括存储部件和处理器,存储部件中存储有计算机可执行指令集合,当计算机可执行指令集合被处理器执行时,执行根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练方法。
具体说来,计算装置可以部署在服务器或客户端中,也可以部署在分布式网络环境中的节点装置上。此外,计算装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其他能够执行上述指令集合的装置。
这里,计算装置并非必须是单个的计算装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。计算装置还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。
在计算装置中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练方法中所描述的某些操作可通过软件方式来实现,某些操作可通过硬件方式来实现,此外,还可通过软硬件结合的方式来实现这些操作。
处理器可运行存储在存储部件之一中的指令或代码,其中,存储部件还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储部件可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储部件可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储部件和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储部件中的文件。
此外,计算装置还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置的所有组件可经由总线和/或网络而彼此连接。
根据本公开示例性实施例的利用参数服务器执行的机器学习模型的训练方法可被描述为各种互联或耦合的功能块或功能示图。然而,这些功能块或功能示图可被均等地集成为单个的逻辑装置或按照非确切的边界进行操作。
因此,参照图9所描述的利用参数服务器执行的机器学习模型的训练方法可通过包括至少一个计算装置和至少一个存储指令的存储装置的系统来实现。
根据本公开的示例性实施例,至少一个计算装置是根据本公开示例性实施例的用于执行利用参数服务器执行的机器学习模型的训练方法的计算装置,存储装置中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个计算装置执行时,执行参照图9所描述的利用参数服务器执行的机器学习模型的训练方法。
以上描述了本公开的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本公开不限于所披露的各示例性实施例。在不偏离本公开的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本公开的保护范围应该以权利要求的范围为准。

Claims (10)

1.一种利用参数服务器执行的机器学习模型的训练方法,其中,所述参数服务器包括易失内存和持久内存,所述易失内存和持久内存用于在对所述机器学习模型进行训练过程中对所述机器学习模型的参数的参数信息进行存储,所述训练方法包括:
针对每一批次训练样本,执行以下操作:
在计算节点对当前批次训练样本所要训练的多个参数进行提取时,获取存储于所述易失内存或所述持久内存中的所述多个参数的参数信息;
在所述计算节点正在训练当前批次训练样本的所述多个参数时,基于所述多个参数的参数信息,对所述易失内存进行异步更新,使所述多个参数的参数信息存储于所述易失内存中,并在所述异步更新时将所述易失内存中需要备份的参数的参数信息写入所述持久内存中;
在所述计算节点对当前批次训练样本的所述多个参数训练完成时,基于所述计算节点回传的训练结果,对存储于所述易失内存中的所述多个参数的参数信息进行更新。
2.如权利要求1所述的训练方法,其中,所述参数信息包括第一版本号、参数的键和参数的值中的至少一个,所述第一版本号表示对应训练批次的版本号,所述参数的键表示参数特征的取值,所述参数的值表示参数特征对应的编码值。
3.如权利要求2所述的训练方法,其中,基于所述多个参数的参数信息,对所述易失内存进行异步更新,包括:
确定所述多个参数的每个参数的参数信息的存储位置;
基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,以对所述易失内存进行异步更新。
4.如权利要求3所述的训练方法,其中,基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,包括:
当所述多个参数中的任意一个参数的参数信息的所述存储位置在所述易失内存中时,对该参数信息的第一版本号和预先指定的第二版本号进行比较;
当该参数信息的第一版本号小于或等于所述第二版本号时,将该参数信息写入所述持久内存中,以对该参数信息进行备份。
5.如权利要求3所述的训练方法,其中,基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,包括:
当所述多个参数中的任意一个参数的参数信息的所述存储位置在所述持久内存中时,将该参数信息读入所述易失内存中。
6.如权利要求4或5所述的训练方法,其中,基于每个参数的参数信息的存储位置,对每个参数的参数信息进行相应操作,还包括:
将存储于所述易失内存中的该参数信息的第一版本号更新为当前批次的版本号,以表示该参数在当前批次被访问过。
7.一种利用参数服务器执行的机器学习模型的训练装置,其中,所述参数服务器包括易失内存和持久内存,所述易失内存和持久内存用于在对所述机器学习模型进行训练过程中对所述机器学习模型的参数的参数信息进行存储,所述训练装置包括:
参数信息获取单元;
内存更新单元;
参数更新单元;
其中,针对每一批次训练样本,执行以下操作:
在计算节点对当前批次训练样本所要训练的多个参数进行提取时,参数信息获取单元被配置为获取存储于所述易失内存或所述持久内存中的所述多个参数的参数信息;
在所述计算节点正在训练当前批次训练样本的所述多个参数时,内存更新单元被配置为基于所述多个参数的参数信息,对所述易失内存进行异步更新,使所述多个参数的参数信息存储于所述易失内存中,并在所述异步更新时将所述易失内存中需要备份的参数的参数信息写入所述持久内存中;
在所述计算节点对当前批次训练样本的所述多个参数训练完成时,参数更新单元被配置为基于所述计算节点回传的训练结果,对存储于所述易失内存中的所述多个参数的参数信息进行更新。
8.一种参数服务器,包括:
易失内存和持久内存,被配置为:在对所述机器学习模型进行训练过程中对所述机器学习模型的参数的参数信息进行存储,
其中,针对每一批次训练样本,执行以下操作:
在计算节点对当前批次训练样本所要训练的多个参数进行提取时,获取存储于所述易失内存或所述持久内存中的所述多个参数的参数信息;
在所述计算节点正在训练当前批次训练样本的所述多个参数时,基于所述多个参数的参数信息,对所述易失内存进行异步更新,使所述多个参数的参数信息存储于所述易失内存中,并在所述异步更新时将所述易失内存中需要备份的参数的参数信息写入所述持久内存中;
在所述计算节点对当前批次训练样本的所述多个参数训练完成时,基于所述计算节点回传的训练结果,对存储于所述易失内存中的所述多个参数的参数信息进行更新。
9.一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至6中的任一权利要求所述的利用参数服务器执行的机器学习模型的训练方法。
10.一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至6中的任一权利要求所述的利用参数服务器执行的机器学习模型的训练方法。
CN202111666611.6A 2021-12-31 2021-12-31 利用参数服务器执行的机器学习模型的训练方法和装置 Pending CN116414615A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111666611.6A CN116414615A (zh) 2021-12-31 2021-12-31 利用参数服务器执行的机器学习模型的训练方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111666611.6A CN116414615A (zh) 2021-12-31 2021-12-31 利用参数服务器执行的机器学习模型的训练方法和装置

Publications (1)

Publication Number Publication Date
CN116414615A true CN116414615A (zh) 2023-07-11

Family

ID=87051774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111666611.6A Pending CN116414615A (zh) 2021-12-31 2021-12-31 利用参数服务器执行的机器学习模型的训练方法和装置

Country Status (1)

Country Link
CN (1) CN116414615A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118036775A (zh) * 2024-04-11 2024-05-14 腾讯科技(深圳)有限公司 联邦学习方法、装置、设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118036775A (zh) * 2024-04-11 2024-05-14 腾讯科技(深圳)有限公司 联邦学习方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
US8954385B2 (en) Efficient recovery of transactional data stores
US8725951B2 (en) Efficient flash memory-based object store
US8589361B2 (en) Reduced disk space standby
US20190108107A1 (en) Time-based checkpoint target for database media recovery
US10437662B2 (en) Crash recovery using non-volatile memory
US8868487B2 (en) Event processing in a flash memory-based object store
CN109478183B (zh) 用于数据库中的存储器中单元的非破坏性版本化的方法和设备
US11934306B2 (en) Object storage change-events
EP3827347B1 (en) Constant time database recovery
JP2004062869A (ja) コンピュータ・システムでのトランザクションの選択的キャッシングの方法および装置
CN107888687B (zh) 一种基于分布式存储系统的代理客户端存储加速方法及系统
KR102195839B1 (ko) 데이터베이스 관리 시스템에서의 로그 레코드 관리를 위한 기법
CN116529726A (zh) 云数据库节点间数据同步方法、装置及介质
CN116414615A (zh) 利用参数服务器执行的机器学习模型的训练方法和装置
CN109726211B (zh) 一种分布式时序数据库
CN115904799A (zh) 利用参数服务器执行的机器学习模型的训练方法及装置
WO2022089607A1 (zh) 参数服务器节点的恢复方法和恢复系统
CN115905045A (zh) 利用参数服务器执行的机器学习模型的训练方法及装置
CN117521842A (zh) 模型参数处理方法及装置、模型训练方法及系统
KR20200121265A (ko) 데이터베이스 관리 시스템에서의 로그 레코드 관리를 위한 기법
CN112906309A (zh) 机器学习模型的分布式训练方法、装置和系统
CN117369709A (zh) 数据存储管理方法和装置、存储介质、系统
CN116932075A (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