亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

機(jī)器學(xué)習(xí)方法和從節(jié)點與流程

文檔序號:12597513閱讀:247來源:國知局
機(jī)器學(xué)習(xí)方法和從節(jié)點與流程

本發(fā)明涉及機(jī)器學(xué)習(xí)技術(shù),尤其涉及一種機(jī)器學(xué)習(xí)方法和從節(jié)點。



背景技術(shù):

機(jī)器學(xué)習(xí)方法是計算機(jī)利用已有的訓(xùn)練數(shù)據(jù),經(jīng)過訓(xùn)練得出某種模型,并利用此模型預(yù)測未來的一種方法。目前,機(jī)器學(xué)習(xí)方法已被廣泛地應(yīng)用于各個方面,例如,應(yīng)用于互聯(lián)網(wǎng)行業(yè)。

現(xiàn)有的機(jī)器學(xué)習(xí)系統(tǒng),包括:多個計算節(jié)點和一個參數(shù)服務(wù)器,該參數(shù)服務(wù)器包括多個子服務(wù)器,其中,每個計算節(jié)點主要負(fù)責(zé)執(zhí)行具體的訓(xùn)練任務(wù);每個子服務(wù)器存儲全局參數(shù)的一部分,所有的子服務(wù)器共同維護(hù)全局參數(shù)?,F(xiàn)有技術(shù)的機(jī)器學(xué)習(xí)系統(tǒng),訓(xùn)練數(shù)據(jù)存儲在各個計算節(jié)點上,每個計算節(jié)點利用存儲在其上的訓(xùn)練數(shù)據(jù)、全局參數(shù)以及相應(yīng)的訓(xùn)練任務(wù)進(jìn)行模型訓(xùn)練。

現(xiàn)有的機(jī)器學(xué)習(xí)方法,訓(xùn)練數(shù)據(jù)分布的存儲在各個計算節(jié)點上,每個計算節(jié)點僅對存儲在該計算節(jié)點上的訓(xùn)練數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,進(jìn)而根據(jù)處理后的數(shù)據(jù)進(jìn)行模型訓(xùn)練,一旦機(jī)器學(xué)習(xí)方法需要對存儲在各個計算節(jié)點上的所有訓(xùn)練數(shù)據(jù)進(jìn)行全局?jǐn)?shù)據(jù)處理時,需要借助額外的數(shù)據(jù)處理設(shè)備對所有的訓(xùn)練數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,這樣,不能充分利用計算節(jié)點的計算資源。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種機(jī)器學(xué)習(xí)方法和從節(jié)點,無需借助外部其他設(shè)備,就可以利用從節(jié)點對訓(xùn)練數(shù)據(jù)進(jìn)行全局?jǐn)?shù)據(jù)處理,可充分利用從節(jié)點的計算資源。

本發(fā)明第一方面提供一種機(jī)器學(xué)習(xí)方法,應(yīng)用于機(jī)器學(xué)習(xí)系統(tǒng),所述機(jī)器學(xué)習(xí)系統(tǒng)包括分布式共享內(nèi)存的參數(shù)服務(wù)器、主節(jié)點和多個從節(jié)點;所述參數(shù)服務(wù)器用于存儲全局模型參數(shù)和全局訓(xùn)練數(shù)據(jù);所述主節(jié)點用于根據(jù)全局?jǐn)?shù)據(jù)處理任務(wù),確定每個從節(jié)點的數(shù)據(jù)處理任務(wù),所述方法包括:

從節(jié)點從所述參數(shù)服務(wù)器中獲取所述從節(jié)點的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊,并按照所述從節(jié)點的數(shù)據(jù)處理任務(wù)對所述第一訓(xùn)練數(shù)據(jù)塊進(jìn)行處理,得到第一處理數(shù)據(jù)塊;

所述從節(jié)點獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);

所述從節(jié)點根據(jù)所述第一處理數(shù)據(jù)塊、所述模型參數(shù)和所述當(dāng)前訓(xùn)練任務(wù)訓(xùn)練模型。

進(jìn)一步地,所述從節(jié)點獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù),具體包括:

所述從節(jié)點判斷本地緩存中是否存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);其中,所述模型參數(shù)攜帶的迭代倫次值為所述從節(jié)點從所述參數(shù)服務(wù)器獲取到所述模型參數(shù)時所述機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值;所述機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值為同一時刻下所有從節(jié)點的迭代輪次值的最小值;所述從節(jié)點的迭代輪次值為同一時刻下所述從節(jié)點上所有的訓(xùn)練任務(wù)的迭代輪次值的最小值;

若存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù),則所述從節(jié)點判斷所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值是否小于或者等于預(yù)設(shè)閾值;

若所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值小于或者等于所述預(yù)設(shè)閾值,則所述從節(jié)點從所述本地緩存中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);

若所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值大于所述預(yù)設(shè)閾值,則所述從節(jié)點從所述參數(shù)服務(wù)器中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的新的模型參數(shù),所述新的模型參數(shù)的標(biāo)識信息與所述模型參數(shù)的標(biāo)識信息相同。

進(jìn)一步地,所述從節(jié)點從所述參數(shù)服務(wù)器中獲取新的模型參數(shù),具體包括:

所述從節(jié)點根據(jù)所述新的模型參數(shù)的標(biāo)識信息、不同的模型參數(shù)的標(biāo)識信息和不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述新的模型參數(shù)的第一子服務(wù)器;

所述從節(jié)點向所述第一子服務(wù)器發(fā)送參數(shù)獲取請求,所述參數(shù)獲取請求用于指示所述第一子服務(wù)器根據(jù)所述新的模型參數(shù)的標(biāo)識信息獲取所述新的模型參數(shù);其中,所述新的模型參數(shù)攜帶的迭代倫次值與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值小于或者等于所述預(yù)設(shè)閾值;

所述從節(jié)點接收所述第一子服務(wù)器發(fā)送的所述新的模型參數(shù)。

進(jìn)一步地,所述從節(jié)點接收所述第一子服務(wù)器發(fā)送的所述新的模型參數(shù)之后,所述方法還包括:

所述從節(jié)點將所述本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)。

進(jìn)一步地,所述新的模型參數(shù)中還攜帶所述第一子服務(wù)器中存儲的所述從節(jié)點的第一版本號,所述從節(jié)點將本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)之后,所述方法還包括:

所述從節(jié)點判斷所述本地緩存中是否存儲有所述新的模型參數(shù)的增量信息;

若是,則所述從節(jié)點判斷所述增量信息攜帶的所述從節(jié)點的第二版本號是否大于所述第一版本號;

若所述從節(jié)點判斷所述第二版本號大于所述第一版本號,則所述從節(jié)點根據(jù)所述增量信息更新所述新的模型參數(shù),得到第一模型參數(shù)。

進(jìn)一步地,所述方法還包括:

在所述從節(jié)點根據(jù)所述第一模型參數(shù)執(zhí)行當(dāng)前訓(xùn)練任務(wù)的過程中,將所得到的第二模型參數(shù)的更新值存儲至所述本地緩存中,并將所述第二模型參數(shù)的增量信息以及所述從節(jié)點的當(dāng)前版本號存儲到所述本地緩存中;

所述從節(jié)點將所述第二模型參數(shù)的增量信息上報給所述參數(shù)服務(wù)器;

所述從節(jié)點更新所述從節(jié)點的版本號。

進(jìn)一步地,所述從節(jié)點獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)之前,所述方法還包括:

所述從節(jié)點將所述第一處理數(shù)據(jù)塊上報給所述參數(shù)服務(wù)器。

進(jìn)一步地,所述從節(jié)點從所述參數(shù)服務(wù)器中獲取所述從節(jié)點的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊,具體包括:

所述從節(jié)點根據(jù)所述第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息、不同的訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息與不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述第一訓(xùn)練數(shù)據(jù)塊的第二子服務(wù)器;

所述從節(jié)點向所述第二子服務(wù)器發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求攜帶所述第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息;

所述從節(jié)點接收所述第二子服務(wù)器發(fā)送的所述第一訓(xùn)練數(shù)據(jù)塊。

本發(fā)明第二方面提供一種從節(jié)點,應(yīng)用于機(jī)器學(xué)習(xí)系統(tǒng),所述機(jī)器學(xué)習(xí)系統(tǒng)包括分布式共享內(nèi)存的參數(shù)服務(wù)器、主節(jié)點和多個所述從節(jié)點;所述參數(shù)服務(wù)器用于存儲全局模型參數(shù)和全局訓(xùn)練數(shù)據(jù);所述主節(jié)點用于根據(jù)全局?jǐn)?shù)據(jù)處理任務(wù),確定每個從節(jié)點的數(shù)據(jù)處理任務(wù),所述從節(jié)點包括:獲取模塊和處理模塊,其中,

所述獲取模塊,用于從所述參數(shù)服務(wù)器中獲取所述從節(jié)點的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊;

所述處理模塊,用于按照所述從節(jié)點的數(shù)據(jù)處理任務(wù)對所述第一訓(xùn)練數(shù)據(jù)塊進(jìn)行處理,得到第一處理數(shù)據(jù)塊;

所述獲取模塊,還用于獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);

所述處理模塊,還用于根據(jù)所述第一處理數(shù)據(jù)塊、所述模型參數(shù)和所述當(dāng)前訓(xùn)練任務(wù)訓(xùn)練模型。

進(jìn)一步地,所述獲取模塊,具體用于判斷本地緩存中是否存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);并在判斷所述本地緩存中存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)時,判斷所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值是否小于或者等于預(yù)設(shè)閾值;并在判斷當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值小于或者等于所述預(yù)設(shè)閾值,從所述本地緩存中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);以及在判斷當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值大于所述預(yù)設(shè)閾值,從所述參數(shù)服務(wù)器中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的新的模型參數(shù);其中,所述模型參數(shù)攜帶的迭代倫次值為所述從節(jié)點從所述參數(shù)服務(wù)器獲取到所述模型參數(shù)時機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值;所述機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值為同一時刻下所有從節(jié)點的迭代輪次值的最小值;所述從節(jié)點的迭代輪次值為同一時刻下所述從節(jié)點上所有的訓(xùn)練任務(wù)的迭代輪次值的最小值;所述新的模型參數(shù)的標(biāo)識信息與所述模型參數(shù)的標(biāo)識信息相同。

進(jìn)一步地,所述獲取模塊,還具體用于根據(jù)所述新的模型參數(shù)的標(biāo)識信息、不同的模型參數(shù)的標(biāo)識信息和不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述新的模型參數(shù)的第一子服務(wù)器;向所述第一子服務(wù)器發(fā)送參數(shù)獲取請求;接收所述第一子服務(wù)器發(fā)送的所述新的模型參數(shù);其中,所述參數(shù)獲取請求用于指示所述第一子服務(wù)器根據(jù)所述新的模型參數(shù)的標(biāo)識信息獲取所述新的模型參數(shù);所述新的模型參數(shù)攜帶的迭代倫次值與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值小于或者等于所述預(yù)設(shè)閾值。

進(jìn)一步地,所述處理模塊,還具體用于在所述獲取模塊接收到第一子服務(wù)器發(fā)送的所述新的模型參數(shù)之后,將所述本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)。

進(jìn)一步地,所述新的模型參數(shù)中還攜帶所述第一子服務(wù)器中存儲的所述從節(jié)點的第一版本號,所述處理模塊,還具體用于在將所述本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)之后,判斷所述本地緩存中是否存儲有所述新的模型參數(shù)的增量信息;并在判斷所述本地緩存中存儲有所述新的模型參數(shù)的增量信息時,判斷所述增量信息攜帶的所述從節(jié)點的第二版本號是否大于所述第一版本號;以及在判斷所述第二版本號大于所述第一版本號,根據(jù)所述增量信息更新所述新的模型參數(shù),得到第一模型參數(shù)。

進(jìn)一步地,所述處理模塊,還具體用于在所述處理模塊根據(jù)所述第一模型參數(shù)執(zhí)行當(dāng)前訓(xùn)練任務(wù)的過程中,將所得到的第二模型參數(shù)的更新值存儲至到所述本地緩存中,并將所述第二模型參數(shù)的增量信息以及所述從節(jié)點的當(dāng)前版本號存儲到所述本地緩存中;

所述獲取模塊,還具體用于將所述第二模型參數(shù)的增量信息上報給所述參數(shù)服務(wù)器;

所述處理模塊,還具體用于更新所述從節(jié)點的版本號。

進(jìn)一步地,所述獲取模塊,還具體用于在獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)之前,將所述第一處理數(shù)據(jù)塊上報給所述參數(shù)服務(wù)器。

進(jìn)一步地,所述獲取模塊,還具體用于根據(jù)所述第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息、不同的訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息與不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述第一訓(xùn)練數(shù)據(jù)塊的第二子服務(wù)器;向所述第二子服務(wù)器發(fā)送數(shù)據(jù)獲取請求;接收所述第二子服務(wù)器發(fā)送的所述第一訓(xùn)練數(shù)據(jù)塊;其中,所述數(shù)據(jù)獲取請求攜帶所述第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息。

本實施例提供的機(jī)器學(xué)習(xí)方法和從節(jié)點,由于參數(shù)服務(wù)器中存儲有全局訓(xùn)練數(shù)據(jù),這樣,從節(jié)點根據(jù)其對應(yīng)的數(shù)據(jù)處理任務(wù),可以從參數(shù)服務(wù)器中獲取需要的訓(xùn)練數(shù)據(jù)塊,因此,不需要借助外部的設(shè)備,從節(jié)點通過從參數(shù)服務(wù)器中獲取所述從節(jié)點的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊,并按照所述從節(jié)點的數(shù)據(jù)處理任務(wù)對所述第一訓(xùn)練數(shù)據(jù)塊進(jìn)行處理,所有從節(jié)點協(xié)同合作,便可以利用參數(shù)服務(wù)器中存儲的全局訓(xùn)練數(shù)據(jù)對全局訓(xùn)練數(shù)據(jù)進(jìn)行全局處理,這樣,可充分利用從節(jié)點的計算資源。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明提供的機(jī)器學(xué)習(xí)系統(tǒng)的結(jié)構(gòu)示意圖;

圖2為本發(fā)明實施例一提供的機(jī)器學(xué)習(xí)方法的流程圖

圖3為本發(fā)明實施例二提供的機(jī)器學(xué)習(xí)方法的流程圖

圖4為本發(fā)明實施例三提供的機(jī)器學(xué)習(xí)方法的流程圖

圖5為本發(fā)明實施例四提供的機(jī)器學(xué)習(xí)方法的流程圖

圖6為本發(fā)明實施例五提供的機(jī)器學(xué)習(xí)方法的流程圖;

圖7為本發(fā)明實施例六提供的從節(jié)點的結(jié)構(gòu)示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

本發(fā)明提供一種機(jī)器學(xué)習(xí)方法和從節(jié)點,無需借助外部其他設(shè)備,就可以利用從節(jié)點對訓(xùn)練數(shù)據(jù)進(jìn)行全局?jǐn)?shù)據(jù)處理,可充分利用從節(jié)點的計算資源。

本發(fā)明提供的機(jī)器學(xué)習(xí)方法和從節(jié)點,可應(yīng)用于機(jī)器學(xué)習(xí)系統(tǒng),該機(jī)器學(xué)習(xí)系統(tǒng)包括分布式共享內(nèi)存的參數(shù)服務(wù)器、主節(jié)點和多個從節(jié)點;其中,參數(shù)服務(wù)器用于存儲全局模型參數(shù)和全局訓(xùn)練數(shù)據(jù);主節(jié)點用于根據(jù)全局?jǐn)?shù)據(jù)處理任務(wù),確定每個從節(jié)點的數(shù)據(jù)處理任務(wù)。

下面以具體地實施例對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。下面這幾個具體的實施例可以相互結(jié)合,對于相同或相似的概念或過程可能在某些實施例不再贅述。

在介紹本發(fā)明提供的機(jī)器學(xué)習(xí)方法和從節(jié)點之前,先介紹一下本發(fā)明提供的機(jī)器學(xué)習(xí)系統(tǒng)。具體地,圖1為本發(fā)明提供的機(jī)器學(xué)習(xí)系統(tǒng)的結(jié)構(gòu)示意圖,請參照圖1,本發(fā)明實施例提供的機(jī)器學(xué)習(xí)系統(tǒng),包括:分布式共享內(nèi)存的參數(shù)服務(wù)器、主節(jié)點和多個從節(jié)點;其中,所述參數(shù)服務(wù)器用于存儲全局模型參數(shù)和全局訓(xùn)練數(shù)據(jù);所述主節(jié)點用于根據(jù)全局?jǐn)?shù)據(jù)處理任務(wù),確定每個從節(jié)點的數(shù)據(jù)處理任務(wù)。

需要說明的是,參數(shù)服務(wù)器包括多個子服務(wù)器,全局模型參數(shù)和全局訓(xùn)練數(shù)據(jù)分布的存儲在各個子服務(wù)器中。下面舉例說明機(jī)器學(xué)習(xí)系統(tǒng)的具體組成。例如,在一種可能的實現(xiàn)方式中,機(jī)器學(xué)習(xí)系統(tǒng)包括2個從節(jié)點:從節(jié)點1和從節(jié)點2;參數(shù)服務(wù)器包括3個子服務(wù)器:子服務(wù)器1、子服務(wù)器2、子服務(wù)器3;全局模型參數(shù)包括5個模型參數(shù):模型參數(shù)a、模型參數(shù)b、模型參數(shù)c、模型參數(shù)d、模型參數(shù)e,其中,a、b、c、d、e為模型參數(shù)的標(biāo)識信息;全局訓(xùn)練數(shù)據(jù)包括5個訓(xùn)練數(shù)據(jù)塊:訓(xùn)練數(shù)據(jù)塊1、訓(xùn)練數(shù)據(jù)塊2、訓(xùn)練數(shù)據(jù)3、訓(xùn)練數(shù)據(jù)塊4、訓(xùn)練數(shù)據(jù)塊5,其中,1、2、3、4、5為訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息。更具體地,全局模型參數(shù)和全局訓(xùn)練數(shù)據(jù)分布的存儲在各個子服務(wù)器中,例如,模型參數(shù)a、模型參數(shù)b和訓(xùn)練數(shù)據(jù)塊1、訓(xùn)練數(shù)據(jù)塊2存儲在子服務(wù)器1中;模型參數(shù)c和訓(xùn)練數(shù)據(jù)塊3存儲在子服務(wù)器2中;模型參數(shù)d、模型參數(shù)e和訓(xùn)練數(shù)據(jù)4、訓(xùn)練數(shù)據(jù)5存儲在子服務(wù)器3中。

此外,主節(jié)點主要用于根據(jù)全局?jǐn)?shù)據(jù)處理任務(wù),確定每個從節(jié)點的數(shù)據(jù)處理任務(wù),并將每個從節(jié)點的數(shù)據(jù)處理任務(wù)下發(fā)給對應(yīng)的從節(jié)點。例如,全局?jǐn)?shù)據(jù)處理任務(wù)包括兩個子任務(wù):子任務(wù)1和子任務(wù)2,主節(jié)點確定從節(jié)點1的數(shù)據(jù)處理任務(wù)為子任務(wù)1、從節(jié)點2的數(shù)據(jù)處理任務(wù)為子任務(wù)2,這樣,以使從節(jié)點1和從節(jié)點2協(xié)同配合,實現(xiàn)全局訓(xùn)練數(shù)據(jù)的全局處理。

需要說明的是,在本發(fā)明一種可能的實現(xiàn)方式中,主節(jié)點還用于根據(jù)全局訓(xùn)練任務(wù),確定每個從節(jié)點的訓(xùn)練任務(wù)。

再介紹了本發(fā)明提供的機(jī)器學(xué)習(xí)系統(tǒng)之后,下面詳細(xì)介紹本發(fā)明提供的機(jī)器學(xué)習(xí)方法和從節(jié)點。

圖2為本發(fā)明實施例一提供的機(jī)器學(xué)習(xí)方法的流程圖。本發(fā)明實施例的執(zhí)行主體為從節(jié)點,該從節(jié)點可以是單獨的機(jī)器學(xué)習(xí)裝置,還可以是集成了機(jī)器學(xué)習(xí)裝置的其他設(shè)備,例如,可以是集成了機(jī)器學(xué)習(xí)裝置的計算機(jī)。如圖1所示,本實施例提供的機(jī)器學(xué)習(xí)方法,可以包括:

S101、從節(jié)點從參數(shù)服務(wù)器中獲取所述從節(jié)點的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊,并按照所述從節(jié)點的數(shù)據(jù)處理任務(wù)對所述第一訓(xùn)練數(shù)據(jù)塊進(jìn)行處理,得到第一處理數(shù)據(jù)塊。

需要說明的是,本實施例的執(zhí)行主體為從節(jié)點,該從節(jié)點為上述機(jī)器學(xué)習(xí)系統(tǒng)的多個從節(jié)點中的其中一個。結(jié)合上面的例子,本發(fā)明中,以執(zhí)行主體為從節(jié)點1為例進(jìn)行詳細(xì)介紹。

具體地,在本步驟中,從節(jié)點1根據(jù)主節(jié)點下發(fā)給其的數(shù)據(jù)處理任務(wù)(為方便介紹,將從節(jié)點1的數(shù)據(jù)處理任務(wù)稱為第一數(shù)據(jù)處理任務(wù)),從參數(shù)服務(wù)器中獲取上述第一數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊。例如,結(jié)合上面的例子,此時,從節(jié)點1的數(shù)據(jù)處理任務(wù)為子任務(wù)1,且子任務(wù)1對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊為訓(xùn)練數(shù)據(jù)塊5,因此,本步驟中,從節(jié)點1需要從參數(shù)服務(wù)器中獲取訓(xùn)練數(shù)據(jù)塊5。

可選地,在本發(fā)明一種可能的實現(xiàn)方式中,從節(jié)點從所述參數(shù)服務(wù)器中獲取所述從節(jié)點的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊的具體過程,可以包括如下步驟:

(1)所述從節(jié)點根據(jù)所述第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息、不同的訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息與不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述第一訓(xùn)練數(shù)據(jù)塊的第二子服務(wù)器。

結(jié)合上面的例子,從節(jié)點1需要獲取的第一訓(xùn)練數(shù)據(jù)塊為訓(xùn)練數(shù)據(jù)塊5,此時,從節(jié)點1首先根據(jù)該第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息(5)、不同的訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息與不同的子服務(wù)器的對應(yīng)關(guān)系(結(jié)合上面的例子可知,訓(xùn)練數(shù)據(jù)塊5與子服務(wù)器3對應(yīng)),確定存儲第一訓(xùn)練數(shù)據(jù)塊的第二子服務(wù)器為子服務(wù)器3。

(2)從節(jié)點向所述第二子服務(wù)器發(fā)送數(shù)據(jù)獲取請求,所述數(shù)據(jù)獲取請求攜帶所述第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息。

當(dāng)經(jīng)過步驟(1)確定了存儲訓(xùn)練數(shù)據(jù)塊5的第二子服務(wù)器為子服務(wù)器3時,此時,從節(jié)點1向子服務(wù)器3發(fā)送數(shù)據(jù)獲取請求。這樣,當(dāng)子服務(wù)器3接收到上述數(shù)據(jù)獲取請求時,便將訓(xùn)練數(shù)據(jù)塊5發(fā)送給從節(jié)點1。

(3)從節(jié)點接收所述第二子服務(wù)器發(fā)送的所述第一訓(xùn)練數(shù)據(jù)塊。

這樣,經(jīng)過上面3個步驟,從節(jié)點1便從參數(shù)服務(wù)器上獲取到該從節(jié)點1的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊。進(jìn)一步地,當(dāng)從節(jié)點1獲取到第一訓(xùn)練數(shù)據(jù)塊后,就按照從節(jié)點1的數(shù)據(jù)處理任務(wù)對上述第一訓(xùn)練數(shù)據(jù)進(jìn)行處理,得到第一處理數(shù)據(jù)塊。

S102、所述從節(jié)點獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)。

例如,當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)為模型參數(shù)a,此時,從節(jié)點1就去獲取模型參數(shù)a。在具體的實現(xiàn)方式中,從節(jié)點1可以從參數(shù)服務(wù)器中獲取模型參數(shù)a。本實施例中,不對模型參數(shù)的具體獲取方法進(jìn)行限定。

S103、所述從節(jié)點根據(jù)所述第一處理數(shù)據(jù)塊、所述模型參數(shù)和所述當(dāng)前訓(xùn)練任務(wù)訓(xùn)練模型。

具體地,從節(jié)點根據(jù)所述第一處理數(shù)據(jù)塊、所述模型參數(shù)和所述當(dāng)前訓(xùn)練任務(wù)訓(xùn)練模型的具體過程及具體原理可以參見現(xiàn)有技術(shù)中的描述,此處不再贅述。

本實施例提供的機(jī)器學(xué)習(xí)方法,由于參數(shù)服務(wù)器中存儲有全局訓(xùn)練數(shù)據(jù),這樣,從節(jié)點根據(jù)其對應(yīng)的數(shù)據(jù)處理任務(wù),可以從參數(shù)服務(wù)器中獲取需要的訓(xùn)練數(shù)據(jù)塊,因此,不需要借助外部的設(shè)備,從節(jié)點通過從參數(shù)服務(wù)器中獲取所述從節(jié)點的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊,并按照所述從節(jié)點的數(shù)據(jù)處理任務(wù)對所述第一訓(xùn)練數(shù)據(jù)塊進(jìn)行處理,所有從節(jié)點協(xié)同合作,便可以利用參數(shù)服務(wù)器中存儲的全局訓(xùn)練數(shù)據(jù)對全局訓(xùn)練數(shù)據(jù)進(jìn)行全局處理,這樣,可充分利用從節(jié)點的計算資源。

進(jìn)一步地,在本發(fā)明一種可能的實現(xiàn)方式中,所述從節(jié)點獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)之前,所述方法還包括:

所述從節(jié)點將所述第一處理數(shù)據(jù)塊上報給所述參數(shù)服務(wù)器。

具體地,例如,當(dāng)從節(jié)點1對訓(xùn)練數(shù)據(jù)塊5進(jìn)行處理后,得到訓(xùn)練數(shù)據(jù)塊5對應(yīng)的第一處理數(shù)據(jù)塊后,就將該第一處理數(shù)據(jù)塊上報給參數(shù)服務(wù)器。具體地,從節(jié)點1可以將該第一處理數(shù)據(jù)塊上報給子服務(wù)器3(結(jié)合上面的介紹可知,子服務(wù)器3為存儲訓(xùn)練數(shù)據(jù)塊5的子服務(wù)器)。這樣,從節(jié)點1將第一處理數(shù)據(jù)塊上報給參數(shù)服務(wù)器后,參數(shù)服務(wù)器上便存儲有第一訓(xùn)練數(shù)據(jù)塊經(jīng)過第一數(shù)據(jù)處理任務(wù)處理后得到的第一處理數(shù)據(jù)塊,這樣,其他從節(jié)點便可以利用參數(shù)服務(wù)器上存儲的第一處理數(shù)據(jù)塊,可避免其他從節(jié)點對第一訓(xùn)練數(shù)據(jù)塊進(jìn)行相同處理的過程,可提高數(shù)據(jù)處理的效率。

本實施例提供的機(jī)器學(xué)習(xí)方法,從節(jié)點在獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)之前,將第一處理數(shù)據(jù)塊上報給參數(shù)服務(wù)器,這樣,參數(shù)服務(wù)器中便存儲有第一訓(xùn)練數(shù)據(jù)塊對應(yīng)的第一處理數(shù)據(jù)塊,其他從節(jié)點便可以從參數(shù)服務(wù)器中獲取到上述第一處理數(shù)據(jù)塊。這樣,可避免其他從節(jié)點對第一訓(xùn)練數(shù)據(jù)塊進(jìn)行相同處理的過程,可提高數(shù)據(jù)處理的效率。

圖3為本發(fā)明實施例二提供的機(jī)器學(xué)習(xí)方法的流程圖。本實施例涉及的是獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)的具體過程。請參照圖3,在上述實施例的基礎(chǔ)上,本實施例提供的機(jī)器學(xué)習(xí)方法,步驟S102具體包括:

S201、所述從節(jié)點判斷本地緩存中是否存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);其中,所述模型參數(shù)攜帶的迭代倫次值為所述從節(jié)點從所述參數(shù)服務(wù)器獲取到所述模型參數(shù)時機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值;所述機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值為同一時刻下所有從節(jié)點的迭代輪次值的最小值;所述從節(jié)點的迭代輪次值為同一時刻下所述從節(jié)點上所有的訓(xùn)練任務(wù)的迭代輪次值的最小值。

具體地,例如,從節(jié)點1需要獲取當(dāng)前任務(wù)對應(yīng)的模型參數(shù)為模型參數(shù)c,此時,從節(jié)點1首先判斷本地緩存中是否存在模型參數(shù)c。

需要說明的是,本實施例提供的機(jī)器學(xué)習(xí)方法,當(dāng)從節(jié)點從參數(shù)服務(wù)器上獲取到模型參數(shù)后,將就模型參數(shù)存儲在本地緩存中。進(jìn)一步地,從節(jié)點從參數(shù)服務(wù)器中獲取到的模型參數(shù)攜帶有迭代輪次值,其中,模型參數(shù)攜帶的迭代倫次值為從節(jié)點從參數(shù)服務(wù)器獲取到所述模型參數(shù)時機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值。例如,從節(jié)點1上存儲有模型參數(shù)a,且模型參數(shù)a攜帶的迭代輪次值為1,此時,模型參數(shù)a攜帶的迭代輪次值1表示:從節(jié)點1從參數(shù)服務(wù)器獲取到模型參數(shù)a時,機(jī)器學(xué)習(xí)系統(tǒng)的迭代輪次值為1。再例如,從節(jié)點1上存儲有模型參數(shù)b,且該模型參數(shù)攜帶的迭代輪次值為2,此時,模型參數(shù)b攜帶的迭代輪值2表示:從節(jié)點1從參數(shù)服務(wù)器獲取到模型參數(shù)b時,機(jī)器學(xué)習(xí)系統(tǒng)的迭代輪次值為2。

需要說明的是,機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值為同一時刻下所有從節(jié)點的迭代輪次值的最小值。結(jié)合上面的例子,例如,在T1時刻,從節(jié)點1的迭代輪次值為2,從節(jié)點2的迭代輪次信息為3,則T1時刻,機(jī)器學(xué)習(xí)系統(tǒng)的迭代輪次值為2。在例如,在T2時刻,從節(jié)點1的迭代輪次值為3,從節(jié)點2的迭代輪次信息為4,則T2時刻,機(jī)器學(xué)習(xí)系統(tǒng)的迭代輪次值為3。進(jìn)一步地,從節(jié)點的迭代輪次值為同一時刻下所述從節(jié)點上所有的訓(xùn)練任務(wù)的迭代輪次值的最小值。例如,從節(jié)點1上共有3個訓(xùn)練任務(wù):訓(xùn)練任務(wù)1、訓(xùn)練任務(wù)2、訓(xùn)練任務(wù)3;從節(jié)點2上共有兩個訓(xùn)練任務(wù):訓(xùn)練任務(wù)4、訓(xùn)練任務(wù)5。T2時刻,訓(xùn)練任務(wù)1的迭代輪次值為3,訓(xùn)練任務(wù)2的迭代輪次值為4,訓(xùn)練任務(wù)3的迭代輪次值為5,訓(xùn)練任務(wù)4的迭代輪次信息為4,訓(xùn)練任務(wù)5的迭代輪次信息為5,此時,從節(jié)點1確定從節(jié)點1在T2時刻的迭代輪次信息為3;從節(jié)點2確定從節(jié)點2的迭代輪次信息為4。更具體地,本發(fā)明提供的機(jī)器學(xué)習(xí)方法,從節(jié)點1和從節(jié)點2會將自己的迭代輪次值通過廣播的方式發(fā)送出去,以使參數(shù)服務(wù)器根據(jù)所有的從節(jié)點在同一時刻的迭代輪次值,確定機(jī)器學(xué)習(xí)系統(tǒng)在該時刻的迭代輪次值。

需要說明的是,訓(xùn)練任務(wù)的迭代輪次值是從節(jié)點在執(zhí)行訓(xùn)練任務(wù)的過程中更新的,具體地,訓(xùn)練任務(wù)每執(zhí)行完一輪迭代處理,從節(jié)點就更新一下該訓(xùn)練任務(wù)的迭代輪次值。例如,在從節(jié)點1執(zhí)行訓(xùn)練任務(wù)1的過程中,當(dāng)訓(xùn)練任務(wù)1完成一輪迭代處理后,從計算節(jié)點1就更新一下訓(xùn)練任務(wù)1的迭代輪次值,相應(yīng)地,在從節(jié)點1更新了訓(xùn)練任務(wù)1的迭代輪次值后,就去更新從計算節(jié)點1的迭代輪次值(此時,從節(jié)點1的迭代輪次值可能變了,也可能沒變(從節(jié)點1根據(jù)從節(jié)點1上的3個訓(xùn)練任務(wù)的迭代輪次值確定從節(jié)點1的迭代輪次值)),若從節(jié)點1的迭代輪次值發(fā)生變化,則從節(jié)點1將變化后的從節(jié)點1的迭代輪次值通過廣播發(fā)送出去,以使參數(shù)服務(wù)器根據(jù)所有從節(jié)點的迭代輪次值更新機(jī)器學(xué)習(xí)系統(tǒng)的迭代輪次值。

S202、若存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù),則所述從節(jié)點判斷所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值是否小于或者等于預(yù)設(shè)閾值。

需要說明的是,預(yù)設(shè)閾值可以為2,本實施例中,不對預(yù)設(shè)閾值的具體值進(jìn)行限定。

例如,經(jīng)過判斷,確定本地緩存中存儲有模型參數(shù)c,且該模型參數(shù)c攜帶的迭代輪次值為2。此時,進(jìn)一步判斷當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與模型參數(shù)c攜帶的迭代輪次值(2)的差值是否小于或者等于2。例如,當(dāng)前訓(xùn)練任務(wù)的迭代輪次值為5,此時,經(jīng)過判斷,確定當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與模型參數(shù)c攜帶的迭代輪次值(2)的差值為3,大于預(yù)設(shè)閾值2。

S203、若所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值小于或者等于所述預(yù)設(shè)閾值,則所述從節(jié)點從所述本地緩存中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)。

例如,確定本地緩存中存儲有模型參數(shù)c,且該模型參數(shù)c攜帶的迭代輪次值為3,且當(dāng)前訓(xùn)練任務(wù)的迭代輪次值為5,此時,經(jīng)過判斷,確定當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與模型參數(shù)c攜帶的迭代輪次值(3)的差值為2,等于預(yù)設(shè)閾值2,此時,則直接從本地緩存中獲取模型參數(shù)c。

S204、若所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值大于所述預(yù)設(shè)閾值,則所述從節(jié)點從所述參數(shù)服務(wù)器中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的新的模型參數(shù),所述新的模型參數(shù)與所述模型參數(shù)的標(biāo)識信息相同。

結(jié)合步驟S202中的例子,若判斷當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與模型參數(shù)攜帶的迭代輪次值的差值大于預(yù)設(shè)閾值時,則說明此時從節(jié)點1上存儲的模型參數(shù)c已經(jīng)太舊,已經(jīng)不能利用從節(jié)點1上存儲的模型參數(shù)c進(jìn)行模型訓(xùn)練,需要從參數(shù)服務(wù)器中獲取比較新的模型參數(shù)c。

本實施例提供的機(jī)器學(xué)習(xí)方法,從節(jié)點獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)時,所述從節(jié)點首先判斷本地緩存中是否存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù),若存在所述當(dāng)前任務(wù)對應(yīng)的模型參數(shù),則判斷所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值是否小于或者等于預(yù)設(shè)閾值,若進(jìn)一步判斷所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值小于或者等于所述預(yù)設(shè)閾值,則直接從所述本地緩存中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù),若判斷所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值大于所述預(yù)設(shè)閾值,才從所述參數(shù)服務(wù)器中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的新的模型參數(shù),所述新的模型參數(shù)與所述模型參數(shù)的標(biāo)識信息相同。這樣,從節(jié)點可利用本地緩存中存儲的符合條件的模型參數(shù)進(jìn)行模型訓(xùn)練,在獲取模型參數(shù)時可避免頻繁的請求參數(shù)服務(wù)器,可節(jié)約網(wǎng)絡(luò)開銷。

進(jìn)一步地,在本發(fā)明一種可能的實現(xiàn)方式中,若在步驟S201中判斷本地緩存中不存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù),則直接從所述參數(shù)服務(wù)器中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)。

圖4為本發(fā)明實施例三提供的機(jī)器學(xué)習(xí)方法的流程圖。本實施例涉及的是從節(jié)點從所述參數(shù)服務(wù)器中獲取新的模型參數(shù)的具體過程。請參照圖4,在上述實施例的基礎(chǔ)上,步驟S204具體包括:

S301、所述從節(jié)點根據(jù)所述新的模型參數(shù)的標(biāo)識信息、不同的模型參數(shù)的標(biāo)識信息和不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述新的模型參數(shù)的第一子服務(wù)器。

結(jié)合上面的例子,當(dāng)判斷當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與模型參數(shù)c攜帶的迭代輪次值的差值大于預(yù)設(shè)閾值時,此時,從節(jié)點1需要從參數(shù)服務(wù)器上獲取新的模型參數(shù)c。此時,從節(jié)點1首先根據(jù)不同的模型參數(shù)的標(biāo)識信息和不同的子服務(wù)器的對應(yīng)關(guān)系(結(jié)合前面的例子,模型參數(shù)c與子服務(wù)器2對應(yīng)),確定存儲新的模型參數(shù)的第一子服務(wù)器為子服務(wù)器2。

S302、所述從節(jié)點向所述第一子服務(wù)器發(fā)送參數(shù)獲取請求,所述參數(shù)獲取請求用于指示所述第一子服務(wù)器根據(jù)所述新的模型參數(shù)的標(biāo)識信息獲取所述新的模型參數(shù);其中,所述新的模型參數(shù)攜帶的迭代倫次值與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值小于或者等于所述預(yù)設(shè)閾值。

當(dāng)從節(jié)點1確定存儲新的模型參數(shù)c的第一子服務(wù)器為子服務(wù)器2時,就向子服務(wù)器2發(fā)送參數(shù)獲取請求。需要說明的是,參數(shù)獲取請求可以攜帶當(dāng)前訓(xùn)練任務(wù)的迭代輪次值和所述預(yù)設(shè)閾值。

需要說明的是,當(dāng)子服務(wù)器2在Ta時刻接收到從節(jié)點1發(fā)送給其的參數(shù)獲取請求時,此時,子服務(wù)器2首先判斷機(jī)器學(xué)習(xí)系統(tǒng)當(dāng)前(Ta時刻)的迭代輪次值與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值是否小于或者等于所述預(yù)設(shè)閾值;若是,子服務(wù)器2就將子服務(wù)器2上存儲的上述新的模型參數(shù)c發(fā)送給從節(jié)點1。若子服務(wù)器2判斷機(jī)器學(xué)習(xí)系統(tǒng)當(dāng)前(Ta時刻)的迭代輪次值與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值大于所述預(yù)設(shè)閾值,則子服務(wù)器2將所述參數(shù)獲取請求加入到請求隊列,以在機(jī)器學(xué)習(xí)系統(tǒng)的迭代輪次值(機(jī)器學(xué)習(xí)系統(tǒng)在Ta+b時刻的迭代輪次值)與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值小于或者等于所述預(yù)設(shè)閾值,將所述新的模型參數(shù)發(fā)送給從節(jié)點1。這樣,可保證當(dāng)前訓(xùn)練任務(wù)與機(jī)器學(xué)習(xí)系統(tǒng)上執(zhí)行最慢的訓(xùn)練任務(wù)之間的迭代輪次值相差不大,實現(xiàn)全局同步。

需要說明的是,本實施例提供的機(jī)器學(xué)習(xí)方法,當(dāng)子服務(wù)2判斷機(jī)器學(xué)習(xí)系統(tǒng)當(dāng)前(Ta時刻)的迭代輪次值與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值大于所述預(yù)設(shè)閾值,則子服務(wù)器2將所述參數(shù)獲取請求加入到請求隊列,以在機(jī)器學(xué)習(xí)系統(tǒng)的迭代輪次值(機(jī)器學(xué)習(xí)系統(tǒng)在Ta+b時刻的迭代輪次值)與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值小于或者等于所述預(yù)設(shè)閾值,將所述新的模型參數(shù)發(fā)送給從節(jié)點1。此時,在b這一時間段內(nèi)中,由于子服務(wù)器2沒有給從節(jié)點1返回新的模型參數(shù)c,此時,從節(jié)點1上的當(dāng)前訓(xùn)練任務(wù)進(jìn)行等待狀態(tài)。進(jìn)一步地,本發(fā)明提供的機(jī)器學(xué)習(xí)方法,還包括:

判斷所述當(dāng)前訓(xùn)練任務(wù)是否進(jìn)入等待狀態(tài);

若是,則執(zhí)行第二訓(xùn)練任務(wù);其中,第二訓(xùn)練任務(wù)是與所述當(dāng)前訓(xùn)練任務(wù)不同的訓(xùn)練任務(wù)。

例如,結(jié)合上面的例子,當(dāng)從節(jié)點1判斷當(dāng)前任務(wù)(訓(xùn)練任務(wù)1)進(jìn)入等待狀態(tài),就執(zhí)行訓(xùn)練任務(wù)2或訓(xùn)練任務(wù)3。這樣,可充分利用從節(jié)點的計算能力。

S303、所述從節(jié)點接收所述第一子服務(wù)器發(fā)送的所述新的模型參數(shù)。

S304、所述從節(jié)點將所述本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)。

本步驟中,當(dāng)從節(jié)點獲取到新的模型參數(shù)時,就將本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)。例如,將本地緩存中存儲的模型參數(shù)c(模型參數(shù)c攜帶的迭代輪次值與當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值大于所述預(yù)設(shè)閾值)替換為新的模型參數(shù)c(新的模型參數(shù)c攜帶的迭代輪次值與當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值小于或者等于所述預(yù)設(shè)閾值)。

本實施例提供的機(jī)器學(xué)習(xí)方法,在從節(jié)點從所述參數(shù)服務(wù)器中獲取新的模型參數(shù)時,首先根據(jù)所述新的模型參數(shù)的標(biāo)識信息、不同的模型參數(shù)的標(biāo)識信息和不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述新的模型參數(shù)的第一子服務(wù)器,進(jìn)而向所述第一子服務(wù)器發(fā)送參數(shù)獲取請求,所述參數(shù)獲取請求用于指示所述第一子服務(wù)器根據(jù)所述新的模型參數(shù)的標(biāo)識信息獲取所述新的模型參數(shù);其中,所述新的模型參數(shù)攜帶的迭代倫次值與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值小于或者等于所述預(yù)設(shè)閾值,接收所述第一子服務(wù)器發(fā)送的所述新的模型參數(shù)。這樣,通過從節(jié)點與參數(shù)服務(wù)器的協(xié)作,可實現(xiàn)全局同步。

圖5為本發(fā)明實施例四提供的機(jī)器學(xué)習(xí)方法的流程圖。本實施例提供的機(jī)器學(xué)習(xí)方法,新的模型參數(shù)中還攜帶所述第一子服務(wù)器中存儲的所述從節(jié)點的第一版本號,步驟S304之后,所述方法還包括:

S401、所述從節(jié)點判斷本地緩存中是否存儲有所述新的模型參數(shù)的增量信息。

S402、若是,則所述從節(jié)點判斷所述增量信息攜帶的所述從節(jié)點的第二版本號是否大于所述第一版本號。

S403、若所述從節(jié)點判斷所述第二版本號大于所述第一版本號,則所述從節(jié)點根據(jù)所述增量信息更新所述新的模型參數(shù),得到第一模型參數(shù)。

再詳細(xì)介紹上述各個步驟的具體實現(xiàn)過程之前,先介紹一下第一子服務(wù)器中存儲的所述從節(jié)點的第一版本號以及增量信息攜帶的所述從節(jié)點的第二版本號。

具體地,子服務(wù)器中存儲有從節(jié)點的第一版本號,該第一版本號用于表征該子服務(wù)器已經(jīng)接收到上述從節(jié)點上報的模型參數(shù)的增量信息的次數(shù)。例如,T1時刻,子服務(wù)器2中存儲有從節(jié)點1的第一版本號為3,此時,表明子服務(wù)器2已經(jīng)接收到從節(jié)點1上報的三次模型參數(shù)的增量信息。需要說明的是,子服務(wù)器每接收到從節(jié)點1上報的一次模型參數(shù)的增量信息,該子服務(wù)器中存儲的從節(jié)點1的版本號就更新一次。結(jié)合上面的例子,T1時刻,子服務(wù)器2中存儲有從節(jié)點1的第一版本號為3,假設(shè)T1+a時刻,子服務(wù)器2接收到從節(jié)點1上報的模型參數(shù)的增量信息,此時,子服務(wù)器2中存儲的從節(jié)點1的第一版本號更新為4。

進(jìn)一步地,本實施例提供的機(jī)器學(xué)習(xí)方法,在從節(jié)點進(jìn)行模型訓(xùn)練的過程中,若得到某一模型參數(shù)的增量信息,則將該模型參數(shù)的增量信息存儲在本地緩存中,其中模型參數(shù)的增量信息還攜帶從節(jié)點的當(dāng)前版本號(即本實施例所說的第二版本號)。例如,T5時刻,從節(jié)點1當(dāng)前的版本號為1,在從節(jié)點1進(jìn)行模型訓(xùn)練的過程中,得到模型參數(shù)d的增量信息,此時,從節(jié)點1就將模型參數(shù)d的增量信息存儲到本地緩存中,并且,該模型參數(shù)d攜帶的從節(jié)點1的版本號為1。需要說明的是,從節(jié)點1每向參數(shù)服務(wù)器上報一次模型參數(shù)的增量信息,從節(jié)點1的版本號就更新一次。例如,結(jié)合上面的例子,當(dāng)從節(jié)點1將模型參數(shù)d的增量信息存儲到本地緩存之后,從節(jié)點1就將模型參數(shù)d的增量信息上報給參數(shù)服務(wù)器,此時,從節(jié)點1的版本號就更新一次,變?yōu)?。

再介紹了第一子服務(wù)器中存儲的所述從節(jié)點的第一版本號以及增量信息攜帶的所述從節(jié)點的第二版本號之后,下面詳細(xì)介紹一下上面各個步驟的具體實現(xiàn)過程。

具體地,結(jié)合上面的介紹,例如,新的模型參數(shù)攜帶的第一子服務(wù)器中存儲的從節(jié)點1的第一版本號為2(表明子服務(wù)器2接收到從節(jié)點1上報的兩次模型參數(shù)的增量信息)。當(dāng)從節(jié)點1獲取到新的模型參數(shù)c后,就判斷本地緩存中是否存儲有新的模型參數(shù)c的增量信息。例如,本地緩存中存儲有新的模型參數(shù)c的增量信息,且該模型參數(shù)c的增量信息攜帶的第二版本號為3(第二版本號3表明:從節(jié)點1在從節(jié)點1的版本號為3的時候,得到新的模型參數(shù)c的增量信息)。則在步驟S402中,從節(jié)點1進(jìn)一步判斷所述第二版本號大于所述第一版本號,例如,結(jié)合上面的例子,通過判斷確定第二版本號3大于第一版本號2,此時,第二版本號3大于第一版本號2說明,從節(jié)點1在版本號為3的時候向子服務(wù)器2上報的那次模型參數(shù)的增量信息,子服務(wù)器2還沒有收到,因此,子服務(wù)器2也沒有根據(jù)相應(yīng)的增量信息更新相應(yīng)的模型參數(shù),因此,為避免更新丟失,在步驟S403,需要根據(jù)所述增量信息更新所述新的模型參數(shù),得到第一模型參數(shù)。

本實施例提供的機(jī)器學(xué)習(xí)方法,當(dāng)新的模型參數(shù)中還攜帶第一子服務(wù)器中存儲的從節(jié)點的第一版本號時,在所述從節(jié)點將本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)之后,從節(jié)點通過判斷本地緩存中是否存儲有所述新的模型參數(shù)的增量信息,進(jìn)而在判斷本地緩存中存儲有所述新的模型參數(shù)的增量信息之后,繼續(xù)判斷所述增量信息攜帶的所述從節(jié)點的第二版本號是否大于所述第一版本號,以在所述第二版本號大于所述第一版本號,則所述從節(jié)點根據(jù)所述增量信息更新所述新的模型參數(shù),得到第一模型參數(shù)。這樣,可避免更新丟失,進(jìn)而可利用最新的模型參數(shù)訓(xùn)練模型,可提高模型的訓(xùn)練效率。

圖6為本發(fā)明實施例五提供的機(jī)器學(xué)習(xí)方法的流程圖。在上述實施例的基礎(chǔ)上,本實施例提供的機(jī)器學(xué)習(xí)方法,還包括:

S501、在所述從節(jié)點根據(jù)所述第一模型參數(shù)執(zhí)行當(dāng)前訓(xùn)練任務(wù)的過程中,將所得到的第二模型參數(shù)的更新值存儲至到所述本地緩存中,并將所述第二模型參數(shù)的增量信息以及所述從節(jié)點的當(dāng)前版本號存儲到所述本地緩存中。

結(jié)合實施例四中的介紹,當(dāng)從節(jié)點進(jìn)行模型訓(xùn)練的過程中,若得到某一模型參數(shù)的增量信息,則將該模型參數(shù)的增量信息以及從節(jié)點的當(dāng)前版本號存儲在本地緩存中。

S502、所述從節(jié)點將所述第二模型參數(shù)的增量信息上報給所述參數(shù)服務(wù)器。

具體地,從節(jié)點可以在第二模型參數(shù)的增量信息存儲到一定量時,將第二模型參數(shù)的增量信息上報給參數(shù)服務(wù)器,也可以在得到第二模型參數(shù)的增量信息時,就將第二模型參數(shù)的增量信息上報給參數(shù)服務(wù)器。

需要說明的是,當(dāng)參數(shù)服務(wù)器接收到從節(jié)點上報的第二模型參數(shù)的增量信息時,就根據(jù)第二模型參數(shù)的增量信息更新第二模型參數(shù)。

S503、所述從節(jié)點更新所述從節(jié)點的版本號。

具體地,結(jié)合上面的介紹,當(dāng)從節(jié)點向參數(shù)服務(wù)器上報一次模型參數(shù)的增量信息后,從節(jié)點就更新所述從節(jié)點的版本號。

本實施例提供的機(jī)器學(xué)習(xí)方法,從節(jié)點在根據(jù)所述第一模型參數(shù)執(zhí)行當(dāng)前訓(xùn)練任務(wù)的過程中,將所得到的第二模型參數(shù)的更新值存儲至到所述本地緩存中,并將所述第二模型參數(shù)的增量信息存儲到所述本地緩存中。這樣,當(dāng)該從節(jié)點下次需要獲取模型參數(shù)時,可以先從本地緩存中查找獲取,進(jìn)而在本地緩存中存在符合條件的模型參數(shù)值,直接從本地緩存中獲取模型參數(shù)進(jìn)行模型訓(xùn)練,可避免在獲取模型參數(shù)時,頻繁的請求參數(shù)服務(wù)器,可節(jié)約網(wǎng)絡(luò)開銷。

圖7為本發(fā)明實施例六提供的從節(jié)點的結(jié)構(gòu)示意圖。該從節(jié)點可以通過軟件、硬件或者軟硬結(jié)合的方式實現(xiàn),且該從節(jié)點可以是單獨的機(jī)器學(xué)習(xí)裝置,也可以是集成機(jī)器學(xué)習(xí)裝置的其他設(shè)備,例如,可以是集成了機(jī)器學(xué)習(xí)裝置的計算機(jī)。本實施例提供的從節(jié)點,應(yīng)用于如圖1所示的機(jī)器學(xué)習(xí)系統(tǒng),所述機(jī)器學(xué)習(xí)系統(tǒng)包括分布式共享內(nèi)存的參數(shù)服務(wù)器、主節(jié)點和多個所述從節(jié)點;所述參數(shù)服務(wù)器用于存儲全局模型參數(shù)和全局訓(xùn)練數(shù)據(jù);所述主節(jié)點用于根據(jù)全局?jǐn)?shù)據(jù)處理任務(wù),確定每個從節(jié)點的數(shù)據(jù)處理任務(wù)。

如圖7所示,本實施例提供的從節(jié)點,包括:獲取模塊100和處理模塊200,其中,

獲取模塊100,用于從所述參數(shù)服務(wù)器中獲取所述從節(jié)點的數(shù)據(jù)處理任務(wù)對應(yīng)的第一訓(xùn)練數(shù)據(jù)塊;

處理模塊200,用于按照所述從節(jié)點的數(shù)據(jù)處理任務(wù)對所述第一訓(xùn)練數(shù)據(jù)塊進(jìn)行處理,得到第一處理數(shù)據(jù)塊;

獲取模塊100,還用于獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);

處理模塊200,還用于根據(jù)所述第一處理數(shù)據(jù)塊、所述模型參數(shù)和所述當(dāng)前訓(xùn)練任務(wù)訓(xùn)練模型。

本實施例的從節(jié)點,可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

進(jìn)一步地,獲取模塊100,還具體用于在獲取當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)之前,將所述第一處理數(shù)據(jù)塊上報給所述參數(shù)服務(wù)器。

進(jìn)一步地,獲取模塊100,還具體用于根據(jù)所述第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息、不同的訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息與不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述第一訓(xùn)練數(shù)據(jù)塊的第二子服務(wù)器;向所述第二子服務(wù)器發(fā)送數(shù)據(jù)獲取請求;接收所述第二子服務(wù)器發(fā)送的所述第一訓(xùn)練數(shù)據(jù)塊;其中,所述數(shù)據(jù)獲取請求攜帶所述第一訓(xùn)練數(shù)據(jù)塊的標(biāo)識信息。

進(jìn)一步地,獲取模塊100,具體用于判斷本地緩存中是否存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);并在判斷所述本地緩存中存在所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù)時,判斷所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值是否小于或者等于預(yù)設(shè)閾值;并在判斷當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值小于或者等于所述預(yù)設(shè)閾值,從所述本地緩存中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的模型參數(shù);以及在判斷當(dāng)前訓(xùn)練任務(wù)的迭代輪次值與所述模型參數(shù)攜帶的迭代輪次值的差值大于所述預(yù)設(shè)閾值,從所述參數(shù)服務(wù)器中獲取所述當(dāng)前訓(xùn)練任務(wù)對應(yīng)的新的模型參數(shù);其中,所述模型參數(shù)攜帶的迭代倫次值為所述從節(jié)點從所述參數(shù)服務(wù)器獲取到所述模型參數(shù)時機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值;所述機(jī)器學(xué)習(xí)系統(tǒng)的迭代倫次值為同一時刻下所有從節(jié)點的迭代輪次值的最小值;所述從節(jié)點的迭代輪次值為同一時刻下所述從節(jié)點上所有的訓(xùn)練任務(wù)的迭代輪次值的最小值;所述新的模型參數(shù)的標(biāo)識信息與所述模型參數(shù)的標(biāo)識信息相同。

本實施例的從節(jié)點,可以用于執(zhí)行圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

進(jìn)一步地,獲取模塊100,還具體用于根據(jù)所述新的模型參數(shù)的標(biāo)識信息、不同的模型參數(shù)的標(biāo)識信息和不同的子服務(wù)器的對應(yīng)關(guān)系,確定存儲所述新的模型參數(shù)的第一子服務(wù)器;向所述第一子服務(wù)器發(fā)送參數(shù)獲取請求;接收所述第一子服務(wù)器發(fā)送的所述新的模型參數(shù);其中,所述參數(shù)獲取請求用于指示所述第一子服務(wù)器根據(jù)所述新的模型參數(shù)的標(biāo)識信息獲取所述新的模型參數(shù);所述新的模型參數(shù)攜帶的迭代倫次值與所述當(dāng)前訓(xùn)練任務(wù)的迭代輪次值的差值的絕對值小于或者等于所述預(yù)設(shè)閾值。

本實施例的從節(jié)點,可以用于執(zhí)行圖3所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

進(jìn)一步地,所述處理模塊,還具體用于在所述獲取模塊接收到第一子服務(wù)器發(fā)送的所述新的模型參數(shù)之后,將所述本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)。

進(jìn)一步地,所述新的模型參數(shù)中還攜帶所述第一子服務(wù)器中存儲的所述從節(jié)點的第一版本號,處理模塊200,還具體用于在將所述本地緩存中存儲的所述模型參數(shù)更新為所述新的模型參數(shù)之后,判斷所述本地緩存中是否存儲有所述新的模型參數(shù)的增量信息;并在判斷所述本地緩存中存儲有所述新的模型參數(shù)的增量信息時,判斷所述增量信息攜帶的所述從節(jié)點的第二版本號是否大于所述第一版本號;以及在判斷所述第二版本號大于所述第一版本號,根據(jù)所述增量信息更新所述新的模型參數(shù),得到第一模型參數(shù)。

本實施例的從節(jié)點,可以用于執(zhí)行圖4所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

進(jìn)一步地,處理模塊100,還具體用于在根據(jù)所述第一模型參數(shù)執(zhí)行當(dāng)前訓(xùn)練任務(wù)的過程中,將所得到的第二模型參數(shù)的更新值存儲至到所述本地緩存中,并將所述第二模型參數(shù)的增量信息以及所述從節(jié)點的當(dāng)前版本號存儲到所述本地緩存中;

獲取模塊100,還具體用于將所述第二模型參數(shù)的增量信息上報給所述參數(shù)服務(wù)器;

處理模塊200,還具體用于更新所述從節(jié)點的版本號。

本實施例的從節(jié)點,可以用于執(zhí)行圖5所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1