本公開涉及計算機技術領域,特別涉及一種模型訓練系統(tǒng)和方法。
背景技術:
在廣告投放領域,需要通過根據訓練好的預估模型預估用戶線上數據的點擊概率,根據點擊概率為用戶投放廣告。
為了能夠使得預估模型能較好地提供服務,通常需要大量的數據對預估模型進行訓練,這種訓練由于計算量非常大,需要較長的時間,因此會導致預估模型不能實時地適用最新的線上數據。
技術實現要素:
本公開提供一種模型訓練系統(tǒng)和方法。所述技術方案如下:
根據本公開實施例的第一方面,提供一種模型訓練系統(tǒng),所述系統(tǒng)包括數據提供單元、參數同步單元和至少兩個訓練單元,其中:所述數據提供單元被配置為將獲取的訓練數據存儲至消息隊列,從所述消息隊列中提取訓練數據,將提取的所述訓練數據發(fā)送給請求訓練數據的訓練單元;所述訓練單元被配置為根據從所述數據提供單元獲取的訓練數據對目標模型的參數進行訓練,得到所述目標模型的各個參數權重的變化差值,將所述目標模型的各個參數權重的變化差值發(fā)送至所述參數同步單元;所述參數同步單元被配置為根據獲取的所述目標模型的各個參數權重的變化差值,更新存儲的所述目標模型的參數的權重,為各個訓練單元提供同步后的權重。
通過利用數據提供單元從消息隊列中提取訓練數據發(fā)送給訓練單元,訓練單元根據獲取的訓練數據對目標模型的參數進行訓練,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元,參數同步單元根據變化差值更新存儲的目標模型的參數的權重,由于至少有兩個訓練單元,因此多個訓練單元對訓練數據進行訓練可以并行執(zhí)行,解決了相關技術中由于計算量非常大,耗時長,導致預估模型不能實時地適用最新的線上數據的問題,達到了加快計算速度,實時地適用最新的線上數據的效果。
可選的,所述數據提供單元還被配置為獲取所述請求訓練數據的訓練單元的性能參數,從所述消息隊列的隊列頭部提取與所述性能參數匹配數量的訓練數據,將提取到的訓練數據發(fā)送至所述請求訓練數據的訓練單元,所述性能參數至少用于反映所述訓練單元的運算負荷;或者,所述數據提供單元還被配置為從所述消息隊列的隊列頭部提取預定數量的訓練數據,將提取到的訓練數據發(fā)送至所述請求訓練數據的訓練單元。通過獲取與訓練單元的性能參數匹配數量的訓練數據,可以針對性能參數的差異分配不同數量的訓練數據,使得性能參數較好的訓練單元獲取到較多的訓練數據進行訓練,而性能參數較差的訓練單元獲取到較少的訓練數據進行訓練,使得性能參數不同的訓練單元盡可能發(fā)揮出最好的訓練效果,從而加快對訓練數據的訓練速度。
可選的,所述參數同步單元被配置為在獲取到各個參數權重的變化差值后,對于每個參數,將所述參數權重的變化差值與存儲的所述參數的權重進行相加,得到所述參數更新后的權重。通過參數同步單元將各個參數權重的變化差值與存儲的參數的權重進行相加,使得參數同步單元中的參數權重能夠不斷更新,以實時地適用最新的線上數據。
可選的,所述數據提供單元還被配置為獲取各個訓練單元各自所對應的廣告相關信息,為每種廣告相關信息設定一個消息隊列,每個消息隊列存儲與同一廣告相關信息對應的訓練數據,所述廣告相關信息至少包括富媒體的信息、富媒體中廣告位的信息中的前一種或全部。通過消息隊列存儲與同一廣告相關信息對應的訓練數據,使得訓練單元在訓練數據時可以到對應的消息隊列中獲取。
可選的,所述數據提供單元還被配置為獲取請求訓練數據的訓練單元所對應的廣告相關信息,從所述廣告相關信息對應的消息隊列中提取訓練數據,將提取的所述訓練數據發(fā)送給所述訓練單元。通過數據提供單元從消息隊列中提取訓練數據,由于是按照消息隊列中的順序提取數據,使得在為訓練單元分配數據時不會產生混亂。
可選的,所述參數同步單元還被配置為每隔預定時間間隔將更新后的參數的權重發(fā)送給對應的目標模型,以更新所述目標模型的各個參數的權重。通過每個預定時間間隔將更新后的參數的權重發(fā)送給對應的目標模型,使得目標模型的各個參數的權重得到及時更新。
根據本公開實施例的第二方面,提供一種模型訓練方法,應用于包含數據提供單元、參數同步單元和至少兩個訓練單元的模型訓練系統(tǒng)中,所述方法包括:所述數據提供單元將獲取的訓練數據存儲至消息隊列,從所述消息隊列中提取訓練數據,將提取的所述訓練數據發(fā)送給請求訓練數據的訓練單元;所述訓練單元根據從所述數據提取單元獲取的訓練數據對目標模型的參數進行訓練,得到所述目標模型的各個參數權重的變化差值,將所述目標模型的各個參數權重的變化差值發(fā)送至所述參數同步單元;所述參數同步單元根據獲取的所述目標模型的各個參數權重的變化差值,更新存儲的所述目標模型的參數的權重,為各個訓練單元提供同步后的權重。
可選的,所述數據提供單元獲取所述請求訓練數據的訓練單元的性能參數,從所述消息隊列的隊列頭部提取與所述性能參數匹配數量的訓練數據,將提取到的訓練數據發(fā)送至所述請求訓練數據的訓練單元,所述性能參數至少用于反映所述訓練單元的運算負荷;或者,所述數據提供單元從所述消息隊列的隊列頭部提取預定數量的訓練數據,將提取到的訓練數據發(fā)送至所述請求訓練數據的訓練單元。
可選的,所述參數同步單元在獲取到各個參數權重的變化差值后,對于每個參數,將所述參數權重的變化差值與存儲的所述參數的權重進行相加,得到所述參數更新后的權重。
可選的,所述數據提供單元獲取各個訓練單元各自所對應的廣告相關信息,為每種廣告相關信息設定一個消息隊列,每個消息隊列存儲與同一廣告相關信息對應的訓練數據,所述廣告相關信息至少包括富媒體的信息、富媒體中廣告位的信息中的前一種或全部。
可選的,所述數據提供單元獲取請求訓練數據的訓練單元所對應的廣告相關信息,從所述廣告相關信息對應的消息隊列中提取訓練數據,將提取的所述訓練數據發(fā)送給所述訓練單元。
可選的,所述參數同步單元每隔預定時間間隔將更新后的參數的權重發(fā)送給對應的目標模型,以更新所述目標模型的各個參數的權重。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
圖1是根據一示例性實施例示出的一種模型訓練系統(tǒng)的示意圖;
圖2是根據另一示例性實施例示出的一種模型訓練系統(tǒng)的示意圖;
圖3是根據一示例性實施例示出的一種模型訓練方法的流程圖;
圖4A是根據另一示例性實施例示出的一種模型訓練方法的流程圖;
圖4B是根據一示例性實施例示出的數據提供單元將獲取的訓練數據存儲至消息隊列,從消息隊列中提取訓練數據發(fā)送給請求訓練數據的訓練單元的流程圖;
圖4C是根據一示例性實施例示出的一種更新存儲的目標模型的參數的權重的流程圖;
圖5是根據一示例性實施例示出的一種用于訓練模型的裝置的框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
圖1是根據一示例性實施例示出的一種模型訓練系統(tǒng)的示意圖,如圖1所示,該模型訓練系統(tǒng)可以包括數據提供單元110、參數同步單元120和至少兩個訓練單元130。
數據提供單元110被配置為將獲取的訓練數據存儲至消息隊列,從消息隊列中提取訓練數據,將提取的訓練數據發(fā)送給請求訓練數據的訓練單元130。
消息隊列是一種先進先出的隊列,也即先放進消息隊列中的訓練數據,會被先讀取出來,因此可以保證提供給訓練單元130的訓練數據的時效性。
在實際應用中,訓練單元130可以向數據提供單元110發(fā)送訓練數據的獲取請求,數據提供單元110在接收到獲取請求后,按照訓練數據的獲取請求從消息隊列中獲取訓練數據,然后向訓練單元130發(fā)送訓練數據的獲取應答,該訓練數據的獲取應答中包括數據提供單元110獲取到的訓練數據。
一般的,為了加快訓練,數據提供單元110會提取一批數據,將提取的一批數據發(fā)送給請求訓練數據的訓練單元130。
訓練單元130被配置為根據從數據提供單元110獲取的訓練數據對目標模型的參數進行訓練,得到目標模型的各個參數權重的變化差值,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元120。
在實際應用中,會有至少兩個訓練單元130異步并行執(zhí)行對目標模型的各個參數權重的訓練,對于每一個訓練單元130訓練得到的各個參數權重的變化差值都發(fā)送至參數同步單元120。
參數同步單元120被配置為根據獲取的目標模型的各個參數權重的變化差值,更新存儲的目標模型的參數的權重,為各個訓練單元130提供同步后的權重。
在實際應用中,各個訓練單元130訓練得到的各個參數權重的變化差值可能為正數,也可能為負數。參數同步單元120根據獲取到的各個參數權重的變化差值對已經存儲的目標模型的參數權重進行更新,在下一次獲取到各個參數權重的變化差值時,參數同步單元120更新的就是本次更新存儲的目標模型的參數的權重。
綜上所述,本公開實施例中提供的模型訓練系統(tǒng),通過利用數據提供單元從消息隊列中提取訓練數據發(fā)送給訓練單元,訓練單元根據獲取的訓練數據對目標模型的參數進行訓練,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元,參數同步單元根據變化差值更新存儲的目標模型的參數的權重,由于至少有兩個訓練單元,因此多個訓練單元對訓練數據進行訓練可以并行執(zhí)行,解決了相關技術中由于計算量非常大,耗時長,導致預估模型不能實時地適用最新的線上數據的問題,達到了加快計算速度,實時地適用最新的線上數據的效果。
在實際應用中,由于網絡提供的富媒體以及富媒體廣告位特別多,針對每種富媒體廣告位均需要有對應的目標模型,用來為富媒體廣告位提供廣告點擊率預估,因此本申請?zhí)峁┑南到y(tǒng)可以同時對各個目標模型進行并行訓練。具體可以參見如圖2所示的模型訓練系統(tǒng)。
圖2是根據另一示例性實施例示出的一種模型訓練系統(tǒng)的示意圖,如圖2所示,該模型訓練系統(tǒng)可以包括數據提供單元210、參數同步單元220和至少兩個訓練單元230。
數據提供單元210被配置為將獲取的訓練數據存儲至消息隊列,從消息隊列中提取訓練數據,將提取的訓練數據發(fā)送給請求訓練數據的訓練單元230。
數據提供單元210中可以包括多個消息隊列,每個消息隊列為至少一個訓練單元230提供訓練數據。不同的消息隊列中訓練數據所對應的富媒體的廣告位可以相同,也可以不同。
訓練單元230被配置為根據從數據提供單元210獲取的訓練數據對目標模型的參數進行訓練,得到目標模型的各個參數權重的變化差值,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元220。
參數同步單元220被配置為根據獲取的目標模型的各個參數權重的變化差值,更新存儲的目標模型的參數的權重,為各個訓練單元230提供同步后的權重。
在實際應用中,各個訓練單元230可以用于訓練相同的目標模型中參數的權重,這種情況下,各個消息隊列中存儲的訓練數據一般是同類型的,此時,數據提供單元210在向訓練單元230提供訓練數據時,可以從與訓練單元230對應的消息隊列中提取訓練數據,也可以從存儲有訓練數據的任一個消息隊列中提取訓練數據,也可以從下一個消息隊列中提取訓練數據。
而在另一種應用場景中,各個訓練單元230也可以用于訓練不同的目標模型中參數的權重,比如針對廣告點擊率預估的目標模型中,由于網絡提供的富媒體以及富媒體廣告位特別多,針對每種富媒體廣告位均需要有對應的目標模型,用來為富媒體廣告位提供廣告點擊率預估,因此本申請?zhí)峁┑南到y(tǒng)可以同時對各個目標模型進行并行訓練。這種應用場景中,由于不同富媒體廣告位對應的訓練數據不同,因此針對每種富媒體廣告位需要設置獨立的消息隊列,該消息隊列僅向用于訓練該富媒體廣告位對應的目標模型的參數權要的訓練單元230提供訓練數據。
對應的,與目標模型對應的訓練單元230將訓練得到的參數權重的變化差值提供給參數同步單元220,參數同步單元220也可以根據訓練單元230對變化差值對應區(qū)分,將變化差值疊加至對應的參數權重上。
也就是說,參數同步單元220中可以設置管理機制,每種目標模型的參數權重獨立存儲,在獲取到訓練單元230發(fā)送的變化差值時,首先確定出訓練單元230對應的目標模型,然后根據獲取的變化差值更新存儲的與確定出的目標模型對應的參數權重。
參數同步單元220將同步后的權重進行存儲,在各個訓練單元230下一輪訓練時,將更新后的權重提供給訓練單元230,用于訓練出最新的權重參數的變化差值。
在一種可能的實現方式中,數據提供單元210還被配置為獲取請求訓練數據的訓練單元230的性能參數,從消息隊列的隊列頭部提取與性能參數匹配數量的訓練數據,將提取到的訓練數據發(fā)送至請求訓練數據的訓練單元230,性能參數至少用于反映訓練單元230的運算負荷。
在實際應用中,不同的訓練單元230的性能參數可能不同,比如性能參數為用于反映訓練單元的運算負荷,有的訓練單元的運算負荷大,可以處理數量較多的訓練數據,有的訓練單元的運算負荷較小,可能只能處理數量較少的訓練數據,因此數據提供單元210根據不同的性能參數確定出與訓練單元230的性能參數匹配數量的訓練數據。
將訓練數據按照隊列的形式進行排列,從消息隊列的頭部出,尾部進,使得訓練數據在獲取過程中可以避免發(fā)生重復獲取等問題,對于先加入消息隊列的訓練數據,先分配給訓練單元230進行訓練,可以使訓練數據的時效性更好。
在另一種可能的實現方式中,數據提供單元210還被配置為從消息隊列的隊列頭部提取預定數量的訓練數據,將提取到的訓練數據發(fā)送至請求訓練數據的訓練單元230。
很顯然,數據提供單元210也可以按照預定數量提取訓練數據,預定數量可以是對于每個訓練單元230都提取相同數量的訓練數據。
在一種可能的實現方式中,參數同步單元220被配置為在獲取到各個參數權重的變化差值后,對于每個參數,將參數權重的變化差值與存儲的參數的權重進行相加,得到參數更新后的權重。
在實際應用中,各個訓練單元230訓練得到的各個參數權重的變化差值可能為正數,也可能為負數。參數同步單元220根據獲取到的各個參數權重的變化差值與已經存儲的目標模型的參數權重相加進行更新,在下一次獲取到各個參數權重的變化差值時,參數同步單元220更新的就是本次更新存儲的目標模型的參數的權重,也即利用下一次的變化差值加上本次將參數權重與本次獲取的變化差值相加得到的參數權重。
在一種可能的實現方式中,數據提供單元210還被配置為獲取各個訓練單元230各自所對應的廣告相關信息,為每種廣告相關信息設定一個消息隊列,每個消息隊列存儲與同一廣告相關信息對應的訓練數據,廣告相關信息至少包括富媒體的信息、富媒體中廣告位的信息中的前一種或全部。
在實際應用中,由于不同富媒體廣告位對應的訓練數據不同,因此針對每種富媒體廣告位需要設置獨立的消息隊列,該消息隊列僅向用于訓練該富媒體廣告位對應的目標模型的參數權要的訓練單元230提供訓練數據。
在一種可能的實現方式中,數據提供單元210還被配置為獲取請求訓練數據的訓練單元230所對應的廣告相關信息,從廣告相關信息對應的消息隊列中提取訓練數據,將提取的訓練數據發(fā)送給訓練單元230。
在實際應用中,數據提供單元210可能會預先存儲消息隊列與用于訓練該消息隊列中的訓練數據的訓練單元230之間的對應關系,當某一訓練單元發(fā)送訓練數據獲取請求時,數據提供單元210根據該訓練單元查詢與該訓練單元對應的消息隊列,獲取該消息隊列中的訓練數據。
訓練單元230也可以在訓練數據的獲取請求中添加需要獲取訓練數據對應的消息隊列的信息,數據提供單元210可以根據接收到的訓練數據的獲取請求向對應的消息隊列獲取訓練數據。很顯然,訓練數據的獲取請求中包含有訓練單元230的標識信息,用于數據提供單元210向對應的訓練單元230發(fā)送響應。
在一種可能的實現方式中,參數同步單元220還被配置為每隔預定時間間隔將更新后的參數的權重發(fā)送給對應的目標模型,以更新目標模型的各個參數的權重。
預定間隔時間可以為10分鐘,可以是15分鐘,或者可以是2小時,因為在實際應用中,短時間內參數權重不一定會發(fā)生變化,因此可以間隔一段時間發(fā)送。
需要補充說明的是,本申請中的目標模型并不限于上述所舉的用于為富媒體的廣告位預估點擊率的模型,還可以為其他的目標模型,本申請中不對目標模型的類型或功能進行限定。
綜上所述,本公開實施例中提供的模型訓練系統(tǒng),通過利用數據提供單元從消息隊列中提取訓練數據發(fā)送給訓練單元,訓練單元根據獲取的訓練數據對目標模型的參數進行訓練,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元,參數同步單元根據變化差值更新存儲的目標模型的參數的權重,由于至少有兩個訓練單元,因此多個訓練單元對訓練數據進行訓練可以并行執(zhí)行,解決了相關技術中由于計算量非常大,耗時長,導致預估模型不能實時地適用最新的線上數據的問題,達到了加快計算速度,實時地適用最新的線上數據的效果。
另外,通過獲取與訓練單元的性能參數匹配數量的訓練數據,可以針對性能參數的差異分配不同數量的訓練數據,使得性能參數較好的訓練單元獲取到較多的訓練數據進行訓練,而性能參數較差的訓練單元獲取到較少的訓練數據進行訓練,使得性能參數不同的訓練單元盡可能發(fā)揮出最好的訓練效果,從而加快對訓練數據的訓練速度。
另外,通過參數同步單元將各個參數權重的變化差值與存儲的參數的權重進行相加,使得參數同步單元中的參數權重能夠不斷更新,以實時地適用最新的線上數據。
另外,通過消息隊列存儲與同一廣告相關信息對應的訓練數據,使得訓練單元在訓練數據時可以到對應的消息隊列中獲取。
另外,通過數據提供單元從消息隊列中提取訓練數據,由于是按照消息隊列中的順序提取數據,使得在為訓練單元分配數據時不會產生混亂。
另外,通過每個預定時間間隔將更新后的參數的權重發(fā)送給對應的目標模型,使得目標模型的各個參數的權重得到及時更新。
圖3是根據一示例性實施例示出的一種模型訓練方法的流程圖,如圖3所示,該模型訓練方法應用于圖1所示的包含數據提供單元、參數同步單元和至少兩個訓練單元的模型訓練系統(tǒng)中,包括以下步驟。
在步驟310中,數據提供單元將獲取的訓練數據存儲至消息隊列,從消息隊列中提取訓練數據,將提取的訓練數據發(fā)送給請求訓練數據的訓練單元。
消息隊列是一種先進先出的隊列,也即先放進消息隊列中的訓練數據,會被先讀取出來,因此可以保證提供給訓練單元的訓練數據的時效性。
在實際應用中,訓練單元可以向數據提供單元發(fā)送訓練數據的獲取請求,數據提供單元在接收到獲取請求后,按照訓練數據的獲取請求從消息隊列中獲取訓練數據,然后向訓練單元發(fā)送訓練數據獲取應答,該訓練數據獲取應答中包括數據提供單元獲取到的訓練數據。
一般的,為了加快訓練,數據提供單元會提取一批數據,將提取的一批數據發(fā)送給請求訓練數據的訓練單元。
在步驟320中,訓練單元根據從數據提供單元獲取的訓練數據對目標模型的參數進行訓練,得到目標模型的各個參數權重的變化差值,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元。
在實際應用中,會有至少兩個訓練單元異步并行執(zhí)行對目標模型的各個參數權重的訓練,對于每一個訓練單元訓練得到的各個參數權重的變化差值都發(fā)送至參數同步單元。
在步驟330中,參數同步單元根據獲取的目標模型的各個參數權重的變化差值,更新存儲的目標模型的參數的權重,為各個訓練單元提供同步后的權重。
在實際應用中,各個訓練單元訓練得到的各個參數權重的變化差值可能為正數,也可能為負數。參數同步單元根據獲取到的各個參數權重的變化差值對已經存儲的目標模型的參數權重進行更新,在下一次獲取到各個參數權重的變化差值時,參數同步單元更新的就是本次更新存儲的目標模型的參數的權重。
綜上所述,本公開實施例中提供的模型訓練方法,通過利用數據提供單元從消息隊列中提取訓練數據發(fā)送給訓練單元,訓練單元根據獲取的訓練數據對目標模型的參數進行訓練,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元,參數同步單元根據變化差值更新存儲的目標模型的參數的權重,由于至少有兩個訓練單元,因此多個訓練單元對訓練數據進行訓練可以并行執(zhí)行,解決了相關技術中由于計算量非常大,耗時長,導致預估模型不能實時地適用最新的線上數據的問題,達到了加快計算速度,實時地適用最新的線上數據的效果。
圖4A是根據另一示例性實施例示出的一種模型訓練方法的流程圖,如圖4所示,該模型訓練方法應用于圖1所示的包含數據提供單元、參數同步單元和至少兩個訓練單元的模型訓練系統(tǒng)中,包括以下步驟。
在步驟410中,數據提供單元將獲取的訓練數據存儲至消息隊列,從消息隊列中提取訓練數據,將提取的訓練數據發(fā)送給請求訓練數據的訓練單元。
數據提供單元中可以包括多個消息隊列,每個消息隊列為至少一個訓練單元提供訓練數據。不同的消息隊列中訓練數據所對應的富媒體的廣告位可以相同,也可以不同。
可選的,數據提供單元將獲取的訓練數據存儲至消息隊列,從消息隊列中提取訓練數據,將提取的訓練數據發(fā)送給請求訓練數據的訓練單元,可以參見如圖4B所描述的步驟。
在步驟411中,數據提供單元獲取各個訓練單元各自所對應的廣告相關信息,為每種廣告相關信息設定一個消息隊列,每個消息隊列存儲與同一廣告相關信息對應的訓練數據。
這里所講的廣告相關信息至少包括富媒體的信息、富媒體中廣告位的信息中的前一種或全部。
在實際應用中,由于不同富媒體廣告位對應的訓練數據不同,因此針對每種富媒體廣告位需要設置獨立的消息隊列,該消息隊列僅向用于訓練該富媒體廣告位對應的目標模型的參數權要的訓練單元提供訓練數據。
在步驟412中,數據提供單元獲取請求訓練數據的訓練單元所對應的廣告相關信息,從廣告相關信息對應的消息隊列中提取訓練數據,將提取的訓練數據發(fā)送給訓練單元。
在實際應用中,數據提供單元可能會預先存儲消息隊列與用于訓練該消息隊列中的訓練數據的訓練單元之間的對應關系,當某一訓練單元發(fā)送訓練數據的獲取請求時,數據提供單元根據該訓練單元查詢與該訓練單元對應的消息隊列,獲取該消息隊列中的訓練數據。
訓練單元也可以在訓練數據獲取請求中添加需要獲取訓練數據對應的消息隊列的信息,數據提供單元可以根據接收到的訓練數據的獲取請求向對應的消息隊列獲取訓練數據。很顯然,訓練數據的獲取請求中包含有訓練單元的標識信息,用于數據提供單元向對應的訓練單元發(fā)送響應。
在步驟413中,數據提供單元獲取請求訓練數據的訓練單元的性能參數,從消息隊列的隊列頭部提取與性能參數匹配數量的訓練數據,將提取到的訓練數據發(fā)送至請求訓練數據的訓練單元。
這里所講的性能參數至少用于反映訓練單元的運算負荷。
在實際應用中,不同的訓練單元的性能參數可能不同,比如性能參數為用于反映訓練單元的運算負荷,有的訓練單元的運算負荷大,可以處理數量較多的訓練數據,有的訓練單元的運算負荷較小,可能只能處理數量較少的訓練數據,因此數據提供單元根據不同的性能參數確定出與訓練單元的性能參數匹配數量的訓練數據。
將訓練數據按照隊列的形式進行排列,從消息隊列的頭部出,尾部進,使得訓練數據在獲取過程中可以避免發(fā)生重復獲取等問題,對于先加入消息隊列的訓練數據,先分配給訓練單元進行訓練,可以使訓練數據的時效性更好。
在步驟414中,數據提供單元從消息隊列的隊列頭部提取預定數量的訓練數據,將提取到的訓練數據發(fā)送至請求訓練數據的訓練單元。
很顯然,數據提供單元也可以按照預定數量提取訓練數據,預定數量可以是對于每個訓練單元都提取相同數量的訓練數據。
在步驟420中,訓練單元根據從數據提供單元獲取的訓練數據對目標模型的參數進行訓練,得到目標模型的各個參數權重的變化差值,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元。
在步驟430中,參數同步單元根據獲取的目標模型的各個參數權重的變化差值,更新存儲的目標模型的參數的權重,為各個訓練單元提供同步后的權重。
在實際應用中,各個訓練單元可以用于訓練相同的目標模型中參數的權重,這種情況下,各個消息隊列中存儲的訓練數據一般是同類型的,此時,數據提供單元在向訓練單元提供訓練數據時,可以從與訓練單元對應的消息隊列中提取訓練數據,也可以從存儲有訓練數據的任一個消息隊列中提取訓練數據,也可以從下一個消息隊列中提取訓練數據。
而在另一種應用場景中,各個訓練單元也可以用于訓練不同的目標模型中參數的權重,因此本申請?zhí)峁┑姆椒梢酝瑫r對各個目標模型進行并行訓練。
對應的,與目標模型對應的訓練單元將訓練得到的參數權重的變化差值提供給參數同步單元,參數同步單元也可以根據訓練單元對變化差值對應區(qū)分,將變化差值疊加至對應的參數權重上。
也就是說,參數同步單元中可以設置管理機制,每種目標模型的參數權重獨立存儲,在獲取到訓練單元發(fā)送的變化差值時,首先確定出訓練單元對應的目標模型,然后根據獲取的變化差值更新存儲的與確定出的目標模型對應的參數權重。
可選的,更新存儲的目標模型的參數的權重,可以實現成如圖4C所示的步驟。
在步驟431中,參數同步單元在獲取到各個參數權重的變化差值后,對于每個參數,將參數權重的變化差值與存儲的參數的權重進行相加,得到參數更新后的權重。
在實際應用中,各個訓練單元訓練得到的各個參數權重的變化差值可能為正數,也可能為負數。參數同步單元根據獲取到的各個參數權重的變化差值與已經存儲的目標模型的參數權重相加進行更新,在下一次獲取到各個參數權重的變化差值時,參數同步單元更新的就是本次更新存儲的目標模型的參數的權重,也即利用下一次的變化差值加上本次將參數權重與本次獲取的變化差值相加得到的參數權重。
在步驟432中,參數同步單元每隔預定時間間隔將更新后的參數的權重發(fā)送給對應的目標模型,以更新目標模型的各個參數的權重。
因為在實際應用中,短時間內參數權重不一定會發(fā)生變化,因此可以間隔一段時間發(fā)送。
綜上所述,本公開實施例中提供的模型訓練方法,通過利用數據提供單元從消息隊列中提取訓練數據發(fā)送給訓練單元,訓練單元根據獲取的訓練數據對目標模型的參數進行訓練,將目標模型的各個參數權重的變化差值發(fā)送至參數同步單元,參數同步單元根據變化差值更新存儲的目標模型的參數的權重,由于至少有兩個訓練單元,因此多個訓練單元對訓練數據進行訓練可以并行執(zhí)行,解決了相關技術中由于計算量非常大,耗時長,導致預估模型不能實時地適用最新的線上數據的問題,達到了加快計算速度,實時地適用最新的線上數據的效果。
另外,通過獲取與訓練單元的性能參數匹配數量的訓練數據,可以針對性能參數的差異分配不同數量的訓練數據,使得性能參數較好的訓練單元獲取到較多的訓練數據進行訓練,而性能參數較差的訓練單元獲取到較少的訓練數據進行訓練,使得性能參數不同的訓練單元盡可能發(fā)揮出最好的訓練效果,從而加快對訓練數據的訓練速度。
另外,通過參數同步單元將各個參數權重的變化差值與存儲的參數的權重進行相加,使得參數同步單元中的參數權重能夠不斷更新,以實時地適用最新的線上數據。
另外,通過消息隊列存儲與同一廣告相關信息對應的訓練數據,使得訓練單元在訓練數據時可以到對應的消息隊列中獲取。
另外,通過數據提供單元從消息隊列中提取訓練數據,由于是按照消息隊列中的順序提取數據,使得在為訓練單元分配數據時不會產生混亂。
另外,通過每個預定時間間隔將更新后的參數的權重發(fā)送給對應的目標模型,使得目標模型的各個參數的權重得到及時更新。
關于上述實施例中的方法,其中各個步驟執(zhí)行操作的具體方式已經在有關該系統(tǒng)的實施例中進行了詳細描述,此處將不做詳細闡述說明。
圖5是根據一示例性實施例示出的一種用于訓練模型的裝置的框圖,該裝置應用于包含數據提供單元、參數同步單元和至少兩個訓練單元的模型訓練系統(tǒng)中。例如,裝置500可以被提供為一網絡側設備。參照圖5,裝置500包括處理組件502,其進一步包括一個或多個處理器,以及由存儲器504所代表的存儲器資源,用于存儲可由處理組件502的執(zhí)行的指令,例如應用程序。存儲器504中存儲的應用程序可以包括一個或一個以上的每一個對應于一組指令的模塊。此外,處理組件502被配置為執(zhí)行指令,以執(zhí)行上述模型訓練方法。
裝置500還可以包括一個電源組件506被配置為執(zhí)行裝置500的電源管理,一個有線或無線網絡接口508被配置為將裝置500連接到網絡,和一個輸入輸出(I/O)接口510。裝置500可以操作基于存儲在存儲器504的操作系統(tǒng),例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或類似。
本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理并包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權利要求指出。
應當理解的是,本公開并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權利要求來限制。