谷歌云初始頁(yè)面

首先需要?jiǎng)?chuàng)建一個(gè)VM實(shí)例,在選項(xiàng)中進(jìn)行現(xiàn)存、內(nèi)存數(shù)量、系統(tǒng)鏡像等配置。

二:創(chuàng)建VM實(shí)例的界面

 在該頁(yè)面的選項(xiàng)中,有幾個(gè)是比較重要的。

1.    Machinetype。該選項(xiàng)決定了VM實(shí)例的線程數(shù)和內(nèi)存數(shù)量的配置。一般來(lái)說(shuō),在配置系統(tǒng)階段,只選用最小的線程數(shù)和內(nèi)存數(shù)量即可。而如果開(kāi)始租用TPU,由于讀寫(xiě)TensorFlowcheckpoint由CPU完成,且網(wǎng)絡(luò)帶寬與線程數(shù)成正比,在TPU開(kāi)始訓(xùn)練后,不宜選用過(guò)小的線程數(shù)。

2.    BootDisk。該選項(xiàng)指定了系統(tǒng)的鏡像。如果需要使用TPU進(jìn)行計(jì)算,則要選擇支持TPU的鏡像。目前而言,TPU支持兩種深度學(xué)習(xí)框架,即TensorFlow和PyTorch。相比較而言,TensorFlow的支持會(huì)更為成熟,而PyTorch的支持則具有一定的實(shí)驗(yàn)性。建議目前還是選用TensorFlow框架。

3.    在Identityand API access一項(xiàng)中,如果不存在部署的問(wèn)題,建議選擇Allow full access to all Cloud APIs一項(xiàng)。

接下來(lái)創(chuàng)建TPU界面:

圖三:創(chuàng)建TPU界面

在創(chuàng)建TPU的頁(yè)面,有幾個(gè)選項(xiàng)值得說(shuō)明:

1.       TPUtype一項(xiàng)中,會(huì)出現(xiàn)v2-8,v3-8,v3-32等選項(xiàng)的說(shuō)明(注意不同的區(qū)域提供不同型號(hào)的TPU)。其中v2或v3為tpu的型號(hào),-8或-32則為核心數(shù)量。最小的核心數(shù)量為8核心。在該模式下,我們可以選用搶占式的模式。而對(duì)于大于8核心的選項(xiàng),則意味著TPUpod。該模式尚不支持搶占式(但是搶占式正在谷歌內(nèi)部進(jìn)行內(nèi)測(cè))。

2.       IPaddress range一項(xiàng)中,如不涉及到部署,則可以填寫(xiě)10.1.x.0,其中x為大于101的數(shù)字(如102,103等)。值得注意的是,如果之前已有TPU填寫(xiě)了某范疇,而新創(chuàng)建的TPU的IP地址范疇和之也有重疊,則新創(chuàng)建的TPU會(huì)覆蓋掉原先的實(shí)例。

3.       Preemptibility一項(xiàng)為是否采用搶占式實(shí)例的選項(xiàng)。如前文所述,只有V2-8和V3-8兩種型號(hào)支持創(chuàng)建搶占式實(shí)例。

如果以上選項(xiàng)均已設(shè)定完畢,則可以點(diǎn)擊CREATE按鈕創(chuàng)建TPU實(shí)例,然后就可以順利運(yùn)行TPU程序了。

實(shí)驗(yàn)室使用TPU的心得

我們?cè)谏衔闹薪榻B的VM實(shí)例和TPU實(shí)例的管理方式為眾多方法中的一種,除去以上辦法外,還可以通過(guò)命令行模型ctpuup等創(chuàng)建TPU實(shí)例,對(duì)此我們不再做詳細(xì)介紹。下面我們重點(diǎn)結(jié)合實(shí)驗(yàn)室在此期間使用TPU的經(jīng)驗(yàn),和大家分享心得,幫助大家排雷。

首先大家需要注意的是TPU創(chuàng)建完畢并開(kāi)始運(yùn)行,即使沒(méi)有實(shí)際的程序運(yùn)行也會(huì)發(fā)生扣費(fèi)。我們實(shí)驗(yàn)室建議在開(kāi)啟TPU之前,就先將代碼在本地環(huán)境中調(diào)通,避免沒(méi)有必要的費(fèi)用流失。從實(shí)驗(yàn)室運(yùn)行TPU的實(shí)戰(zhàn)經(jīng)歷來(lái)看,我們建議使用TensorFlow的Estimator框架,因?yàn)槲覀冎恍柙趧?chuàng)建Estimator時(shí)將普通的Estimator改為T(mén)PU Estimator,即可使用TPU進(jìn)行BERT神經(jīng)網(wǎng)絡(luò)預(yù)訓(xùn)練。這樣大大減少了實(shí)驗(yàn)室的工作量。

在進(jìn)行BERT模型訓(xùn)練過(guò)程中,batch_size的大小直接影響模型訓(xùn)練的性能,通過(guò)對(duì)google TPU了解得知,每個(gè)TPU包含了8個(gè)core,建議設(shè)置batch_size大小為8的倍數(shù)。同時(shí)google 推出了TPU 的pod模式以滿足用戶對(duì)更大算力的追求,實(shí)際上就是將多個(gè)TPU進(jìn)行封裝成一個(gè)整體供用戶使用,比如V3-32,就是用4個(gè)V3的TPU,因此我們建議batch_size的大小能被整體core的數(shù)目整除即可,這樣可以最大效率的利用TPU。

當(dāng)然除此之外,在實(shí)戰(zhàn)中我們還需要處理較大的文件在VM中的問(wèn)題,因?yàn)檫@樣會(huì)消耗大量硬盤(pán)資源以及增加運(yùn)算成本,實(shí)驗(yàn)室用到了Buckets—一個(gè)價(jià)格相對(duì)親民的存儲(chǔ)方式來(lái)提升資源運(yùn)用的效率,我們建議將較大的文件(如BERT文件的初始權(quán)重)存儲(chǔ)在bucket當(dāng)中,該步驟較為簡(jiǎn)單,故我們省略詳細(xì)介紹,有需要可以進(jìn)一步閱讀https://cloud.google.com/storage/docs/creating-buckets。

實(shí)驗(yàn)室對(duì)TPU的建議

實(shí)驗(yàn)室在經(jīng)過(guò)一段時(shí)間的使用后,TPU雖然在多個(gè)方面上完勝GPU,但是我們認(rèn)為T(mén)PU還是有很多可改進(jìn)的地方:

1. TPU的使用門(mén)檻很高,TPU自開(kāi)發(fā)以來(lái),擁有較少的代碼示例和文檔,官方提供的實(shí)例也不夠完善,對(duì)于初學(xué)者不夠友好。尤其由于TensorFlow靜態(tài)圖的本質(zhì),這使得基于TPU的Debug比較困難;

2.  究其根本TPU是圍繞TensorFlow框架設(shè)計(jì)的硬件,實(shí)際使用過(guò)程中TPU硬件和TensorFlow版本具有較大的相互依賴性,大大減少了其可兼容性,使得使用其他人工智能框架的項(xiàng)目很難高效低成本地運(yùn)用TPU進(jìn)行運(yùn)算;

3.  由于TensorFlow本身是基于靜態(tài)圖的,而TPU從本質(zhì)上也只能支持靜態(tài)圖,這使得需要依賴于動(dòng)態(tài)圖的應(yīng)用難以在TPU上運(yùn)行。這類應(yīng)用包括semantic parsing和圖網(wǎng)絡(luò)等。

當(dāng)然在TPU新技術(shù)的引進(jìn)下,實(shí)驗(yàn)室會(huì)迎來(lái)新的轉(zhuǎn)機(jī)和工作模式。隨著計(jì)算效率的提高,實(shí)驗(yàn)室的算法研究員可以將冗長(zhǎng)的計(jì)算等待時(shí)間極大縮短,并且提升整體實(shí)驗(yàn)室的研究效率,增強(qiáng)實(shí)驗(yàn)項(xiàng)目的可控性。之前,研究員因?yàn)榭紤]到時(shí)間成本問(wèn)題,會(huì)采用多個(gè)假設(shè)并行驗(yàn)證的工作方式。因?yàn)槊總€(gè)實(shí)驗(yàn)都有風(fēng)險(xiǎn)出現(xiàn)問(wèn)題,并行實(shí)驗(yàn)會(huì)使得研究員無(wú)法估測(cè)每個(gè)驗(yàn)證的具體成功率,很有可能耗費(fèi)大量算力后空手而歸。如今,研究員可以將所有假設(shè)串聯(lián)并一一快速驗(yàn)證,顯著提高實(shí)驗(yàn)的效率,大大降低了項(xiàng)目的成本風(fēng)險(xiǎn),增加可預(yù)測(cè)性。

整體上來(lái)說(shuō),實(shí)驗(yàn)室認(rèn)為T(mén)PU結(jié)合BERT模型是一個(gè)不錯(cuò)的開(kāi)始,大大減少了我們預(yù)訓(xùn)練模型的時(shí)間,顯著提升了BERT模型整體運(yùn)算的效率,大幅度降低了硬件資源的算力成本。在這方面實(shí)驗(yàn)室還會(huì)進(jìn)一步研究和探索,讓我們期待未來(lái)更多的實(shí)踐成果。

來(lái)源: 認(rèn)知智能實(shí)驗(yàn)室 

分享到

xiesc

相關(guān)推薦