TWI671690B - 用於分散式深度機器學習之方法與系統 - Google Patents
用於分散式深度機器學習之方法與系統 Download PDFInfo
- Publication number
- TWI671690B TWI671690B TW106102598A TW106102598A TWI671690B TW I671690 B TWI671690 B TW I671690B TW 106102598 A TW106102598 A TW 106102598A TW 106102598 A TW106102598 A TW 106102598A TW I671690 B TWI671690 B TW I671690B
- Authority
- TW
- Taiwan
- Prior art keywords
- nodes
- parameters
- node
- machine learning
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本教示係關於在一叢集上進行分散式深度機器學習。在一實例中,接收一要求,該要求係於一包含複數個節點之叢集上,針對關聯於一機器學習模型之一或多個參數進行估計。取得將用於估計該一或多個參數的一資料集。將該資料集劃分為複數個資料子集,各資料子集分別對應至該複數個節點其中之一。分派各資料子集至一對應節點,以基於該資料子集,針對該一或多個參數之值進行估計。基於分派至該節點的一對應資料子集所獲得的該一或多個參數之估計值,自各該複數個節被接收。基於該複數個節點其中至少部分節點所產生的該一或多個參數之估計值,對該機器學習模型的一或多個參數進行估計。
Description
本教示係關於執行分散式運算之方法、系統與程式設計,尤其係關於在一叢集上進行分散式深度機器學習之方法、系統與程式設計。
分散式運算係資訊科學之一子領域,以研究分散式系統為主。分散式系統包含多台自動電腦(autonomous computer)或平行虛擬機器,所有電腦或機器藉由網路彼此溝通,包含多個節點之一電腦叢集即為前述網路實例之一。深度學習,或稱深度機器學習,為機器學習學門之子領域,以一演算法集合為核心,使用多個具複雜結構的處理層,對資料進行高階抽象化。至今,深度學習多半於單一伺服器上操作,不過為了利用大型資料集合進行機器學習,於一分散式系統中的多個伺服器上操作深度學習亦有其需要。
目前的分散式機器學習技術,皆透過從無到有獨立架設之專用叢集進行,但此種叢集無法與現有的資料處理管線整合。就目前的分散式機器學習文獻看來,其操作模式皆無法使叢集內之運算節點與彼此進行直接溝通,不但導致端對端學習等待時間拉長,也不支援非同步分散式學習。以目前的學習技術而言,一旦系統當機,學習程序就必須從頭開始。
為克服上述技術缺陷,研發分散式深度機器學習技術即勢在
必行。
本教示係關於執行分散式運算之方法、系統與程式設計,尤其係關於在一叢集上進行分散式深度機器學習之方法、系統與程式設計。
在一實例中,揭示一實施於一機器上之方法,該機器具備至少一處理器、一儲存裝置及一通訊平台,該通訊平台能連線到一網路,該方法係針對一包含複數個節點的叢集上之一或多個參數進行估計。一要求被接收,該要求係針對關聯於一機器學習模型之一或多個相關進行估計。取得將用於估計該一或多個參數的一資料集。該資料集被劃分為複數個資料子集,各資料子集分別對應至該複數個節點其中之一。各資料子集被分派至一對應節點,以基於該資料子集,針對該一或多個參數之值進行估計。基於分派至該節點的一對應資料子集所獲得的該一或多個參數之估計值,自各該複數個節被接收。基於該複數個節點其中至少部分節點所產生的該一或多個參數之估計值,對該機器學習模型的一或多個參數進行估計。
在另一實例中,揭示一系統,其具備至少一處理器、一儲存裝置及一通訊平台,該通訊平台連線至一網路,該系統用於針對一包含複數個節點的叢集上之一或多個參數進行估計。該系統包含:一組態資訊辨識器,配置成用以接收針對一或多個機器學習模型相關參數進行估計之一要求;一訓練資料定位器,配置成用以取得將用於估計該一或多個參數的一資料集;一訓練資料分派器,配置成用以將該資料集劃分為複數個資料子集,各該資料子集皆對應至該等節點其中之一,並將各該資料子集分派給一對應節點,以基於該資料子集對該一或多個參數之值進行估計;及一
訓練模型判斷器,配置成用以自各該複數個節點接收針對該一或多個參數之估計值,該等估計值係基於分派給該節點之一對應資料子集而獲得,並基於該複數個節點其中至少部分節點所產生的該一或多個參數之估計值,對該機器學習模型的該一或多個參數進行估計。
其他概念係關於用以實施本分散式深度機器學習教示之軟體。一與本概念相符之軟體產品,包含至少一機器可讀非暫存性媒介,以及該媒介承載之資訊。該資訊可為可執行之程式碼資料、與該可執行程式碼資料相關之參數,及/或與一使用者、一要求、內容相關之資訊,或與一社群相關之資訊等。
在一實例中,揭示一機器可讀非暫存性之有形媒介,該媒介具有記錄於其上的資料,該資料用途為針對一包含複數個節點的叢集上之一或多個參數進行估計。經該機器讀取時,該媒介驅使該機器執行以下步驟:接收一要求,該要求係對關聯於一機器學習模型之一或多個參數進行估計;取得將用於估計該一或多個參數的一資料集;將該資料集劃分為複數個資料子集,各該資料子集皆對應至該等節點其中之一;分派各該資料子集至各對應節點,以基於該資料子集估計該一或多個參數之值;自各該複數個節點接收該一或多個參數之估計值,該等估計值基於該節點被分派之對應資料子集而獲得;及基於該複數個節點其中至少部分節點所產生的該一或多個參數之估計值,對該機器學習模型的該一或多個參數進行估計。
其他各種創新功能將於實施方式一節詳細說明。對於其中之部分功能,所屬技術領域技術人員可藉由仔細閱讀後續說明與附圖而理解其內容,或可藉由產出或實施前述實例而習得。本教示之各種創新功能,
可於操作或利用後續詳細實例描述的方法、工具、組合之不同面向之後成功落實及完成。
100‧‧‧環境範例
102‧‧‧使用者
104‧‧‧叢集
104-1‧‧‧運算節點
104-1‧‧‧一般節點
104-2‧‧‧運算節點
104-2‧‧‧一般節點
104-3‧‧‧運算節點
104-3‧‧‧一般節點
104-4‧‧‧運算節點
104-4‧‧‧一般節點
104-5‧‧‧運算節點
104-5‧‧‧一般節點
104-6‧‧‧運算節點
104-6‧‧‧一般節點
104-7‧‧‧運算節點
104-7‧‧‧一般節點
104-8‧‧‧運算節點
104-8‧‧‧一般節點
106‧‧‧網路
106-1‧‧‧網際網路交換點
106-2‧‧‧網際網路交換點
108‧‧‧協調節點
110‧‧‧模型儲存裝置
112‧‧‧中央訓練資料庫
200‧‧‧網路環境範例
304-1‧‧‧運算節點
304-2‧‧‧運算節點
304-3‧‧‧運算節點
304-4‧‧‧運算節點
305-1‧‧‧GPU/CPU
305-2‧‧‧GPU/CPU
305-3‧‧‧GPU/CPU
305-4‧‧‧GPU/CPU
308‧‧‧協調節點
404-1‧‧‧運算節點
404-2‧‧‧運算節點
404-3‧‧‧運算節點
412‧‧‧資料子集
415-1‧‧‧GPU
415-2‧‧‧CPU
416‧‧‧模型同步器
422‧‧‧資料子集
425-1‧‧‧GPU
425-2‧‧‧CPU
426‧‧‧模型同步器
432‧‧‧資料子集
435-1‧‧‧GPU
435-2‧‧‧CPU
436‧‧‧模型同步器
502‧‧‧組態資訊辨識器
504‧‧‧訓練資料定位器
506‧‧‧運算節點選擇器
508‧‧‧訓練資料分派器
510‧‧‧訓練指示生成器
512‧‧‧節點失效偵測器
514‧‧‧訓練模型判斷器
602‧‧‧步驟
604‧‧‧步驟
606‧‧‧步驟
608‧‧‧步驟
610‧‧‧步驟
612‧‧‧步驟
614‧‧‧步驟
616‧‧‧步驟
618‧‧‧步驟
620‧‧‧步驟
630‧‧‧步驟
702‧‧‧訓練資料讀取器
704‧‧‧處理器選擇器
706‧‧‧機器學習模組
707‧‧‧訓練標準
708‧‧‧模型同步器
710‧‧‧模型快照生成器
712‧‧‧模型快照讀取器
714‧‧‧處理器失效偵測器
802‧‧‧步驟
804‧‧‧步驟
808‧‧‧步驟
810‧‧‧步驟
812‧‧‧步驟
814‧‧‧步驟
816‧‧‧步驟
818‧‧‧步驟
820‧‧‧步驟
822‧‧‧步驟
823‧‧‧步驟
824‧‧‧步驟
825‧‧‧步驟
901‧‧‧節點1
902‧‧‧節點2
903‧‧‧節點n
910‧‧‧GPU d1,0
912‧‧‧部分向量[1,m]
914‧‧‧部分向量[m+1,2m]
916‧‧‧部分向量[m*(n-1),m*n]
920‧‧‧GPU d2,0
930‧‧‧GPU dn,0
1004-1‧‧‧運算節點
1004-1‧‧‧Spark執行器
1004-2‧‧‧Spark執行器
1004-3‧‧‧運算節點
1004-3‧‧‧Spark執行器
1012‧‧‧資料子集
1022‧‧‧資料子集
1032‧‧‧資料子集
1102‧‧‧指令
1104‧‧‧指令
1108‧‧‧指令
1110‧‧‧指令
1210‧‧‧API範例
1310‧‧‧程式範例
1400‧‧‧行動裝置
1410‧‧‧通訊平台
1420‧‧‧顯示螢幕
1430‧‧‧圖形處理器(GPU)
1440‧‧‧中央處理器(CPU)
1450‧‧‧輸入/輸出裝置
1460‧‧‧記憶體
1470‧‧‧行動裝置作業系統
1480‧‧‧應用程式
1490‧‧‧無線通訊模組儲存裝置
1500‧‧‧電腦
1510‧‧‧內部溝通匯流排
1520‧‧‧中央處理器(CPU)
1530‧‧‧唯讀記憶體(ROM)
1540‧‧‧隨機存取記憶體
(RAM)
1550‧‧‧COM埠
1560‧‧‧輸入/輸出元件
1570‧‧‧磁碟
1580‧‧‧使用者介面元件
1610‧‧‧圖表
1710‧‧‧圖表
本教示描述之方法、系統及/或程式設計,將以各種實施例進一步說明。該等實施例詳細描述皆以附圖為參考依據,且屬非限制性實施例,其中類同的元件符號係標示不同視角的圖示之間呈現之類似結構,且其中:第一圖係根據本教示一實施例所繪製之一網路環境範例高階圖示,在該網路環境中,可使用一叢集進行分散式深度機器學習;第二圖係根據本教示一實施例所繪製之另一網路環境範例高階圖示,在該網路環境中,可使用一叢集進行分散式深度機器學習;第三圖根據先前技術,繪示使用一叢集進行分散式深度機器學習之一實例;第四圖根據本教示一實施例,繪示使用一叢集進行分散式機器學習之一範例模式;第五圖根據本教示一實施例,繪示一協調節點範例圖;第六圖係根據本教示一實施例所繪製之一協調節點運作範例流程圖;第七圖根據本教示一實施例,繪示一運算節點範例圖;第八圖係根據本教示一實施例所繪製之一運算節點運作範例流程圖;第九圖根據本教示一實施例,繪示多個運算節點彼此溝通之
一範例模式;第十圖根據本教示一實施例,繪示使用一基於Spark框架之叢集進行分散式機器學習之另一範例模式;第十一圖根據本教示一實施例,繪示用於分散式機器學習之一使用者指令範例;第十二圖根據本教示一實施例,繪示用於分散式機器學習之一應用程式介面(API)範例;第十三圖根據本教示一實施例,繪示用於分散式機器學習之一程式範例;第十四圖係一行動裝置元件架構圖,該行動裝置可用於實施一整合本教示之專用系統;第十五圖係一電腦元件架構圖,該電腦可用於實施一整合本教示之專用系統;第十六圖根據本教示一實施例,繪示針對一分散式機器學習範例模式之一效能基準測試;及第十七圖根據本教示一實施例,繪示針對一分散式機器學習範例模式之另一效能基準測試。
以下詳細實施方式說明將透過實例呈現多項具體細節,以利充分理解相關教示之內涵。然而,對所屬技術領域技術人員而言,本教示顯無須前述具體細節即可實施。其他實例則以相對高階、無細節之形式描述公知方法、程序、系統、元件及/或電路,以避免呈現本教示不必要之晦
澀面向。
本發明針對利用一叢集之分散式深度機器學習,描述其方法、系統及程式設計面向。本發明揭露之該方法及該系統,目的為以有效率方式執行分散式深度學習。
於分散式系統中執行之電腦程式,稱為分散式應用程式。舉例而言,APACHE HADOOP為一支援資料密集且開放版權的分散式應用程式之軟體框架,可使應用程式與數千節點及千兆位元組大小資料一同執行工作程序。深度學習可直接利用Hadoop叢集進行,譬如讓線上相片服務(如Flickr)能自動標記所有屬於用戶的相片,且使Flickr終端用戶整理、搜尋相片更容易。如此一來,即可避免於Hadoop叢集與分開的深度學習叢集之間進行不必要之資料移動。
本教示之目標並非建立新的深度學習叢集,而是提供一輔助方案協助現有之運算叢集,包括Apache Hadoop、Apache Spark等叢集。根據本教示之一實施例,深度學習可定義為當Apache Oozie搭配Hadoop進行資料處理,及搭配Spark進行深度機器學習與非深度機器學習時,其工作流之一等步驟(first-class steps)。此時,單一叢集可同時進行多組深度學習實驗,使深度學習成本效益較過去習知方式之效益高出許多。
使用Hadoop進行深度學習,為一執行深度學習之全新方式。目前業界採用之方式皆須使用專用叢集,而Hadoop深度學習不但具備前者同樣等級之表現水準,更同時具備其他優點。在一實施例中,由於深度學習直接利用現有叢集之資料集,因此無須移動資料或建立新叢集,使得端對端學習時間減少,且深度學習程序中之迭代速度加快。一簡單之API
可用以進行分散式訓練、測試與特徵擷取,與現有資料處理管線整合因此更加容易。
在一實施例中,系統架構容許將深度學習函式庫(如Caffe)部署於許多Spark執行器程序中,且各程序皆具有圖形處理器(GPU)或中央處理器(CPU)裝置,而後亦容許前述函式庫驅動該等執行器,自彈性分散式資料集(resilient distributed datasets,RDD)進行分散式學習。另,該系統高效率支援訊息傳遞介面(message passing interface,MPI)之溝通模式,可在多個Spark執行器程序間分享模型更新資訊,其中某些程序亦可共用主機。該溝通模式可支援無限頻寬網路(Infiniband)及乙太網路。
依一實施例,該系統在深度學習容錯系統出現錯誤時,可對學習狀態進行快照。舉例而言,該系統可對一學習狀態拍攝一張快照,並將該快照儲存於該叢集外之一資料庫中。之後,若整個叢集當機,該系統可讀取該快照並繼續深度學習程序。若該叢集中某些節點於深度學習程序中當機,則可根據該等節點當機前,節點間針對學習狀態之溝通內容,並搭配剩餘之節點使學習程序繼續進行。
該系統可支援同步與非同步分散式學習,且可支援多種輸入格式之模組化中介程式層。
「深度學習」與「深度機器學習」二詞,於本教示中可隨意替換。
其他各種創新功能將於後續說明中部分描述,且對於部分創新功能,所屬技術領域技術人員亦可藉由仔細閱讀後續說明與附圖而理解其內容,或可藉由產出或實施前述實例習得。本教示之各種創新功能,可
於操作或利用後續詳細實例描述的方法、工具、組合之不同面向之後成功落實及完成。
第一圖係根據本教示一實施例,所繪製之一網路環境範例100高階圖示,而在網路環境範例100中,可使用一叢集進行分散式深度機器學習。第一圖中的網路環境範例100包含一或多個使用者102、一個叢集104以及一個網路106。在網路環境範例100中,一使用者102之身分可能為叢集104之網路管理員、操作員、開發人員或客戶,此使用者102可透過網路106或一內部或專屬網路連線(未顯示於圖中),向叢集104送出開始執行分散式機器學習程序之一要求,並自叢集104讀取執行結果。本教示使用之「機器學習程序」一詞,可包含針對一或多部機器上的訓練資料集,將諸多相關參數微調至最佳化之任何程序。
網路106可為一單獨網路,或一相異網路之組合。舉例而言,網路106可為一區域網路(LAN)、廣域網路(WAN)、公用網路、私人網路、專屬網路、公用電話交換網路(PSTN)、網際網路、無線網路、虛擬網路或任何以上之組合。網路106亦可包含多個網路存取點,例如有線存取點或如基地台、網際網路交換點106-1、......、106-2等無線存取點,透過該等網路存取點,一資料源即可與該網路連線,並進一步透過網路傳輸資訊。
該分散式機器學習程序所利用之叢集104,其中包含複數個運算節點104-1、104-2、......、104-7、104-8以及至少一協調節點108(如一HADOOP叢集中之一閘道節點),以上節點可透過網路106或一內部網路(未顯示於圖中)進行溝通。在本實例中,叢集104中之各節點可為一自主實體
機器,如一伺服器、工作站、桌上型或筆記型電腦、小筆電、平板電腦、智慧型手機、遊戲主機、機上盒或任何其他合適之機器。在另一實例中,某些或全部之節點可為軟體模擬或硬體虛擬化技術架設之平行虛擬機器。叢集104可為一組機器,其所有權屬於如企業等一實體單位,並架設成一伺服器農場或伺服器集群形式,其中所有伺服器皆為機架式,且皆置於一伺服器機房或資料中心內。叢集104亦可為多部機器,其所有權分屬不同實體單位,且各機器分處於相隔一段距離的不同空間內。
在本實例中,叢集104亦可包含一訓練資料庫112,資料庫112中存有一或多個龐大訓練資料集,如各自包含上兆個特徵、幾十億個訓練範例及數百萬個參數之訓練資料集,以利於叢集104上進行分散式機器學習。舉例而言,訓練資料集可記錄於叢集104外之一遠端伺服器(未顯示於圖中),並於學習程序開始前,透過協調節點108傳送(譬如以複製貼上方式)至訓練資料庫112。當分散式機器學習程序啟動時,該等訓練資料集即已存入叢集104,例如存入叢集104內的中央訓練資料庫112中(如第一圖所示),或已被打散分派給叢集104中各個一般節點104-1、104-2、......、104-7、104-8。在一實例中,一HADOOP叢集可先進行一前置處理步驟,即該HADOOP叢集負責將訓練資料隨機打散並分派給節點104-1、104-2、......、104-7、104-8中。本實例中之叢集104可作為資料儲存空間及運算資源,以利提高資料局部性並提升執行效能。
在本實例中,叢集104亦可包含一模型儲存裝置110,模型儲存裝置110中存有多個訓練模型,或一次分散式訓練過程中一個模型之多張狀態快照。在一實施例中,由於該等運算節點可於該分散式訓練過程中與
彼此交換一個模型之狀態資訊,各運算節點即可於資訊交換結束,如訓練過程中每次迭代後,取得相同之狀態資訊。而後,該等節點其中之一可將該狀態資訊直接存入模型儲存裝置110。
第二圖係根據本教示一實施例所繪製之另一網路環境範例200高階圖示,在網路環境範例200中,可使用一叢集進行分散式深度機器學習。本實施例之網路環境範例200與第一圖所示之網路環境範例100類似,惟其模型儲存裝置110位於叢集104外,且連線至網路106。
第三圖係根據先前技術,繪示使用一叢集進行分散式深度機器學習之一實例。如第三圖所示,該叢集包含一協調節點308及多個運算節點304-1、......、304-4。各運算節點包含一單獨GPU或CPU,其工作為執行機器學習任務。在一模型之一次分散式訓練過程中,每次迭代結束後,各運算節點將經過運算處理之該模型狀態傳送至協調節點308,並針對不同節點依不同訓練資料子集所作之狀態運算結果,進行狀態整合工作。而後,協調節點308須將整合後狀態傳回各運算節點,以利下一輪分散式學習迭代處理。此種分散式機器學習方式需耗費許多時間。
第四圖根據本教示一實施例,繪示使用一叢集進行分散式機器學習之一範例模式。如第四圖所示,本叢集中之協調節點108在接收一使用者傳送之要求後,可指示運算節點404-1、......、404-3進行機器學習程序,譬如於一次分散式深度學習程序中估計一模型參數。協調節點108可將訓練資料庫112中之資料劃分為多個資料子集412、422、432,並將各資料子集分派至該等運算節點其中之一,以進行參數估計工作。在本實例中,各運算節點可包含多個能同時執行訓練或估計程序之GPU及/或CPU。每一輪訓
練結束後,各運算節點可令節點內之該等GPU/CPU彼此交換運算結果。舉例而言,各GPU/CPU節點可具有兩個不同的網路介面,即乙太網路與無限頻寬網路。乙太網路可作為外部溝通使用之主要介面,而無限頻寬網路則可針對該叢集內GPU/CPU節點之間提供速度高出十倍之連線網路。應可理解在其他實施例中,乙太網路(而非無限頻寬網路)可針對叢集內GPU/CPU節點之間提供連線網路。亦可理解的是,其他網路介面也可針對運算節點之間或各運算節點內GPU/CPU之間提供連線網路。
該等運算節點之間可彼此直接溝通,例如透過一同步化模式,而無須透過協調節點108協助。舉例而言,各運算節點包含一模型同步器416、426、436,其執行與其他運算節點「同步」之工作,如透過遠端直接記憶體存取(RDMA)技術,直接存取其他節點內GPU/CPU記憶體中的資料。如此一來,在每一輪訓練結束後,該等運算節點即經過同步化並取得該訓練模型之一相同狀態資訊。此外,各運算節點中的每一GPU或CPU亦可具有相同狀態。在一實施例中,一運算節點中之一GPU或CPU可針對該狀態擷取一張快照,並將該快照儲存於模型儲存裝置110中。由於模型儲存裝置110位於該等運算節點外,若一或多個運算節點在一次深度學習程序中失效,剩餘之節點可依據前次存於模型儲存裝置110中之模型狀態,繼續進行深度學習。
第五圖根據本教示一實施例,繪示一協調節點108範例圖。本實例中之協調節點108包含一組態資訊辨識器502、一訓練資料定位器504、一運算節點選擇器506、一訓練資料分派器508、一訓練指示生成器510、一節點失效偵測器512及一訓練模型判斷器514。
本實例之組態資訊辨識器502可透過一網路接收一使用者要求,或直接由一使用者方接收之。該要求內容可為擷取特徵、訓練機器學習模型或核可一深度學習用之模型等,其形式可為一使用者指令,該使用者指令包含與該模型相關之組態資訊。舉例來說,組態資訊可包含運算節點數量、各節點包含之GPU數量、深度學習函式庫所在位置等資訊。組態資訊辨識器502可自該要求擷取組態資訊並判斷資訊內容。
第十一圖根據本教示一實施例,繪示用於分散式機器學習之一使用者指令範例。本教示可基於開放原始碼軟體函式庫,如Apache Spark與Caffe,利用強化後的Hadoop叢集進行深度學習。據此,一使用者可透過第十一圖所示之一指令,將深度學習工作內容發送至一Hadoop叢集上(-master yarn)。如第十一圖所示,一使用者可輸入該指令,以指定Spark執行器程序應啟動之數量(-num-executors 1102)、各執行器應分配到的CPU/GPU裝置之數量(-devices 1104)及儲存該模型之Hadoop分散式資料系統(Hadoop Distributed File System,HDFS)路徑(1108)。使用者可使用標準Caffe組態檔以指定Caffe求解器(solver)及深度網路拓樸(如solver.prototxt、net.prototxt 1110),同時指定訓練資料集於HDFS或雲端儲存空間(如Amazon S3)上之存放位置資訊。
回到第五圖內容,組態資訊辨識器502自該要求取得組態資訊後,可將該資訊傳送給負責選擇運算節點的運算節點選擇器506、負責定位訓練資料的訓練資料定位器504及負責生成一訓練指示的訓練指示生成器510。
本實例之訓練資料定位器504可決定用於訓練該模型的資料
應存放之位置,例如根據該要求包含之該組態資訊,可將資料置於一訓練資料庫中。在一實施例中,訓練資料定位器504可直接自該訓練資料庫取得該等訓練資料。在另一實施例中,訓練資料定位器504可自該訓練資料庫單獨取得該等訓練資料之位置辨識碼(location ID)。訓練資料定位器504可將該等訓練資料或該等資料之位置辨識碼傳送給負責分派訓練資料的訓練資料分派器508。
本實例之運算節點選擇器506,可根據自組態資訊辨識器502接收之該組態資訊決定執行器數量,換言之,即決定運算節點數量。另,運算節點選擇器506可根據該數量選擇該叢集中之運算節點。舉例而言,如根據該要求指示須選擇五個運算節點,則運算節點選擇器506可先判斷該叢集中各運算節點之工作量,再選擇工作量為零或較低之五個運算節點。運算節點選擇器也可根據該要求內容,替選定之各運算節點決定其處理器數量。各節點內部之處理器種類可為CPU或GPU。運算節點選擇器506可將與該等選定節點之相關資訊,傳送給負責分派訓練資料的訓練資料分派器508。
本實例之訓練資料分派器508接收來自訓練資料定位器504之訓練資料,以及接收來自運算節點選擇器506的該等選定節點之相關資訊。訓練資料分派器508可將該等訓練資料劃分成多個訓練資料子集,並將各子集分派至一選定節點,該節點負責對關聯於一機器學習模型的一或多個參數進行估計。該一或多個參數可與用來訓練該機器學習模型之特徵擷取手段相關。該一或多個參數可來自機器學習模型本身。該一或多個參數亦可與核可一經訓練之機器學習模型相關。訓練資料分派器508可將該分派
結果傳送至負責生成一訓練指示之訓練指示生成器510。
本實例之訓練指示生成器510生成一訓練指示,並將該指示傳送至該等選定運算節點,該等運算節點負責針對該一或多個機器學習模型關聯參數進行估計。該指示可包含自組態資訊辨識器502取得之組態資訊、自訓練資料分派器508取得之訓練資料分派資訊,以及其他與該分散式運算相關之後設資料。在一實例中,該指示亦可包含在偵測到節點失效或學習失敗後,可用以繼續一次分散式機器學習之資訊。
本實例之節點失效偵測器512可於一學習程序中偵測一失效節點。舉例而言,如一節點發出一通知表示估計工作未於預設時間內完成,則節點失效偵測器512可據此偵測出該失效節點。在另一實例中,如另一節點發出一通知表示與一失效節點之同步工作失敗,則節點失效偵測器512可據此偵測出該失效節點。在一實例中,節點失效偵測器512於該次學習程序中偵測出足量之失效運算節點後,即可判斷該學習程序是否失敗或整個叢集是否失效。節點失效偵測器512可將失效/失敗偵測資訊傳送至訓練指示生成器510。
若該叢集中某些節點於該次學習程序中失效,則訓練指示生成器510可指示剩餘節點繼續完成該次學習程序,且以節點失效前最近一次針對該次學習程序儲存之狀態為起始點。若整個叢集失效,則訓練指示生成器510可指示該等運算節點其中之一,要求讀取最近一次針對該次學習程序儲存之狀態快照,且可以該最近一次儲存之狀態為起始點,並透過一同步化模式,如基於MPI AllReduce之API,包括RDMA、TCP等,將該狀態分享給其他運算節點,以繼續進行該深度學習。
本實例之訓練模型判斷器514可自一運算節點接收一訓練完成通知。接著,訓練模型判斷器514可取得該機器學習模型之相關參數估計值,取得方式為直接自該等運算節點取得,或由該等運算節點讀取存於模型儲存裝置110、經估計之參數估計值。訓練模型判斷器514可將訓練過後的模型提供給該使用者,以回應該使用者需求。
第六圖係根據本教示一實施例,所繪製之一協調節點運作範例流程圖,如第五圖所示之協調節點108。於步驟602時,接收訓練一機器學習模型之一要求。一般而言,該要求內容可為對一機器學習模型之一或多個相關參數進行估計。於步驟604時,決定與該模型相關之組態資訊內容。於步驟606時,決定訓練該模型之資料之一位置。於步驟608時,決定該訓練所需之運算節點數量。於步驟610時,根據該數量選擇所需之運算節點。
於步驟612時,將該等訓練資料分派給該等選定之運算節點,執行方式例如將訓練資料劃分為多個子集,並將各子集分配至一對應節點。於步驟614時,決定該訓練所需之各節點內部處理器數量。於步驟616時,根據該組態資訊、該等選定節點等生成一訓練指示。在一實施例中,於步驟630時偵測一或多個失效之運算節點。該訓練指示生成時亦可包含與所偵測到的該失效相關之資訊。於步驟618時,將該訓練指示傳送至該等選定運算節點。於步驟620時,接收一訓練完成通知,接收方式可為與其他運算節點溝通後,自該等運算節點其中之一接收該通知。
第七圖根據本教示一實施例,繪示一運算節點104-1範例圖。如第七圖所示,本實例之運算節點104-1包含一訓練資料讀取器702、一
處理器選擇器704、一機器學習模組706、訓練標準707、一模型同步器708、一模型快照生成器710、一模型快照讀取器712,及一處理器失效偵測器714。
本實例之訓練資料讀取器702接收訓練一模型之一指示。一般而言,該指示內容為針對一機器學習模型之一或多個相關參數進行估計。一般而言,該一或多個參數可用於特徵擷取、訓練一機器學習模型或核可一深度學習模型等。如上所述,該指示可包含與該訓練資料分派工作相關之資訊。根據該指示,訓練資料讀取器702可讀取分派給運算節點104-1之一對應訓練資料子集。訓練資料讀取器702可將讀取之該訓練資料子集傳送至負責選擇處理器的處理器選擇器704,以及傳送至負責執行估計工作的機器學習模組706。
本實例之處理器選擇器704亦接收該指示,指示內容包含運算節點104-1執行估計工作時內部所需之處理器數量資訊。舉例而言,當協調節點108保留運算節點104-1具備之三組GPU以執行估計,處理器選擇器704可據此於機器學習模組706內選定該三組GPU,選擇條件例如可根據機器學習模組706內該等GPU之工作量。
本實例之機器學習模組706包含一或多個處理器(如CPU及/或GPU),且可利用選定之處理器,根據讀取之訓練資料子集執行估計工作。於運算節點104-1中,各選定之處理器可與其他選定之處理器溝通,以共享針對該等參數之估計值。此外,運算節點104-1亦可透過模型同步器708與其他運算節點溝通。在一實施例中,模型同步器708本身可為用以針對該等參數進行估計之該等選定處理器之一。
第九圖係根據本教示一實施例,繪示一叢集中多個運算節點
彼此溝通之一範例模式。如第九圖所示,該叢集包含n個節點,即節點1 901、節點2 902、......、節點n 903。節點1 901可包含k1+1個GPU:d1,0、d1,1、......、d1,k1;節點2 902可包含k2+1個GPU:d2,0、d2,1、......、d2,k2;節點n 903可包含kn+1個GPU:dn,0、dn,1、......、dn,kn。各運算節點中之各GPU可根據一小批對應該節點之訓練資料子集進行一訓練,以針對與該機器學習模型相關之參數產生估計值。在本實例中,該等參數以一向量[1,m*n]表示。實務上,該等參數可為該機器學習模型參數之梯度。一機器學習程序可以迭代方式進行,至達成一預設條件為止。每次迭代後,在該等運算節點中之所有該等GPU完成該訓練後,該等GPU可進行以下三階段之同步工作。
在階段(1),即所謂簡縮(Reduce)階段當中,各運算節點內部之一GPU可自同節點內部其他GPU處取得該等估計值,並以邏輯運算方式加總該等估計值。舉例而言,節點1 901中之GPU d1,0 910可自節點1 901中其他GPU處取得所有針對向量[1,m*n]之估計值,並將該等估計值與GPU d1,0 910本身產生之估計值整併,整併方式例如可為計算該等估計值之一總和、平均或加權平均。因此,階段(1)完成後,節點1 901中之GPU d1,0 910會取得針對節點1 910內部向量[1,m*n]之一整併估計值,即所謂「簡縮估計值」。於其他各該等運算節點中,一GPU(如節點2內部之GPU d2,0 920、......、節點n內部之GPU dn,0 930)將以類似GPU d1,0 910之模式運作,並取得針對該節點內部向量[1,m*n]之一簡縮估計值。於各運算節點中執行上述簡縮階段之GPU,即所謂該節點之「GPU代表」,可事先經該節點選定,或於該訓練過程中經該節點決定。如前所述,一運算節點內部之GPU若要彼此溝通,則可透過GPU direct、無限頻寬網路及/或乙太網路等網路介
面進行。
接著在階段(2),即所謂全部簡縮(AllReduce)階段中,各運算節點之GPU代表可將向量[1,m*n]切分為n個部分向量:[1,m];[m+1,2m];......[m*(n-1),m*n]。該叢集中之各該等n個運算節點,將在階段(2)中各自由該等n個部分向量中取得一對應之部分向量。接著,各運算節點中之GPU代表自其他運算節點之其他GPU代表處取得本身持有的部分向量之簡縮估計值。舉例而言,GPU d1,0 910可持有部分向量[1,m]912;GPU d2,0 920可持有部分向量[m+1,2m]914;......GPU dn,0 930可持有部分向量[m*(n-1),m*n]916。接著,GPU d1,0 910將自其他運算節點之其他GPU代表處取得部分向量[1,m]912之簡縮估計值;GPU d2,0 920將自其他運算節點之其他GPU代表處取得部分向量[m+1,2m]914之簡縮估計值;GPU dn,0 930將自其他運算節點之其他GPU代表處取得部分向量[m*(n-1),m*n]916之簡縮估計值。取得部分向量之對應簡縮估計值後,各GPU代表可將該等估計值與本身持有之簡縮估計值整併,以產生對應該部分向量之一「全部簡縮估計值」,整併方式例如可為計算該等簡縮估計值之一總和、平均或加權平均。接著,對於自身持有的部分向量之「全部簡縮估計值」,各GPU代表可將其向其他運算節點之其他GPU代表廣播。舉例而言,GPU d1,0 910可根據階段(1)中該等GPU代表產生之部分向量[1,m]912「簡縮估計值」,產生一部分向量[1,m]912之「全部簡縮估計值」,並將該部分向量[1,m]912之「全部簡縮估計值」向其他GPU代表廣播;GPU d2,0 920可根據階段(1)中該等GPU代表產生之部分向量[m+1,2m]914「簡縮估計值」,產生一部分向量[m+1,2m]914之「全部簡縮估計值」,並將該部分向量[m+1,2m]914之「全部簡
縮估計值」向其他GPU代表廣播;且GPU dn,0 930可根據階段(1)中該等GPU代表產生之部分向量[m*(n-1),m*n]916「簡縮估計值」,產生一部分向量[m*(n-1),m*n]916之「全部簡縮估計值」,並將該部分向量[m*(n-1),m*n]916之「全部簡縮估計值」向其他GPU代表廣播。因此,階段(2)完成後,各運算節點之節點代表會持有完整向量[1,m*n]之一「全部簡縮估計值」,即於當下迭代中針對該機器學習模型相關參數估計出之一最終估計值,即所謂該等參數之「迭代最終估計值」。該等GPU代表若要在不同運算節點之間彼此溝通,則可透過GPU direct、無限頻寬網路及/或乙太網路等網路介面進行。
接著在階段(3),即所謂廣播(Bcast)階段中,各運算節點內部之GPU代表可將該等參數之「迭代最終估計值」,即向量[1,m*n]之「迭代最終估計值」,向該運算節點內部之其他該等GPU代表廣播。舉例而言,GPU d1,0 910將該等參數之「迭代最終估計值」向節點1 901內部之GPU d1,1、......、d1,k1廣播;GPU d2,0 920將該等參數之「迭代最終估計值」向節點2 902內部之GPU d2,1、......、d2,k2廣播;且GPU dn,0 930將該等參數之「迭代最終估計值」向節點n 903內部之GPU dn,1、......、dn,kn廣播。因此,在階段(3)完成後,各運算節點內部之各GPU會取得該機器學習模型相關參數之「迭代最終估計值」。一運算節點內部之各GPU若要彼此溝通,則可透過GPU direct、無限頻寬網路及/或乙太網路等網路介面進行。
以上三階段完成後,對於該機器學習之狀態,該等運算節點內部之所有工作GPU即彼此同步完畢,因為本次迭代中,所有工作GPU持有之該機器學習模型相關參數「迭代最終估計值」皆相同。下一次迭代開
始前,一運算節點內部之一GPU可對該機器學習狀態拍攝一快照。舉例而言,GPU d1,0 910可對該等參數之「迭代最終估計值」拍攝一快照,並將其儲存在位於所有該等運算節點外之一儲存裝置。
一預先設定條件於前一次迭代過程中達成後,所有工作GPU持有之該機器學習模型相關參數「迭代最終估計值」即完全相同。接著,一運算節點內部之一GPU可通知該協調節點該分散式訓練已完成。該GPU可將該最終估計值直接傳送給該協調節點,或將該最終估計值存入模型儲存裝置110,以利該協調節點讀取。因此,在整套分散式訓練過程中的每一次迭代中,該等運算節點皆可處理並交換該等估計值,以取得該最終估計值且完成該分散式訓練,過程中皆不須該協調節點輔助。
應可理解的是,該系統可事先選定一運算節點內部之一GPU,使該GPU在每一次迭代完成後負責拍攝一快照,或負責通知該協調節點該訓練已經完成。另外亦可理解的是,對於第九圖所示之工作項目,可使用CPU代替GPU,或可同時使用GPU及CPU。
回到第七圖之內容,機器學習模組706可包含一或多個選定之GPU,該一或多個GPU負責執行第九圖所示之工作項目。在一實施例中,運算節點1 104-1內部之GPU代表包含於機器學習模組706中,因此,該GPU代表可藉模型同步器708與其他運算節點進行同步,以及/或可於每次迭代完成時產生一模型狀態快照,並藉模型快照生成器710將該快照存至模型儲存裝置110中。此時,機器學習模組706可判斷某些訓練標準707是否已經於每次迭代後達成。該等訓練標準707可與停止該訓練或完成該訓練之一條件相關。舉例而言,在連續兩次迭代結束後,兩迭代最終估計值相減之差若小
於一預先設定之門檻值,即可達成一停止該訓練之條件。在另一實例中,在所有訓練資料經過多次使用之並達到事先設定之次數時,即可達成一完成該訓練之條件。當機器學習模組706判斷訓練標準707已達成時,機器學習模組706將通知該協調節點該訓練已完成。
在其他實施例中,運算節點1 104-1內部之GPU代表可包含於模型同步器708或模型快照生成器710中。模型同步器708可利用一同步化模式,如RDMA,以進行如第九圖所示之階段(2)同步工作。
本實例之模型快照生成器710可生成一張快照,以記錄經過計算之機器學習模組706及/或模型同步器708產出結果,記錄方式例如可透過記憶體存取,接著將與一迭代數字及一訓練ID相關之該快照存於模型儲存裝置110。本實例之模型儲存裝置110可儲存經過訓練之模型,或儲存一分散式訓練過程中一模型之狀態快照。存於模型儲存裝置110內之各快照,可與一能識別一訓練任務之訓練ID相關、可與一或多個已執行該訓練任務之運算節點相關,且可與一迭代數字相關,該迭代數字顯示拍攝該快照前已完成之迭代次數。
運算節點104-1內部執行訓練時,處理器失效偵測器714可偵測一或多個處理器(如CPU或GPU)之一失效情形。舉例而言,運算節點104-1中內部有三個選定GPU作為該機器學習之用,且該處理器失效偵測器714於一次迭代中,可偵測該三個選定處理器其中之一之失效情形。接著,處理器失效偵測器714可將失效消息通知給位於機器學習模組706內之該另兩個選定GPU。在一實例中,機器學習模組706可將該訓練資料子集重新分派至剩餘之兩個GPU,以使該機器學習程序繼續進行。在另一實例中,機
器學習模組706可重新初始化或重新啟動失效之GPU,以使該機器學習程序繼續進行。無論在以上任一情形中,機器學習模組706可通知模型快照讀取器712,以從模型儲存裝置110讀取一快照,以使該機器學習程序繼續進行。該快照係針對該失效情形前最近一次迭代之機器學習相關參數,記錄該等參數之估計值。因此,該等GPU可讀取該快照狀態,並使該機器學習程序自該狀態起繼續進行。
本實例之模型快照讀取器712可根據該來自協調節點108之指示或一來自機器學習模組706之要求,自模型儲存裝置110讀取一快照。該協調節點108送出之指示,可顯示另一運算節點之一失效狀態或顯示該整套機器學習程序之一失敗狀態,模型快照讀取器712因此可依照該指示,自模型儲存裝置110讀取最近一次迭代之快照,以使該機器學習程序繼續進行。一來自機器學習模組706之要求,可顯示運算節點104-1內部之一處理器之一失效狀態,模型快照讀取器712因此可依照該指示,自模型儲存裝置110讀取最近一次迭代快照,以使該機器學習程序於其他處理器繼續進行。由於模型儲存裝置110位於任一運算節點之外,任一運算節點之一失效狀態將不會影響存於模型儲存裝置110中之快照。若一GPU代表失效,剩餘之GPU其中之一可被指派為運算節點104-1內部之GPU代表。
第八圖係根據本教示一實施例所繪製的一運算節點運作範例流程圖,該運算節點例如為第七圖所示之運算節點104-1。於步驟802時,接收一指示,以針對一機器學習模型進行訓練,或針對該機器學習模型相關參數進行估計。於步驟804時,根據該指示讀取一訓練資料子集。於步驟808時,根據該指示選定一或多個處理器。於步驟810時,可自一模型儲存
裝置接收最近一次迭代之最近一張快照。於步驟812時,產生或更新與該模型之該等參數相關之估計值。
於步驟814時,替選定之處理器(如CPU及/或GPU)進行同步。於步驟816時,就該等模型參數,替該運算節點與其他運算節點進行同步。於步驟818時,針對該等模型參數之一狀態拍攝一張快照,以記錄一目前迭代之結果。於步驟820時,將該快照存於該儲存裝置,該儲存裝置可位於該運算節點之外,或甚至位於該叢集之外。於步驟822時,取得一或多個完成該訓練之標準。
於步驟823時,判斷該等標準是否達成。如已達成,則程序進入步驟824,通知該協調節點該模型訓練工作或估計工作已完成。如未達成,則程序進入步驟825,判斷是否存在任何失效之處理器。如任一處理器皆無失效情形,則程序回到步驟812,進行下一次迭代。如任一處理器出現失效情形,則程序回到步驟810,讀取最近一次迭代之一快照,並進行下一次迭代。
第十圖根據本教示一實施例,繪示使用一基於Spark框架之叢集進行分散式機器學習之另一範例模式。如第十圖所示,本叢集中之協調節點108稱為Spark驅動器(Spark Driver),可驅動該等運算節點1004-1、......、1004-3,以於Spark框架中進行一機器學習程序,如估計一分散式深度學習程序中之一模型參數。該機器學習程序可基於HDFS上之訓練資料集,該HDFS為一基於Java之檔案系統,能作為可擴充之可靠資料儲存裝置,且其係設計用以橫跨商用伺服器之巨大叢集。Spark Driver 108可將該訓練資料集劃分為多個資料子集1012、1022、1032,並將各該等資料
子集分派給該等運算節點其中之一,即Spark執行器(Spark Executor)1004-1、1004-2、1004-3其中之一,以針對該參數進行估計。在本實例中,各Spark Executor可發送並控制訓練資料子集,並根據一強化之Caffe函式庫搭配多個GPU/CPU進行該訓練。各Spark Executor內部之GPU/CPU可於每一次迭代結束後互相交換計算結果。舉例而言,各Spark Executor可具有兩個不同之網路介面,即乙太網路與無限頻寬網路。乙太網路可作為外部溝通使用之主要介面,而無限頻寬網路則可針對該叢集內Spark Executor提供速度高出十倍之連線網路。應可理解,在其他實施例中,無限頻寬網路可作為外部溝通使用之主要介面,乙太網路則可針對該叢集內Spark Executor之間提供連線網路。另外亦可理解,其他網路介面也可針對Spark Executor之間或各Spark Executor內GPU/CPU之間提供連線網路。
各Spark Executor可包含一模型同步器,該模型同步器之組態設定為與其他Spark Executor直接溝通,例如透過RDMA或TCP,而無須透過Spark Driver 108協助。如此一來,在每一輪訓練結束後,該等Spark Executor即經過同步化並取得該訓練模型之一相同狀態資訊。另外,各Spark Executor內部之各GPU或CPU可取得該相同之狀態資訊。在一實施例中,一Spark Executor中之一GPU或CPU可針對該狀態擷取一張快照,並將該快照儲存於HDFS上之模型儲存裝置110中。由於模型儲存裝置110位於該等Spark Executor外,若一或多個Spark Executor在一次機器學習程序中失效,剩餘之節點可依據前次存於模型儲存裝置110中之模型狀態,繼續進行該機器學習程序。
在一實施例中,一使用者可使用標準Caffe組態檔以指定
Caffe求解器及深度網路拓樸,同時僅需對該分散式機器學習系統發送一使用者要求,該要求例如可為第十一圖所示之一指令形式。
在另一實施例中,一使用者可基於一與該系統相關之應用程式介面(API)設計一程式,並利用該程式定義分散式機器學習之組態設定參數。第十二圖根據本教示一實施例,繪示用於分散式機器學習之一API範例1210。該API範例1210係一介面範例,其中包含一組用以開發機器學習相關軟體應用程式之常式(routine)、通訊協定、工具,該機器學習係基於Spark框架內之該Caffe函式庫。第十三圖根據本教示一實施例,繪示用於分散式機器學習、且由一使用者設計之一程式範例1310。
第十六圖根據本教示一實施例,繪示針對一分散式機器學習範例模式之一效能基準測試。第十六圖顯示針對AlexNet(一基於Caffe之模型)於一次深度學習內搭配一單獨Spark執行器,同時分別與一個GPU、兩個GPU、四個GPU與八個GPU搭配之學習結果。如圖表1610所示,當GPU數量增加,訓練時間即減少。與四個GPU搭配時,該系統之準確率達50%之時間,僅為搭配一個GPU所需時間之15/43=35%。以上所有工作使用之總資料批量大小皆為256。該系統與八個GPU搭配時,整體成效相較於搭配四個GPU並未顯著提升,原因為各GPU內部之整體批量太小,無法有效利用硬體。
第十七圖根據本教示一實施例,描述針對一分散式機器學習範例模式之另一效能基準測試。第十七圖顯示針對GoogLeNet(另一基於Caffe之模型)之一分散式基準測試所得出之效能結果。GoogLeNet之深度較AlexNet深,使用的卷積(convolution)較多,因此必須具備更強大之計
算能力。每次測試時,該系統指派各GPU處理批量大小為32之資料,當系統使用n個GPU時,一有效批量大小為32n。該分散式演算法之用途為產生模型,並使最終結果之精確率如同僅搭配一單獨GPU之情形。如圖表1710所示,該次訓練搭配四台伺服器(4x8個GPU)、經10小時訓練時間後,top-5準確率達80%(錯誤率為20%)。至於搭配一個GPU之一次訓練,經40小時後,top-5準確率僅達60%(錯誤率為40%)。
第十四圖係一行動裝置元件架構圖,該行動裝置可安裝實施一整合本教示之專用系統。在本實例中,該運算節點或該協調節點為一行動裝置1400,包含但不限於一智慧型手機、一平板電腦、一音樂播放器、一掌上型遊戲機、一全球定位系統(GPS)接收器及一穿戴式運算設備(如眼鏡、腕錶等),或以其他形式呈現之裝置。本實例之行動裝置1400包含一或多個中央處理器(CPU)1440、一或多個圖形處理器(GPU)1430、一顯示螢幕1420、一記憶體1460、一通訊平台1410如一無線通訊模組,一儲存裝置1490,以及一或多個輸入/輸出裝置1450。任何其他合適元件,包含但不限於一系統匯流排或一控制器(未顯示於圖中),亦可包含於行動裝置1400中。如第十四圖所示,一行動裝置作業系統1470,如iOS、Android、Windows Phone等,以及一或多個應用程式1480皆可從儲存裝置1490載入至記憶體1460,以由CPU 1440執行之。應用程式1480可包含一瀏覽器或任何其他適合於行動裝置1400上執行分散式機器學習之行動裝置應用程式。使用者與裝置1400之互動可透過輸入/輸出裝置1450。
為應用本發明揭露的不同模組、元件及其功能,電腦硬體平台可為一或多個本發明揭露之元件(如運算節點104-1、協調節點108,及/
或根據第一圖至第十三圖所描述之系統100與200所包含之其他元件)所用。上述電腦裝置之硬體元件、作業系統及程式語言皆符合一般規格,且預設所屬技術領域技術人員已熟知上述軟硬體項目,因此可如本發明所述,將其應用於分散式機器學習之上。一具備使用者介面之電腦可作為一個人電腦或其他類型之工作站或終端機,儘管一台電腦經安裝適當程式後亦可作為一伺服器。一般認為,所屬技術領域技術人員已熟知該架構、程式安裝及上述電腦裝置之一般操作方式,因此無須仰賴更多說明即可理解本發明之附圖。
第十五圖係一電腦元件架構圖,該電腦可安裝實施一整合本教示之專用系統。上述整合本教示之專用系統具有一功能方塊圖圖示,其描述一包含使用者介面元件之硬體平台。該電腦可作為一日常用途之電腦,或一特殊用途之電腦。以上兩者皆可實施一應用本教示之專用系統。電腦1500可用於實施任何分散式機器學習技術之相關元件,即如本發明所述。舉例而言,運算節點104-1、協調節點108等可於一如電腦1500之電腦上實施,可透過硬體、軟體程式、韌體或一以上之組合進行。雖然此處為方便起見,僅顯示一台如上所述之電腦,但與本發明所述之分散式機器學習相關之電腦功能,仍可使用一分散式架構於多個類似平台上實施,以分散執行程序之負載。
舉例而言,電腦1500包含與一網路雙向連接之COM埠1550,以利資料傳輸溝通。電腦1500亦包含一中央處理器(CPU)1520,其形式為一或多個處理器,負責執行程式指令。該電腦平台範例包含一內部溝通匯流排1510、程式儲存裝置及不同形式之資料儲存裝置,如磁碟
1570、唯讀記憶體(ROM)1530或隨機存取記憶體(RAM)1540,以使該電腦能處理及/或傳輸溝通各式資料檔案,同時盡量使該CPU能執行程式指令。電腦1500亦包含一輸入/輸出元件1560,該元件支援於該電腦與該電腦內其他元件(如使用者介面元件1580)之間往來之輸入/輸出資料流。電腦1500亦可透過網路通訊接收程式與資料。
因此,如上所述之分散式機器學習方法,其不同面向可於程式中具體呈現。該技術之程式面向可以「產品」或「產出之貨品」概念理解,其形式通常為載於一種機讀媒介上,或於一種機讀媒介中具體呈現之可執行程式碼及/或相關資料。有形且非暫存性之「儲存」型媒介包括任何或所有類型之記憶體、任何或所有其他供電腦、處理器或其他類似裝置使用之儲存裝置,或與電腦、處理器等裝置相關之模組,如各種半導體記憶體、磁帶儲存裝置、硬碟及其他類似裝置,其可隨時儲存軟體程式。
該軟體所有部分或其中一部分,可隨時透過一網路通訊,如網際網路或其他各種電信網路。舉例而言,此種通訊可使該軟體由一電腦或處理器被載入至另一電腦或處理器,例如由一裝置被載入至一電腦環境之硬體平台,或載入至實施一電腦環境或與分散式機器學習技術相關的類似功能之其他系統中。因此,載有該等軟體元件之另一類型媒介,即包括光波、電波及電磁波,可透過電線或光纖固網及各式經空氣傳輸媒介橫跨各實體介面,於不同本地裝置之間使用。載有前述波之實體元件,如有線或無線網路、光纖網路或其他類似之網路,亦可被視為載有該軟體之媒介。本發明所使用之電腦或機器「可讀取媒介」等詞彙,除非限定指稱有形「儲存」媒介,否則即指任何涉入給予一處理器執行指示之媒介。
因此,一機讀媒介可具備許多形式,包含但不限於一有形儲存媒介、一載波傳輸媒介或實體傳輸媒介。舉例而言,非揮發性儲存裝置媒介包括光碟或磁碟,如任一電腦中之任何儲存裝置或類似裝置,其可用於實施該系統或如附圖所顯示的任何該系統之元件。揮發性儲存裝置媒介包括動態記憶體,如上述電腦平台之一主記憶體。有形傳輸媒介包括同軸電纜;銅線及光纖,包括於一電腦系統內形成一匯流排之電線。載流傳輸媒介可具備電子、電磁訊號形式,或具備如無線電(RF)及紅外線(IR)資料通訊傳輸所產生之聲波、光波形式。由此,電腦可讀取媒介之常見形式如下:一磁片、一軟碟、硬碟、磁帶、任何其他磁性媒介、一CD-ROM、DVD或DVD-ROM、任何其他光學媒介、穿孔紙卡帶、任何其他具孔洞之實體儲存媒介、一RAM、一PROM及EPROM、一FLASH-EPROM、任何其他記憶晶片或卡匣、一載有資料或指令之載波、載有此載波之纜線或網路,或任何其他供電腦讀取程式碼及/或資料之媒介。上述電腦可讀取媒介之形式當中,許多可涉及將一或多個系列之一或多個執行指示傳輸給一實體處理器。
所屬技術領域技術人員將會認可本教示具調整彈性,可施以各種修改及/或強化。舉例而言,儘管上述設置各種元件之方式可於一硬體裝置中實施,亦可限定僅以軟體方式實施,如於一既有伺服器上安裝。另,本發明揭露之分散式機器學習可採用一韌體、韌體/軟體組合、韌體/硬體組合或一硬體/韌體/軟體組合實施。
前述說明已描述本發明教示及/或其他實例之組成要素,然由上可知,其上可施加各種修改,且本發明揭露之標的可透過各種形式與
實例實施,以及本發明教示可應用於多種應用程式之上,惟本發明僅描述其中幾種應用方式。以下申請專利範圍之目的,即為主張不超出本發明教示確切範圍之任何及所有應用、修改、變更方式。
Claims (24)
- 一種用於對一包含複數個節點的叢集上之一或多個參數進行估計的方法,該方法實施於至少一計算裝置上,各該計算裝置具備至少一處理器、一儲存裝置及連線到一網路的一通訊平台,該方法包含:接收一要求,該要求係對關聯於一機器學習模型的一或多個參數進行估計;取得將用於估計該一或多個參數的一資料集;將該資料集劃分為複數個資料子集,各該資料子集皆對應至該複數個節點其中之一;分派各該資料子集至一對應節點,以基於該資料子集對該一或多個參數之值進行估計;自各該複數個節點接收該一或多個參數之估計值,該等估計值係基於該節點被分派之一對應資料子集而獲得,其中,各該複數個節點被配置成將該節點內部之該一或多個處理器進行同步,以生成節點之估計值;及基於該複數個節點其中至少部分節點所產生的該一或多個參數之估計值,對該機器學習模型的該一或多個參數進行估計。
- 如申請專利範圍第1項之方法,其中該複數個節點其中該至少部分節點之每一者執行以下步驟:取得與該一或多個參數相關之訓練值;基於一對應資料子集,生成經更新後之訓練值;與該複數個節點其中該至少部分節點內的其他節點交換該等更新後訓練值之相關資訊,以生成該一或多個參數之一狀態,該狀態由該複數個節點其中該至少部分節點共享;及重複該等生成及交換步驟,直到一預先設定之條件達成,以生成該一或多個參數之估計值。
- 如申請專利範圍第1項之方法,其中各該複數個節點執行以下步驟:根據該要求分派該節點內部之該一或多個處理器;由該節點內部之該一或多個處理器,生成與該機器學習模型的該一或多個參數相關的一數值子集;及為該節點內部之該一或多個處理器進行同步,以生成該機器學習模型的該一或多個參數之估計值。
- 如申請專利範圍第3項之方法,進一步包含:偵測該複數個節點其中一者的一失效狀態;及指示該複數個節點中之其他節點繼續進行估計。
- 如申請專利範圍第3項之方法,進一步包含根據該要求,決定各節點該一或多個處理器之數量,其中各節點內部之該一或多個處理器包括至少一個圖像處理器(GPU)、至少一個中央處理器(CPU)或至少一圖像處理器及至少一中央處理器。
- 如申請專利範圍第1項之方法,進一步包含:根據該要求決定該複數個節點之數量;及基於該要求,決定用於估計該機器學習模型所關聯的一或多個參數的該資料集的一位置。
- 如申請專利範圍第1項之方法,進一步包含指示該複數個節點其中該至少部分節點其中一者,將針對該機器學習模型之該一或多個參數的一狀態所拍攝的一快照,儲存至位於該複數個節點外的一儲存裝置中。
- 如申請專利範圍第7項之方法,進一步包含:偵測該估計之一失敗狀態;指示該複數個節點,自該儲存裝置讀取針對該機器學習模型之該一或多個參數的最近一次狀態所拍攝之一快照;及指示該複數個節點基於該最近一次狀態繼續該估計。
- 如申請專利範圍第1項之方法,其中該複數個節點係藉由如MPI AllReduce之API同步,其利用實施於各該複數個節點上的一網路介面,其中該網路介面包括一乙太網路介面及一無限頻寬網路介面至少其中之一。
- 如申請專利範圍第1項之方法,其中:用以估計該一或多個參數之該資料集儲存於Hadoop分散式資料系統(Hadoop Distributed File System,HDFS)中;及該複數個節點係於一Spark框架中實施。
- 一種用於對一包含複數個節點的叢集上之一或多個參數進行估計的系統,具備至少一處理器、一儲存裝置及連線到一網路的一通訊平台,該系統包含:一組態資訊辨識器,配置成用以接收一要求,該要求係對關聯於一機器學習模型的一或多個參數進行估計;一訓練資料定位器,配置成用以取得將用於估計該一或多個參數的一資料集;一訓練資料分派器,配置成用以將該資料集劃分為複數個資料子集,各該資料子集皆對應至該複數個節點其中之一,該訓練資料分派器並配置成用以將各該資料子集分派給一對應節點,以基於該資料子集對該一或多個參數之值進行估計,其中,各該複數個節點被配置成將該節點內部之該一或多個處理器進行同步,以生成節點之估計值;及一訓練模型判斷器,配置成用以自各該複數個節點接收該一或多個參數之估計值,該等估計值係基於該節點被分派之一對應資料子集而獲得,該訓練模型判斷器並配置成基於該複數個節點其中至少部分節點所產生的該一或多個參數之估計值,對該機器學習模型的該一或多個參數進行估計。
- 如申請專利範圍第11項之系統,其中該複數個節點其中該至少部分節點之每一者執行以下步驟:取得與該一或多個參數相關之訓練值;基於一對應資料子集,生成經更新後之訓練值;與該複數個節點其中該至少部分節點內的其他節點交換該等更新後訓練值之相關資訊,以生成該一或多個參數之一狀態,該狀態由該複數個節點其中該至少部分節點共享;及重複該等生成及交換步驟,直到一預先設定之條件達成,以生成該一或多個參數之估計值。
- 如申請專利範圍第11項之系統,其中各該複數個節點執行以下步驟:根據該要求分派該節點內部之該一或多個處理器;由該節點內部之該一或多個處理器,生成與該機器學習模型的該一或多個參數相關的一數值子集;及為該節點內部之該一或多個處理器進行同步,以生成該機器學習模型的該一或多個參數之估計值。
- 如申請專利範圍第13項之系統,進一步包含:一節點失效偵測器,配置成用以偵測該複數個節點其中一者的一失效狀態;及一訓練指示生成器,配置成用以指示該複數個節點中之其他節點繼續進行估計。
- 如申請專利範圍第13項之系統,進一步包含一運算節點選擇器,其配置成用以根據該要求,決定各節點該一或多個處理器之數量,其中各節點內部之該一或多個處理器包括至少一個圖像處理器(GPU)、至少一個中央處理器(CPU)或至少一圖像處理器及至少一中央處理器。
- 如申請專利範圍第11項之系統,進一步包含:一運算節點選擇器,配置成用以根據該要求決定該複數個節點之數量;及一訓練資料定位器,配置成用以基於該要求,決定用於估計該機器學習模型所關聯的一或多個參數的該資料集的一位置。
- 如申請專利範圍第11項之系統,進一步包含一訓練指示生成器,其配置成用以指示該複數個節點其中該至少部分節點其中一者,將針對該機器學習模型之一或多個參數的一狀態所拍攝的一快照,儲存至位於該複數個節點外的一儲存裝置中。
- 如申請專利範圍第17項之系統,進一步包含:一節點失效偵測器,配置成用以偵測該估計之一失敗狀態;一訓練指示生成器,配置成用以指示該複數個節點,自該儲存裝置讀取針對該機器學習模型之該一或多個參數的最近一次狀態所拍攝之一快照,並配置成指示該複數個節點基於該最近一次狀態繼續該估計。
- 如申請專利範圍第11項之系統,其中該複數個節點藉由如MPI AllReduce之API同步,其利用實施於各該複數個節點上的一網路介面,其中該網路介面包括一乙太網路介面及一無限頻寬網路介面至少其中之一。
- 一機器可讀非暫存性之有形媒介,該媒介具有資訊,該資訊用於對一包含複數個節點的叢集上的一或多個參數進行估計,其中該資訊經該機器讀取時,會使該機器執行以下步驟:接收一要求,該要求係對關聯於一機器學習模型的一或多個參數進行估計;取得將用於估計該一或多個參數的一資料集;將該資料集劃分為複數個資料子集,各該資料子集皆對應至該複數個節點其中之一;分派各該資料子集至一對應節點,以基於該資料子集對該一或多個參數之值進行估計;自各該複數個節點接收該一或多個參數之估計值,該等估計值係基於該節點被分派之一對應資料子集而獲得,其中,各該複數個節點被配置成將該節點內部之該一或多個處理器進行同步,以生成節點之估計值;及基於該複數個節點其中至少部分節點所產生的該一或多個參數之估計值,對該機器學習模型的該一或多個參數進行估計。
- 如申請專利範圍第1項之方法,其中該叢集係一單獨叢集,其可利用一單獨程式,使一深度機器學習與一非深度機器學習及其他資料處理程序於該單獨叢集內執行。
- 如申請專利範圍第21項之方法,其中:部分資料處理程序於該叢集內執行,以產生該深度機器學習所用的輸入資料集;該深度機器學習於該叢集內執行,以擷取特徵;該非深度機器學習於該叢集內執行,以基於該等特徵生成一分類模型;及該叢集內之其他資料處理程序包括將該分類模型套用於一大型資料集。
- 如申請專利範圍第1項之方法,其中:該叢集係一架設於Apache Spark上之Apache Hadoop叢集;及該叢集內部之該複數個節點能透過一類似MPI AllReduce之API與彼此溝通。
- 如申請專利範圍第1項之方法,其中該複數個節點其中該至少部分節點之每一者執行以下步驟:由該節點內部的一或多個處理器之至少一個處理器,自該節點內部的一或多個處理器中的至少另一個處理器收集該等估計值,以基於該等估計值產生該一或多個參數的一簡縮估計值,其中該一或多個參數以一向量表示;將該向量劃分為複數個部分向量,其中該複數個節點其中該至少部分節點之每一者與該等部分向量其中之一對應;由該節點內部的該至少一處理器,自該複數個節點其中該至少部分節點內之其他節點處,收集一對應部分向量之簡縮估計值,以基於該等簡縮計值產生該對應部分向量的一全部簡縮估計值;由該節點內部的該至少一處理器,將該對應部分向量之全部簡縮估計值向該複數個節點其中該至少部分節點內之其他節點廣播;由該節點內部的該至少一處理器,取得代表該一或多個參數的該向量之一全部簡縮估計值;及由該節點內部的該至少一處理器,將該向量之全部簡縮估計值向該節點內部之一或多個處理器之至少一其他處理器廣播。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/009,968 US11087234B2 (en) | 2016-01-29 | 2016-01-29 | Method and system for distributed deep machine learning |
US15/009,968 | 2016-01-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201740319A TW201740319A (zh) | 2017-11-16 |
TWI671690B true TWI671690B (zh) | 2019-09-11 |
Family
ID=59385590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106102598A TWI671690B (zh) | 2016-01-29 | 2017-01-24 | 用於分散式深度機器學習之方法與系統 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11087234B2 (zh) |
TW (1) | TWI671690B (zh) |
WO (1) | WO2017132428A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI783355B (zh) * | 2020-08-12 | 2022-11-11 | 大陸商中國銀聯股份有限公司 | 深度學習模型的分布式訓練方法以及裝置 |
Families Citing this family (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10671916B1 (en) * | 2015-09-29 | 2020-06-02 | DataRobot, Inc. | Systems and methods to execute efficiently a plurality of machine learning processes |
US11176483B1 (en) | 2016-01-06 | 2021-11-16 | Datarobot Inc. | Systems and methods for storing and retrieving data sets based on temporal information |
CN107038059A (zh) * | 2016-02-03 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 虚拟机部署方法及装置 |
CN107153630B (zh) | 2016-03-04 | 2020-11-06 | 阿里巴巴集团控股有限公司 | 一种机器学习系统的训练方法和训练系统 |
CN107231566B (zh) * | 2016-03-25 | 2020-12-18 | 阿里巴巴集团控股有限公司 | 一种视频转码方法、装置和系统 |
CN107229518B (zh) | 2016-03-26 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 一种分布式集群训练方法和装置 |
CN107292326A (zh) | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种模型的训练方法和装置 |
US20210004658A1 (en) * | 2016-03-31 | 2021-01-07 | SolidRun Ltd. | System and method for provisioning of artificial intelligence accelerator (aia) resources |
BR112018072407A2 (pt) * | 2016-06-17 | 2019-02-19 | Hewlett-Packard Development Company, L.P. | estrutura de dados comum em máquina de aprendizagem. |
US20180039905A1 (en) * | 2016-08-03 | 2018-02-08 | International Business Machines Corporation | Large scale distributed training of data analytics models |
US11094029B2 (en) * | 2017-04-10 | 2021-08-17 | Intel Corporation | Abstraction layers for scalable distributed machine learning |
US10262390B1 (en) * | 2017-04-14 | 2019-04-16 | EMC IP Holding Company LLC | Managing access to a resource pool of graphics processing units under fine grain control |
US10275851B1 (en) | 2017-04-25 | 2019-04-30 | EMC IP Holding Company LLC | Checkpointing for GPU-as-a-service in cloud computing environment |
US11348030B2 (en) * | 2017-05-10 | 2022-05-31 | Petuum Inc. | System and methods for distributed machine learning with multiple data sources, multiple programming languages or frameworks, and multiple devices or infrastructures |
US10325343B1 (en) | 2017-08-04 | 2019-06-18 | EMC IP Holding Company LLC | Topology aware grouping and provisioning of GPU resources in GPU-as-a-Service platform |
CN107480115B (zh) * | 2017-08-31 | 2021-04-06 | 郑州云海信息技术有限公司 | 一种caffe框架残差网络配置文件格式转换方法及系统 |
US11120480B2 (en) * | 2017-09-14 | 2021-09-14 | Amadeus S.A.S. | Systems and methods for real-time online traveler segmentation using machine learning |
US10679129B2 (en) * | 2017-09-28 | 2020-06-09 | D5Ai Llc | Stochastic categorical autoencoder network |
US20190102670A1 (en) | 2017-10-02 | 2019-04-04 | Imec Vzw | Secure Broker-Mediated Data Analysis and Prediction |
US10671435B1 (en) | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Data transformation caching in an artificial intelligence infrastructure |
US10360214B2 (en) * | 2017-10-19 | 2019-07-23 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
US11455168B1 (en) | 2017-10-19 | 2022-09-27 | Pure Storage, Inc. | Batch building for deep learning training workloads |
US11861423B1 (en) | 2017-10-19 | 2024-01-02 | Pure Storage, Inc. | Accelerating artificial intelligence (‘AI’) workflows |
US11494692B1 (en) | 2018-03-26 | 2022-11-08 | Pure Storage, Inc. | Hyperscale artificial intelligence and machine learning infrastructure |
US12067466B2 (en) | 2017-10-19 | 2024-08-20 | Pure Storage, Inc. | Artificial intelligence and machine learning hyperscale infrastructure |
CN109754060B (zh) * | 2017-11-06 | 2023-08-25 | 阿里巴巴集团控股有限公司 | 一种神经网络机器学习模型的训练方法及装置 |
US12045693B2 (en) | 2017-11-22 | 2024-07-23 | Amazon Technologies, Inc. | Packaging and deploying algorithms for flexible machine learning |
US10831519B2 (en) | 2017-11-22 | 2020-11-10 | Amazon Technologies, Inc. | Packaging and deploying algorithms for flexible machine learning |
US11977958B2 (en) | 2017-11-22 | 2024-05-07 | Amazon Technologies, Inc. | Network-accessible machine learning model training and hosting system |
US11170309B1 (en) | 2017-11-22 | 2021-11-09 | Amazon Technologies, Inc. | System for routing machine learning model inferences |
KR101844914B1 (ko) * | 2017-12-06 | 2018-04-03 | 한국과학기술정보연구원 | 기계 학습을 위한 데이터관리장치 및 그 동작 방법 |
CN109993292B (zh) * | 2017-12-30 | 2020-08-04 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN108062246B (zh) * | 2018-01-25 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于深度学习框架的资源调度方法和装置 |
US20190236485A1 (en) * | 2018-01-26 | 2019-08-01 | Cisco Technology, Inc. | Orchestration system for distributed machine learning engines |
US11385137B2 (en) * | 2018-02-15 | 2022-07-12 | Amsted Rail Company, Inc. | System, method and apparatus for monitoring the health of railcar wheelsets |
US11275991B2 (en) * | 2018-04-04 | 2022-03-15 | Nokia Technologies Oy | Coordinated heterogeneous processing of training data for deep neural networks |
US10698766B2 (en) | 2018-04-18 | 2020-06-30 | EMC IP Holding Company LLC | Optimization of checkpoint operations for deep learning computing |
EP3750115B1 (en) * | 2018-04-25 | 2024-06-19 | Samsung Electronics Co., Ltd. | Machine learning on a blockchain |
WO2019207770A1 (ja) * | 2018-04-27 | 2019-10-31 | 日本電気株式会社 | 学習済みモデル更新装置、学習済みモデル更新方法、プログラム |
EP3564873B1 (en) | 2018-04-30 | 2022-11-30 | Hewlett Packard Enterprise Development LP | System and method of decentralized machine learning using blockchain |
EP3564883B1 (en) | 2018-04-30 | 2023-09-06 | Hewlett Packard Enterprise Development LP | System and method of decentralized management of device assets outside a computer network |
EP3565218B1 (en) | 2018-04-30 | 2023-09-27 | Hewlett Packard Enterprise Development LP | System and method of decentralized management of multi-owner nodes using blockchain |
US10880299B2 (en) * | 2018-05-30 | 2020-12-29 | Jumio Corporation | Machine learning for document authentication |
US11055139B2 (en) | 2018-06-12 | 2021-07-06 | International Business Machines Corporation | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster |
US10705883B2 (en) * | 2018-06-19 | 2020-07-07 | Microsoft Technology Licensing, Llc | Dynamic hybrid computing environment |
US11599821B2 (en) | 2018-06-27 | 2023-03-07 | Amazon Technologies, Inc. | Attached accelerator based inference service |
US11494621B2 (en) * | 2018-06-27 | 2022-11-08 | Amazon Technologies, Inc. | Attached accelerator selection and placement |
US11960935B2 (en) | 2018-06-27 | 2024-04-16 | Amazon Technologies, Inc. | Fault-tolerant accelerator based inference service |
US11422863B2 (en) | 2018-06-27 | 2022-08-23 | Amazon Technologies, Inc. | Attached accelerator scaling |
CN109063842A (zh) * | 2018-07-06 | 2018-12-21 | 无锡雪浪数制科技有限公司 | 一种兼容多种算法框架的机器学习平台 |
CN110795228B (zh) | 2018-08-03 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 用于训练深度学习模型的方法和制品、以及计算系统 |
US10909651B2 (en) | 2018-08-08 | 2021-02-02 | International Business Machines Corporation | Graphic processor unit topology-aware all-reduce operation |
JP2020024636A (ja) * | 2018-08-08 | 2020-02-13 | 株式会社Preferred Networks | スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム |
US11521090B2 (en) | 2018-08-09 | 2022-12-06 | International Business Machines Corporation | Collaborative distributed machine learning |
US10805353B2 (en) * | 2018-09-26 | 2020-10-13 | Bank Of America Corporation | Security tool |
US11710035B2 (en) | 2018-09-28 | 2023-07-25 | Apple Inc. | Distributed labeling for supervised learning |
KR102382186B1 (ko) * | 2018-10-10 | 2022-04-05 | 삼성전자주식회사 | 딥 러닝을 위한 고성능 컴퓨팅 시스템 |
US10776164B2 (en) | 2018-11-30 | 2020-09-15 | EMC IP Holding Company LLC | Dynamic composition of data pipeline in accelerator-as-a-service computing environment |
US11610110B2 (en) | 2018-12-05 | 2023-03-21 | Bank Of America Corporation | De-conflicting data labeling in real time deep learning systems |
WO2020115273A1 (en) * | 2018-12-07 | 2020-06-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Predicting network communication performance using federated learning |
CN111400021B (zh) * | 2019-01-02 | 2023-03-31 | 中国移动通信有限公司研究院 | 一种深度学习方法、装置及系统 |
KR20200093093A (ko) | 2019-01-08 | 2020-08-05 | 삼성전자주식회사 | 분산 추론 시스템 및 이의 동작 방법 |
CN111526169B (zh) * | 2019-02-01 | 2022-06-14 | 阿里巴巴集团控股有限公司 | 通过网络发送数据的方法、介质、服务器和计算机设备 |
CN109871958B (zh) * | 2019-02-01 | 2023-07-28 | 东软医疗系统股份有限公司 | 训练模型的方法、装置及设备 |
US11126190B2 (en) | 2019-02-13 | 2021-09-21 | Ford Global Technologies Llc | Learning systems and methods |
US11966818B2 (en) | 2019-02-21 | 2024-04-23 | Hewlett Packard Enterprise Development Lp | System and method for self-healing in decentralized model building for machine learning using blockchain |
US11983909B2 (en) | 2019-03-14 | 2024-05-14 | Hewlett-Packard Development Company, L.P. | Responding to machine learning requests from multiple clients |
WO2020185234A1 (en) | 2019-03-14 | 2020-09-17 | Hewlett-Packard Development Company, L.P. | Preprocessing sensor data for machine learning |
US11093862B2 (en) * | 2019-03-21 | 2021-08-17 | International Business Machines Corporation | Locality aware data loading for machine learning |
US11676063B2 (en) * | 2019-03-28 | 2023-06-13 | International Business Machines Corporation | Exposing payload data from non-integrated machine learning systems |
US20200311583A1 (en) * | 2019-04-01 | 2020-10-01 | Hewlett Packard Enterprise Development Lp | System and methods for fault tolerance in decentralized model building for machine learning using blockchain |
EP3754502A1 (en) * | 2019-06-21 | 2020-12-23 | Accenture Global Solutions Limited | Coordinated multiple worker node causal inference framework |
TWI773907B (zh) * | 2019-07-11 | 2022-08-11 | 緯創資通股份有限公司 | 資料擷取裝置與資料運算系統及方法 |
US11263052B2 (en) | 2019-07-29 | 2022-03-01 | International Business Machines Corporation | Determining optimal compute resources for distributed batch based optimization applications |
CN110502576A (zh) * | 2019-08-12 | 2019-11-26 | 北京迈格威科技有限公司 | 数据整合方法、分布式计算节点及分布式深度学习训练系统 |
CN110928553B (zh) * | 2019-10-16 | 2024-09-13 | 中国平安人寿保险股份有限公司 | 深度学习模型的部署方法、装置和系统 |
CN110751282A (zh) * | 2019-10-18 | 2020-02-04 | 北京百度网讯科技有限公司 | 面向深度学习训练任务的处理器内存优化方法及装置 |
US11593932B2 (en) | 2019-10-25 | 2023-02-28 | Merative Us L.P. | Loading deep learning network models for processing medical images |
JP2021068393A (ja) * | 2019-10-28 | 2021-04-30 | 富士通株式会社 | 情報処理システム、情報処理装置、および情報処理プログラム |
CN111210020B (zh) * | 2019-11-22 | 2022-12-06 | 清华大学 | 一种加速分布式机器学习的方法及系统 |
US11226859B2 (en) * | 2020-01-26 | 2022-01-18 | Microsoft Technology Licensing, Llc | Systems and methods for error recovery |
US11218293B2 (en) | 2020-01-27 | 2022-01-04 | Hewlett Packard Enterprise Development Lp | Secure parameter merging using homomorphic encryption for swarm learning |
US11748835B2 (en) | 2020-01-27 | 2023-09-05 | Hewlett Packard Enterprise Development Lp | Systems and methods for monetizing data in decentralized model building for machine learning using a blockchain |
US11699107B2 (en) * | 2020-02-17 | 2023-07-11 | Optum, Inc. | Demographic-aware federated machine learning |
CN111414937A (zh) * | 2020-03-04 | 2020-07-14 | 华东师范大学 | 物联网场景下提升多分支预测单模型鲁棒性的训练方法 |
CN111461343B (zh) * | 2020-03-13 | 2023-08-04 | 北京百度网讯科技有限公司 | 模型参数更新方法及其相关设备 |
US11734614B1 (en) * | 2020-03-26 | 2023-08-22 | Amazon Technologies, Inc. | Training service for an aggregated machine learning model |
KR102544531B1 (ko) * | 2020-04-27 | 2023-06-16 | 한국전자기술연구원 | 연합 학습 시스템 및 방법 |
CN112035261B (zh) * | 2020-09-11 | 2024-10-01 | 杭州海康威视数字技术股份有限公司 | 数据处理方法及系统 |
US11797885B2 (en) * | 2020-09-24 | 2023-10-24 | Sap Se | Optimizations for machine learning data processing pipeline |
TWI777262B (zh) * | 2020-09-30 | 2022-09-11 | 財團法人資訊工業策進會 | 機器學習系統及機器學習方法 |
US11829799B2 (en) * | 2020-10-13 | 2023-11-28 | International Business Machines Corporation | Distributed resource-aware training of machine learning pipelines |
CN112364897B (zh) * | 2020-10-27 | 2024-05-28 | 曙光信息产业(北京)有限公司 | 分布式训练方法及装置、存储介质及电子设备 |
CN114650288B (zh) * | 2020-12-02 | 2024-03-08 | 中国科学院深圳先进技术研究院 | 分布式训练方法及系统、终端设备、计算机可读存储介质 |
US20220300618A1 (en) * | 2021-03-16 | 2022-09-22 | Accenture Global Solutions Limited | Privacy preserving cooperative learning in untrusted environments |
CN113556247B (zh) * | 2021-06-25 | 2023-08-01 | 深圳技术大学 | 多层参数分布式数据传输方法、装置及可读介质 |
CN113326116A (zh) * | 2021-06-30 | 2021-08-31 | 北京九章云极科技有限公司 | 一种数据处理方法和系统 |
US11385925B1 (en) | 2021-07-06 | 2022-07-12 | Bank Of America Corporation | System and method for provisioning hosted virtual desktop resources to remote users |
US11789783B2 (en) | 2021-07-06 | 2023-10-17 | Bank Of America Corporation | Hosted virtual desktop slicing using federated edge intelligence |
CN113469373B (zh) * | 2021-08-17 | 2023-06-30 | 北京神州新桥科技有限公司 | 基于联邦学习的模型训练方法、系统、设备及存储介质 |
CN114936117A (zh) * | 2021-09-02 | 2022-08-23 | 华为技术有限公司 | 模型训练的方法、服务器、芯片以及系统 |
US20230140239A1 (en) * | 2021-11-01 | 2023-05-04 | Samsung Electronics Co., Ltd. | Method and apparatus with data loading |
US11782780B2 (en) | 2021-12-17 | 2023-10-10 | Bank Of America Corporation | Automatic remediation of failures within a computational environment using independent execution units |
US11892903B2 (en) | 2021-12-17 | 2024-02-06 | Bank Of America Corporation | System and method for continuous failure prediction and remediation within a computational environment using independent execution units |
CN114328098B (zh) * | 2021-12-23 | 2023-04-18 | 北京百度网讯科技有限公司 | 一种慢节点检测方法、装置、电子设备及存储介质 |
WO2024102357A1 (en) * | 2022-11-08 | 2024-05-16 | Unity Chain, Inc. | Distributed oracle agreement system and method |
WO2024152053A1 (en) * | 2023-01-13 | 2024-07-18 | Deep Forest Sciences, Inc. | Techniques for a cloud scientific machine learning programming environment |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753992A (zh) * | 2008-12-17 | 2010-06-23 | 深圳市先进智能技术研究所 | 一种多模态智能监控系统和方法 |
CN102750309A (zh) * | 2012-03-19 | 2012-10-24 | 南京大学 | 一种基于Hadoop的并行化SVM求解方法 |
US20130290223A1 (en) * | 2012-04-27 | 2013-10-31 | Yahoo! Inc. | Method and system for distributed machine learning |
TW201351309A (zh) * | 2012-05-10 | 2013-12-16 | Qualcomm Inc | 用於尖峰神經網路中的策略性突觸失效和學習的方法和裝置 |
TW201508523A (zh) * | 2013-08-07 | 2015-03-01 | Fiiser Inc | 搜尋軟體應用程式之方法及其系統 |
CN104484616A (zh) * | 2014-12-03 | 2015-04-01 | 浪潮电子信息产业股份有限公司 | 一种MapReduce数据处理框架下的隐私保护方法 |
US20150254555A1 (en) * | 2014-03-04 | 2015-09-10 | SignalSense, Inc. | Classifying data with deep learning neural records incrementally refined through expert input |
CN105183796A (zh) * | 2015-08-24 | 2015-12-23 | 同济大学 | 一种基于聚类的分布式链路预测方法 |
US20160004610A1 (en) * | 2014-07-01 | 2016-01-07 | Sas Institute Inc. | Systems and methods for fault tolerant communications |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027938B1 (en) * | 2007-03-26 | 2011-09-27 | Google Inc. | Discriminative training in machine learning |
US9367601B2 (en) | 2012-03-26 | 2016-06-14 | Duke University | Cost-based optimization of configuration parameters and cluster sizing for hadoop |
US10740358B2 (en) | 2013-04-11 | 2020-08-11 | Oracle International Corporation | Knowledge-intensive data processing system |
US9563854B2 (en) * | 2014-01-06 | 2017-02-07 | Cisco Technology, Inc. | Distributed model training |
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 |
-
2016
- 2016-01-29 US US15/009,968 patent/US11087234B2/en active Active
-
2017
- 2017-01-24 TW TW106102598A patent/TWI671690B/zh active
- 2017-01-27 WO PCT/US2017/015208 patent/WO2017132428A1/en active Application Filing
-
2021
- 2021-07-15 US US17/376,962 patent/US20210342747A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753992A (zh) * | 2008-12-17 | 2010-06-23 | 深圳市先进智能技术研究所 | 一种多模态智能监控系统和方法 |
CN102750309A (zh) * | 2012-03-19 | 2012-10-24 | 南京大学 | 一种基于Hadoop的并行化SVM求解方法 |
US20130290223A1 (en) * | 2012-04-27 | 2013-10-31 | Yahoo! Inc. | Method and system for distributed machine learning |
TW201351309A (zh) * | 2012-05-10 | 2013-12-16 | Qualcomm Inc | 用於尖峰神經網路中的策略性突觸失效和學習的方法和裝置 |
TW201508523A (zh) * | 2013-08-07 | 2015-03-01 | Fiiser Inc | 搜尋軟體應用程式之方法及其系統 |
US20150254555A1 (en) * | 2014-03-04 | 2015-09-10 | SignalSense, Inc. | Classifying data with deep learning neural records incrementally refined through expert input |
US20160004610A1 (en) * | 2014-07-01 | 2016-01-07 | Sas Institute Inc. | Systems and methods for fault tolerant communications |
CN104484616A (zh) * | 2014-12-03 | 2015-04-01 | 浪潮电子信息产业股份有限公司 | 一种MapReduce数据处理框架下的隐私保护方法 |
CN105183796A (zh) * | 2015-08-24 | 2015-12-23 | 同济大学 | 一种基于聚类的分布式链路预测方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI783355B (zh) * | 2020-08-12 | 2022-11-11 | 大陸商中國銀聯股份有限公司 | 深度學習模型的分布式訓練方法以及裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW201740319A (zh) | 2017-11-16 |
US20210342747A1 (en) | 2021-11-04 |
US11087234B2 (en) | 2021-08-10 |
WO2017132428A1 (en) | 2017-08-03 |
US20170220949A1 (en) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI671690B (zh) | 用於分散式深度機器學習之方法與系統 | |
CN111212111B (zh) | 对象存储服务管理方法及电子设备 | |
EP2944070B1 (en) | Service migration across cluster boundaries | |
US9521194B1 (en) | Nondeterministic value source | |
CN107632937B (zh) | 一种对虚拟机集群进行测试的方法、装置、可读存储介质 | |
JP2017527911A (ja) | スケーラブルなデータストレージプール | |
WO2016048326A1 (en) | Identification of a component for upgrade | |
CN106605217B (zh) | 用于将应用从一个站点移动到另一站点的方法和系统 | |
CN107666493B (zh) | 一种数据库配置方法及其设备 | |
CN107656705B (zh) | 一种计算机存储介质和一种数据迁移方法、装置及系统 | |
US10341253B2 (en) | Automatic consolidation of network resources | |
CN107665141B (zh) | 一种数据库配置方法及其设备 | |
CN104010022A (zh) | 管理服务器节点的管理装置和方法 | |
US10474696B2 (en) | Replication groups for content libraries | |
CN111198696A (zh) | 一种基于裸机服务器的OpenStack大规模部署方法和系统 | |
CN105095103A (zh) | 用于云环境下的存储设备管理方法和装置 | |
CN103973470A (zh) | 用于无共享集群的集群管理方法和设备 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
CN104111957A (zh) | 一种分布式事务同步的方法及系统 | |
US9569315B2 (en) | Modeling the topology of management servers in a distributed system | |
US20130247037A1 (en) | Control computer and method for integrating available computing resources of physical machines | |
WO2024012082A1 (zh) | 大数据集群部署方法、装置、设备及介质 | |
WO2016078326A1 (zh) | 一种虚拟机名称展示的方法、装置及系统 | |
CN109120674B (zh) | 大数据平台的部署方法及装置 | |
US10417254B2 (en) | Intelligent content synchronization between content libraries |