本發(fā)明的示例性實施例總體說來涉及人工智能領(lǐng)域,更具體地說,涉及一種在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的分布式機(jī)器學(xué)習(xí)系統(tǒng)以及一種利用所述分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法。
背景技術(shù):
在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中,數(shù)據(jù)(例如,訓(xùn)練樣本)需要被多次使用,通常,每一次使用全部數(shù)據(jù)的過程可稱為一輪迭代過程,機(jī)器學(xué)習(xí)模型會隨著迭代過程增加而不斷收斂到一個較好的結(jié)果。
在當(dāng)前的分布式機(jī)器學(xué)習(xí)系統(tǒng)中,為了加快收斂速度,并不考慮每一輪迭代過程中數(shù)據(jù)被使用的順序,也就是說,數(shù)據(jù)一般都是按照打亂的順序來使用,這里,除了數(shù)據(jù)自身的順序常常被打亂(例如,洗牌(shuffle))之外,分布式設(shè)計本身也會帶來一定的順序隨機(jī)效果。
然而,數(shù)據(jù)亂序使用會在某種程度上影響機(jī)器學(xué)習(xí)模型的收斂穩(wěn)定性,相應(yīng)地,現(xiàn)有技術(shù)中存在針對分類問題,基于流形判斷分析的全局保序?qū)W習(xí)機(jī),然而,由于分布式機(jī)器學(xué)習(xí)系統(tǒng)中,網(wǎng)絡(luò)傳輸和處理延遲本身都會帶來數(shù)據(jù)順序隨機(jī)的問題,因此難以在分布式機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中有效地控制數(shù)據(jù)的全局使用順序。
技術(shù)實現(xiàn)要素:
本發(fā)明的示例性實施例旨在克服現(xiàn)有的分布式機(jī)器學(xué)習(xí)系統(tǒng)難以在模型的訓(xùn)練過程中有效地控制數(shù)據(jù)的全局使用順序的缺陷。
根據(jù)本發(fā)明的示例性實施例,提供一種在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的分布式機(jī)器學(xué)習(xí)系統(tǒng),包括:多個節(jié)點裝置,其中,每個節(jié)點裝置用于執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理并向服務(wù)器提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果,以及服務(wù)器,用于收集由所述多個節(jié)點裝置提供的訓(xùn)練結(jié)果,并基于收集到的訓(xùn)練結(jié)果來得到機(jī)器學(xué)習(xí)模型,其中,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個保序訓(xùn)練階段,所述多個節(jié)點裝置在執(zhí)行每一輪迭代過程時,針對相同保序訓(xùn)練階段使用同樣的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照保序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果。
可選地,在所述分布式機(jī)器學(xué)習(xí)系統(tǒng)中,每個節(jié)點裝置包括:存儲模塊,用于存儲至少一個數(shù)據(jù)塊,其中,每個數(shù)據(jù)塊包括預(yù)定數(shù)量的數(shù)據(jù);訓(xùn)練模塊,用于使用數(shù)據(jù)塊來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理;數(shù)據(jù)管理模塊,用于針對相同保序訓(xùn)練階段,從存儲模塊讀取同樣的數(shù)據(jù)塊以提供給訓(xùn)練模塊使用;結(jié)果提供模塊,用于按照保序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果。
可選地,所述分布式機(jī)器學(xué)習(xí)系統(tǒng)還包括:數(shù)據(jù)管理服務(wù)器,用于從所述多個節(jié)點裝置的數(shù)據(jù)管理模塊分別接收指示數(shù)據(jù)塊被使用的使用報告,基于接收到的使用報告來產(chǎn)生用于在所述多個節(jié)點裝置之中的卡頓節(jié)點裝置與空閑節(jié)點裝置之間調(diào)度數(shù)據(jù)塊的使用的調(diào)度信號,并將產(chǎn)生的調(diào)度信號發(fā)送到卡頓節(jié)點裝置的數(shù)據(jù)管理模塊和/或空閑節(jié)點裝置的數(shù)據(jù)管理模塊。
可選地,在所述分布式機(jī)器學(xué)習(xí)系統(tǒng)中,所有數(shù)據(jù)被分布地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
可選地,在所述分布式機(jī)器學(xué)習(xí)系統(tǒng)中,所有數(shù)據(jù)被重復(fù)地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供指示卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊的標(biāo)識符,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述標(biāo)識符所指示的未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
根據(jù)本發(fā)明的另一示例性實施例,提供一種在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的分布式機(jī)器學(xué)習(xí)系統(tǒng),包括:多個節(jié)點裝置,其中,每個節(jié)點裝置用于選擇性地按照保序模式或亂序模式來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理并向服務(wù)器提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果,以及服務(wù)器,用于收集由所述多個節(jié)點裝置提供的訓(xùn)練結(jié)果,并基于收集到的訓(xùn)練結(jié)果來得到機(jī)器學(xué)習(xí)模型,其中,在保序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個保序訓(xùn)練階段,所述多個節(jié)點裝置在執(zhí)行每一輪迭代過程時,針對相同保序訓(xùn)練階段使用同樣的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照保序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果;在亂序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個亂序訓(xùn)練階段,所述多個節(jié)點裝置在執(zhí)行每一輪迭代過程時,針對相同亂序訓(xùn)練階段使用不同的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照亂序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果;或者,在亂序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程不按照階段來劃分,所述多個節(jié)點裝置在執(zhí)行每一輪迭代過程時,按照不同順序使用數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照迭代過程向服務(wù)器提供訓(xùn)練結(jié)果。
可選地,在所述分布式機(jī)器學(xué)習(xí)系統(tǒng)中,每個節(jié)點裝置包括:存儲模塊,用于存儲至少一個數(shù)據(jù)塊,其中,每個數(shù)據(jù)塊包括預(yù)定數(shù)量的數(shù)據(jù);訓(xùn)練模塊,用于使用數(shù)據(jù)塊來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理;數(shù)據(jù)管理模塊,用于從存儲模塊數(shù)據(jù)塊以提供給訓(xùn)練模塊使用;結(jié)果提供模塊,用于向服務(wù)器提供訓(xùn)練結(jié)果,其中,在保序模式下,數(shù)據(jù)管理模塊針對相同保序訓(xùn)練階段,從存儲模塊讀取同樣的數(shù)據(jù)塊以提供給訓(xùn)練模塊使用,并且,結(jié)果提供模塊按照保序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果;在亂序模式下,數(shù)據(jù)管理模塊針對相同亂序訓(xùn)練階段,從存儲模塊讀取不同的數(shù)據(jù)塊以提供給訓(xùn)練模塊使用,并且,結(jié)果提供模塊按照亂序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果;或者,在亂序模式下,數(shù)據(jù)管理模塊針對每一輪迭代過程,按照不同順序從存儲模塊讀取數(shù)據(jù)塊以提供給訓(xùn)練模塊使用,并且,結(jié)果提供模塊按照迭代過程向服務(wù)器提供訓(xùn)練結(jié)果。
可選地,所述分布式機(jī)器學(xué)習(xí)系統(tǒng)還包括:數(shù)據(jù)管理服務(wù)器,用于從所述多個節(jié)點裝置的數(shù)據(jù)管理模塊分別接收指示數(shù)據(jù)塊被使用的使用報告,基于接收到的使用報告來產(chǎn)生用于在所述多個節(jié)點裝置之中的卡頓節(jié)點裝置與空閑節(jié)點裝置之間調(diào)度數(shù)據(jù)塊的使用的調(diào)度信號,并將產(chǎn)生的調(diào)度信號發(fā)送到卡頓節(jié)點裝置的數(shù)據(jù)管理模塊和/或空閑節(jié)點裝置的數(shù)據(jù)管理模塊。
可選地,在所述分布式機(jī)器學(xué)習(xí)系統(tǒng)中,所有數(shù)據(jù)被分布地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
可選地,在所述分布式機(jī)器學(xué)習(xí)系統(tǒng)中,所有數(shù)據(jù)被重復(fù)地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供指示卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊的標(biāo)識符,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述標(biāo)識符所指示的未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
可選地,在所述分布式機(jī)器學(xué)習(xí)系統(tǒng)中,存儲模塊存儲能夠并行訪問的至少一個數(shù)據(jù)分片,其中,每個數(shù)據(jù)分片容納至少一個數(shù)據(jù)塊。
根據(jù)本發(fā)明的另一示例性實施例,提供一種利用分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法,其中,所述分布式機(jī)器學(xué)習(xí)系統(tǒng)包括多個節(jié)點裝置和服務(wù)器,所述方法包括:由所述多個節(jié)點裝置之中的每個節(jié)點裝置執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理并向服務(wù)器提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果;以及由服務(wù)器收集由所述多個節(jié)點裝置提供的訓(xùn)練結(jié)果,并基于收集到的訓(xùn)練結(jié)果來得到機(jī)器學(xué)習(xí)模型,其中,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個保序訓(xùn)練階段,所述多個節(jié)點裝置在執(zhí)行每一輪迭代過程時,針對相同保序訓(xùn)練階段使用同樣的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照保序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果。
可選地,在所述方法中,每個節(jié)點裝置包括:存儲模塊,用于存儲至少一個數(shù)據(jù)塊,其中,每個數(shù)據(jù)塊包括預(yù)定數(shù)量的數(shù)據(jù);訓(xùn)練模塊,用于使用數(shù)據(jù)塊來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理;數(shù)據(jù)管理模塊,用于針對相同保序訓(xùn)練階段,從存儲模塊讀取同樣的數(shù)據(jù)塊以提供給訓(xùn)練模塊使用;結(jié)果提供模塊,用于按照保序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果。
可選地,在所述方法中,所述系統(tǒng)還包括數(shù)據(jù)管理服務(wù)器,并且,所述方法還包括:由數(shù)據(jù)管理服務(wù)器從所述多個節(jié)點裝置的數(shù)據(jù)管理模塊分別接收指示數(shù)據(jù)塊被使用的使用報告,基于接收到的使用報告來產(chǎn)生用于在所述多個節(jié)點裝置之中的卡頓節(jié)點裝置與空閑節(jié)點裝置之間調(diào)度數(shù)據(jù)塊的使用的調(diào)度信號,并將產(chǎn)生的調(diào)度信號發(fā)送到卡頓節(jié)點裝置的數(shù)據(jù)管理模塊和/或空閑節(jié)點裝置的數(shù)據(jù)管理模塊。
可選地,在所述方法中,所有數(shù)據(jù)被分布地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
可選地,在所述方法中,所有數(shù)據(jù)被重復(fù)地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供指示卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊的標(biāo)識符,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述標(biāo)識符所指示的未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
根據(jù)本發(fā)明的另一示例性實施例,提供一種利用分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法,其中,所述分布式機(jī)器學(xué)習(xí)系統(tǒng)包括多個節(jié)點裝置和服務(wù)器,所述方法包括:由所述多個節(jié)點裝置之中的每個節(jié)點裝置選擇性地按照保序模式或亂序模式來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理并向服務(wù)器提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果;以及由服務(wù)器收集由所述多個節(jié)點裝置提供的訓(xùn)練結(jié)果,并基于收集到的訓(xùn)練結(jié)果來得到機(jī)器學(xué)習(xí)模型,其中,在保序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個保序訓(xùn)練階段,所述多個節(jié)點裝置在執(zhí)行每一輪迭代過程時,針對相同保序訓(xùn)練階段使用同樣的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照保序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果;在亂序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個亂序訓(xùn)練階段,所述多個節(jié)點裝置在執(zhí)行每一輪迭代過程時,針對相同亂序訓(xùn)練階段使用不同的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照亂序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果;或者,在亂序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程不按照階段來劃分,所述多個節(jié)點裝置在執(zhí)行每一輪迭代過程時,按照不同順序使用數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照迭代過程向服務(wù)器提供訓(xùn)練結(jié)果。
可選地,在所述方法中,每個節(jié)點裝置包括:存儲模塊,用于存儲至少一個數(shù)據(jù)塊,其中,每個數(shù)據(jù)塊包括預(yù)定數(shù)量的數(shù)據(jù);訓(xùn)練模塊,用于使用數(shù)據(jù)塊來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理;數(shù)據(jù)管理模塊,用于從存儲模塊數(shù)據(jù)塊以提供給訓(xùn)練模塊使用;結(jié)果提供模塊,用于向服務(wù)器提供訓(xùn)練結(jié)果,其中,在保序模式下,數(shù)據(jù)管理模塊針對相同保序訓(xùn)練階段,從存儲模塊讀取同樣的數(shù)據(jù)塊以提供給訓(xùn)練模塊使用,并且,結(jié)果提供模塊按照保序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果;在亂序模式下,數(shù)據(jù)管理模塊針對相同亂序訓(xùn)練階段,從存儲模塊讀取不同的數(shù)據(jù)塊以提供給訓(xùn)練模塊使用,并且,結(jié)果提供模塊按照亂序訓(xùn)練階段向服務(wù)器提供訓(xùn)練結(jié)果;或者,在亂序模式下,數(shù)據(jù)管理模塊針對每一輪迭代過程,按照不同順序從存儲模塊讀取數(shù)據(jù)塊以提供給訓(xùn)練模塊使用,并且,結(jié)果提供模塊按照迭代過程向服務(wù)器提供訓(xùn)練結(jié)果。
可選地,在所述方法中,所述系統(tǒng)還包括數(shù)據(jù)管理服務(wù)器,并且,所述方法還包括:由數(shù)據(jù)管理服務(wù)器從所述多個節(jié)點裝置的數(shù)據(jù)管理模塊分別接收指示數(shù)據(jù)塊被使用的使用報告,基于接收到的使用報告來產(chǎn)生用于在所述多個節(jié)點裝置之中的卡頓節(jié)點裝置與空閑節(jié)點裝置之間調(diào)度數(shù)據(jù)塊的使用的調(diào)度信號,并將產(chǎn)生的調(diào)度信號發(fā)送到卡頓節(jié)點裝置的數(shù)據(jù)管理模塊和/或空閑節(jié)點裝置的數(shù)據(jù)管理模塊。
可選地,在所述方法中,所有數(shù)據(jù)被分布地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
可選地,在所述方法中,所有數(shù)據(jù)被重復(fù)地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供指示卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊的標(biāo)識符,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述標(biāo)識符所指示的未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
可選地,在所述方法中,存儲模塊存儲能夠并行訪問的至少一個數(shù)據(jù)分片,其中,每個數(shù)據(jù)分片容納至少一個數(shù)據(jù)塊。
在根據(jù)本發(fā)明示例性實施例的分布式機(jī)器學(xué)習(xí)系統(tǒng)及其方法中,按照保序訓(xùn)練階段對迭代過程進(jìn)行劃分,并且,針對各個迭代過程的對應(yīng)保序訓(xùn)練階段,使用相同的數(shù)據(jù)來進(jìn)行模型訓(xùn)練,從而在一定程度上實現(xiàn)了數(shù)據(jù)使用的全局保序,并且保持了機(jī)器學(xué)習(xí)模型訓(xùn)練的獨立性,可以看出,根據(jù)本發(fā)明示例性實施例的分布式機(jī)器學(xué)習(xí)系統(tǒng)及其方法能夠在保持訓(xùn)練系統(tǒng)通用性的同時,通過數(shù)據(jù)保序使用而改善模型收斂過程。
附圖說明
從下面結(jié)合附圖對本發(fā)明實施例的詳細(xì)描述中,本發(fā)明的這些和/或其他方面和優(yōu)點將變得更加清楚并更容易理解,其中:
圖1示出根據(jù)本發(fā)明的示例性實施例的在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的分布式機(jī)器學(xué)習(xí)系統(tǒng)的框圖;
圖2示出根據(jù)本發(fā)明的示例性實施例的由分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法的流程圖;
圖3示出根據(jù)本發(fā)明的示例性實施例的分布式機(jī)器學(xué)習(xí)系統(tǒng)中的節(jié)點裝置的結(jié)構(gòu)的框圖;
圖4示出根據(jù)本發(fā)明的另一示例性實施例的由分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法的流程圖;
圖5示出根據(jù)本發(fā)明的另一示例性實施例的由分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法的流程圖;
圖6示出根據(jù)本發(fā)明的另一示例性實施例的在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的分布式機(jī)器學(xué)習(xí)系統(tǒng)的框圖;
圖7示出根據(jù)本發(fā)明的示例性實施例的在節(jié)點裝置中存儲數(shù)據(jù)的示意圖;以及
圖8示出根據(jù)本發(fā)明的另一示例性實施例的在節(jié)點裝置中存儲數(shù)據(jù)的示意圖。
具體實施方式
為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,下面結(jié)合附圖和具體實施方式對本發(fā)明的示例性實施例作進(jìn)一步詳細(xì)說明。
機(jī)器學(xué)習(xí)是人工智能研究發(fā)展到一定階段的必然產(chǎn)物,其致力于通過計算的手段,利用經(jīng)驗來改善系統(tǒng)自身的性能。在計算機(jī)系統(tǒng)中,“經(jīng)驗”通常以“數(shù)據(jù)”形式存在,通過機(jī)器學(xué)習(xí)算法,可從數(shù)據(jù)中產(chǎn)生“模型”,也就是說,將經(jīng)驗數(shù)據(jù)提供給機(jī)器學(xué)習(xí)算法,就能基于這些經(jīng)驗數(shù)據(jù)產(chǎn)生模型,在面對新的情況時,模型會提供相應(yīng)的判斷,即,預(yù)測結(jié)果。機(jī)器學(xué)習(xí)可被實現(xiàn)為“有監(jiān)督學(xué)習(xí)”、“無監(jiān)督學(xué)習(xí)”或“半監(jiān)督學(xué)習(xí)”的形式,應(yīng)注意,本發(fā)明的示例性實施例對具體機(jī)器學(xué)習(xí)算法并不進(jìn)行特定限制。此外,還應(yīng)注意,在訓(xùn)練機(jī)器學(xué)習(xí)模型的過程中,還可利用統(tǒng)計算法、業(yè)務(wù)規(guī)則和/或?qū)<抑R等,以進(jìn)一步提高機(jī)器學(xué)習(xí)的效果。
具體說來,本發(fā)明的示例性實施例涉及分布式機(jī)器學(xué)習(xí)系統(tǒng),該分布式機(jī)器學(xué)習(xí)系統(tǒng)可由服務(wù)器和多個節(jié)點裝置組成,其中,多個節(jié)點裝置分布地執(zhí)行機(jī)器學(xué)習(xí)模型訓(xùn)練,各個節(jié)點裝置可將各自的訓(xùn)練運(yùn)算結(jié)果提供給服務(wù)器,以便服務(wù)器得到最終的機(jī)器學(xué)習(xí)模型。應(yīng)注意,這里所說的節(jié)點裝置和服務(wù)器均由其所執(zhí)行的操作來限定,既可指示物理實體,也可指示虛擬實體,例如,節(jié)點裝置可指示實際的計算機(jī)器,也可指示部署在該計算機(jī)器上的邏輯實體,同樣,服務(wù)器既可指示實際的計算機(jī)器,也可作為一個或多個邏輯實體而與節(jié)點裝置部署在同樣或不同的計算機(jī)器上,甚至可以直接由某些節(jié)點裝置來充當(dāng)。
圖1示出根據(jù)本發(fā)明的示例性實施例的在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的分布式機(jī)器學(xué)習(xí)系統(tǒng)的框圖。具體說來,圖1所示的分布式機(jī)器學(xué)習(xí)系統(tǒng)可包括服務(wù)器2000和多個節(jié)點裝置1000(例如,1000-1、1000-2、…、1000-n(其中,n為大于1的整數(shù)))。
具體說來,每個節(jié)點裝置1000用于執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理并向服務(wù)器2000提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果。這里,每個節(jié)點裝置1000可針對各自被分配的一部分?jǐn)?shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)訓(xùn)練處理。
根據(jù)本發(fā)明的示例性實施例,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個保序訓(xùn)練階段,所述多個節(jié)點裝置1000在執(zhí)行每一輪迭代過程時,針對相同保序訓(xùn)練階段使用同樣的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照保序訓(xùn)練階段向服務(wù)器2000提供訓(xùn)練結(jié)果。
如之前所述,為了訓(xùn)練機(jī)器學(xué)習(xí)模型,需要針對所有數(shù)據(jù)進(jìn)行多輪迭代過程以逐漸收斂。這里,可將迭代過程劃分為多個保序訓(xùn)練階段,相應(yīng)地,在每個保序訓(xùn)練階段中,需完成一部分?jǐn)?shù)據(jù)的訓(xùn)練處理。例如,可將一輪迭代過程劃分為n(n為大于1的整數(shù))個保序訓(xùn)練階段,對于每一輪迭代過程的第i個保序訓(xùn)練階段而言,其使用固定的數(shù)據(jù)來進(jìn)行機(jī)器學(xué)習(xí)模型訓(xùn)練,這里,i=1,2,…,n。這些固定的數(shù)據(jù)由所述多個節(jié)點裝置1000分散處理,每個節(jié)點裝置1000在處理完自己的數(shù)據(jù)之后,可將相應(yīng)的訓(xùn)練結(jié)果更新到服務(wù)器2000,這里,節(jié)點裝置1000可分別或統(tǒng)一地向服務(wù)器2000提供各自的訓(xùn)練結(jié)果。
可以看出,根據(jù)本發(fā)明的示例性實施例,通過在每一輪迭代過程的對應(yīng)保序訓(xùn)練階段中均配置同樣的數(shù)據(jù)來進(jìn)行訓(xùn)練,可使得多輪迭代過程的全局?jǐn)?shù)據(jù)使用順序在一定程度上保持穩(wěn)定。由此,可在分布式機(jī)器學(xué)習(xí)系統(tǒng)中實現(xiàn)一定程度的數(shù)據(jù)使用全局保序,而對于每一保序訓(xùn)練階段內(nèi)部的數(shù)據(jù)使用順序,本發(fā)明的示例性實施例不做特別限定。
相應(yīng)地,服務(wù)器2000用于收集由所述多個節(jié)點裝置1000提供的訓(xùn)練結(jié)果,并基于收集到的訓(xùn)練結(jié)果來得到機(jī)器學(xué)習(xí)模型。這里,作為示例,服務(wù)器2000可指示本領(lǐng)域技術(shù)人員已知的分布式機(jī)器學(xué)習(xí)系統(tǒng)中的參數(shù)服務(wù)器。這里,多個節(jié)點裝置1000可分別在每一輪迭代過程中按照保序訓(xùn)練階段向服務(wù)器2000提供訓(xùn)練結(jié)果,相應(yīng)地,服務(wù)器2000可在每個保序訓(xùn)練階段完成相應(yīng)的參數(shù)更新,并在多輪迭代過程之后得到最終的機(jī)器學(xué)習(xí)模型。
圖2示出根據(jù)本發(fā)明的示例性實施例的由分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法的流程圖。所述方法涉及的步驟可由圖1所示的分布式機(jī)器學(xué)習(xí)系統(tǒng)中的節(jié)點裝置1000和/或服務(wù)器2000來執(zhí)行,例如,可由節(jié)點裝置1000和/或服務(wù)器2000根據(jù)預(yù)先設(shè)定的配置來執(zhí)行。
參照圖2,在步驟s110,將與所有數(shù)據(jù)對應(yīng)的一輪迭代過程劃分為多個保序訓(xùn)練階段,這里,在每個保序訓(xùn)練階段,將使用固定的數(shù)據(jù)來進(jìn)行模型訓(xùn)練。也就是說,每一輪迭代過程的對應(yīng)保序訓(xùn)練階段將使用同樣的數(shù)據(jù)來進(jìn)行模型訓(xùn)練??蛇x地,在步驟s110之前,可在步驟s100針對所有數(shù)據(jù)執(zhí)行隨機(jī)化處理,以打亂原始的數(shù)據(jù)順序。
在步驟s120,準(zhǔn)備開始新一輪的迭代過程。例如,服務(wù)器2000和/或多個節(jié)點裝置1000可分別完成相應(yīng)的初始化,并實施相應(yīng)的配置。
接下來,在步驟s130,可由多個節(jié)點裝置1000按照保序訓(xùn)練階段來使用數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理。具體說來,針對當(dāng)前保序訓(xùn)練階段,多個節(jié)點裝置1000分別使用與當(dāng)前保序訓(xùn)練階段相應(yīng)的固定數(shù)據(jù)之中的一部分來執(zhí)行模型訓(xùn)練。
在完成當(dāng)前保序訓(xùn)練階段的數(shù)據(jù)訓(xùn)練之后,在步驟s140,由多個節(jié)點裝置1000向服務(wù)器2000提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果。這里,多個節(jié)點裝置1000可分別或統(tǒng)一地向服務(wù)器2000提供訓(xùn)練結(jié)果。服務(wù)器2000可基于在步驟s140獲得的訓(xùn)練結(jié)果來完成模型的參數(shù)更新等處理。
接下來,在步驟s150,確定當(dāng)前保序訓(xùn)練階段是否為最后的保序訓(xùn)練階段。如果在步驟s150確定當(dāng)前完成的保序訓(xùn)練階段已經(jīng)是最后的保序訓(xùn)練階段,則在步驟s170,確定當(dāng)前迭代過程是否已經(jīng)是最后一輪迭代過程,如果是最后一輪迭代過程,則服務(wù)器2000可相應(yīng)地得到訓(xùn)練完畢的機(jī)器學(xué)習(xí)模型。如果后續(xù)還有迭代過程,則所述方法返回步驟s120以繼續(xù)下一輪的模型訓(xùn)練。
如果在步驟s150確定當(dāng)前完成的保序訓(xùn)練階段并非最后的保序訓(xùn)練階段,則在步驟s160,所述多個節(jié)點裝置1000開始準(zhǔn)備下一保序訓(xùn)練階段的模型訓(xùn)練處理。然后,所述方法返回步驟s130以針對下一保序訓(xùn)練階段來執(zhí)行相關(guān)數(shù)據(jù)的模型訓(xùn)練處理。這里,所述多個節(jié)點裝置1000分別使用與所述下一保序訓(xùn)練階段相應(yīng)的固定數(shù)據(jù)之中的一部分來執(zhí)行模型訓(xùn)練。
圖3示出根據(jù)本發(fā)明的示例性實施例的分布式機(jī)器學(xué)習(xí)系統(tǒng)中的節(jié)點裝置的結(jié)構(gòu)的框圖。參照圖3,節(jié)點裝置可包括存儲模塊1100、數(shù)據(jù)管理模塊1200、訓(xùn)練模塊1300和結(jié)果提供模塊1400。
具體說來,存儲模塊1100用于存儲至少一個數(shù)據(jù)塊,其中,每個數(shù)據(jù)塊包括預(yù)定數(shù)量的數(shù)據(jù)。這里,存儲模塊1100以數(shù)據(jù)塊為單位來存儲數(shù)據(jù),相應(yīng)地,后續(xù)對數(shù)據(jù)的讀取、使用和處理等也可基于數(shù)據(jù)塊來進(jìn)行。作為示例,存儲模塊1100可將數(shù)據(jù)塊存儲在數(shù)據(jù)分片中,這里,數(shù)據(jù)分片可指示文件、內(nèi)存片段等。
訓(xùn)練模塊1300用于使用數(shù)據(jù)塊來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理。具體說來,在分布式機(jī)器學(xué)習(xí)系統(tǒng)中,每個節(jié)點裝置1000的訓(xùn)練模塊1300僅負(fù)責(zé)處理一部分?jǐn)?shù)據(jù),各個節(jié)點裝置1000可并行地分別進(jìn)行處理,從而提高整個系統(tǒng)的處理速度。作為示例,訓(xùn)練模塊1300可利用多個編程來針對不同的數(shù)據(jù)塊同時執(zhí)行模型訓(xùn)練。
數(shù)據(jù)管理模塊1200用于針對相同保序訓(xùn)練階段,從存儲模塊1100讀取同樣的數(shù)據(jù)塊以提供給訓(xùn)練模塊1300使用。根據(jù)本發(fā)明的示例性實施例,數(shù)據(jù)管理模塊1200用于在各個節(jié)點裝置1000中控制每一保序訓(xùn)練階段中將使用的固定數(shù)據(jù),從而在一定程度上實現(xiàn)數(shù)據(jù)的全局保序使用,也就是說,從迭代過程整體看來,數(shù)據(jù)并非無序地被使用,而是保持了以保序訓(xùn)練階段為單位的數(shù)據(jù)一致性。具體說來,針對每個保序訓(xùn)練階段,數(shù)據(jù)管理模塊1200從存儲模塊1100讀取相應(yīng)的指定數(shù)據(jù)塊,并把讀取的數(shù)據(jù)塊提供給訓(xùn)練模塊1300。
結(jié)果提供模塊1400用于按照保序訓(xùn)練階段向服務(wù)器2000提供訓(xùn)練結(jié)果。如上所述,在分布式機(jī)器學(xué)習(xí)系統(tǒng)中,由服務(wù)器2000(例如,參數(shù)服務(wù)器)負(fù)責(zé)收集各個節(jié)點裝置1000的訓(xùn)練結(jié)果。相應(yīng)地,結(jié)果提供模塊1400可在每個保序訓(xùn)練階段的訓(xùn)練運(yùn)算完成之后,立即將得到的訓(xùn)練結(jié)果發(fā)送到服務(wù)器2000;或者,結(jié)果提供模塊1400可在每個保序訓(xùn)練階段的訓(xùn)練運(yùn)算完成之后,根據(jù)用于同步訓(xùn)練結(jié)果的指示信號將訓(xùn)練結(jié)果發(fā)送到服務(wù)器2000。
以上結(jié)合圖1到圖3描述了根據(jù)本發(fā)明示例性實施例在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)保序使用的示例。進(jìn)一步地,可考慮不同類型的機(jī)器學(xué)習(xí)模型對數(shù)據(jù)保序使用的不同需求,將根據(jù)本發(fā)明示例性實施例的模型訓(xùn)練方案設(shè)計為可選擇性地保序使用數(shù)據(jù)或亂序使用數(shù)據(jù)。這里,可通過專門的配置來確定數(shù)據(jù)的使用順序,從而保持了機(jī)器學(xué)習(xí)模型訓(xùn)練過程的獨立性而不需要在訓(xùn)練過程中附加特殊的加載或處理。
具體說來,在圖1所示的分布式機(jī)器學(xué)習(xí)系統(tǒng)中,每個節(jié)點裝置1000用于選擇性地按照保序模式或亂序模式來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理并向服務(wù)器2000提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果,服務(wù)器2000收集由所述多個節(jié)點裝置1000提供的訓(xùn)練結(jié)果,并基于收集到的訓(xùn)練結(jié)果來得到機(jī)器學(xué)習(xí)模型。具體說來,在保序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個保序訓(xùn)練階段,所述多個節(jié)點裝置1000在執(zhí)行每一輪迭代過程時,針對相同保序訓(xùn)練階段使用同樣的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照保序訓(xùn)練階段向服務(wù)器2000提供訓(xùn)練結(jié)果;在亂序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程被劃分為多個亂序訓(xùn)練階段,所述多個節(jié)點裝置1000在執(zhí)行每一輪迭代過程時,針對相同亂序訓(xùn)練階段使用不同的數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照亂序訓(xùn)練階段向服務(wù)器2000提供訓(xùn)練結(jié)果;或者,在亂序模式下,與所有數(shù)據(jù)對應(yīng)的一輪迭代過程不按照階段來劃分,所述多個節(jié)點裝置1000在執(zhí)行每一輪迭代過程時,按照不同順序使用數(shù)據(jù)來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理,并按照迭代過程向服務(wù)器2000提供訓(xùn)練結(jié)果。
相應(yīng)地,在圖3所示的節(jié)點裝置1000中,存儲模塊1100用于存儲至少一個數(shù)據(jù)塊,其中,每個數(shù)據(jù)塊包括預(yù)定數(shù)量的數(shù)據(jù);訓(xùn)練模塊1300用于使用數(shù)據(jù)塊來執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理;數(shù)據(jù)管理模塊1200用于從存儲模塊數(shù)據(jù)塊以提供給訓(xùn)練模塊使用;結(jié)果提供模塊1400用于向服務(wù)器2000提供訓(xùn)練結(jié)果,其中,在保序模式下,數(shù)據(jù)管理模塊1200針對相同保序訓(xùn)練階段,從存儲模塊1100讀取同樣的數(shù)據(jù)塊以提供給訓(xùn)練模塊1300使用,并且,結(jié)果提供模塊1400按照保序訓(xùn)練階段向服務(wù)器2000提供訓(xùn)練結(jié)果;在亂序模式下,數(shù)據(jù)管理模塊1200針對相同亂序訓(xùn)練階段,從存儲模塊1100讀取不同的數(shù)據(jù)塊以提供給訓(xùn)練模塊1300使用,并且,結(jié)果提供模塊1400按照亂序訓(xùn)練階段向服務(wù)器2000提供訓(xùn)練結(jié)果;或者,在亂序模式下,數(shù)據(jù)管理模塊1200針對每一輪迭代過程,按照不同順序從存儲模塊1100讀取數(shù)據(jù)塊以提供給訓(xùn)練模塊1300使用,并且,結(jié)果提供模塊1400按照迭代過程向服務(wù)器提供訓(xùn)練結(jié)果。
圖4示出根據(jù)本發(fā)明的另一示例性實施例的由分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法的流程圖。在圖4所示的方法中,數(shù)據(jù)在每輪迭代過程中使用的順序不具有任何程度上的一致性,而亂序訓(xùn)練階段的劃分僅僅是為了節(jié)點裝置1000設(shè)置能夠階段性地向服務(wù)器2000提供訓(xùn)練結(jié)果。所述方法涉及的步驟可由圖1所示的分布式機(jī)器學(xué)習(xí)系統(tǒng)中的節(jié)點裝置1000和/或服務(wù)器2000來執(zhí)行,例如,可由節(jié)點裝置1000和/或服務(wù)器2000根據(jù)預(yù)先設(shè)定的配置來執(zhí)行。
參照圖4,在步驟s111,將與所有數(shù)據(jù)對應(yīng)的一輪迭代過程劃分為多個亂序訓(xùn)練階段,這里,在不同迭代過程的對應(yīng)亂序訓(xùn)練階段,可使用不同的數(shù)據(jù)來進(jìn)行模型訓(xùn)練。也就是說,各個迭代過程中數(shù)據(jù)的整體使用順序完全相同,即,在數(shù)據(jù)無序使用的情況下來進(jìn)行模型訓(xùn)練??蛇x地,在步驟s111之前,可在步驟s100針對所有數(shù)據(jù)執(zhí)行隨機(jī)化處理,以打亂原始的數(shù)據(jù)順序。
在步驟s120,準(zhǔn)備開始新一輪的迭代過程。例如,服務(wù)器2000和/或多個節(jié)點裝置1000可分別完成相應(yīng)的初始化,并實施相應(yīng)的配置。
接下來,在步驟s131,可由多個節(jié)點裝置1000按照亂序訓(xùn)練階段來使用數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理。具體說來,針對當(dāng)前亂序訓(xùn)練階段,多個節(jié)點裝置1000分別使用一部分?jǐn)?shù)據(jù)來執(zhí)行模型訓(xùn)練,這里,各個節(jié)點裝置1000處理的數(shù)據(jù)具有隨機(jī)性或其他方式的亂序性,也就是說,不同迭代過程中的對應(yīng)亂序訓(xùn)練階段可使用不同的數(shù)據(jù)。
在完成當(dāng)前亂序訓(xùn)練階段的數(shù)據(jù)訓(xùn)練之后,在步驟s140,由多個節(jié)點裝置1000向服務(wù)器2000提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果。這里,多個節(jié)點裝置1000可分別或統(tǒng)一地向服務(wù)器2000提供訓(xùn)練結(jié)果。服務(wù)器2000可基于在步驟s140獲得的訓(xùn)練結(jié)果來完成模型的參數(shù)更新等處理。
接下來,在步驟s150,確定當(dāng)前亂序訓(xùn)練階段是否為最后的亂序訓(xùn)練階段。如果在步驟s150確定當(dāng)前完成的亂序訓(xùn)練階段已經(jīng)是最后的亂序訓(xùn)練階段,則在步驟s170,確定當(dāng)前迭代過程是否已經(jīng)是最后一輪迭代過程,如果是最后一輪迭代過程,則服務(wù)器2000可相應(yīng)地得到訓(xùn)練完畢的機(jī)器學(xué)習(xí)模型。如果后續(xù)還有迭代過程,則所述方法返回步驟s120以繼續(xù)下一輪的模型訓(xùn)練。
如果在步驟s150確定當(dāng)前完成的亂序訓(xùn)練階段并非最后的亂序訓(xùn)練階段,則在步驟s161,所述多個節(jié)點裝置1000開始準(zhǔn)備下一亂序訓(xùn)練階段的模型訓(xùn)練處理。然后,所述方法返回步驟s131以針對下一亂序訓(xùn)練階段來執(zhí)行相關(guān)數(shù)據(jù)的模型訓(xùn)練處理。這里,所述多個節(jié)點裝置1000繼續(xù)使用一部分亂序數(shù)據(jù)來執(zhí)行模型訓(xùn)練。
圖5示出根據(jù)本發(fā)明的另一示例性實施例的由分布式機(jī)器學(xué)習(xí)系統(tǒng)在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的方法的流程圖。在圖5所示的方法中,迭代過程不會劃分為任何訓(xùn)練階段,并且,數(shù)據(jù)在每輪迭代過程中將按照不同的順序來使用,相應(yīng)地,在每一輪迭代過程的訓(xùn)練完成之后,節(jié)點裝置1000向服務(wù)器2000提供訓(xùn)練結(jié)果。所述方法涉及的步驟可由圖1所示的分布式機(jī)器學(xué)習(xí)系統(tǒng)中的節(jié)點裝置1000和/或服務(wù)器2000來執(zhí)行,例如,可由節(jié)點裝置1000和/或服務(wù)器2000根據(jù)預(yù)先設(shè)定的配置來執(zhí)行。
參照圖5,在步驟s120,準(zhǔn)備開始新一輪的迭代過程。例如,服務(wù)器2000和多個節(jié)點裝置1000可分別完成相應(yīng)的初始化,并實施相應(yīng)的配置。可選地,在步驟s120之前,可在步驟s100針對所有數(shù)據(jù)執(zhí)行隨機(jī)化處理,以打亂原始的數(shù)據(jù)順序。
接下來,在步驟s132,可由多個節(jié)點裝置1000按照不同的順序來使用數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理。具體說來,針對當(dāng)前迭代過程,多個節(jié)點裝置1000分別使用一部分?jǐn)?shù)據(jù)來執(zhí)行模型訓(xùn)練,這里,各個節(jié)點裝置1000處理的數(shù)據(jù)具有隨機(jī)性或其他方式的亂序性。在完成當(dāng)前迭代過程的數(shù)據(jù)訓(xùn)練之后,在步驟s140,由多個節(jié)點裝置1000向服務(wù)器2000提供通過執(zhí)行機(jī)器學(xué)習(xí)分布式訓(xùn)練處理所獲得的訓(xùn)練結(jié)果。這里,多個節(jié)點裝置1000可分別或統(tǒng)一地向服務(wù)器2000提供訓(xùn)練結(jié)果。
服務(wù)器2000可基于在步驟s140獲得的訓(xùn)練結(jié)果來完成模型的參數(shù)更新等處理。接下來,在步驟s170,確定當(dāng)前迭代過程是否已經(jīng)是最后一輪迭代過程,如果是最后一輪迭代過程,則服務(wù)器2000可相應(yīng)地得到訓(xùn)練完畢的機(jī)器學(xué)習(xí)模型。如果后續(xù)還有迭代過程,則所述方法返回步驟s120以繼續(xù)下一輪的模型訓(xùn)練。
以上參照圖2、圖4和圖5描述了根據(jù)本發(fā)明示例性實施例在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中按照保序或亂序來使用數(shù)據(jù)的示例,然而應(yīng)注意,這里的保序或亂序使用方式可抽象為相應(yīng)的配置項,相應(yīng)地,節(jié)點裝置1000或服務(wù)器2000可按照期望的配置來選擇性地按照保序或亂序方式來使用數(shù)據(jù)進(jìn)行模型訓(xùn)練。
根據(jù)本發(fā)明的示例性實施例,可進(jìn)一步協(xié)調(diào)多個節(jié)點裝置1000之間的數(shù)據(jù)使用。圖6示出根據(jù)本發(fā)明的另一示例性實施例的在機(jī)器學(xué)習(xí)模型的訓(xùn)練過程中控制數(shù)據(jù)使用順序的分布式機(jī)器學(xué)習(xí)系統(tǒng)的框圖。
在圖6所示的分布式機(jī)器學(xué)習(xí)系統(tǒng)中,多個節(jié)點裝置1000和服務(wù)器2000可按照保序和/或亂序方式來使用數(shù)據(jù)以完成分布式機(jī)器學(xué)習(xí)模型訓(xùn)練。其中,每個節(jié)點裝置1000包括數(shù)據(jù)管理模塊1200,例如,該數(shù)據(jù)管理模塊1200可按照配置的方式讀取存儲的數(shù)據(jù)以進(jìn)行后續(xù)的模型訓(xùn)練處理。
此外,所述分布式機(jī)器學(xué)習(xí)系統(tǒng)還包括數(shù)據(jù)管理服務(wù)器3000,用于從所述多個節(jié)點裝置1000的數(shù)據(jù)管理模塊1200分別接收指示數(shù)據(jù)塊被使用的使用報告,基于接收到的使用報告來產(chǎn)生用于在所述多個節(jié)點裝置1000之中的卡頓節(jié)點裝置與空閑節(jié)點裝置之間調(diào)度數(shù)據(jù)塊的使用的調(diào)度信號,并將產(chǎn)生的調(diào)度信號發(fā)送到卡頓節(jié)點裝置的數(shù)據(jù)管理模塊和/或空閑節(jié)點裝置的數(shù)據(jù)管理模塊。
具體說來,在分布式機(jī)器學(xué)習(xí)系統(tǒng)中,每個節(jié)點裝置1000針對各自的數(shù)據(jù)執(zhí)行相應(yīng)的訓(xùn)練處理。然而,每個節(jié)點裝置1000實際的處理速度卻并非完全一致,常常在執(zhí)行分布式運(yùn)算時,有些節(jié)點裝置1000已經(jīng)完成了自己全部的數(shù)據(jù)處理而成為了空閑節(jié)點裝置,但有些節(jié)點裝置1000卻仍停留在某個數(shù)據(jù)的處理而成為卡頓節(jié)點裝置。這種處理速度的不一致既會體現(xiàn)在某個訓(xùn)練階段,也會體現(xiàn)在整個迭代過程。
為此,根據(jù)本發(fā)明的示例性實施例,可在分布式機(jī)器學(xué)習(xí)系統(tǒng)中額外設(shè)置數(shù)據(jù)管理服務(wù)器3000,該數(shù)據(jù)管理服務(wù)器3000由其所執(zhí)行的操作來限定,既可指示物理實體,也可指示虛擬實體,例如,數(shù)據(jù)管理服務(wù)器3000可指示實際的計算機(jī)器,也可指示部署在該計算機(jī)器上的邏輯實體。
相應(yīng)地,每個節(jié)點裝置1000的數(shù)據(jù)管理模塊1200可用于向數(shù)據(jù)管理服務(wù)器3000匯報所述每個節(jié)點裝置1000的數(shù)據(jù)使用進(jìn)展情況。例如,每當(dāng)數(shù)據(jù)塊在節(jié)點裝置1000中被使用時,該節(jié)點裝置1000的數(shù)據(jù)管理模塊1200可向數(shù)據(jù)管理服務(wù)器3000發(fā)送指示該數(shù)據(jù)塊已經(jīng)被使用的使用報告,數(shù)據(jù)管理服務(wù)器3000在接收到來自各個節(jié)點裝置1000的使用報告時,可獲知哪些數(shù)據(jù)塊已經(jīng)被使用從而完成了訓(xùn)練運(yùn)算。另一方面,數(shù)據(jù)管理服務(wù)器3000可基于接收到的使用報告來確定哪些數(shù)據(jù)尚未使用,例如,負(fù)責(zé)處理這些數(shù)據(jù)的節(jié)點裝置1000出現(xiàn)了卡頓情況。為此,數(shù)據(jù)管理服務(wù)器3000可產(chǎn)生用于在卡頓節(jié)點裝置與空閑節(jié)點裝置之間調(diào)度數(shù)據(jù)塊的使用的調(diào)度信號,該調(diào)度信號可用于指示由空閑節(jié)點裝置來處理原本應(yīng)該由卡頓節(jié)點裝置處理的數(shù)據(jù)。
作為示例,在調(diào)度信號指示數(shù)據(jù)塊的實際傳輸?shù)那闆r下,數(shù)據(jù)管理服務(wù)器3000可將調(diào)度信號發(fā)送到卡頓節(jié)點裝置的數(shù)據(jù)管理模塊;或者,數(shù)據(jù)管理服務(wù)器3000可將調(diào)度信號發(fā)送到空閑節(jié)點裝置的數(shù)據(jù)管理模塊;或者,數(shù)據(jù)管理服務(wù)器3000可將調(diào)度信號發(fā)送到卡頓節(jié)點裝置和空閑節(jié)點裝置兩者的數(shù)據(jù)管理模塊。這里,調(diào)度信號可包括將被傳輸?shù)奈词褂脭?shù)據(jù)的標(biāo)識符以及相關(guān)的卡頓節(jié)點裝置和/或空閑節(jié)點裝置的標(biāo)識符等信息。接收到調(diào)度信號的相應(yīng)節(jié)點裝置的數(shù)據(jù)管理模塊可相應(yīng)地完成數(shù)據(jù)塊從卡頓節(jié)點到空閑節(jié)點的傳輸,使得原本該由卡頓節(jié)點處理的數(shù)據(jù)塊改為由空閑節(jié)點處理。節(jié)點裝置1000的數(shù)據(jù)管理模塊1200中可設(shè)置有專門負(fù)責(zé)傳送未使用數(shù)據(jù)塊的線程,以專門監(jiān)聽來自其他節(jié)點裝置的未使用數(shù)據(jù)塊或?qū)⑽词褂脭?shù)據(jù)塊發(fā)送到指定的其他節(jié)點裝置。
例如,在根據(jù)本發(fā)明示例性實施例的分布式機(jī)器學(xué)習(xí)系統(tǒng)中,所有數(shù)據(jù)被分布地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
圖7示出根據(jù)本發(fā)明的示例性實施例的在節(jié)點裝置1000中存儲數(shù)據(jù)的示意圖。參照圖7,作為示例,分布式機(jī)器學(xué)習(xí)系統(tǒng)可包括3個節(jié)點裝置1000-1、1000-2和1000-3,并且,每輪迭代過程共有180個數(shù)據(jù)樣本需要處理,這180個數(shù)據(jù)樣本形成18個數(shù)據(jù)塊(每個數(shù)據(jù)塊包括10個數(shù)據(jù)樣本),分別存儲在上述三個節(jié)點裝置的存儲模塊中。作為示例,存儲模塊可存儲能夠并行訪問的至少一個(例如,2個)數(shù)據(jù)分片,其中,每個數(shù)據(jù)分片容納至少一個(例如,3個)數(shù)據(jù)塊。假設(shè)該迭代過程被劃分為3個保序訓(xùn)練階段,每個保序訓(xùn)練階段需要處理固定的數(shù)據(jù)。例如,在第一保序訓(xùn)練階段,各節(jié)點裝置1000需要處理第一數(shù)據(jù)分片中的第一個數(shù)據(jù)塊以及第二數(shù)據(jù)分片中的第一個數(shù)據(jù)塊;在第二保序訓(xùn)練階段,各節(jié)點裝置1000需要處理第一數(shù)據(jù)分片中的第二個數(shù)據(jù)塊以及第二數(shù)據(jù)分片中的第二個數(shù)據(jù)塊;在第三保序訓(xùn)練階段,各節(jié)點裝置1000需要處理第一數(shù)據(jù)分片中的第三個數(shù)據(jù)塊以及第二數(shù)據(jù)分片中的第三個數(shù)據(jù)塊。這里,由于存儲模塊中的各個數(shù)據(jù)分片可以被并行訪問,因此上述處理方式可提高處理速度。
假設(shè)節(jié)點裝置1000-1已經(jīng)處理完第一保序訓(xùn)練階段應(yīng)處理的2個數(shù)據(jù)塊而節(jié)點裝置1000-2卡頓在其應(yīng)該處理的2個數(shù)據(jù)塊之中的1個數(shù)據(jù)塊(例如,第一數(shù)據(jù)分片中的第一個數(shù)據(jù)塊),由于當(dāng)每個數(shù)據(jù)塊被使用時,相應(yīng)的節(jié)點裝置1000可經(jīng)過其數(shù)據(jù)管理模塊1200向數(shù)據(jù)管理服務(wù)器3000匯報該數(shù)據(jù)塊的使用情況,因此,數(shù)據(jù)管理服務(wù)器3000可形成用于將節(jié)點裝置1000-2的第二數(shù)據(jù)分片中的第一個數(shù)據(jù)塊(即,未使用的數(shù)據(jù)塊)傳輸?shù)焦?jié)點裝置1000-1來進(jìn)行處理的調(diào)度信號,并把該調(diào)度信號發(fā)送到相應(yīng)的節(jié)點裝置1000-1和/或節(jié)點裝置1000-2。這里,數(shù)據(jù)管理服務(wù)器3000通過調(diào)度信號在節(jié)點裝置1000-1與節(jié)點裝置1000-2之間傳輸數(shù)據(jù)塊的具體方式不受限制,本領(lǐng)域技術(shù)人員可在調(diào)度信號中額外包括任何適當(dāng)?shù)墓?jié)點裝置標(biāo)識符并將調(diào)度信號發(fā)送到相應(yīng)的節(jié)點裝置。
此外,應(yīng)理解,以上雖然以保序訓(xùn)練階段為例描述了數(shù)據(jù)塊的調(diào)度,但本發(fā)明的示例性實施例并不受限于此,而是可以同樣地應(yīng)用于亂序訓(xùn)練階段或整個迭代過程。
作為另一示例,在調(diào)度信號僅指示數(shù)據(jù)塊標(biāo)識符的傳輸(而不需要傳輸數(shù)據(jù)塊)的情況下,數(shù)據(jù)管理服務(wù)器3000可將調(diào)度信號發(fā)送到卡頓節(jié)點裝置的數(shù)據(jù)管理模塊;或者,數(shù)據(jù)管理服務(wù)器3000可將調(diào)度信號發(fā)送到空閑節(jié)點裝置的數(shù)據(jù)管理模塊;或者,數(shù)據(jù)管理服務(wù)器3000可將調(diào)度信號發(fā)送到卡頓節(jié)點裝置和空閑節(jié)點裝置兩者的數(shù)據(jù)管理模塊。這里,調(diào)度信號可包括將被傳輸?shù)奈词褂脭?shù)據(jù)的標(biāo)識符以及相關(guān)的節(jié)點裝置的標(biāo)識符等信息。相應(yīng)節(jié)點裝置1000的數(shù)據(jù)管理模塊1200可根據(jù)接收到的調(diào)度信號來啟動/停止對相應(yīng)數(shù)據(jù)塊的處理,使得原本該由卡頓節(jié)點處理的數(shù)據(jù)塊改為由空閑節(jié)點處理。
例如,在根據(jù)本發(fā)明示例性實施例的分布式機(jī)器學(xué)習(xí)系統(tǒng)中,所有數(shù)據(jù)被重復(fù)地存儲在所述多個節(jié)點裝置中,并且,所述調(diào)度信號用于控制向空閑節(jié)點裝置的數(shù)據(jù)管理模塊提供指示卡頓節(jié)點裝置的未使用的數(shù)據(jù)塊的標(biāo)識符,使得空閑節(jié)點裝置的數(shù)據(jù)管理模塊將所述標(biāo)識符所指示的未使用的數(shù)據(jù)塊提供給空閑節(jié)點裝置的訓(xùn)練模塊使用。
圖8示出根據(jù)本發(fā)明的另一示例性實施例的在節(jié)點裝置1000中存儲數(shù)據(jù)的示意圖。參照圖8,作為示例,分布式機(jī)器學(xué)習(xí)系統(tǒng)可包括3個節(jié)點裝置1000-1、1000-2和1000-3,并且,每輪迭代過程共有180個數(shù)據(jù)樣本需要處理,這180個數(shù)據(jù)樣本形成18個數(shù)據(jù)塊(每個數(shù)據(jù)塊包括10個數(shù)據(jù)樣本),重復(fù)地存儲在上述三個節(jié)點裝置的存儲模塊中,使得每個節(jié)點裝置都存儲了全部的180個數(shù)據(jù)樣本。作為示例,存儲模塊可存儲能夠并行訪問的至少一個(例如,6個)數(shù)據(jù)分片,其中,每個數(shù)據(jù)分片容納至少一個(例如,3個)數(shù)據(jù)塊。假設(shè)該迭代過程被劃分為3個保序訓(xùn)練階段,每個保序訓(xùn)練階段需要處理固定的數(shù)據(jù)。例如,在第一保序訓(xùn)練階段,節(jié)點裝置1000-1需要處理第一數(shù)據(jù)分片中的第一個數(shù)據(jù)塊以及第二數(shù)據(jù)分片中的第一個數(shù)據(jù)塊;節(jié)點裝置1000-2需要處理第三數(shù)據(jù)分片中的第一個數(shù)據(jù)塊以及第四數(shù)據(jù)分片中的第一個數(shù)據(jù)塊;節(jié)點裝置1000-3需要處理第五數(shù)據(jù)分片中的第一個數(shù)據(jù)塊以及第六數(shù)據(jù)分片中的第一個數(shù)據(jù)塊。在第二保序訓(xùn)練階段,節(jié)點裝置1000-1需要處理第一數(shù)據(jù)分片中的第二個數(shù)據(jù)塊以及第二數(shù)據(jù)分片中的第二個數(shù)據(jù)塊;節(jié)點裝置1000-2需要處理第三數(shù)據(jù)分片中的第二個數(shù)據(jù)塊以及第四數(shù)據(jù)分片中的第二個數(shù)據(jù)塊;節(jié)點裝置1000-3需要處理第五數(shù)據(jù)分片中的第二個數(shù)據(jù)塊以及第六數(shù)據(jù)分片中的第二個數(shù)據(jù)塊。在第一保序訓(xùn)練階段,節(jié)點裝置1000-1需要處理第一數(shù)據(jù)分片中的第三個數(shù)據(jù)塊以及第二數(shù)據(jù)分片中的第三個數(shù)據(jù)塊;節(jié)點裝置1000-2需要處理第三數(shù)據(jù)分片中的第三個數(shù)據(jù)塊以及第四數(shù)據(jù)分片中的第三個數(shù)據(jù)塊;節(jié)點裝置1000-3需要處理第五數(shù)據(jù)分片中的第三個數(shù)據(jù)塊以及第六數(shù)據(jù)分片中的第三個數(shù)據(jù)塊。同樣地,由于存儲模塊中的各個數(shù)據(jù)分片可以被并行訪問,因此上述處理方式可提高處理速度。
假設(shè)節(jié)點裝置1000-1已經(jīng)處理完第一保序訓(xùn)練階段應(yīng)處理的2個數(shù)據(jù)塊而節(jié)點裝置1000-2卡頓在其應(yīng)該處理的2個數(shù)據(jù)塊之中的1個數(shù)據(jù)塊(例如,第三數(shù)據(jù)分片中的第一個數(shù)據(jù)塊),由于當(dāng)每個數(shù)據(jù)塊被使用時,相應(yīng)的節(jié)點裝置1000可經(jīng)過其數(shù)據(jù)管理模塊1200向數(shù)據(jù)管理服務(wù)器3000匯報該數(shù)據(jù)塊的使用情況。因此,數(shù)據(jù)管理服務(wù)器3000可形成用于通知節(jié)點裝置1000-1來處理節(jié)點裝置1000-2的第四數(shù)據(jù)分片中的第二個數(shù)據(jù)塊(即,未使用的數(shù)據(jù)塊)的調(diào)度信號,并把該調(diào)度信號發(fā)送到相應(yīng)的節(jié)點裝置1000-1和節(jié)點裝置1000-2。例如,所述調(diào)度信號可包括所述未使用的數(shù)據(jù)塊的標(biāo)識符,相應(yīng)地,在接收到該調(diào)度信號時,節(jié)點裝置1000-1的數(shù)據(jù)管理模塊1200可將與所述標(biāo)識符相應(yīng)的數(shù)據(jù)塊從第四數(shù)據(jù)分片取出以提供給其訓(xùn)練模塊1300,而節(jié)點裝置1000-2的數(shù)據(jù)管理模塊1200將取消對所述數(shù)據(jù)塊的處理。這里,數(shù)據(jù)管理服務(wù)器3000通過調(diào)度信號在節(jié)點裝置1000-1與節(jié)點裝置1000-2之間傳輸數(shù)據(jù)塊的標(biāo)識符的具體方式不受限制,本領(lǐng)域技術(shù)人員可在調(diào)度信號中額外包括任何適當(dāng)?shù)恼{(diào)度信息并將調(diào)度信號發(fā)送到相應(yīng)的節(jié)點裝置。
此外,應(yīng)理解,以上雖然以保序訓(xùn)練階段為例描述了數(shù)據(jù)塊的調(diào)度,但本發(fā)明的示例性實施例并不受限于此,而是可以同樣地應(yīng)用于亂序訓(xùn)練階段或整個迭代過程。
如上所述,取決于數(shù)據(jù)塊在各節(jié)點裝置1000的存儲情況,調(diào)度信號可用于將數(shù)據(jù)塊從卡頓節(jié)點裝置傳送到空閑節(jié)點裝置,也可用于將數(shù)據(jù)塊的處理主體從卡頓節(jié)點裝置轉(zhuǎn)換為空閑節(jié)點裝置,進(jìn)一步提高了分布式機(jī)器學(xué)習(xí)系統(tǒng)的整體性能。
應(yīng)理解,根據(jù)本發(fā)明示例性實施例的分布式機(jī)器學(xué)習(xí)系統(tǒng)中的裝置或模塊可被分別配置為執(zhí)行特定功能的軟件、硬件、固件或上述項的任意組合。例如,這些裝置或模塊可對應(yīng)于專用的集成電路,也可對應(yīng)于純粹的軟件代碼,還可對應(yīng)于軟件與硬件相結(jié)合的單元或模塊。當(dāng)所述裝置或模塊以軟件、固件、中間件或微代碼實現(xiàn)時,用于執(zhí)行相應(yīng)操作的程序代碼或者代碼段可以存儲在諸如存儲介質(zhì)的計算機(jī)可讀介質(zhì)中,使得處理器可通過讀取并運(yùn)行相應(yīng)的程序代碼或者代碼段來執(zhí)行相應(yīng)的操作。此外,這些裝置或模塊所實現(xiàn)的一個或多個功能也可由物理實體設(shè)備(例如,處理器、客戶端或服務(wù)器等)中的組件來統(tǒng)一執(zhí)行。
應(yīng)注意,根據(jù)本發(fā)明示例性實施例的分布式機(jī)器學(xué)習(xí)系統(tǒng)可完全依賴計算機(jī)程序的運(yùn)行來實現(xiàn)相應(yīng)的功能,即,各個裝置與計算機(jī)程序的功能架構(gòu)中與各步驟相應(yīng),使得整個系統(tǒng)通過專門的軟件包(例如,lib庫)而被調(diào)用,以實現(xiàn)相應(yīng)的功能。
以上已經(jīng)描述了本發(fā)明的各示例性實施例,應(yīng)理解,上述描述僅是示例性的,并非窮盡性的,并且本發(fā)明也不限于所披露的各示例性實施例。在不偏離本發(fā)明的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的范圍為準(zhǔn)。