TW201734863A - 一種分布式集群訓練方法和裝置 - Google Patents
一種分布式集群訓練方法和裝置 Download PDFInfo
- Publication number
- TW201734863A TW201734863A TW106105364A TW106105364A TW201734863A TW 201734863 A TW201734863 A TW 201734863A TW 106105364 A TW106105364 A TW 106105364A TW 106105364 A TW106105364 A TW 106105364A TW 201734863 A TW201734863 A TW 201734863A
- Authority
- TW
- Taiwan
- Prior art keywords
- weight
- server
- training
- sample data
- aggregation
- Prior art date
Links
- 238000012549 training Methods 0.000 title claims abstract description 250
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000002776 aggregation Effects 0.000 claims description 158
- 238000004220 aggregation Methods 0.000 claims description 158
- 238000004364 calculation method Methods 0.000 claims description 34
- 239000013585 weight reducing agent Substances 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 22
- 239000000463 material Substances 0.000 claims description 7
- 230000006870 function Effects 0.000 abstract description 28
- 238000011176 pooling Methods 0.000 abstract description 9
- 238000010801 machine learning Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- 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
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/504—Resource capping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本發明實施例提供了一種分布式集群訓練方法和裝置,涉及機器學習技術領域。所述方法包括:讀取樣本集;所示樣本集包括至少一條樣本資料;在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度,並且如果有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;如果接收到彙集指令,則將所述第一梯度發送至彙集伺服器;所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;所述彙集伺服器匯總各第一梯度並計算第二權重;接收彙集伺服器發送的第二權重以更新當前權重。本發明降低了網路通信量,降低對交換機的影響,避免影響整個集群的使用。
Description
本發明涉及機器學習技術領域,特別是涉及一種分布式集群訓練方法和一種分布式集群訓練裝置。
隨著大資料的應用,很多基於大資料的目標模型,比如預測使用者對商品的喜好的目標模型,都需要利用相應的樣本資料對目標模型中的權重進行訓練。該權重可以理解為目標模型的參數,比如以一個簡單的模型y=ax1+bx2+cx3,其中的a、b、c為權重,x1、x2、x3為輸入量,y為輸出量。而上述目標模型都需要利用機器學習訓練。
機器學習訓練一般包括單機訓練和集群訓練,單機訓練就是利用所有樣本,計算F(X)(F為損失函數,X為權重)的梯度:▽F(Xt-1),然後更新權重:Xt=Xt-1-α▽F(Xt-1),一直這樣迭代,直到收斂;而集群訓練,就是先按照一定規則,將訓練樣本分到各個機器上(各機器上資料都不一樣),每個機器計算出梯度,然後利用reduce技術,將梯度匯總,並進行權重更新。重複上述過程,直到收斂。
事實上,由於現在資料量巨大,集群訓練已經成為工業界標配。
而單機上進行訓練,當樣本資料的資料量很大時,會出現因為資料量太大導致記憶體載入不下,導致無法進行訓練。在單機上訓練,沒有通信(網路)代價,但無法支撐大資料(比如所有使用者在最近2周內的流覽日誌資料)。
基於單機訓練的上述問題,在先技術中採用了在分布式集群中執行機器學習任務。現有集群訓練方案:(1)將資料集T,按照一定規則,切分成N份,得到T={T1,T2,…,Tn};(2)每個訓練伺服器得到一份資料,設為Tx;(3)每個訓練伺服器利用得到的資料,計算對應的梯度▽FTx;(4)進行梯度匯總得到總梯度:total gradient=Σ 1 nFi;(5)根據規則更新權重(類似單機訓練的更新權重方法),並將新權重發給所有機器;(6)判定是否訓練結束,如果沒有結束,返回第三步。
在集群上訓練,能利用更多的訓練資料,取得更好的預測效果。由於每輪計算梯度後,都需要將梯度匯總,通信量巨大且頻繁,可能導致集群中網路流量爆滿,而影響交換機,甚至整個集群的使用。
鑒於上述問題,提出了本發明實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種分布式集
群訓練方法和相應的一種分布式集群訓練裝置。
為了解決上述問題,本發明公開了一種分布式集群訓練方法,包括:讀取樣本集;所示樣本集包括至少一條樣本資料;在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;如果接收到彙集指令,則將所述第一梯度發送至彙集伺服器;所述彙集伺服器匯總各第一梯度並計算第二權重;接收彙集伺服器發送的第二權重以更新當前權重。
本發明還公開了一種分布式集群訓練裝置,包括:樣本讀取模組,用於讀取樣本集;所示樣本集包括至少一條樣本資料;迭代訓練模組,用於在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;結果發送模組,用於如果接收到彙集指令,則將所述
第一梯度發送至彙集伺服器;所述彙集伺服器匯總各第一梯度並計算第二權重;更新模組,用於接收彙集伺服器發送的第二權重以更新當前權重。
本發明實施例包括以下優點:本發明實施例,訓練伺服器可以利用其讀取的樣本集,在接收到彙集指令之前,利用該樣本集中的樣本資料和當前權重,不斷迭代訓練第一梯度;同時,調度伺服器可以監控集群系統環境是否符合臨界值條件,當系統監控到集群系統環境符合臨界值條件時,則可以發送彙集指令給各個訓練伺服器,各個訓練伺服器則將訓練得到的第一梯度發送到彙集伺服器;該彙集伺服器匯總各第一梯度並計算第二權重,在各個訓練伺服器還未對其樣本資料訓練結束前,將該第二權重發送到各個訓練伺服器,更新期當前權重。如此,由於系統監控何時系統環境,控制何時發出彙集指令,相應的,訓練伺服器則在收到彙集指令後才將第一梯度發送到彙集伺服器。不會在整個過程中每輪訓練結束都將訓練結果發送至伺服器,降低了網路通信量,降低對交換機的影響,避免影響整個集群的使用。
110、120、130、140、150、210、220、、230、240、250、260、270、280、310、312、314、316、318、320、322、324、326、328、410、412、414、416、418、420、422、424、426、428、430、432、434、C13、D11、D12‧‧‧步驟
221、C11、C13‧‧‧子步驟
510‧‧‧樣本讀取模組
520‧‧‧迭代訓練模組
530‧‧‧結果發送模組
540‧‧‧更新模組
610‧‧‧調度伺服器
611‧‧‧集群監控模組
620‧‧‧彙集伺服器
621‧‧‧彙集計算模組
622‧‧‧第二權重發送模組
630‧‧‧訓練伺服器
631‧‧‧樣本讀取模組
632‧‧‧迭代訓練模組
633‧‧‧結果發送模組
634‧‧‧更新模組
圖1是本發明的一種分布式集群訓練方法實施例的步驟流程圖;圖2是本發明的另一種分布式集群訓練方法實施例的
步驟流程圖;圖3是本發明的另一種分布式集群訓練方法實施例的步驟流程圖;圖4是本發明的另一種分布式集群訓練方法實施例的步驟流程圖;圖5是本發明的一種分布式集群訓練裝置實施例的結構框圖;圖6是本發明的一種分布式集群訓練系統實施例的結構框圖。
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
本發明實施例的核心構思之一在於,由於在先技術中在集群中訓練目標模型時,每輪訓練完畢之後,都直接將集群中各訓練伺服器訓練得到的梯度進行匯總,導致通信量巨大而且頻繁,可能導致集群中網路流量爆滿,從而影響交換機甚至整個集群的使用。本發明實施例中,訓練伺服器可以利用其讀取的樣本集,在接收到彙集指令之前,利用該樣本集中的樣本資料和當前權重,不斷迭代訓練第一梯度;同時,系統可以監控集群系統環境是否符合臨界值條件,該臨界值條件可以避免集群系統環境出現網路流量爆滿,當系統監控到集群系統環境符合臨界值條件時,
則可以發送彙集指令給各個訓練伺服器,各個訓練伺服器則將訓練得到的第一梯度發送到彙集伺服器;該彙集伺服器匯總各第一梯度並計算第二權重,在各個訓練伺服器還未對其樣本資料訓練結束前,將該第二權重發送到各個訓練伺服器,更新其當前權重。如此,由於系統監控何時系統環境,控制何時發出彙集指令,相應的,訓練伺服器則在收到彙集指令後才將第一梯度發送到彙集伺服器。不會在整個過程中每輪訓練結束都將訓練結果發送至伺服器,降低了網路通信量,降低對交換機的影響,避免影響整個集群的使用。
參照圖1,示出了本發明的一種分布式集群方法實施例的步驟流程圖,具體可以包括如下步驟:步驟110,讀取樣本集;所示樣本集包括至少一條樣本資料;在本發明實施例中,整個集群可以包括多台訓練伺服器、至少一台調度伺服器、至少一台彙集伺服器。該訓練伺服器可以獲取其負責的樣本集進行迭代訓練,以得到第一梯度,調度伺服器可以監控整個系統的集群系統環境情況,並根據集群系統環境決定是否發出彙集指令到訓練伺服器。彙集伺服器可以接收各個訓練伺服器發送的第一梯度並計算第二權重。
在本發明實施例中,訓練伺服器、調度伺服器、彙集
伺服器之間的通信資料都通過集群中的交換機傳輸。
可以理解,本發明實施例的調度伺服器可以將各訓練伺服器需要獲取的樣本集的獲取參數發送給各個訓練伺服器。那麼,對於一台訓練伺服器來說,其收到獲取參數後,可以根據該獲取參數,從指定位置讀取其需要的樣本集。比如從交易日誌伺服器獲取該參數規定的一批交易日誌資料作為樣本集。當然,本發明實施例還可以從其他伺服器獲取相應樣本集,可以按照需求設定,本發明實施例不對其加以限制。
步驟120,在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;對於一個訓練伺服器A而言,其讀取到樣本集後,在初始情況下,目標模型的各個當前權重是根據經驗預設的第二權重X0。此時可以從樣本集中按序逐個提取樣本資料,輸入目標模型進行訓練,訓練屬於該訓練伺服器A的第一梯度。
該訓練伺服器A,在未接收到彙集指令之前,可以一直讀取樣本資料進行迭代訓練。當然在實際應用中,各個訓練伺服器可以將其訓練的樣本全部讀到本地,然後進行訓練。比如第一輪利用樣本資料M1和當前權重X0,代入
目標模型訓練函數,訓練第一梯度▽F(X0),然後利用▽F(X0)計算權重X1該X1以作為第二輪訓練的當前權重;然後利用樣本資料M2和當前權重X1,代入目標模型訓練函數,訓練第一梯度▽F(X1);以此類推,直到接收到彙集指令。其中Xi(i=1、2、3……)是一個多維向量,其中每個維度對應目標模型中的一個參數。其中所述目標模型訓練函數可以為前述的損失函數F(X)。
在實際應用中,以上述過程為例,在第一輪中,將第一個樣本資料代入損失函數F(X),其中,X為當前權重,然後計算F(X)的梯度▽F(X0),然後根據公式Xt=Xt-1-α▽F(Xt-1)更新得到第一梯度▽F(X1)。其中,損失函數F(X)可以根據實際情況設定,在先技術對此有詳細過程,在此不在贅敘。對於第二輪類似。假設訓練伺服器訓練到第三輪,得到第一梯度▽F(X2),此時,接收到調度伺服器發送的彙集指令,則可以直接將第一梯度▽F(X2)通過交換機發送至彙集伺服器中。
在本發明實施例中,訓練伺服器在上一次彙集之後,會記錄第一梯度的訓練輪次。調度伺服器發送彙集指令時,則會控制訓練伺服器發送哪一輪的第一梯度。調度伺服器可以在發送彙集指令之前控制各訓練伺服器執行N輪訓練,N為大於0的整數。比如通知訓練伺服器在接收彙集指令之前,只進行三輪訓練,如果三輪訓練結束,則等待調度伺服器的指令。當然,實際應用中,可以對N做限制,也可根據實際需求的訓練精度誤差設置N的值。該實
際需求的訓練精度誤差可以根據歷史訓練結果的經驗設定。
在本發明實施例中,調度伺服器向各訓練伺服器發送的彙集指令中,包含了指定輪次。則各訓練伺服器將相應輪次訓練得到的第一梯度發送到彙集伺服器中。
在本發明實施例中,在各個訓練伺服器進行迭代訓練的過程中,調度伺服器會監控集群系統環境,當集群系統環境符合臨界值條件時,調度伺服器向各個訓練伺服器發出彙集指令。該臨界值條件可以限定訓練伺服器發送的頻率不太快,導致網路擁堵,如網路利用率低於30%等臨界值條件。
在本發明另一較佳的實施例中,所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出,包括:所述彙集指令由調度伺服器在整個集群的集群網路利用率符合第一臨界值條件時發出。
在本發明實施例中,調度伺服器可以監控整個集群的集群網路利用率,比如獲取每個伺服器的網卡的發包量和收包量,而網卡本身有一個最大流量限制,比如100M,那麼統計各個網卡的發包量和收包量,再除以所有網卡的總流量限制,則可以得到集群網路利用率。當然,也可以計算每個伺服器的網卡的利用率,然後把各個網卡的利用率進行加權平均得到集群網路利用率。在該種情況下,所述第一臨界值條件包括:集群網路利用率低於第一臨界值;比如第一臨界值設置為30%,那麼當調度伺服器監控
得到的集群網路利用率低於30%,則可以向各個訓練伺服器發送彙集指令。
在本發明另一較佳的實施例中,所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出,包括:所述彙集指令由調度伺服器在整個集群的集群故障率符合第二臨界值條件時發出。
在本發明實施例中,整個集群中的各個伺服器可能出現故障,那麼本發明實施例可以監控各個伺服器的故障,然後根據出現故障的伺服器個數除以整個集群的伺服器的個數得到集群故障率。當然,在本發明實施例中,可以只監控訓練伺服器出現故障的第一個數,然後將該第一個數除以整個集群的個數得到集群故障率;當然,該第一個數也可以除以所有訓練伺服器的個數得到集群故障率。該種情況下,所述第二臨界值條件包括:集群故障率低於第二臨界值。比如第二臨界值設置為5%,那麼集群故障率低於5%時,調度伺服器可以向各個訓練伺服器發出彙集指令。
需要說明的是,前述伺服器的故障,包括伺服器本身崩潰沒回應、伺服器回應延遲超過一定時間。本發明實施例中,調度伺服器可以定期向各個伺服器發送測試命令,如果伺服器未在規定時間內響應,則可認為該伺服器出現故障。
當然,本發明實施例中,調度伺服器發出彙集指令之前,還可以監控各訓練伺服器的訓練情況,比如監控到距
離上次發送彙集指令之後,各個訓練伺服器完成了至少一輪訓練才會在符合前述臨界值條件下,發出彙集指令。
步驟130,如果接收到彙集指令,則將所述第一梯度發送至彙集伺服器;步驟140,所述彙集伺服器匯總各第一梯度並計算第二權重;在本發明實施例中,對於一個訓練伺服器,如果接收到彙集指令,則可以將最新更新的第一梯度發送至彙集伺服器。
由於彙集指令中有訓練輪次,各個訓練伺服器則將相同輪次的第一梯度發送至彙集伺服器。
在本發明實施例中,如果有多台彙集伺服器,則各訓練伺服器可以根據預先設定的與彙集伺服器的對應關係,將其第一梯度發送至相應的彙集伺服器中。各個彙集伺服器對接收到的部分第一梯度進行匯總,然後各個彙集伺服器再將匯總後的第一梯度再匯總至一個彙集伺服器中,然後該彙集伺服器進行最後的匯總,然後基於最後匯總的第一梯度計算第二權重。
而對於彙集伺服器,在接收到所有訓練伺服器的第一梯度後,則可以對第一梯度進行匯總,然後根據匯總的結果計算第二權重。
此時,彙集伺服器可以判斷各個訓練伺服器是否訓練完畢,如果未訓練完畢,則將第二權重發送到各個訓練伺服器。
可以理解,在實際應用中,各個訓練伺服器在發送其
第一梯度時,可以發送是否對樣本集的所有樣本資料訓練完畢的第一標識,如第一標識為no表示未訓練完,第一標識為yes表示訓練完。彙集伺服器則可以根據該標識判斷訓練伺服器是否訓練完該樣本集的所有樣本資料。當然,實際應用中,彙集伺服器還可以通過其他方式去確定各個訓練伺服器是否訓練完其樣本集的所有樣本資料,本發明實施例不對其加以限制。
步驟150,接收彙集伺服器發送的第二權重以更新當前權重。
對於訓練伺服器而言,其在對所述樣本資料訓練結束前,可以接收到彙集伺服器發送的第二權重。那麼訓練伺服器則可以將該第二權重更新當前權重,然後讀取後續的樣本資料進行下一輪訓練。當然,如果樣本資料已經讀取到了本地,則可以從本地讀取下一輪的樣本資料進行下一輪訓練。
本發明實施例中,訓練伺服器可以利用其讀取的樣本集,在接收到彙集指令之前,利用該樣本集中的樣本資料和當前權重,不斷迭代訓練第一梯度;同時,系統可以監控集群系統環境是否符合臨界值條件,該臨界值條件可以避免集群系統環境出現網路流量爆滿,當系統監控到集群系統環境符合臨界值條件時,則可以發送彙集指令給各個訓練伺服器,各個訓練伺服器則將訓練得到的第一梯度發送到彙集伺服器;該彙集伺服器匯總各第一梯度並計算第二權重,在各個訓練伺服器還未對其樣本資料訓練結束
前,將該第二權重發送到各個訓練伺服器,更新期當前權重。如此,由於系統監控何時系統環境,控制何時發出彙集指令,相應的,訓練伺服器則在收到彙集指令後才將第一梯度發送到彙集伺服器。不會在整個過程中每輪訓練結束都將訓練結果發送至伺服器,降低了網路通信量,降低對交換機的影響,避免影響整個集群的使用。
參照圖2,示出了本發明的另一種分布式集群方法實施例的步驟流程圖,具體可以包括如下步驟:步驟210,讀取樣本集;所示樣本集包括至少一條樣本資料;所述樣本資料包括時間資訊;在本發明實施例中,在樣本資料中除了傳統的資料,比如使用者ID、使用者交易行為、收藏行為資料、流覽行為資料等資料,還額外增加了一列資料,該列資料記錄了該條樣本資料產生的時間。比如最近一天的交易記錄資料、最近兩天的交易資料。
步驟220,利用每條樣本資料的時間資訊,計算所述樣本資料的第三權重;在本發明實施例中,距離當前越近的樣本資料,越能反應使用者真實的興趣與意圖,採用該樣本資料訓練出來的模型更精准。而本發明可以利用每條樣本資料的時間資訊,計算所述樣本資料的第三權重。該第三權重表示該樣本資料的時間資訊距離當前時間越近其權重越高,反之,
其權重越低。
在本發明另一較佳的實施例中,所述利用每條樣本資料的時間資訊,計算所述樣本資料的第三權重的步驟包括:子步驟221,將每條樣本資料的時間資訊,代入指數函數的負的指數參數,計算第三權重。
在本發明實施例中,可以將時間資訊距離當前時間轉換為數位資訊,比如樣本資料N1的時間資訊為1,表示樣本資料N1距離當前時間的距離為1天,樣本資料N2的時間資訊為3,表示樣本資料N2距離當前時間的距離為3天。當然,將時間資訊轉換為數位資訊,也可以採用其他方式,本發明實施例不對其加以限制。
在本發明實施例中,指數函數的底數可以設置為自然數e,也可以設置為其他大於1的數。較佳的採用自然數e。那麼本發明可以利用e-x計算第三權重,其中x為時間資訊,比如對於N1,其第三權重為e-1,其他情況以此類推。當然該指數函數的底數可以為其他底數,比如2,那麼指數函數變為2-x。
步驟230,當所述第三權重小於第三臨界值,則丟棄相應的樣本資料。
比如設置第三臨界值為0.001,那麼當第三權重小於該第三臨界值,則說明該樣本資料離當前時間太遠,該樣本資料對使用者的興趣和意圖影響不大,可以將其丟棄。從而可以降低計算量,從而節省系統資源。
步驟240,在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;步驟250,如果接收到彙集指令,則將所述第一梯度發送至彙集伺服器,以及將各個樣本資料的第三權重進行匯總得到的第一係數發送至彙集伺服器;在本發明實施例中,訓練伺服器在對樣本集的資料進行訓練之前,可以計算各條樣本資料的第三權重,然後可以對各個保留下來的樣本資料第三權重進行匯總,得到第一係數。
步驟260,所述彙集伺服器根據各第一梯度及與各第一梯度相應的第一係數,進行加權計算得到第二梯度;步驟270,所述彙集伺服器根據第二梯度計算第二權重。
比如訓練伺服器A發送第一梯度▽F(X1)A,其第一係數為0.8;訓練伺服器B發送第一梯度▽F(X1)B,其第一係數為0.7;訓練伺服器C發送第一梯度▽F(X1)C,其第一係數為0.5。那麼第二梯度為(0.8▽F(X1)A+0.7▽F(X1)B+0.5▽F(X1)C)
然後再根據第二梯度計算第二權重。
然後可以按照實施例一中的描述,將第二權重發送至
各個未訓練完畢的訓練伺服器。
步驟280,接收彙集伺服器發送的第二權重以更新當前權重。
本發明實施例中,訓練伺服器可以利用其讀取的樣本集,在接收到彙集指令之前,利用該樣本集中的樣本資料和當前權重,不斷迭代訓練第一梯度;同時,系統可以監控集群系統環境是否符合臨界值條件,該臨界值條件可以避免集群系統環境出現網路流量爆滿,當系統監控到集群系統環境符合臨界值條件時,則可以發送彙集指令給各個訓練伺服器,各個訓練伺服器則將訓練得到的第一梯度發送到彙集伺服器;該彙集伺服器匯總各第一梯度並計算第二權重,在各個訓練伺服器還未對其樣本資料訓練結束前,將該第二權重發送到各個訓練伺服器,更新期當前權重。如此,由於系統監控何時系統環境,控制何時發出彙集指令,相應的,訓練伺服器則在收到彙集指令後才將第一梯度發送到彙集伺服器。不會在整個過程中每輪訓練結束都將訓練結果發送至伺服器,降低了網路通信量,降低對交換機的影響,避免影響整個集群的使用。
另外,本發明實施例可以根據資料的時效性,自動對新的資料加大權重,對老資料降權,並丟棄部分舊資料,從而使目標模型更契合使用者當前的行為習慣,並且可以降低計算量。
參照圖3,示出了本發明的另一種分布式集群方法實施例的步驟流程圖,具體可以包括如下步驟:步驟310,讀取樣本集;所示樣本集包括至少一條樣本資料;所述樣本資料包括時間資訊;步驟312,對樣本集中的各樣本資料進行歸併;步驟314,對歸併後的樣本資料,記錄所述樣本資料的歸併數量。
在本發明實施例中,對於相同內容的樣本資料,可以按照相同時間段進行歸併。比如對於使用者A,其在2015-12-31的上午10點,買了商品A,在在2015-12-31的下午3點,買了商品A。那麼這兩條樣本資料則可以歸併,得到使用者A在2015-12-31購買了商品A,歸併數量為2。
在實際中,對於樣本資料,還可以在其中添加一列歸併數量列,把歸併數量填入該列。
步驟316,利用每條樣本資料的時間資訊,計算降權係數;在本發明實施例中,可以利用每條樣本資料的時間資訊,計算降權係數,距離當前時間越近其降權係數越高,反之,其降權係數越低。
在本發明另一較佳的實施例中,所述利用每條樣本資料的時間資訊,計算降權係數的步驟包括:子步驟C11,將每條樣本資料的時間資訊,代入指數函數的負的指數參數,計算降權係數。
在本發明實施例中,可以將時間資訊距離當前時間轉換為數位資訊,比如樣本資料N1的時間資訊為1,表示樣本資料N1距離當前時間的距離為1天,樣本資料N2的時間資訊為3,表示樣本資料N2距離當前時間的距離為3天。當然,將時間資訊轉換為數位資訊,也可以採用其他方式,本發明實施例不對其加以限制。
那麼本發明可以利用e-x計算降權係數,其中x為時間資訊,比如對於N1,其降權係數為e-1,其他情況以此類推。當然該指數函數的底數可以為其他底數,比如2,那麼指數函數變為2-x。
步驟318,計算所述降權係數與歸併數量之積,得到第三權重。
由於本發明實施例中,對於樣本資料進行了歸併,那麼樣本集中的樣本資料則為歸併後的樣本資料,那麼可以將該樣本資料的歸併資料乘以其降權係數,得到第三權重。
可以理解,步驟316-318可以為實施例二中步驟220較佳的步驟。
步驟320,當所述第三權重小於第三臨界值,則丟棄相應的樣本資料。
步驟322,在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;其中,如果在接收到彙集指令之
前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;步驟324,如果接收到彙集指令,則將所述第一梯度發送至彙集伺服器,以及將各個樣本資料的第三權重進行匯總得到的第一係數發送至彙集伺服器;步驟326,所述彙集伺服器根據各第一梯度及與各第一梯度相應的第一係數,進行加權計算得到第二梯度;步驟328,接收彙集伺服器發送的第二權重以更新當前權重。
本發明實施例由於調度伺服器監控系統環境,控制何時發出彙集指令,相應的,訓練伺服器則在收到彙集指令後才將第一梯度發送到彙集伺服器。不會在整個過程中每輪訓練結束都將訓練結果發送至伺服器,降低了網路通信量,降低對交換機的影響,避免影響整個集群的使用。
另外,本發明實施例對樣本資料進行了歸併,減少了訓練的樣本數量,能夠提高訓練速度。
再者,本發明實施例可以根據資料的時效性,自動對新的資料加大權重,對老資料降權,並丟棄部分舊資料,從而使目標模型更契合使用者當前的行為習慣,並且可以降低計算量。
參照圖4,示出了本發明的另一種分布式集群方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟410,訓練伺服器讀取樣本集;所示樣本集包括至少一條樣本資料;所述樣本資料包括時間資訊;步驟412,訓練伺服器對樣本集中的各樣本資料進行歸併;步驟414,訓練伺服器對歸併後的樣本資料,記錄所述樣本資料的歸併數量。
步驟416,訓練伺服器利用每條樣本資料的時間資訊,計算降權係數;步驟418,訓練伺服器計算所述降權係數與歸併數量之積,得到第三權重。
可以理解,步驟416-418可以為實施例二中步驟220較佳的步驟。
步驟420,訓練伺服器當所述第三權重小於第三臨界值,則丟棄相應的樣本資料。
步驟422,訓練伺服器在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;步驟424,調度伺服器在集群系統環境符合臨界值條件時發出彙集指令;調度伺服器將彙集指令發送給各個訓練伺服器。
步驟426,訓練伺服器如果接收到彙集指令,則將所述第一梯度發送至彙集伺服器,以及將各個樣本資料的第
三權重進行匯總得到的第一係數發送至彙集伺服器;步驟428,彙集伺服器根據各第一梯度及與各第一梯度相應的第一係數,進行加權計算得到第二梯度;步驟430,彙集伺服器根據第二梯度計算第二權重;步驟432,彙集伺服器將新得到的第二權重進行備份,並將新的第二權重發送至各訓練伺服器。
在本發明實施例中,彙集伺服器在得到新的第二權重之後,可以將該第二權重進行備份。
在本發明另一較佳的實施例中,所述彙集伺服器將新得到的第二權重進行備份包括:步驟D11,所述彙集伺服器判斷新得到的第二權重與至少前一次備份的第二權重之間的變化量是否超過變化臨界值;步驟D12,如果超過變化臨界值,則對所述新得到的第二權重進行備份。
在本發明實施例中,彙集伺服器得到新的第二權重,則會與之前的備份的至少一次的第二權重進行變化量的計算。比如與之前備份的最近一次的第二權重之間的變化量是否小於變化臨界值,如5%,如果小於5%,則拋棄新的第二權重,如果大於等於,則備份該第二權重,如此可以減少備份量。使步驟C13中,可以不用更新給外部的業務伺服器的目標模型,避免無謂的影響業務伺服器對該目標模型的使用,比如測試。
可以理解,因為進行了權重備份,如果某個時刻整個
訓練失敗,則在重新訓練時,調度伺服器可以通知彙集伺服器,將備份的最新的第二權重發送給訓練伺服器,使訓練伺服器可以將該最新的第二權重作為初始的當前權重,結合之前的樣本繼續進行訓練。提高訓練的效率。
當然,本發明實施例中,訓練失敗之後,也可以從第一個樣本開始進行訓練,但是其當前權重為備份的最新的第二權重。
彙集伺服器將最新的第二權重發送至各訓練伺服器。
步驟434,訓練伺服器接收彙集伺服器發送的第二權重以更新當前權重。
在本發明另一較佳的實施例中,所述彙集伺服器將新得到的第二權重進行備份之後,還包括:子步驟C13,彙集伺服器將所述第二權重代入目標模型,並輸出至業務伺服器。
在本發明實施例中,對於備份的第二權重,可以直接將其代入目標模型,輸出給業務伺服器,使業務方可以直接利用該目標模型進行使用。
本發明具備如下幾個方面的優點:
(1)懶惰通信機制:根據集群環境以及迭代情況,自動判斷是否需要所有機器進行權重匯總動作,從而避免每輪訓練都彙集一次,導致可能出現網路占滿的情況。
(2)權重備份機制:根據規則,自動備份權重,一旦某些機制出現問題,可以從備份拉回以前的權重,繼續進行訓練,從而不用從頭再此訓練,提高訓練效率。
(3)資料切分裝置:根據資料的時效性,自動對新的資料加大權重,對老資料降權,並丟棄部分舊資料。
需要說明的是,對於方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明實施例並不受所描述的動作順序的限制,因為依據本發明實施例,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於較佳實施例,所涉及的動作並不一定是本發明實施例所必須的。
參照圖5,示出了本發明的一種分布式集群訓練裝置實施例的結構框圖,具體可以包括如下模組:樣本讀取模組510,用於讀取樣本集;所示樣本集包括至少一條樣本資料;迭代訓練模組520,用於在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;結果發送模組530,用於如果接收到彙集指令,則將所述第一梯度發送至彙集伺服器;所述彙集伺服器匯總各
第一梯度並計算第二權重;更新模組540,用於接收彙集伺服器發送的第二權重以更新當前權重。
在本發明另一較佳的實施例中,所述彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出,包括:所述彙集指令由調度伺服器在整個集群的集群網路利用率符合第一臨界值條件時發出,和/或由調度伺服器在整個集群的集群故障率符合第二臨界值條件時發出。
在本發明另一較佳的實施例中,所述第一臨界值條件包括:集群網路利用率低於第一臨界值;所述第二臨界值條件包括:集群故障率低於第二臨界值。
在本發明另一較佳的實施例中,所述樣本讀取模組之後,還包括:第三權重計算模組,用於利用每條樣本資料的時間資訊,計算所述樣本資料的第三權重;樣本丟棄模組,用於當所述第三權重小於第三臨界值,則丟棄相應的樣本資料。
在本發明另一較佳的實施例中,所述第三權重計算模組包括:指數計算模組,用於將每條樣本資料的時間資訊,代入指數函數的負的指數參數,計算第三權重。
在本發明另一較佳的實施例中,在第三權重計算模組之前,還包括:
歸併模組,用於對樣本集中的各樣本資料進行歸併;歸併記錄模組,用於對歸併後的樣本資料,記錄所述樣本資料的歸併數量。
在本發明另一較佳的實施例中,所述第三權重計算模組,包括:降權係數計算模組,用於利用每條樣本資料的時間資訊,計算降權係數;第一計算模組,用於計算所述降權係數與歸併數量之積,得到第三權重。
在本發明另一較佳的實施例中,所述結果發送模組還用於,如果接收到彙集指令,將各個樣本資料的第三權重進行匯總得到的第一係數發送至彙集伺服器;則,所述彙集伺服器包括:第一加權匯總模組,用於根據各第一梯度及與各第一梯度相應的第一係數,進行加權計算得到第二梯度;第二權重計算模組,用於根據第二梯度計算第二權重。
在本發明另一較佳的實施例中,所述彙集伺服器還包括:備份模組,用於將新得到的第二權重進行備份。
在本發明另一較佳的實施例中,所述備份模組包括:變化計算模組,用於所述彙集伺服器判斷新得到的第二權重與至少前一次備份的第二權重之間的變化量是否超過變化臨界值;
第一備份模組,用於如果超過變化臨界值,則對所述新得到的第二權重進行備份。
在本發明另一較佳的實施例中,所述備份模組之後,還包括:輸出模組,用於將所述第二權重代入目標模型,並輸出至業務伺服器。
本發明具備如下幾個方面的優點:
(1)懶惰通信機制:根據集群環境以及迭代情況,自動判斷是否需要所有機器進行權重匯總動作,從而避免每輪訓練都彙集一次,導致可能出現網路占滿的情況。
(2)權重備份機制:根據規則,自動備份權重,一旦某些機制出現問題,可以從備份拉回以前的權重,繼續進行訓練,從而不用從頭再此訓練,提高訓練效率。
(3)資料切分裝置:根據資料的時效性,自動對新的資料加大權重,對老資料降權,並丟棄部分舊資料。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
參照圖6,示出了本發明的一種分布式集群訓練裝置實施例的結構框圖,具體可以包括如下模組:包括調度伺服器610、彙集伺服器620、多台訓練伺服器630。
所述調度伺服器610包括:集群監控模組611,用於監控集群系統環境是否符合臨界值條件,如果符合,則向各訓練伺服器630發出彙集指令。
在本發明另一較佳的實施例中,集群監控模組611具體用於在整個集群的集群網路利用率符合第一臨界值條件時發出彙集指令,和/或在整個集群的集群故障率符合第二臨界值條件時發出彙集指令。
在本發明另一較佳的實施例中,所述第一臨界值條件包括:集群網路利用率低於第一臨界值;所述第二臨界值條件包括:集群故障率低於第二臨界值。
所述訓練伺服器630包括:樣本讀取模組631,用於讀取樣本集;所示樣本集包括至少一條樣本資料;迭代訓練模組632,用於在接收到彙集指令之前,利用所述樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;結果發送模組633,用於如果接收到彙集指令,則將所述第一梯度發送至彙集伺服器;更新模組634,用於接收第二權重以更新當前權重;在本發明另一較佳的實施例中,所述樣本讀取模組
631之後,還包括:第三權重計算模組,用於利用每條樣本資料的時間資訊,計算所述樣本資料的第三權重;樣本丟棄模組,用於當所述第三權重小於第三臨界值,則丟棄相應的樣本資料。
在本發明另一較佳的實施例中,所述第三權重計算模組包括:指數計算模組,用於將每條樣本資料的時間資訊,代入指數函數的負的指數參數,計算第三權重。
在本發明另一較佳的實施例中,在第三權重計算模組之前,還包括:歸併模組,用於對樣本集中的各樣本資料進行歸併;歸併記錄模組,用於對歸併後的樣本資料,記錄所述樣本資料的歸併數量。
在本發明另一較佳的實施例中,所述第三權重計算模組,包括:降權係數計算模組,用於利用每條樣本資料的時間資訊,計算降權係數;第一計算模組,用於計算所述降權係數與歸併數量之積,得到第三權重。
在本發明另一較佳的實施例中,所述結果發送模組633還用於,如果接收到彙集指令,將各個樣本資料的第三權重進行匯總得到的第一係數發送至彙集伺服器。
所述彙集伺服器620包括:
彙集計算模組621,用於匯總各第一梯度並計算第二權重;第二權重發送模組622,用於向各訓練伺服器發送最新的第二權重。
在本發明另一較佳的實施例中,所述彙集伺服器包括:第一加權匯總模組,用於根據各第一梯度及與各第一梯度相應的第一係數,進行加權計算得到第二梯度;第二權重計算模組,用於根據第二梯度計算第二權重。
在本發明另一較佳的實施例中,所述彙集伺服器還包括:備份模組,用於將新得到的第二權重進行備份。
在本發明另一較佳的實施例中,所述備份模組包括:變化計算模組,用於所述彙集伺服器判斷新得到的第二權重與至少前一次備份的第二權重之間的變化量是否超過變化臨界值;第一備份模組,用於如果超過變化臨界值,則對所述新得到的第二權重進行備份。
在本發明另一較佳的實施例中,所述備份模組之後,還包括:輸出模組,用於將所述第二權重代入目標模型,並輸出至業務伺服器。
本說明書中的各個實施例均採用遞進的方式描述,每
個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本發明實施例的實施例可提供為方法、裝置、或電腦程式產品。因此,本發明實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存介質(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
在一個典型的配置中,所述電腦設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,
磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀介質不包括非持續性的電腦可讀媒體(transitory media),如調製的資料信號和載波。
本發明實施例是參照根據本發明實施例的方法、終端設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理終端設備的處理器以產生一個機器,使得通過電腦或其他可程式設計資料處理終端設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式設計資料處理終端設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理終端設備上,使得在電腦或其他可程式設計終端設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計終端設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊
或多個方塊中指定的功能的步驟。
儘管已描述了本發明實施例的較佳實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附申請專利範圍意欲解釋為包括較佳實施例以及落入本發明實施例範圍的所有變更和修改。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本發明所提供的一種分布式集群訓練方法和一種分布式集群訓練裝置,進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上
所述,本說明書內容不應理解為對本發明的限制。
Claims (22)
- 一種分布式集群訓練方法,其包括:讀取樣本集;所示樣本集包括至少一條樣本資料;在接收到彙集指令之前,利用該樣本資料和當前權重,代入目標模型訓練函數進行迭代訓練,得到第一梯度;該彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;如果接收到彙集指令,則將該第一梯度發送至彙集伺服器;該彙集伺服器匯總各第一梯度並計算第二權重;接收彙集伺服器發送的第二權重以更新當前權重。
- 根據申請專利範圍第1項所述的方法,其中,該彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出,包括:該彙集指令由調度伺服器在整個集群的集群網路利用率符合第一臨界值條件時發出,和/或由調度伺服器在整個集群的集群故障率符合第二臨界值條件時發出。
- 根據申請專利範圍第2項所述的方法,其中:該第一臨界值條件包括:集群網路利用率低於第一臨界值;該第二臨界值條件包括:集群故障率低於第二臨界值。
- 根據申請專利範圍第1項所述的方法,其中,該 樣本資料包括時間資訊,在讀取樣本集的步驟之後,還包括:利用每條樣本資料的時間資訊,計算該樣本資料的第三權重;當該第三權重小於第三臨界值,則丟棄相應的樣本資料。
- 根據申請專利範圍第4項所述的方法,其中,該利用每條樣本資料的時間資訊,計算該樣本資料的第三權重的步驟包括:將每條樣本資料的時間資訊,代入指數函數的負的指數參數,計算第三權重。
- 根據申請專利範圍第4項所述的方法,其中,在利用每條樣本資料的時間資訊,計算該樣本資料的第三權重的步驟之前,還包括:對樣本集中的各樣本資料進行歸併;對歸併後的樣本資料,記錄該樣本資料的歸併數量。
- 根據申請專利範圍第6項所述的方法,其中,該利用每條樣本資料的時間資訊,計算該樣本資料的第三權重的步驟,包括:利用每條樣本資料的時間資訊,計算降權係數;計算該降權係數與歸併數量之積,得到第三權重。
- 根據申請專利範圍第4項所述的方法,其中,如果接收到彙集指令,還包括:將各個樣本資料的第三權重進行匯總得到的第一係數 發送至彙集伺服器;則,該彙集伺服器匯總各第一梯度並計算第二權重包括:根據各第一梯度及與各第一梯度相應的第一係數,進行加權計算得到第二梯度;根據第二梯度計算第二權重。
- 根據申請專利範圍第1-8項其中之一所述的方法,其中,該彙集伺服器匯總各第一梯度並計算第二權重之後,還包括:該彙集伺服器將新得到的第二權重進行備份。
- 根據申請專利範圍第9項所述的方法,其中,該彙集伺服器將新得到的第二權重進行備份包括:該彙集伺服器判斷新得到的第二權重與至少前一次備份的第二權重之間的變化量是否超過變化臨界值;如果超過變化臨界值,則對該新得到的第二權重進行備份。
- 根據申請專利範圍第9項所述的方法,其中,該彙集伺服器將新得到的第二權重進行備份之後,還包括:將該第二權重代入目標模型,並輸出至業務伺服器。
- 一種分布式集群訓練裝置,其包括:樣本讀取模組,用於讀取樣本集;所示樣本集包括至少一條樣本資料;迭代訓練模組,用於在接收到彙集指令之前,利用該樣本資料和當前權重,代入目標模型訓練函數進行迭代訓 練,得到第一梯度;該彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出;其中,如果在接收到彙集指令之前,有多輪迭代訓練,則基於前一次訓練得到的第一梯度產生第一權重作為後一輪迭代訓練的當前權重;結果發送模組,用於如果接收到彙集指令,則將該第一梯度發送至彙集伺服器;該彙集伺服器匯總各第一梯度並計算第二權重;更新模組,用於接收彙集伺服器發送的第二權重以更新當前權重。
- 根據申請專利範圍第12項所述的裝置,其中,該彙集指令由調度伺服器在集群系統環境符合臨界值條件時發出,包括:該彙集指令由調度伺服器在整個集群的集群網路利用率符合第一臨界值條件時發出,和/或由調度伺服器在整個集群的集群故障率符合第二臨界值條件時發出。
- 根據申請專利範圍第13項所述的裝置,其中:該第一臨界值條件包括:集群網路利用率低於第一臨界值;該第二臨界值條件包括:集群故障率低於第二臨界值。
- 根據申請專利範圍第12項所述的裝置,其中,該樣本讀取模組之後,還包括:第三權重計算模組,用於利用每條樣本資料的時間資訊,計算該樣本資料的第三權重; 樣本丟棄模組,用於當該第三權重小於第三臨界值,則丟棄相應的樣本資料。
- 根據申請專利範圍第15項所述的裝置,其中,該第三權重計算模組包括:指數計算模組,用於將每條樣本資料的時間資訊,代入指數函數的負的指數參數,計算第三權重。
- 根據申請專利範圍第15項所述的裝置,其中,在第三權重計算模組之前,還包括:歸併模組,用於對樣本集中的各樣本資料進行歸併;歸併記錄模組,用於對歸併後的樣本資料,記錄該樣本資料的歸併數量。
- 根據申請專利範圍第17項所述的裝置,其中,該第三權重計算模組,包括:降權係數計算模組,用於利用每條樣本資料的時間資訊,計算降權係數;第一計算模組,用於計算該降權係數與歸併數量之積,得到第三權重。
- 根據申請專利範圍第15項所述的裝置,其中,該結果發送模組還用於,如果接收到彙集指令,將各個樣本資料的第三權重進行匯總得到的第一係數發送至彙集伺服器;則,該彙集伺服器包括:第一加權匯總模組,用於根據各第一梯度及與各第一梯度相應的第一係數,進行加權計算得到第二梯度; 第二權重計算模組,用於根據第二梯度計算第二權重。
- 根據申請專利範圍第12-19項其中之一所述的裝置,其中,該彙集伺服器還包括:備份模組,用於將新得到的第二權重進行備份。
- 根據申請專利範圍第20項所述的裝置,其中,該備份模組包括:變化計算模組,用於該彙集伺服器判斷新得到的第二權重與至少前一次備份的第二權重之間的變化量是否超過變化臨界值;第一備份模組,用於如果超過變化臨界值,則對該新得到的第二權重進行備份。
- 根據申請專利範圍第20項所述的裝置,其中,該備份模組之後,還包括:輸出模組,用於將該第二權重代入目標模型,並輸出至業務伺服器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610180393.8A CN107229518B (zh) | 2016-03-26 | 2016-03-26 | 一种分布式集群训练方法和装置 |
CN201610180393.8 | 2016-03-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201734863A true TW201734863A (zh) | 2017-10-01 |
TWI712900B TWI712900B (zh) | 2020-12-11 |
Family
ID=59932603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106105364A TWI712900B (zh) | 2016-03-26 | 2017-02-17 | 一種分布式集群訓練方法和裝置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11636379B2 (zh) |
JP (1) | JP6949045B2 (zh) |
CN (1) | CN107229518B (zh) |
TW (1) | TWI712900B (zh) |
WO (1) | WO2017167044A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10649794B2 (en) * | 2016-08-11 | 2020-05-12 | Twitter, Inc. | Aggregate features for machine learning |
CN107423883B (zh) * | 2017-06-15 | 2020-04-07 | 创新先进技术有限公司 | 待处理业务的风险识别方法及装置、电子设备 |
CN109754105B (zh) * | 2017-11-07 | 2024-01-05 | 华为技术有限公司 | 一种预测方法及终端、服务器 |
JP7010153B2 (ja) * | 2018-06-15 | 2022-01-26 | 日本電信電話株式会社 | 分散処理システムおよび分散処理方法 |
US11610110B2 (en) | 2018-12-05 | 2023-03-21 | Bank Of America Corporation | De-conflicting data labeling in real time deep learning systems |
WO2020155083A1 (zh) * | 2019-02-01 | 2020-08-06 | 华为技术有限公司 | 神经网络的分布式训练方法及装置 |
CN110084380A (zh) * | 2019-05-10 | 2019-08-02 | 深圳市网心科技有限公司 | 一种迭代训练方法、设备、系统及介质 |
CN110222779B (zh) * | 2019-06-11 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 分布式数据处理方法及系统 |
US11321207B2 (en) * | 2019-07-09 | 2022-05-03 | Cisco Technology, Inc. | Seamless multi-cloud SDWAN distaster recovery using orchestration plane |
CN111144584B (zh) * | 2019-12-31 | 2024-01-19 | 深圳Tcl新技术有限公司 | 参数调优方法、装置及计算机存储介质 |
CN113469206B (zh) * | 2020-03-31 | 2024-06-18 | 华为技术有限公司 | 获取人工智能模型的方法、装置、设备及存储介质 |
CN111782592B (zh) * | 2020-06-30 | 2024-06-07 | 北京百度网讯科技有限公司 | 用于划分数据的方法、装置和系统 |
CN112016699B (zh) * | 2020-08-31 | 2024-02-02 | 北京灵汐科技有限公司 | 一种深度学习模型训练方法、工作节点和参数服务器 |
CN114254757A (zh) * | 2020-09-24 | 2022-03-29 | 香港理工大学深圳研究院 | 一种分布式深度学习方法、装置、终端设备及存储介质 |
CN112235384B (zh) * | 2020-10-09 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 分布式系统中的数据传输方法、装置、设备及存储介质 |
CN111931947B (zh) * | 2020-10-12 | 2021-02-05 | 支付宝(杭州)信息技术有限公司 | 一种用于分布式模型训练的训练样本重组方法及系统 |
CN112863175B (zh) * | 2020-12-31 | 2022-11-22 | 平安科技(深圳)有限公司 | 汽车道路监测数据处理方法、装置、设备及存储介质 |
EP4307037A1 (en) * | 2021-03-12 | 2024-01-17 | Japan Display Inc. | Liquid crystal device |
CN112862111B (zh) * | 2021-04-26 | 2021-08-24 | 之江实验室 | 一种加速分布式机器学习梯度汇聚的方法和装置 |
CN114900482B (zh) * | 2022-03-28 | 2023-05-30 | 中国科学技术大学苏州高等研究院 | Ps架构下基于可编程交换机的梯度调度方法和装置 |
CN114723071B (zh) * | 2022-04-26 | 2023-04-07 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种基于客户端分类和信息熵的联邦学习方法及装置 |
CN116980420B (zh) * | 2023-09-22 | 2023-12-15 | 新华三技术有限公司 | 一种集群通信方法、系统、装置、设备及介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1223757B1 (en) * | 2001-01-09 | 2006-03-22 | Metabyte Networks, Inc. | System, method, and software application for targeted advertising via behavioral model clustering, and preference programming based on behavioral model clusters |
US20060123421A1 (en) * | 2002-12-27 | 2006-06-08 | Loboz Charles Z | Streamlining cpu utilization by delaying transactions |
US20050289089A1 (en) * | 2004-06-28 | 2005-12-29 | Naoki Abe | Methods for multi-class cost-sensitive learning |
US8150723B2 (en) * | 2009-01-09 | 2012-04-03 | Yahoo! Inc. | Large-scale behavioral targeting for advertising over a network |
JP5557590B2 (ja) * | 2010-05-06 | 2014-07-23 | 株式会社日立製作所 | 負荷分散装置及びシステム |
JP5584914B2 (ja) * | 2010-07-15 | 2014-09-10 | 株式会社日立製作所 | 分散計算システム |
US8924314B2 (en) * | 2010-09-28 | 2014-12-30 | Ebay Inc. | Search result ranking using machine learning |
US9569401B2 (en) | 2011-12-06 | 2017-02-14 | Akamai Technologies, Inc. | Parallel training of a support vector machine (SVM) with distributed block minimization |
US9633315B2 (en) * | 2012-04-27 | 2017-04-25 | Excalibur Ip, Llc | Method and system for distributed machine learning |
US9390370B2 (en) | 2012-08-28 | 2016-07-12 | International Business Machines Corporation | Training deep neural network acoustic models using distributed hessian-free optimization |
CN103559504B (zh) * | 2013-11-04 | 2016-08-31 | 北京京东尚科信息技术有限公司 | 图像目标类别识别方法及装置 |
CN103544528A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的BP神经网络分类方法 |
TWI524307B (zh) * | 2013-11-22 | 2016-03-01 | Univ Nat Yunlin Sci & Tech | Two - dimensional image depth value estimation method and its system |
US9858534B2 (en) * | 2013-11-22 | 2018-01-02 | California Institute Of Technology | Weight generation in machine learning |
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
US9984337B2 (en) | 2014-10-08 | 2018-05-29 | Nec Corporation | Parallelized machine learning with distributed lockless training |
CN104463324A (zh) * | 2014-11-21 | 2015-03-25 | 长沙马沙电子科技有限公司 | 一种基于大规模高性能集群的卷积神经网络并行处理方法 |
CN104714852B (zh) * | 2015-03-17 | 2018-05-22 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
CN105005911B (zh) * | 2015-06-26 | 2017-09-19 | 深圳市腾讯计算机系统有限公司 | 深度神经网络的运算系统及运算方法 |
US10229357B2 (en) * | 2015-09-11 | 2019-03-12 | Facebook, Inc. | High-capacity machine learning system |
US11087234B2 (en) | 2016-01-29 | 2021-08-10 | Verizon Media Inc. | Method and system for distributed deep machine learning |
-
2016
- 2016-03-26 CN CN201610180393.8A patent/CN107229518B/zh active Active
-
2017
- 2017-02-17 TW TW106105364A patent/TWI712900B/zh active
- 2017-03-20 JP JP2018549518A patent/JP6949045B2/ja active Active
- 2017-03-20 WO PCT/CN2017/077246 patent/WO2017167044A1/zh active Application Filing
-
2018
- 2018-09-25 US US16/141,886 patent/US11636379B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019511054A (ja) | 2019-04-18 |
US11636379B2 (en) | 2023-04-25 |
CN107229518A (zh) | 2017-10-03 |
CN107229518B (zh) | 2020-06-30 |
JP6949045B2 (ja) | 2021-10-13 |
US20190026657A1 (en) | 2019-01-24 |
WO2017167044A1 (zh) | 2017-10-05 |
TWI712900B (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201734863A (zh) | 一種分布式集群訓練方法和裝置 | |
US10762539B2 (en) | Resource estimation for queries in large-scale distributed database system | |
US10354201B1 (en) | Scalable clustering for mixed machine learning data | |
JP6030144B2 (ja) | 分散データストリーム処理の方法及びシステム | |
JP5936509B2 (ja) | プログラム、分析方法、および情報処理装置 | |
US20210141688A1 (en) | Using a machine learning module to determine when to perform error checking of a storage unit | |
CN109816412B (zh) | 一种训练模型生成方法、装置、设备和计算机存储介质 | |
US20200201897A1 (en) | Generating estimated trait-intersection counts utilizing semantic-trait embeddings and machine learning | |
CN112882889A (zh) | 异常监控方法、系统、电子设备和存储介质 | |
US11854022B2 (en) | Proactively predicting transaction dates based on sparse transaction data | |
US11184269B1 (en) | Collecting route-based traffic metrics in a service-oriented system | |
CN104756084A (zh) | 操作管理装置和操作管理方法 | |
US20200004439A1 (en) | Determining when to perform a data integrity check of copies of a data set by training a machine learning module | |
US20140095934A1 (en) | Test case production utilizing problem reports | |
CN107491458B (zh) | 一种存储时间序列数据的方法和装置以及系统 | |
WO2016036386A1 (en) | Dynamically generating an aggregation routine | |
JP2023534696A (ja) | ネットワークトポロジーにおけるアノマリー検知 | |
CN110866698A (zh) | 用于评定服务提供方的服务分值的装置 | |
US20190050317A1 (en) | Systems and methods for determining event processing delays | |
US10410246B2 (en) | Systems, methods, and devices for spend control in online advertising | |
CN108932241B (zh) | 日志数据统计方法、装置及节点 | |
JP6252309B2 (ja) | 監視漏れ特定処理プログラム,監視漏れ特定処理方法及び監視漏れ特定処理装置 | |
US9225608B1 (en) | Evaluating configuration changes based on aggregate activity level | |
CN112241240A (zh) | 用于并行传输数据的方法、设备和计算机程序产品 | |
US20210397599A1 (en) | Techniques for generating a consistent view of an eventually consistent database |