TW202145078A - 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 - Google Patents

具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 Download PDF

Info

Publication number
TW202145078A
TW202145078A TW110131206A TW110131206A TW202145078A TW 202145078 A TW202145078 A TW 202145078A TW 110131206 A TW110131206 A TW 110131206A TW 110131206 A TW110131206 A TW 110131206A TW 202145078 A TW202145078 A TW 202145078A
Authority
TW
Taiwan
Prior art keywords
host computer
batches
minimum
training
batch
Prior art date
Application number
TW110131206A
Other languages
English (en)
Other versions
TWI758223B (zh
Inventor
傑瑞米亞 威爾卡克
喬治 古瑞安
Original Assignee
美商谷歌有限責任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商谷歌有限責任公司 filed Critical 美商谷歌有限責任公司
Publication of TW202145078A publication Critical patent/TW202145078A/zh
Application granted granted Critical
Publication of TWI758223B publication Critical patent/TWI758223B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本發明揭示用於在神經網路訓練期間使用動態最小批次尺寸之方法、系統及設備,其等包含編碼於電腦儲存媒體上之電腦程式。一種方法包含:由複數個主機電腦之各者接收一各自訓練實例批次,各訓練實例具有零或多個特徵;由各主機電腦運算該主機電腦可將該各自訓練實例批次分成之最小批次之一最小數目,使得該主機電腦可在不超過可用運算資源之情況下使用該神經網路之一嵌入層來處理各最小批次;判定任何主機電腦可將其各自訓練實例批次分成之最小批次之一最大最小數目(N);由各主機電腦自由該主機電腦接收之該各自訓練實例批次產生N個最小批次;及由各主機電腦使用該嵌入層來處理該N個最小批次。

Description

具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
本說明書係關於人工神經網路。
神經網路係採用多層操作來自一或多個輸入預測一或多個輸出之機器學習模型。神經網路通常包含位於一輸入層與一輸出層之間的一或多個隱藏層。各隱藏層之輸出用作下一層(例如下一隱藏層或輸出層)之輸入。
一神經網路之各層指定對層之輸入執行之一或多個變換操作。一些神經網路層含有指稱神經元之單元。各神經元接收一或多個輸入且產生由其他神經網路層接收之一輸出。通常,各神經元自一或多個其他神經元接收輸入,且各神經元向一或多個其他神經元提供一輸出。
各層使用層之一組參數之當前值來產生一或多個輸出。訓練一神經網路涉及對輸入連續執行一前向傳遞、運算梯度值及更新各層之參數組之當前值。在訓練一神經網路之後,可使用最後一組參數來作出預測。
一些神經網路具有隱藏層,其係嵌入層。一般而言,嵌入層將稀疏神經網路輸入(即,僅具有相對於特徵總數之少數非零值特徵的神經網路輸入)變換成指稱嵌入之低維向量。
本說明書描述一種分散式運算系統,其可在訓練一神經網路期間處理該神經網路之一嵌入層。該系統包含各儲存一可訓練嵌入查找表之一分區的主機電腦。為處理一特定訓練實例,一主機電腦針對該訓練實例之各特徵自儲存於一各自主機電腦上之該查找表之該等分區之一各自者獲得一嵌入。獲得一嵌入涉及向該主機電腦發送一查找請求,該主機電腦儲存該嵌入所屬之該查找表之該分區。在獲得各特徵之該等嵌入之後,該主機電腦處理該等嵌入以產生該訓練實例之一嵌入層輸出。
該等主機電腦一次處理多個訓練實例。明確言之,各主機電腦在訓練之一反覆期間接收一各自訓練實例批次用於處理。一般而言,各批次之訓練實例具有相同數目個訓練實例,且各訓練實例具有一或多個特徵。各主機電腦運算該主機電腦可將其訓練實例批次分成之嵌入最小批次之一最小數目,使得該主機電腦可在不超過該主機電腦上之可用運算資源之情況下使用該神經網路之該嵌入層來處理各嵌入最小批次。在本說明書中,嵌入最小批次將僅指稱「最小批次」。該系統判定任何主機電腦可將其訓練實例批次分成之最小批次(N)之最大最小數目。各主機電腦將其訓練實例批次分成N個最小批次且使用該神經網路之該嵌入層處理該N個最小批次。
該分散式運算系統在若干約束下操作。首先,各主機電腦一般必須處理相同於所有其他主機電腦之最小批次數目。此係因為(i)該等主機電腦接收同步、並行指令且(ii)因為該等主機電腦必須在訓練之各反覆期間彼此交換嵌入。其次,該等主機電腦各具有其中將儲存自其他主機電腦獲得之嵌入的有限記憶體量。更明確言之,該等主機電腦(其係用於處理神經網路之專用電腦)僅具有其中將儲存嵌入之少量草稿式記憶體(Scratchpad Memory),其與傳統CPU中之大量主記憶體或快取記憶體相反。草稿式記憶體係用於暫時儲存計算結果、資料及其他進行中工作之高速內部記憶體。因此,一主機電腦一次可獲得之嵌入數目係有限的,其繼而限制最大最小批次尺寸。再者,各訓練實例中之特徵之數目及因此儲存各訓練實例之該等嵌入所需之草稿式記憶體量不同。
在一些實施方案中,該分散式運算系統經組態以執行包含以下各者之操作:由複數個主機電腦之各者接收一各自訓練實例批次,各訓練實例具有零或多個特徵;由各主機電腦運算該主機電腦可將該各自訓練實例批次分成之最小批次之一最小數目,使得該主機電腦可在不超過可用運算資源之情況下使用該神經網路之一嵌入層來處理各最小批次;基於最小批次之該運算最小數目來判定任何主機電腦可將其各自訓練實例批次分成之最小批次之一最大最小數目(N);由各主機電腦自由該主機電腦接收之該各自訓練實例批次產生N個最小批次;及由各主機電腦使用該嵌入層來處理該N個最小批次。
鑑於此等約束,可在特定實施例中實施本說明書之標的以實現以下優點之一或多者。將一訓練實例批次分成大量最小批次增加各主機電腦必須自其他主機電腦獲得嵌入之次數,其招致可避免之讀取/寫入延時。另一方面,歸因於各主機電腦上之可用資源(例如草稿式記憶體),無法將一訓練實例批次分成具有大量訓練實例之少量最小批次。本說明書中所描述之系統在訓練之各反覆之前動態調整最小批次之數目。明確言之,該系統計算任何主機電腦可在不超過任何主機電腦上之可用運算資源之情況下將其各自訓練實例批次分成之最小批次之最大最小數目(N)。接著,各主機電腦將其訓練實例批次分成N個最小批次。此程序最小化在訓練之各反覆中將各唯一訓練實例組分成之最小批次之數目。此繼而減少與訓練之各反覆相關聯之延時及額外負擔,其減少總訓練時間及由訓練程序消耗之運算資源量,例如處理能力。
附圖及以下描述中闡述本說明書之標的之一或多個實施例之細節。將自[實施方式]、圖式及申請專利範圍明白標的之其他特徵、態樣及優點。
圖1係一實例性分散式運算系統100之一圖式。分散式運算系統100經組態以處理一神經網路之一嵌入層。
本說明書結合系統、設備及電腦程式組件來使用術語「經組態以…」。一或多個電腦之一系統經組態以執行特定操作或動作意謂系統上安裝有軟體、韌體、硬體或其等之一組合以在操作中引起系統執行操作或動作。
一嵌入層係將稀疏神經網路輸入變換成嵌入之一神經網路層。嵌入係輸入之密集、多維向量表示。一特定嵌入之各維度之值直觀地編碼嵌入表示之輸入之一不同特性。
一般而言,藉由以下操作來訓練一嵌入層:完成通過嵌入層所屬之整個神經網路之一前向傳遞;判定神經網路之實際輸出與鑑於輸入所預期之一輸出之間是否存在一差異;及更新神經網路之權重(包含嵌入層之權重),例如藉由使用一習知倒傳遞技術或本技術中已知之一類似技術。換言之,可在神經網路之正常訓練程序期間訓練嵌入層。
一嵌入層可演變成儲存一神經網路輸入之各潛在特徵之一嵌入的一查找表。例如,若一特定神經網路經組態以藉由模型化使用者之觀看記錄來產生一串流服務之使用者之電影推薦,則神經網路之一查找表可儲存串流服務上可用之每個電影之一單獨嵌入。作為另一實例,若一特定神經網路經組態以基於以英語書寫之一查詢來產生搜尋引擎結果,則神經網路之一查找表可以英語儲存各字之一單獨嵌入。
各特徵由一不同指數(例如一不同整數)表示。可由查找表中之指數配置特徵。使用嵌入層來處理一輸入涉及:在查找表中查找輸入中各特徵之指數;擷取各指數處之嵌入;及(例如)藉由將嵌入加在一起來組合嵌入。在一嵌入層之一查找表實施方案中,訓練嵌入層涉及在正常訓練程序期間更新查找表中之值。
分散式運算系統100包含主機電腦110a至110n。主機電腦110a至110n將一嵌入層之一查找表之一分區各儲存於嵌入記憶體112a至112n中。查找表分散於主機電腦中,因為輸入特徵之數目及各特徵之維度數目使得整個查找表不適合於一單一主機電腦上之草稿式記憶體。另外,自多個主機電腦並行獲得嵌入比自一單一主機電腦獲得所有嵌入要快。在一些實施方案中,嵌入記憶體112a至112n儲存多個查找表之分區,其中各查找表可儲存一不同類型之特徵之嵌入。例如,再次參考經組態以藉由模型化使用者之觀看記錄來產生一串流服務之使用者之電影推薦的神經網路,神經網路可另外接收指定一使用者之類型偏好之一輸入。一單獨查找表可儲存類型嵌入。
在訓練之一反覆期間,分散式運算系統100中之各主機電腦接收一訓練實例批次。各訓練實例包含一或多個特徵。為處理一特定訓練實例,一主機電腦自查找表之一分區(即,自嵌入記憶體112a至112n之一或多者)獲得訓練實例中之各特徵之一嵌入。主機電腦使用輸入/輸出單元114a至114n來交換嵌入。輸入/輸出單元係包含暫時暫存器空間及使主機電腦彼此連接之通信通道(例如匯流排)的硬體組件。主機電腦將所獲得之嵌入及關於該等嵌入之元資料(例如去重複資訊及一訓練實例中嵌入之數目)儲存於草稿式記憶體118a至118n中。草稿式記憶體118a至118n係高速內部記憶體,其實體上非常接近於處理單元116a至116n且用於暫時儲存計算結果及資料。草稿式記憶體118a至118n可為任何適當記憶體結構,例如SRAM。
使用個別嵌入,主機電腦使用處理單元116a至116n來運算其各自訓練實例之嵌入層輸出。處理單元116a至116n可包含專用於運算嵌入層輸出之硬體組件。主機電腦可包含圖1中未描繪之額外處理組件,例如一通用CPU。此等額外組件可執行本說明書中所描述之部分或所有技術以判定最小批次尺寸。
分散式運算系統中之各主機電腦可向實施神經網路之剩餘層的一系統或子系統提供嵌入層輸出。此一系統或子系統可實施於主機電腦或單獨實體硬體上。訓練如上文所描述般進行。更新嵌入層涉及由各主機電腦基於自實施神經網路之剩餘層之其他系統或子系統接收之梯度來更新儲存於主機電腦上之查找表之分區中之值。
因為各主機電腦具有有限量之草稿式記憶體用於儲存所獲得之嵌入,所以各主機電腦一次可獲得僅有限數目個訓練實例之嵌入。然而,一訓練實例使用之草稿式記憶體量取決於訓練實例具有之特徵數目。例如,再次參考經組態以藉由模型化使用者之觀看記錄來產生一串流服務之使用者之電影推薦的一神經網路,一些使用者具有大於其他使用者之一觀看記錄。例如,一第一使用者之一訓練實例可包含數百個特徵(即,電影),而一第二使用者之一訓練實例可僅包含數十個特徵。因為第一使用者之訓練實例具有更多特徵,所以一主機電腦將必須獲得及儲存第一訓練實例之更多嵌入,且該等嵌入將在草稿式記憶體中佔用更多空間。作為另一實例,再次參考經組態以基於以英語書寫之查詢來產生搜尋引擎結果的一神經網路,一些查詢具有比其他查詢更多之字。一主機電腦將必須獲得及儲存具有更多字之一查詢之更多嵌入,且該等嵌入將在草稿式記憶體中佔用比具有更少字之一查詢之嵌入更多之空間。另外,神經網路可考量一使用者之查詢記錄,但一查詢記錄中之查詢數目可因使用者而變動。具有更多查詢之查詢記錄具有更多嵌入且因此佔用草稿式記憶體中之更多空間。相反地,一些查詢包含重複字。一主機電腦僅需獲得任何重複字之一嵌入之一單一複本,因此,具有重複字之查詢將具有更少嵌入且因此佔用草稿式記憶體中之更少空間。類似地,一單一最小批次中之兩個訓練實例可具有共同特徵。一主機電腦僅需獲得在訓練實例之間重複之任何特徵之嵌入之一單一複本。
總言之,一主機電腦一次可處理之訓練實例之數目基於訓練實例之性質來大幅變動。明確言之,在一給定訓練實例組中出現之獨特特徵越多,一主機電腦必須自查找表獲得之嵌入越多。更多嵌入比更少嵌入佔用草稿式記憶體中之更多空間。本說明書中所描述之分散式運算系統可最佳化主機電腦一次處理之訓練實例之數目(即,各最小批次之尺寸)且因此最佳化每批次訓練實例之最小批次之數目。明確言之,各主機電腦接收一訓練實例批次,將訓練實例批次分成最佳數目(N)個最小批次,且一次處理一個最小批次,直至其產生各訓練實例之一嵌入。將參考圖2來更詳細描述此方法。
圖2係用於將一神經網路訓練實例批次分成適當數目個最小批次之一實例性程序200之一流程圖。實例性程序200可由分散式運算系統100執行。
系統中之各主機電腦在用於訓練一神經網路之一訓練程序之一反覆期間接收一各自訓練實例批次用於處理(210)。各訓練實例批次一般具有相同數目個訓練實例。各訓練實例具有零或多個特徵。各訓練實例中之特徵之數目不同。
各主機電腦運算其可將其接收之各自訓練實例批次分成之最小批次之一最小數目,使得其可在不超過主機電腦之運算資源之情況下使用神經網路之嵌入層來處理各最小批次(220)。一般而言,主機電腦受主機電腦上之草稿式記憶體(例如SRAM)量限制,因為為處理訓練實例,主機電腦針對各訓練實例中之各特徵自儲存於分散式運算系統之一主機電腦上之查找表之一分區獲得一嵌入。主機電腦將所獲得之嵌入儲存於主機電腦上之草稿式記憶體中以準備處理該等嵌入。
運算主機電腦可將其訓練實例批次分成之最小批次之最小數目涉及針對自一上限至一下限之M之值來重複地:(i)將由主機電腦接收之各自訓練實例批次分割成M個最小批次;及(ii)針對各最小批次,判定對應於最小批次中之各訓練實例中之各輸入特徵的嵌入是否適合於主機電腦上之草稿式記憶體。
以下偽碼繪示此程序:
Figure 02_image001
在偽碼中,i係訓練實例指數,且len係訓練實例批次中訓練實例之總數。第一條件敘述測試含有訓練實例0至i-1之一最小批次是否適合於主機電腦上之草稿式記憶體。若適合,主機電腦使i遞增。主機電腦重複此程序,直至含有訓練實例0至i-1之一最小批次不適合於草稿式記憶體。若適合於主機電腦上之草稿式記憶體之最後最小批次具有零個訓練實例,則主機電腦回傳一錯誤。否則,主機電腦輸出適合於草稿式記憶體之下一最大最小批次,即,含有訓練實例0至i-2之最小批次。假設i等於7。此意謂含有訓練實例0至5之一最小批次適合於草稿式記憶體,但含有訓練實例0至6之一最小批次不適合。接著,主機電腦將變數start設定為6,且對含有訓練實例6至i-1之最小批次重複此程序。此反覆程序之結果係各適合於主機電腦上之草稿式記憶體之數個最小批次。
在一些實施方案中,修改上述演算法以測試非連續訓練實例。例如,儘管含有訓練實例0至6之一最小批次可能不適合於主機電腦上之草稿式記憶體,但含有訓練實例0至5及7之一最小批次可能適合。此係因為各訓練實例之尺寸不同,如上文所提及。在一些情況中,依此方式修改演算法可減少所得最小批次之數目。上述演算法僅供說明且可使用其他適當演算法。
判定一特定訓練實例組(即,一特定最小批次)是否適合於主機電腦上之草稿式記憶體一般涉及:(i)運算各訓練實例使用之草稿式記憶體量,例如藉由使各訓練實例中之特徵之數目乘以一特徵之尺寸;(ii)使步驟(i)之結果相加;及(iii)判定總和是否超過主機電腦上之總可用草稿式記憶體。在運算一特定訓練實例使用之草稿式記憶體量時,主機電腦考量已被解釋之任何嵌入,例如來自先前訓練實例之重複嵌入。在此實例中,所需草稿式記憶體量減少對應於來自先前訓練實例之重複嵌入的量。
主機電腦亦考量其用於處理(例如用於執行上述最佳化演算法)之草稿式記憶體量。
使用先前步驟中所運算之結果,系統判定主機電腦之任何者可將其各自訓練實例批次分成之最小批次之最大最小數目(N)(230)。在一些實施方案中,一主機電腦係一指定主控主機,且指定主控主機作出判定。在此等實施方案中,所有其他主機電腦向指定主控主機發送最小批次之其運算最小數目,指定主控主機判定最小值中之一最大值。指定主控主機可在用於訓練程序之不同反覆之主機電腦之間輪換。此係有利的,因為系統可同時運算多個訓練實例批次之最小批次之數目。在運算N之後,指定主控主機向所有其他主機電腦廣播值N。在一些其他實施方案中,各主機向分散式運算系統之一單獨組件發送其運算最小數目,單獨組件判定最小值中之最大值。用於判定最小批次之最大最小數目的其他技術亦係可行的。
各主機電腦將由主機電腦接收之各自訓練實例批次分成N個最小批次(240)。在一些實施方案中,當一主機電腦運算主機電腦可將各自訓練實例批次分成之最小批次之最小數目時,其亦將訓練實例批次分成該數目個最小批次。在此等實施方案中,將各自訓練實例批次分成N個最小批次涉及將已存在於該主機電腦上之最小批次再分成或細分成N個最小批次。在一些情況中,N及主機電腦之最小批次之最小數目可相同。在其他情況中,N可大於主機電腦之最小批次之最小數目。在此等情況中,主機電腦可產生無訓練實例之一最小批次。在其他實施方案中,主機電腦可將一個最小批次分成多個最小批次,其可涉及將最小批次分割成具有相同數目個訓練實例之兩個最小批次。其他分割方式係可行的。
最後,各主機電腦使用神經網路之嵌入層來處理N個最小批次(250)。各主機電腦一次僅處理一個最小批次。將參考圖3來更詳細描述此程序。
圖3係用於處理最小批次之一實例性程序300之一流程圖。程序300可由分散式運算系統100執行。
分散式運算系統之主機電腦各接收指令以執行一訓練實例批次(310)。一般而言,各批次中之訓練實例之數目相同,但各批次中之訓練實例不同。
主機電腦執行參考圖2所描述之程序,即,各主機電腦將其各自訓練實例批次分成N個最小批次(320)。主機電腦並行處理最小批次。然而,歸因於前述運算約束,一特定主機電腦一次僅處理其N個最小批次之一者。
由一主機電腦處理一最小批次涉及:針對最小批次中之各訓練實例中之各輸入特徵,自一可訓練查找表獲得對應於輸入特徵之一嵌入(330)。可訓練查找表分散於主機電腦中,因此,獲得嵌入包含向其他主機電腦發送查找請求。查找請求包含所要嵌入之指數。主機電腦將所獲得之嵌入儲存於主機電腦之草稿式記憶體中。
主機電腦處理嵌入以產生各訓練實例之一嵌入層輸出(340)。產生一特定訓練實例之一嵌入層輸出涉及使特定訓練實例之各特徵之嵌入加或串在一起。美國專利第9,898,441號中更詳細描述具體技術,該專利以引用的方式併入本文中。
主機電腦向一系統提供各訓練實例之嵌入層輸出,系統經組態以實施神經網路之剩餘層(350)。此一系統可實施於主機電腦或單獨實體硬體上。
在其中將嵌入更新為用於訓練神經網路之一訓練程序之部分的一些情況中,主機電腦自其他系統接收倒傳遞資料。主機電腦使用倒傳遞資料來更新儲存於分散式查找表中之嵌入(360)。明確言之,使用訓練實例批次之倒傳遞資料,各主機電腦可相對於主機電腦儲存之各嵌入之各維度之當前值來運算損失之梯度。為減少各維度之損失分攤,主機電腦可使維度之值調整梯度之一比率。此被稱為隨機梯度下降。可使用本技術中已知之其他適當方法來更新嵌入。此完成訓練之一反覆。亦可在推理期間使用實例性程序300以藉由僅省略步驟360來處理輸入之批次。
本說明書中所描述之標的及功能操作之實施例可實施於數位電子電路、有形體現之電腦軟體或韌體、電腦硬體(包含本說明書中所揭示之結構及其結構等效物)或其等之一或多者之組合中。本說明書中所描述之標的之實施例可實施為一或多個電腦程式,即,編碼於一有形非暫時性儲存媒體上以由資料處理設備執行或控制資料處理設備之操作的電腦程式指令之一或多個模組。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。替代地或另外,程式指令可編碼於一人工產生之傳播信號(例如一機器產生之電、光或電磁信號)(其經產生以編碼傳輸至適合接收器設備以由一資料處理設備執行之資訊)上。
術語「資料處理設備」係指資料處理硬體且涵蓋用於處理資料之各種設備、裝置及機器,其包含(舉例而言)一可程式化處理器、一電腦或多個處理器或電腦。設備亦可為或進一步包含專用邏輯電路,例如一FPGA (場可程式化閘陣列)或一ASIC (專用積體電路)。除硬體之外,設備亦可視情況包含產生電腦程式之一執行環境之程式碼,例如構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合的程式碼。
一電腦程式(其亦可指稱或描述為一程式、軟體、一軟體應用程式、一應用程式、一模組、一軟體模組、一指令碼或程式碼)可以任何形式之程式撰寫語言(其包含編譯或解譯語言或宣告或程序語言)撰寫,且其可以任何形式部署,包含作為一獨立程式或作為一模組、組件、副常式或適合用於一運算環境中之其他單元。一程式可(但未必)對應於一檔案系統中之一檔案。一程式可儲存於保存其他程式或資料(例如儲存於一標記語言文件、專用於所論述程式之一單一檔案或多個協調檔案(例如儲存一或多個模組、副程式或程式碼之部分的檔案)中之一或多個指令碼)之一檔案之一部分中。一電腦程式可經部署以在一個電腦上或在定位於一個地點處或跨多個地點分散且由一資料通信網路互連之多個電腦上執行。
一或多個電腦之一系統經組態以執行特定操作或動作意謂系統上已安裝有軟體、韌體、硬體或其等之一組合以在操作中引起系統執行操作或動作。一或多個電腦程式經組態以執行特定操作或動作意謂一或多個程式包括在由資料處理設備執行時引起設備執行操作或動作之指令。
本說明書中所描述之程序及邏輯流程可由一或多個可程式化電腦執行,一或多個可程式化電腦執行一或多個電腦程式以藉由操作輸入資料且產生輸出來執行功能。程序及邏輯流程亦可由專用邏輯電路(例如一FPGA或一ASIC)或專用邏輯電路及一或多個程式化電腦之一組合執行。
適合於執行一電腦程式之電腦可基於通用或專用微處理器或兩者或基於任何其他種類之中央處理單元。一般而言,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之基本元件係用於執行(performing或executing)指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。中央處理單元及記憶體可由專用邏輯電路補充或併入至專用邏輯電路中。一般而言,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如磁碟、磁光碟或光碟)或經可操作地耦合以自該一或多個大容量儲存裝置接收資料或將資料傳送至該一或多個大容量儲存裝置或兩者。然而,一電腦未必具有此等裝置。此外,一電腦可嵌入於另一裝置(例如一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲機、一全球定位系統(GPS)接收器或一可攜式儲存裝置(例如一通用串列匯流排(USB)快閃記憶體硬碟)等等)中。
適合於儲存電腦程式指令及資料之電腦可讀媒體包含所有形式之非揮發性記憶體、媒體及記憶體裝置,其包含(舉例而言):半導體記憶體裝置,例如EPROM、EEPROM及快閃記憶體裝置;磁碟,例如內部硬碟或可抽換磁碟;磁光碟;及CD-ROM及DVD-ROM磁碟。
為提供與一使用者之互動,本說明書中所描述之標的之實施例可實施於一電腦上,電腦具有用於向使用者顯示資訊之一顯示裝置(例如一CRT (陰極射線管)或LCD (液晶顯示器)監視器)及使用者可藉由其來將輸入提供至電腦之一鍵盤及指標裝置(例如一滑鼠、一軌跡球或一存在感測顯示器或其他表面)。其他種類之裝置亦可用於提供與一使用者之互動;例如,提供給使用者之回饋可為任何形式之感官回饋,例如視覺回饋、聽覺回饋或觸覺回饋;且來自使用者之輸入可以任何形式接收,其包含聲音、語音或觸覺輸入。另外,一電腦可藉由向由一使用者使用之一裝置發送文件或自該裝置接收文件來與使用者互動,例如藉由回應於自一使用者之裝置上之一網頁瀏覽器接收之請求而將網頁發送至網頁瀏覽器。此外,一電腦可藉由向運行一傳訊應用程式之一個人裝置(例如一智慧型電話)發送文字訊息或其他形式之訊息且反過來自使用者接收回應訊息來與一使用者互動。
儘管本說明書含有諸多特定實施細節,但此等不應被解釋為對任何發明之範疇或可主張內容之範疇的限制,而是應被解釋為可針對特定發明之特定實施例之特徵之描述。本說明書之單獨實施例之內文中所描述之特定特徵亦可組合實施於一單一實施例中。相反地,一單一實施例之內文中所描述之各種特徵亦可單獨或以任何適合子組合實施於多個實施例中。此外,儘管特徵可在上文描述為作用於特定組合中且甚至最初如此主張,但來自一主張組合之一或多個特徵可在一些情況中自組合除去且主張組合可針對一子組合或一子組合之變動。
類似地,儘管圖式中依一特定順序描繪操作,但此不應被理解為要求依所展示之特定順序或依循序順序執行此等操作或執行所有繪示操作以達成所要結果。在特定情境中,多任務及並行處理可為有利的。此外,上述實施例中之各種系統模組及組件之分離不應被理解為在所有實施例中需要此分離,且應瞭解,所描述之程式組件及系統一般可一起整合於一單一軟體產品中或封裝至多個軟體產品中。
已描述標的之特定實施例。其他實施例係在以下申請專利範圍之範疇內。例如,申請專利範圍中所敘述之動作可依一不同順序執行且仍達成所要結果。作為一實例,附圖中所描繪之程序未必需要所展示之特定順序或循序順序來達成所要結果。在一些特定情況中,多任務及並行處理可為有利的。
100:分散式運算系統 110a至110n:主機電腦 112a至112n:嵌入記憶體 114a至114n:輸入/輸出單元 116a至116n:處理單元 118a至118n:草稿式記憶體 200:程序 210:由各主機電腦接收一訓練實例批次 220:由各主機電腦運算主機電腦可將其訓練實例批次分成之最小批次之一最小數目 230:判定最小批次之一最大最小數目(N) 240:由各主機電腦自其各自訓練實例批次產生N個最小批次 250:由各主機電腦處理N個最小批次 300:程序 310:接收指令以執行一訓練實例批次 320:將訓練實例批次分成N個最小批次 330:針對各最小批次,獲得最小批次中之各訓練實例中之各輸入特徵之一嵌入 340:產生各訓練實例之一嵌入層輸出 350:向實施剩餘神經網路層之一系統提供各訓練實例之嵌入層輸出 360:基於倒傳遞資料來更新嵌入
圖1係一實例性分散式運算系統之一圖式。
圖2係用於將神經網路訓練實例之批次分成最小批次之一實例性程序之一流程圖。
圖3係用於處理最小批次之一實例性程序之一流程圖。
各個圖式中之相同元件符號及名稱指示相同元件。
200:程序
210:由各主機電腦接收一訓練實例批次
220:由各主機電腦運算主機電腦可將其訓練實例批次分成之最小批次之一最小數目
230:判定最小批次之一最大最小數目(N)
240:由各主機電腦自其各自訓練實例批次產生N個最小批次
250:由各主機電腦處理N個最小批次

Claims (20)

  1. 一種運算系統,其包括複數個主機電腦,該複數個主機電腦經組態以在訓練一神經網路期間處理該神經網路之一嵌入層,其中該系統經組態以執行包括以下各者之操作: 由各主機電腦在用於訓練該神經網路之一訓練程序之一反覆(iteration)期間接收訓練實例之一各自批次(batch)用於處理,各訓練實例具有零或多個特徵,且其中在由該等主機電腦接收之該等各自批次之至少兩個不同訓練實例具有不同數目之特徵; 基於由該主機電腦所接收之該各自批次中之該等訓練實例之各者中之特徵之數目來運算該主機電腦可將訓練實例之該各自批次分成之最小批次(minibatch)之一最小數目,使得該主機電腦可在不超過該主機電腦上之可用運算資源之情況下使用該神經網路之該嵌入層來處理各最小批次(minibatch),其中由於該至少兩個不同訓練實例具有不同數目之特徵,該等主機電腦之至少兩者運算最小批次之不同最小數目; 自最小批次之該等最小數目來判定在各主機電腦之經運算之最小批次之該等最小數目中最小批次之一最大的最小數目(a largest minimum number of minibatches)(N); 自由該主機電腦接收之訓練實例之該各自批次產生N個最小批次;及 由各主機電腦使用該神經網路之該嵌入層來處理訓練實例之該N個最小批次。
  2. 如請求項1之系統,其中使用該神經網路之該嵌入層來處理訓練實例之一各自最小批次包括: 針對該最小批次中之各訓練實例中之各輸入特徵,自一可訓練查找表(trainable lookup table)獲得對應於該輸入特徵之一向量;及 針對各訓練實例,處理該等所獲得之向量以產生一向量表示。
  3. 如請求項2之系統,其中該可訓練查找表分散於該等主機電腦中。
  4. 如請求項3之系統,其中由各主機電腦運算該主機電腦可將訓練實例之該各自批次分成之最小批次之一最小數目M包括針對從一上限開始之M之值來重複以下步驟: 將由該主機電腦接收之訓練實例之該各自批次分割成M個最小批次; 針對該M個最小批次之各者,判定對應於該最小批次中之各訓練實例中之各輸入特徵的該等向量是否適合於該主機電腦上之記憶體;及 直至該M個最小批次之任何者不適合於該主機電腦上之記憶體時才使M遞減。
  5. 如請求項1之系統,其中該等操作進一步包括: 將由該主機電腦接收之訓練實例之該各自批次分成該主機電腦之該運算最小數目個最小批次;及 若N大於該主機電腦之最小批次之該運算最小數目,則將一個最小批次再分成多個最小批次。
  6. 如請求項5之系統,其中將一個最小批次分割成多個最小批次包括產生無訓練實例之一最小批次。
  7. 如請求項1之系統,其中該等主機電腦之一者係一指定主控主機,其中該指定主控主機經組態以執行包括以下各者之操作: 自各主機電腦接收該主機電腦可將訓練實例之該各自批次分成之最小批次之該最小數目; 判定任何主機電腦可將其訓練實例之各自批次分成之最小批次之該最大的最小數目(N);及 向各主機電腦發送指定N之資料。
  8. 如請求項7之系統,其中該指定主控主機在用於該訓練程序之不同反覆之該複數個主機電腦之間輪換。
  9. 一種由複數個主機電腦執行之方法,該複數個主機電腦經組態以在訓練一神經網路期間處理該神經網路之一嵌入層,該方法包括: 由各主機電腦在訓練該神經網路之一訓練程序之一反覆期間接收訓練實例之一各自批次用於處理,各訓練實例具有零或多個特徵,及其中在訓練實例之該各自批次之至少兩個不同訓練實例具有不同數目之特徵; 基於由該主機電腦所接收之該各自批次中之該等訓練實例之各者中之特徵之數目來運算該主機電腦可將訓練實例之該各自批次分成之最小批次之一最小數目,使得該主機電腦可在不超過該主機電腦上之可用運算資源之情況下使用該神經網路之該嵌入層來處理各最小批次,其中由於該至少兩個不同訓練實例具有不同數目之特徵,該等主機電腦之至少兩者運算最小批次之不同最小數目; 自最小批次之該等最小數目來判定在各主機電腦之最小批次之該等運算最小數目中最小批次之一最大的最小數目(N); 自由該主機電腦接收之該各自訓練實例批次產生N個最小批次;及 由各主機電腦使用該神經網路之該嵌入層來處理訓練實例之該N個最小批次。
  10. 如請求項9之方法,其中使用該神經網路之該嵌入層來處理訓練實例之一各自最小批次包括: 針對該最小批次中之各訓練實例中之各輸入特徵,自一可訓練查找表獲得對應於該輸入特徵之一向量;及 針對各訓練實例,處理該等所獲得之向量以產生一向量表示。
  11. 如請求項10之方法,其中該可訓練查找表分散於該等主機電腦中。
  12. 如請求項11之方法,其中運算該主機電腦可將訓練實例之該各自批次分成之最小批次之一最小數目M包括針對從一上限開始之M之值來重複地: 將由該主機電腦接收之訓練實例之該各自批次分割成M個最小批次; 針對該M個最小批次之各者,判定對應於該最小批次中之各訓練實例中之各輸入特徵的該等向量是否適合於該主機電腦上之記憶體;及 直至該M個最小批次之任何者不適合於該主機電腦上之記憶體時才使M遞減。
  13. 如請求項9之方法,其進一步包括: 將由該主機電腦接收之訓練實例之該各自批次分成該主機電腦之該運算最小數目個最小批次;及 若N大於該主機電腦之最小批次之該運算最小數目,則將一個最小批次再分成多個最小批次。
  14. 如請求項13之方法,其中將一個最小批次分割成多個最小批次包括產生無訓練實例之一最小批次。
  15. 如請求項9之方法,其中該等主機電腦之一者係一指定主控主機,其中該指定主控主機經組態以執行包括以下各者之操作: 自各主機電腦接收該主機電腦可將該各自訓練實例批次分成之最小批次之該最小數目; 判定任何主機電腦可將其訓練實例之各自批次分成之最小批次之該最大的最小數目(N);及 向各主機電腦發送指定N之資料。
  16. 如請求項15之方法,其中該指定主控主機在用於該訓練程序之不同反覆之該複數個主機電腦之間輪換。
  17. 一或多個非暫時性電腦可讀儲存媒體,其儲存指令,該等指令在由包括經組態以在訓練一神經網路期間處理該神經網路之一嵌入層之複數個主機電腦的一系統之處理器執行時引起該系統執行包括以下各者之操作: 由各主機電腦在用於訓練該神經網路之一訓練程序之一反覆期間接收訓練實例之一各自批次用於處理,各訓練實例具有零或多個特徵,及其中在訓練實例之該各自批次之至少兩個不同訓練實例具有不同數目之特徵; 基於由該主機電腦所接收之該各自訓練實例批次之各者之特徵之數目來運算該主機電腦可將該各自訓練實例批次分成之最小批次之一最小數目,使得該主機電腦可在不超過該主機電腦上之可用運算資源之情況下使用該神經網路之該嵌入層來處理各最小批次,其中由於該至少兩個不同訓練實例具有不同數目之特徵,該等主機電腦之至少兩者運算最小批次之不同最小數目; 自最小批次之該等最小數目來判定在各主機電腦之最小批次之該等運算最小數目中最小批次之一最大的最小數目(N); 自由該主機電腦接收之該各自訓練實例批次產生N個最小批次;及 由各主機電腦使用該神經網路之該嵌入層來處理訓練實例之該N個最小批次。
  18. 如請求項17之電腦可讀儲存媒體,其中使用該神經網路之該嵌入層來處理訓練實例之一各自最小批次包括: 針對該最小批次中之各訓練實例中之各輸入特徵,自一可訓練查找表獲得對應於該輸入特徵之一向量;及 針對各訓練實例,處理該等所獲得之向量以產生一向量表示。
  19. 如請求項18之電腦可讀儲存媒體,其中該可訓練查找表分散於該等主機電腦中。
  20. 如請求項19之電腦可讀儲存媒體,其中運算該主機電腦可將該各自訓練實例批次分成之最小批次之一最小數目M包括針對從一上限開始之M之值來重複以下步驟: 將由該主機電腦接收之訓練實例之該各自批次分割成M個最小批次; 針對該M個最小批次之各者,判定對應於該最小批次中之各訓練實例中之各輸入特徵的該等向量是否適合於該主機電腦上之記憶體;及 直至該M個最小批次之任何者不適合於該主機電腦上之記憶體時才使M遞減。
TW110131206A 2019-01-11 2019-12-31 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 TWI758223B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/246,371 2019-01-11
US16/246,371 US10789510B2 (en) 2019-01-11 2019-01-11 Dynamic minibatch sizes

Publications (2)

Publication Number Publication Date
TW202145078A true TW202145078A (zh) 2021-12-01
TWI758223B TWI758223B (zh) 2022-03-11

Family

ID=69174605

Family Applications (2)

Application Number Title Priority Date Filing Date
TW110131206A TWI758223B (zh) 2019-01-11 2019-12-31 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
TW108148515A TWI740338B (zh) 2019-01-11 2019-12-31 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW108148515A TWI740338B (zh) 2019-01-11 2019-12-31 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體

Country Status (5)

Country Link
US (2) US10789510B2 (zh)
EP (1) EP3827376A1 (zh)
CN (2) CN112655005B (zh)
TW (2) TWI758223B (zh)
WO (1) WO2020146098A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354573B2 (en) * 2019-03-25 2022-06-07 International Business Machines Corporation Dynamically resizing minibatch in neural network execution
WO2023195011A1 (en) * 2022-04-04 2023-10-12 R-Stealth Ltd. System and method for model training in decentralized computing environments

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120239688A1 (en) * 2009-12-04 2012-09-20 Takatoshi Yanase Table lookup apparatus, table lookup method, and table lookup system
US8904149B2 (en) 2010-06-24 2014-12-02 Microsoft Corporation Parallelization of online learning algorithms
JP6588449B2 (ja) 2014-01-31 2019-10-09 グーグル エルエルシー 文書のベクトル表現の生成
US20150324686A1 (en) 2014-05-12 2015-11-12 Qualcomm Incorporated Distributed model learning
US11049006B2 (en) 2014-09-12 2021-06-29 Microsoft Technology Licensing, Llc Computing system for training neural networks
EP3483795B1 (en) * 2015-01-28 2021-03-10 Google LLC Batch normalization layers
US10083395B2 (en) * 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
US10552454B2 (en) * 2015-11-13 2020-02-04 Sap Se Efficient partitioning of related database tables
US9898441B2 (en) 2016-02-05 2018-02-20 Google Llc Matrix processing apparatus
CN109196527A (zh) * 2016-04-13 2019-01-11 谷歌有限责任公司 广度和深度机器学习模型
CN106127702B (zh) * 2016-06-17 2018-08-14 兰州理工大学 一种基于深度学习的图像去雾方法
US11394426B2 (en) * 2016-06-22 2022-07-19 Korrus, Inc. Intelligent modules for intelligent networks
JP2018018451A (ja) * 2016-07-29 2018-02-01 富士通株式会社 機械学習方法、機械学習プログラム及び情報処理装置
WO2018126325A1 (en) * 2017-01-06 2018-07-12 The Toronto-Dominion Bank Learning document embeddings with convolutional neural network architectures
US10915817B2 (en) * 2017-01-23 2021-02-09 Fotonation Limited Method of training a neural network
TWI675335B (zh) * 2017-06-09 2019-10-21 宏達國際電子股份有限公司 訓練任務優化系統、訓練任務優化方法及其非暫態電腦可讀媒體
TWI636404B (zh) * 2017-07-31 2018-09-21 財團法人工業技術研究院 深度神經網路、使用深度神經網路的方法與電腦可讀媒體

Also Published As

Publication number Publication date
CN112655005B (zh) 2022-07-29
CN112655005A (zh) 2021-04-13
CN115329140A (zh) 2022-11-11
EP3827376A1 (en) 2021-06-02
US20200226424A1 (en) 2020-07-16
WO2020146098A1 (en) 2020-07-16
TWI740338B (zh) 2021-09-21
US10789510B2 (en) 2020-09-29
TWI758223B (zh) 2022-03-11
US20210019570A1 (en) 2021-01-21
TW202026954A (zh) 2020-07-16

Similar Documents

Publication Publication Date Title
US20230252327A1 (en) Neural architecture search for convolutional neural networks
US10733535B1 (en) Training a model using parameter server shards
CN110520853B (zh) 直接存储器访问的队列管理
US8209271B1 (en) Predictive model training on large datasets
US10984319B2 (en) Neural architecture search
WO2017166449A1 (zh) 机器学习模型生成方法和装置
EP3596664A1 (en) Generating discrete latent representations of input data items
JP7287397B2 (ja) 情報処理方法、情報処理装置及び情報処理プログラム
WO2019085709A1 (zh) 一种应用于卷积神经网络的池化处理的方法及系统
US11948086B2 (en) Accelerated embedding layer computations
CN113435682A (zh) 分布式训练的梯度压缩
TWI775210B (zh) 用於卷積運算的資料劃分方法及處理器
TWI758223B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
TW202207031A (zh) 用於記憶體通道控制器之負載平衡
CN105677645B (zh) 一种数据表比对方法和装置
US20230051237A1 (en) Determining material properties based on machine learning models
JP2019159693A (ja) 情報処理装置、情報処理端末、及びプログラム
CN117035045A (zh) 模型参数更新方法、装置、设备、存储介质和程序产品
JP2024504179A (ja) 人工知能推論モデルを軽量化する方法およびシステム
CN117112145B (zh) 训练模型分配方法、装置、计算机设备和存储介质
CN111563159B (zh) 文本排序方法及装置
He et al. Neural Ordinary Differential Equations with Envolutionary Weights
CN114819076A (zh) 网络蒸馏方法、装置、计算机设备、存储介质