0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一種相對直接使用的distillation的變體方法

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-04-16 11:35 ? 次閱讀

在提出備受矚目的“膠囊網(wǎng)絡(luò)”(Capsule networks)之后,深度學(xué)習(xí)領(lǐng)域的大牛、多倫多大學(xué)計算機(jī)科學(xué)教授Geoffrey Hinton近年在distillation這一想法做了一些前沿工作,包括Distill the Knowledge in a Neural Network等。今天我們介紹的是Hinton作為作者之一,谷歌大腦、DeepMind等的研究人員提交的distillation的更進(jìn)一步工作:通過online distillation進(jìn)行大規(guī)模分布式神經(jīng)網(wǎng)絡(luò)訓(xùn)練。該工作提出了Codistillation的概念,通過大規(guī)模實(shí)驗(yàn),發(fā)現(xiàn)codistillation方法提高了準(zhǔn)確性并加快了訓(xùn)練速度,并且易于在實(shí)踐中使用。

與幾乎任何基本模型配合時,諸如集成(ensembling)和蒸餾(distillation)等技術(shù)都可以提升模型的質(zhì)量。但是,由于增加了測試時間成本(對于ensembling)和訓(xùn)練pipeline的復(fù)雜性(對于distillation),這些技術(shù)在工業(yè)環(huán)境中使用具有挑戰(zhàn)性。

來自谷歌、谷歌大腦、DeepMind的研究人員,包括Geoffrey Hinton等人,在他們提交給ICLR 2018的論文“Large scale distributed neural network training through online distillation”中,探討了一種相對直接使用的distillation的變體方法,該方法不需要復(fù)雜的多級設(shè)置或非常多的新超參數(shù)

研究者提出的第一個主張是:在線蒸餾(online distillation)使我們能夠使用額外的并行性來適應(yīng)非常大的數(shù)據(jù)集,并且速度提高一倍。更重要的是,即使我們已經(jīng)達(dá)到額外的并行性對同步或異步隨機(jī)梯度下降沒有好處的程度,我們?nèi)匀豢梢约涌煊?xùn)練速度。在不相交的數(shù)據(jù)子集上訓(xùn)練的兩個神經(jīng)網(wǎng)絡(luò)可以通過鼓勵每個模型同意另一個模型的預(yù)測來共享知識。這些預(yù)測可能來自另一個模型的舊版本,因此可以使用很少被傳輸?shù)臋?quán)重來安全地計算它們。

論文提出的第二個主張是:online distillation是一種成本效益高的方法,可以使模型的精確預(yù)測更具可重復(fù)性。研究者通過在Criteo Display Ad Challenge數(shù)據(jù)集,ImageNet和用于神經(jīng)語言建模的最大數(shù)據(jù)集(包含6×1011個tokens)上進(jìn)行實(shí)驗(yàn),支持了提出的這些主張。

Codistillation:優(yōu)于分布式SGD

對于大規(guī)模的、具有商業(yè)價值的神經(jīng)網(wǎng)絡(luò)訓(xùn)練問題,如果訓(xùn)練時間能夠大幅加快,或最終模型的質(zhì)量能夠大幅提高,從業(yè)者會愿意投入更多的機(jī)器用于訓(xùn)練。目前,分布式隨機(jī)梯度下降(SGD),包括其同步和異步形式(Chen et al.,2016)是在多個互聯(lián)機(jī)器上進(jìn)行大規(guī)模神經(jīng)網(wǎng)絡(luò)訓(xùn)練的主要算法。但是,隨著機(jī)器數(shù)量的增加,訓(xùn)練一個高質(zhì)量模型所需時間的改善程度會降低,直到繼續(xù)增加機(jī)器卻無法進(jìn)一步縮短訓(xùn)練時間。基礎(chǔ)架構(gòu)的限制,以及優(yōu)化上的障礙,一起限制了分布式 minibatch SGD的可擴(kuò)展性。

分布式SGD的精確可擴(kuò)展性限制將取決于算法的實(shí)現(xiàn)細(xì)節(jié),基礎(chǔ)架構(gòu)的具體情況以及硬件的能力,但根據(jù)我們的經(jīng)驗(yàn),在實(shí)際設(shè)置中,在超過100臺GPU workers上進(jìn)行有效擴(kuò)展可能非常困難。沒有任何訓(xùn)練神經(jīng)網(wǎng)絡(luò)的算法可以無限擴(kuò)展,但即使擴(kuò)展得比分布式SGD的限制多一點(diǎn),也是非常有價值的。

一旦我們達(dá)到了向分布式SGD添加worker的限制,我們就可以使用額外的機(jī)器來訓(xùn)練模型的另一個副本,并創(chuàng)建一個集成(ensemble)以提高準(zhǔn)確性(或通過以更少的step訓(xùn)練ensemble中的成員來提高訓(xùn)練時的精度)。ensemble能夠做出更穩(wěn)定和可重復(fù)的預(yù)測,這在實(shí)際應(yīng)用中很有用。但是,ensemble增加了測試時的成本,可能會影響延遲或其他成本限制。

為了在不增加測試時間成本的情況下獲得幾乎與ensemble相同的好處,我們可以對一個n-way模型的ensemble進(jìn)行蒸餾(distill),得到一個單一模型,這包括兩個階段:首先我們使用nM機(jī)器來訓(xùn)練分布式SGD的n-way ensemble,然后使用M機(jī)器來訓(xùn)練student網(wǎng)絡(luò),以模擬n-way ensemble。通過在訓(xùn)練過程中增加另一個階段并使用更多機(jī)器,distill一般會增加訓(xùn)練時間和復(fù)雜性,以換取接近更大的 teacher ensemble 模型的質(zhì)量改進(jìn)。

我們認(rèn)為,從時間和pipeline復(fù)雜性兩方面來看,額外的訓(xùn)練成本阻礙了從業(yè)者使用ensemble distillation,盡管這種方法基本上總是能夠改善結(jié)果。在這項(xiàng)新的工作中,我們描述了一個簡單的distillation的在線變體,我們稱之為codistillation。Codistillation通過向第i個模型的損失函數(shù)添加一個項(xiàng)來匹配其他模型的平均預(yù)測值,可以并行訓(xùn)練n個模型的副本。

通過大規(guī)模實(shí)驗(yàn),我們發(fā)現(xiàn),與分布式SGD相比,通過允許有效利用更多計算資源,codistillation提高了準(zhǔn)確性并加快了訓(xùn)練速度,甚至加速效果超過了給SGD方法添加更多worker。具體來說,codistillation提供了在不增加訓(xùn)練時間的情況下distill一個模型ensemble的好處。與Multi-phase的distillation訓(xùn)練過程相比,Codistillation在實(shí)踐中使用也相當(dāng)簡單。

這項(xiàng)工作的主要貢獻(xiàn)是codistillation的大規(guī)模實(shí)驗(yàn)驗(yàn)證。另一個貢獻(xiàn)是,我們探索了不同的設(shè)計選擇和codistillation的實(shí)現(xiàn)考慮因素,提出了實(shí)用的建議。

總的來說,我們認(rèn)為在實(shí)踐中,codistillation比精心調(diào)參的offline distillation得到的質(zhì)量提升是次要的,更有趣的研究方向是將codistillation作為一種分布式訓(xùn)練算法來研究。

在這篇論文中,我們使用codistillation來指代執(zhí)行的distillation:

所有模型使用相同的架構(gòu);

使用相同的數(shù)據(jù)集來訓(xùn)練所有模型;

在任何模型完全收斂之前使用訓(xùn)練期間的distillation loss。

codistillation算法

實(shí)驗(yàn)與結(jié)果

為了研究分布式訓(xùn)練的可擴(kuò)展性,我們需要一個代表重要的大規(guī)模神經(jīng)網(wǎng)絡(luò)訓(xùn)練問題的任務(wù)。神經(jīng)語言建模是一個理想的測試平臺,因?yàn)榫W(wǎng)絡(luò)上有大量的文本,并且也因?yàn)樯窠?jīng)語言模型的訓(xùn)練成本可能非常高。神經(jīng)語言模型是實(shí)現(xiàn)分布式SGD(如機(jī)器翻譯和語音識別)常用重要問題的代表,但是語言建模更容易評估和使用更簡單的管線。為了盡可能清晰地提高潛在的可擴(kuò)展性,我們選擇了一個足夠大的數(shù)據(jù)集,它完全不可能通過現(xiàn)有的SGD并行化策略來訓(xùn)練一個表達(dá)模型。為了證實(shí)我們的結(jié)果并不是特定于語言建模的某些特性,我們也驗(yàn)證了我們在ImageNet (Russakovsky et al., 2015)上的一些大規(guī)模的codistillation結(jié)果。為了證明在減少預(yù)測過程中進(jìn)行編碼的好處,并研究算法的其他特性,我們可以使用更小的更便宜的實(shí)驗(yàn),但在研究可擴(kuò)展性時,真正達(dá)到分布式SGD的極限是很重要的。

1. 達(dá)到分布式SGD的極限,用于在Common Crawl上訓(xùn)練RNN

在我們的第一組實(shí)驗(yàn)中,我們的目標(biāo)是大致確定在我們的Common Crawl神經(jīng)語言模型設(shè)置中可以有效使用SGD的GPU的最大數(shù)量。由于我們的數(shù)據(jù)集比英文維基百科數(shù)據(jù)量大兩個數(shù)量級,因此不用擔(dān)心重新訪問數(shù)據(jù),即使在相對較大規(guī)模的實(shí)驗(yàn)中,這也會使獨(dú)立副本更加相似。我們嘗試使用32和128個workers的異步SGD,在必要的情況下,通過增加參數(shù)服務(wù)器的數(shù)量來分配權(quán)重,以確保訓(xùn)練速度被GPU計算時間瓶頸。我們發(fā)現(xiàn)很難保持訓(xùn)練的穩(wěn)定性,并防止RNNs與大量GPU的異步SGD出現(xiàn)差異。我們嘗試了一些workers提升計劃和不同的學(xué)習(xí)速率,但最終決定將重點(diǎn)放在同步算法上,使我們的結(jié)果更少地依賴于我們的基礎(chǔ)結(jié)構(gòu)和實(shí)現(xiàn)的特定特性。梯度的穩(wěn)定性很難獨(dú)立于特定的條件下進(jìn)行分析,而實(shí)現(xiàn)和基礎(chǔ)結(jié)構(gòu)的差異更容易抽象為同步SGD。雖然可能需要更多的努力使異步工作良好,但陳舊的漸變對學(xué)習(xí)進(jìn)度的削弱作用是一個眾所周知的問題,Mitliagkas等人(2016)認(rèn)為,異步可以有效地增加動量,這也是為什么它容易分化的原因。在初步實(shí)驗(yàn)中,從codistillation中獲得的收益似乎與選擇異步或同步SGD作為基本算法無關(guān)。

可同時用于同步SGD的最大GPU的數(shù)量取決于基礎(chǔ)架構(gòu)限制、尾延遲和批處理大小的影響。完全同步的SGD相當(dāng)于批量大得多的單機(jī)算法。增加有效的批量大小可減少梯度估計中的噪聲,從而允許更大的步長,并有望實(shí)現(xiàn)更高質(zhì)量的更新,從而實(shí)現(xiàn)更快的收斂速度。鑒于有效的無限訓(xùn)練數(shù)據(jù)(即使使用256個GPU,我們也不訪問所有常見爬網(wǎng)訓(xùn)練數(shù)據(jù)),我們直觀地預(yù)計會增加有效批量,最終增加步驟時間。我們采用完全同步的SGD在Common Crawl上訓(xùn)練了語言模型,并使用128和32,64,128和256GPU的批處理大小。因此,有效的批量大小范圍為4096至32768.一般來說,我們應(yīng)該期望需要增加學(xué)習(xí)率,因?yàn)槲覀冊黾恿擞行У呐看笮?,所以對于每個GPU我們嘗試的學(xué)習(xí)率為0.1,0.2和0.4。對于32和64GPU,0.1表現(xiàn)最好,因?yàn)樵鹊娜N學(xué)習(xí)率都沒有對256GPU表現(xiàn)良好,我們還嘗試了0.3的額外中級學(xué)習(xí)率,這是256的最佳表現(xiàn)學(xué)習(xí)率。

圖1a將驗(yàn)證誤差作為我們嘗試過的不同數(shù)量的GPU的全局步驟的函數(shù),使用了每個GPU數(shù)量的最佳學(xué)習(xí)速率。增加數(shù)量(因此有效的批處理大小)減少了達(dá)到最佳驗(yàn)證錯誤所需的步驟數(shù),直到128GPU,在這一點(diǎn)上沒有額外的改進(jìn)。圖1b對相同數(shù)量的同步GPU的驗(yàn)證誤差與Wall time進(jìn)行對比。在這些特殊的實(shí)驗(yàn)中,與128個GPU同步的SGD是訓(xùn)練時間和最終準(zhǔn)確度方面最強(qiáng)的基線。因此,我們將其余實(shí)驗(yàn)集中在與128位同步SGD進(jìn)行比較,并研究使用同步SGD作為子程序的codistillation,但它也適用于異步算法。

2. 帶同步SGD的CODISTILLATION

對于Common Crawl上的語言建模,具有128GPU的同步SGD實(shí)現(xiàn)了標(biāo)準(zhǔn)分布式訓(xùn)練的最佳結(jié)果,至少是我們嘗試過的配置,并且我們無法使用256個GPU來提高訓(xùn)練時間。雖然額外的GPU似乎不能幫助基本的同步SGD,但我們的假設(shè)是,如果我們使用兩組128GPU(使用同步SGD定期交換檢查點(diǎn))雙向codistillation,那么額外的128GPU將提高訓(xùn)練時間。

一個問題是,codistillation僅僅是一種懲罰確信輸出分布(penalizing confident output distributions)或平滑標(biāo)簽的方法,所以我們也將其與兩個標(biāo)簽平滑基線進(jìn)行比較。第一個基線用符合統(tǒng)一分配的術(shù)語代替codistillation損失術(shù)語,第二個基線使用與使用一個與unigram分布相匹配的術(shù)語。在初步實(shí)驗(yàn)中手動調(diào)整權(quán)衡超參數(shù)。另一個重要的比較是兩個神經(jīng)網(wǎng)絡(luò)的集成,每個神經(jīng)網(wǎng)絡(luò)都有128GPU和同步SGD。

圖2a利用128個GPU的兩個組,以及同步SGD的訓(xùn)練曲線和標(biāo)簽平滑基線(每個使用128個GPU)和一個包含128個GPU基線的兩個實(shí)例的訓(xùn)練曲線,繪制了驗(yàn)證交叉信息和同步訓(xùn)練的步驟。

討論和未來的工作

Distillation是一種非常靈活的工具,尤其是在模型訓(xùn)練過程期間而不是之后進(jìn)行。它可用于加速培訓(xùn)、提高質(zhì)量,以新的、更有效的溝通方式下進(jìn)行訓(xùn)練,并減少預(yù)測的流失。然而,我們?nèi)杂性S多問題需要探討。例如,我們主要關(guān)注對彼此進(jìn)行codistilling的模型對上。如果成對是有用的,那么其他拓?fù)湟彩怯杏玫?。完全連接的圖形可能使模型過于相似,太快以至于環(huán)形結(jié)構(gòu)也可能變得有趣。我們也沒有探究teacher models預(yù)測的準(zhǔn)確性的局限性。也許可以對teacher models進(jìn)行積極的量化,使其在很大程度上與普通訓(xùn)練一樣廉價,即使是非常大的模型。

有些矛盾的是,壞模型之間codistilling可以比獨(dú)立的模型訓(xùn)練更快地學(xué)習(xí)。從某種程度上講,teacher models所犯的錯誤可以幫助student model做得更好,而且比僅僅看到數(shù)據(jù)中的實(shí)際標(biāo)簽要好。描述teacher models的理想特性是未來工作的一個令人興奮的途徑。在這項(xiàng)工作中,我們只從檢查點(diǎn)提取預(yù)測,因?yàn)轭A(yù)測是可識別的,而且不像網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu),沒有虛假的對稱。也就是說,從一個檢查點(diǎn)提取更多信息可能比僅僅預(yù)測沒有觸及到工作人員交流梯度的相同問題,允許使用teacher models作為更強(qiáng)的調(diào)節(jié)者。也許可以用基于codistillation的方法來增強(qiáng)McMahan等人(2017)提出的在帶寬受限的設(shè)置環(huán)境下的聯(lián)合學(xué)習(xí)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:Hinton膠囊網(wǎng)絡(luò)后最新研究:用“在線蒸餾”訓(xùn)練大規(guī)模分布式神經(jīng)網(wǎng)絡(luò)

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    一種中頻直接采樣方案

    一種中頻直接采樣方案
    發(fā)表于 11-25 15:47

    有沒有一種方法直接從芯片上讀取27443的程序?

    有沒有一種方法直接從芯片上讀取27443的程序?
    發(fā)表于 09-17 13:45

    榮小菜補(bǔ)鈣記第19期:數(shù)據(jù)操作之變體數(shù)據(jù)提取

    分享個將變體中數(shù)據(jù)按名稱和數(shù)據(jù)類型提取出來的Demo。1.背景變體一種優(yōu)劣并存的數(shù)據(jù)類型,直接引用LabVIEW幫助文檔中對
    發(fā)表于 03-11 21:56

    分享一種新的失效保護(hù)方法

    分享一種在車身控制模塊(BCM)設(shè)計中新的失效保護(hù)方法。
    發(fā)表于 05-14 06:15

    一種伺服電機(jī)的控制方法

    本發(fā)明涉及機(jī)械控制技術(shù)領(lǐng)域,尤其涉及一種伺服電機(jī)的控制方法。背景技術(shù):隨著機(jī)械控制領(lǐng)域的高速發(fā)展,對于伺服電機(jī)的需要也日益增加,因此對于伺服 電機(jī)的控制已引起越來越多人的重視。目前傳統(tǒng)的伺服電機(jī)
    發(fā)表于 09-03 08:53

    YOLOv6中的用Channel-wise Distillation進(jìn)行的量化感知訓(xùn)練

    1、YOLOv6中的用Channel-wise Distillation進(jìn)行的量化感知訓(xùn)練來自哪里  知識蒸餾 (KD)已被證明是一種用于訓(xùn)練緊湊密集預(yù)測模型的簡單有效的工具。輕量級學(xué)生網(wǎng)絡(luò)通過
    發(fā)表于 10-09 16:25

    一種實(shí)用的電爐控溫方法

    一種實(shí)用的電爐控溫方法 A Practical Temperature Control Method for Electric Oven 在熱鍍鋅板生產(chǎn)過程中,帶鋼的退火還原是一種非常重要的工藝環(huán)節(jié),塔式爐內(nèi)的溫度
    發(fā)表于 01-12 14:16 ?54次下載

    一種改進(jìn)直接轉(zhuǎn)矩控制性能的方法

    本文首先介紹了傳統(tǒng)直接轉(zhuǎn)矩控制的基本結(jié)構(gòu),并對導(dǎo)致轉(zhuǎn)矩脈動的因素進(jìn)行了理論分析,說明了定子電流畸變的原因。針對上述問題,給出了一種通過細(xì)化電壓矢量合成扇區(qū)和開
    發(fā)表于 04-03 10:53 ?14次下載

    Yahalom協(xié)議及其變體的時序缺陷分析與改進(jìn)

    研究Yahalom協(xié)議及其變體,發(fā)現(xiàn)該系列協(xié)議存在的時序缺陷,給出一種利用此缺陷攻擊Yahalom協(xié)議及其變體方法。盡管Yahalom協(xié)議歷經(jīng)幾次修改,且被證明不存在密鑰泄露問題,但
    發(fā)表于 04-17 09:28 ?16次下載

    啟輝器熔焊的一種預(yù)防方法

    啟輝器熔焊的一種預(yù)防方法 日光燈作為一種節(jié)能光源,被廣泛應(yīng)用于工礦業(yè)和家庭之中,而日光燈管,鎮(zhèn)流器和啟輝器是耗能元件,
    發(fā)表于 03-29 08:21 ?1029次閱讀

    一種直接強(qiáng)度解調(diào)應(yīng)用分析

    在傳統(tǒng)的激光多普勒測振方法中,頻移信號的檢測通常需要具有比較復(fù)雜的頻率或相位解調(diào)系統(tǒng)。從激光多普勒頻移和干涉理論出發(fā),提出了一種測量振幅小于納米量級的方法直接強(qiáng)度解
    發(fā)表于 09-13 17:16 ?23次下載
    <b class='flag-5'>一種</b><b class='flag-5'>直接</b>強(qiáng)度解調(diào)應(yīng)用分析

    一種新型的電刷調(diào)整方法

    一種新型的電刷調(diào)整方法_周國玉
    發(fā)表于 01-02 16:09 ?0次下載

    一種簡化的永磁無刷直流電機(jī)直接轉(zhuǎn)矩控制方法

    一種簡化的永磁無刷直流電機(jī)直接轉(zhuǎn)矩控制方法
    發(fā)表于 01-21 12:00 ?4次下載

    一種自動生成反向傳播方程的方法

    為此,我們提出一種領(lǐng)域特定語言(domain specific language),以將這些數(shù)學(xué)公式描述為原始函數(shù)列表,并使用一種基于進(jìn)化(evolution-based)的方法來發(fā)現(xiàn)新的傳播規(guī)則
    的頭像 發(fā)表于 08-14 09:55 ?3806次閱讀
    <b class='flag-5'>一種</b>自動生成反向傳播方程的<b class='flag-5'>方法</b>

    一種結(jié)合相對信息熵的改進(jìn)LEACH協(xié)議

    目前,基于低功耗自適應(yīng)集簇分層型協(xié)議( LEACH)的改進(jìn)協(xié)議大多是從簇頭選舉、簇的分布、路徑選擇等方面入手,數(shù)據(jù)之間的冗余性考慮不夠。提出了一種結(jié)合相對信息熵的改進(jìn) LEACH協(xié)議
    發(fā)表于 04-02 15:24 ?13次下載
    <b class='flag-5'>一種</b>結(jié)合<b class='flag-5'>相對</b>信息熵的改進(jìn)LEACH協(xié)議