丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給高婓
發(fā)送

2

OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

本文作者: 高婓 2016-09-14 12:58
導(dǎo)語:編者按:OpenAI研究工程師Vicki Cheung, Jonas Schneider , Ilya Sutskever, and Greg Brockman

編者按:OpenAI研究工程師Vicki Cheung, Jonas Schneider , Ilya Sutskever, and Greg Brockman在本文中分享了從事Deep Learning研究工作所需要的基礎(chǔ)設(shè)施(軟件、硬件、配置和編制),舉例說明如何運(yùn)用開源Kubernetes-ec2-autoscaler自動擴(kuò)展深度學(xué)習(xí)研究中的網(wǎng)絡(luò)模型,將有助于廣大深度學(xué)習(xí)研究愛好者構(gòu)建自己的深度學(xué)習(xí)基礎(chǔ)設(shè)施。

深度學(xué)習(xí)是一門實證科學(xué),一個研究團(tuán)隊的基礎(chǔ)設(shè)施建設(shè)將對未來的研究工作產(chǎn)生重大影響。所幸,當(dāng)今的開源生態(tài)系統(tǒng)能夠使任何人具備構(gòu)建更為完善的深度學(xué)習(xí)基礎(chǔ)設(shè)施的能力。

在這篇文章中,我們將為大家介紹深度學(xué)習(xí)研究通常是如何進(jìn)行的,描述我們?yōu)榱酥С稚疃葘W(xué)習(xí)研究所選擇基礎(chǔ)設(shè)施,和開源Kubernetes-ec2-autoscaler,一種用于Kubernetes的批次優(yōu)化擴(kuò)展管理器。我們希望,這篇文章有助于你構(gòu)建自己的深度學(xué)習(xí)基礎(chǔ)設(shè)施。

用例

深度學(xué)習(xí)的發(fā)展通常源于一個構(gòu)想,你運(yùn)用一個小問題來測試該構(gòu)想的可行性。在這個階段,你想要快速開展許多特設(shè)實驗。理想條件下,你僅需要運(yùn)用SSH(外殼安全協(xié)議)連接一臺計算機(jī),在屏幕上編寫腳本代碼,通過這樣的操作,獲取結(jié)果,整個研究過程耗時不超過一個小時。

要使構(gòu)建的模型真的有用通常會經(jīng)歷很多次失敗,之后找到可行的方案克服模型本身存在的局限性。(這一過程與隨意建立一種新型軟件系統(tǒng)相似,你需要多次重復(fù)運(yùn)行自己的代碼,這樣之后才能夠想象出它們將產(chǎn)生何種結(jié)果)。

 OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

你需要多角度檢測自己的模型,才能想象出這些模型到底是如何學(xué)習(xí)的。Dario Amodei的這種強(qiáng)化學(xué)習(xí)智能體(控制右邊的球拍)在乒乓球比賽中獲得較高得分,但是,當(dāng)你觀察它是如何打球時,會發(fā)現(xiàn)右邊的球拍一直停留在原地沒有移動。因此,深度學(xué)習(xí)基礎(chǔ)設(shè)施必須能夠允許用戶靈活地反觀所采用的模型,僅僅展示出總結(jié)性的統(tǒng)計結(jié)果是不夠的。

當(dāng)你的模型一旦具有廣闊的應(yīng)用前景時,你會想要將其擴(kuò)展應(yīng)用到更大的數(shù)據(jù)集中和分辨率更高的GPU中。這將是一個長遠(yuǎn)的工作,需要做很多輪的檢測,會持續(xù)很多天。在擴(kuò)展應(yīng)用過程中,需要認(rèn)真管理實驗過程,非常謹(jǐn)慎地選擇超參數(shù)變化范圍。

早期的研究過程缺乏系統(tǒng)性,且操作快;相比之下,后期的研究是有條不紊地進(jìn)行的,雖然在某種程度上顯得費(fèi)力,但是,對于獲取良好的實驗結(jié)果是必不可少的。

實例

論文Improved Techniques for Training GANs開篇便講述了Tim Salimans曾設(shè)計出幾種方法,用于改進(jìn)生成對抗性網(wǎng)絡(luò)(GAN)訓(xùn)練。我們在這里將以最簡化的方式描述這些觀點(這些觀點恰好能夠產(chǎn)生最為美觀的樣本,盡管不是最好的半監(jiān)督學(xué)習(xí))。

GANs由一個生成器網(wǎng)絡(luò)和一個鑒別器網(wǎng)絡(luò)構(gòu)成的。生成器試圖愚弄鑒別器,鑒別器試圖區(qū)分生成性數(shù)據(jù)和真實數(shù)據(jù)。憑直覺,我們會認(rèn)為一個能夠愚弄所有鑒別器的生成器必定具有良好的性能。但是,仍然存在一個難以克服的難題:總是輸出幾乎相同的(簡直是逼真的)樣本將致使生成器“崩潰”。

Tim提出下列觀點,即為鑒別器提供小批次的樣本作為輸入信息,而不是僅僅提供一個樣本。這樣一來,鑒別器能夠分辨出生成器是否總是產(chǎn)出一種單一圖像。當(dāng)生成器“崩潰”時,網(wǎng)絡(luò)將對生成器進(jìn)行梯度調(diào)整來糾正這一問題。

下一步將是基于MNIST和CIFAR-10的觀點構(gòu)建原型。這要求盡可能快地為一個小型模型構(gòu)建原型,然后,將所構(gòu)建的模型原型在真實數(shù)據(jù)上運(yùn)行,并檢測獲取的結(jié)果。經(jīng)過幾次快速循環(huán)后,Tim獲取了CIFAR-10樣本,這一成果令人感到興奮不已,是我們見過的在該數(shù)據(jù)集中獲得的最好的樣本。

然而,深度學(xué)習(xí)(通常稱之為AI算法)必須得到擴(kuò)展,使之真正取得令人印象深刻的應(yīng)用成果——一個小型神經(jīng)網(wǎng)絡(luò)能夠用來證實一個構(gòu)想(或概念),但是,一個大型神經(jīng)網(wǎng)絡(luò)能夠用于解決實際問題,得到切實可行的方案。因而,Ian Goodfellow曾深度擴(kuò)展該模型,致力于研究ImageNet。

 OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

運(yùn)用我們的模型學(xué)習(xí)生成的ImageNet圖像

利用一個更大的模型和一個更為大型的數(shù)據(jù)集,Ian需要在多個GPU中并行運(yùn)行該模型。研究過程中每一階段的作業(yè)都將把多臺計算機(jī)的CPU與GPU利用率提升至90%,但是,即便是這種模型也需要花費(fèi)很多天進(jìn)行訓(xùn)練。在這個研究過程中,所進(jìn)行的每一個實驗都變得非常有價值,他將認(rèn)真地記錄每個實驗的結(jié)果。

基礎(chǔ)設(shè)施

軟件

 OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

我們TensorFlow代碼的樣本

在我們的研究中,大部分代碼是用Python編寫的,這一點可以從我們的開源項目中略知一二。通常情況下,我們用TensorFlow(在特殊情況下,運(yùn)用Theano)計算GPU;使用Numpy或其他框架計算CPU。有時,我們的研究員也運(yùn)用一些優(yōu)于TensorFlow的框架來計算GPU或CPU,如Keras。

與很多深度學(xué)習(xí)研究團(tuán)隊一樣,我們運(yùn)用Python 2.7。通常我們使用能夠便捷打包且用于性能優(yōu)化的Anaconda處理難以打包的數(shù)據(jù)庫,如OpenCV,并優(yōu)化一些科學(xué)數(shù)據(jù)庫的性能。

硬件

對于一個理想的批次作業(yè),使集群中的結(jié)點數(shù)量成倍增長將會把代碼運(yùn)行的時間縮減一半。遺憾的是,在深度學(xué)習(xí)中,人們通常從許多GPU中觀察到次線性加速現(xiàn)象。要具備高性能的模型需要頂級的GPU。我們也將多數(shù)CPU用于模擬器,強(qiáng)化學(xué)習(xí)環(huán)境,或小規(guī)模模型(在CPU上的運(yùn)行速度并不比在GPU上快)。

 OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

Nvidia-smi下滿載的Titan Xs

AWS為我們慷慨地提供了大量的計算方法。我們正將這些計算方法應(yīng)用到CPU實例中,并用于水平擴(kuò)展GPU。我們也運(yùn)行自己的服務(wù)器,主要以運(yùn)行Titan X GPU為主。我們期望研發(fā)出一種混合云:對于用不同的GPU,連接和其他技術(shù)開展實驗極為重要,這將有助于未來深度學(xué)習(xí)研究工作的發(fā)展。

 OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

在htop上同樣的物理單元顯示有許多未占用的CPU。我們通常將CPU密集型工作與GPU密集型分開運(yùn)行。

配置

我們對待深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施,就像許多公司對待自己的產(chǎn)品一樣:它必須能夠呈現(xiàn)出一種簡單的界面,可用性與功能性同等重要。我們運(yùn)用一套相互關(guān)聯(lián)的工具管理所有的服務(wù)器,盡可能保證每臺服務(wù)器的配置都一樣。

 OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

Terraform配置片段管理自動擴(kuò)展組。Terraform創(chuàng)建,調(diào)整,或銷毀運(yùn)行的云資源來匹配你的配置文件。

我們運(yùn)用Terraform建立AWS云資源(實例,網(wǎng)絡(luò)路由,DNS記錄等)。我們的云和物理結(jié)點現(xiàn)在運(yùn)行Ubuntu,并用Chef進(jìn)行配置。為了實現(xiàn)加速處理,我們運(yùn)用Packe預(yù)處理AMI集群。我們的所有集群均使用非重疊的IP范圍,運(yùn)用用戶的便攜式電腦上的OpenVPN和物理結(jié)點(用作AWS的用戶門戶)的strongSwan連接公共網(wǎng)絡(luò)。

我們將用戶的主目錄,數(shù)據(jù)集和結(jié)果存儲在NFS(在物理硬件上)和EFS/S3(在AWS上)上。

編制

可擴(kuò)展的基礎(chǔ)設(shè)施經(jīng)常致使簡單地情況變復(fù)雜。我們對小規(guī)模工作和大規(guī)模工作一視同仁,投入相同的努力構(gòu)建基礎(chǔ)設(shè)施。當(dāng)前正在積極擴(kuò)充工具包,以便用戶能夠同時享用分布式用例和局部用例。

我們?yōu)樘卦O(shè)的實驗提供一個SSH結(jié)點集群,運(yùn)行Kubernetes作為物理結(jié)點和AWS結(jié)點的集群調(diào)度器。集群跨越3個AWS區(qū)域——我們的作業(yè)具有突發(fā)性,有時會突然占用某些單個區(qū)域的全部資源。

Kubernetes要求每一個作業(yè)都是一個Docker容器,這樣便能夠為我們提供依賴分離和代碼快照。但是,建立一個新的Docker容器能夠為研究員操作代碼循環(huán)增加額外的寶貴時間,因而,我們也提供工具,旨在透明地將研究員便攜式電腦上的代碼轉(zhuǎn)移到一幅標(biāo)準(zhǔn)圖像上。

 OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

在TensorBoard上構(gòu)建學(xué)習(xí)曲線

我們將Kubernetes的flannel網(wǎng)絡(luò)直接應(yīng)用到研究員的便攜式電腦上,允許用戶使用無縫網(wǎng)絡(luò)訪問研究員運(yùn)行的作業(yè)。這對于訪問監(jiān)測服務(wù),如TensorBoard,非常有用。(我們最初采用的方法要求——從嚴(yán)格的分離角度來看,更為快速無誤——要求人們?yōu)槠湎胍┞兜亩丝谔峁┮环NKubernets服務(wù),但是,我們發(fā)現(xiàn)采用這種方法會遇到很多難題)。

Kubernetes-ec2-autoscaler

我們的工作量具有突發(fā)性和不可預(yù)測性:一系列研究可能快速地從單臺計算機(jī)實驗擴(kuò)展到1000臺。例如,幾周內(nèi),一個實驗從一個交互式階段發(fā)展到要在單一的Titan X上運(yùn)行,再到需要60 Titan X,最后發(fā)展到需要在將近1600個 AWS GPU上運(yùn)行。因而,我們的云基礎(chǔ)設(shè)施需要動態(tài)配置Kubernetes結(jié)點。

在自動擴(kuò)展組內(nèi)能夠很容易地運(yùn)行Kubernetes結(jié)點,但是,要合理地控制這些自動擴(kuò)展組的規(guī)模將變得越來越難。在批次作業(yè)結(jié)束后,集群將能夠準(zhǔn)確地了解到自己所需要的資源,能夠直接分配這些資源。(與之形成鮮明對比的是,AWS的擴(kuò)展策略能夠逐個加速每一個新結(jié)點,直到仍有剩余資源,這個擴(kuò)展過程將持續(xù)多個循環(huán)。)因而,在集群終止這些結(jié)點前,需要洩流這些結(jié)點,以避免丟失正在運(yùn)行的作業(yè)。

僅利用原始的EC2進(jìn)行大批量作業(yè)是非常誘人的,的確,這也是我們研究工作的起點。但是,Kubernetes生態(tài)系統(tǒng)帶來的價值更大:低阻力的工具,日志,監(jiān)測,具備脫離正在運(yùn)行的實例管理物理結(jié)點的能力等類似優(yōu)點。合理地擴(kuò)展Kubernetes要比基于原始EC2重新構(gòu)建該生態(tài)系統(tǒng)更為簡單。

我們將要發(fā)行Kubernetes-ec2-autoscaler,一種用于Kubernetes的批量優(yōu)化擴(kuò)展管理器。這種管理器能夠在Kubernetes的一種常規(guī)Pod上運(yùn)行,僅要求你的工作結(jié)點在自動擴(kuò)展組內(nèi)。

 OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

Kubernetes集群的啟動配置

自動擴(kuò)展器通過搜集Kubernetes主結(jié)點的狀態(tài)進(jìn)行工作,主節(jié)點的狀態(tài)包括需要用于計算集群資源問詢和能力的一切資源。在可用資源過量的條件下,自動擴(kuò)展器洩流相關(guān)的結(jié)點,最終終止這些結(jié)點 。如果需要更多的資源,自動擴(kuò)展器將計算得出應(yīng)當(dāng)創(chuàng)建什么類型的服務(wù)器,并適當(dāng)?shù)財U(kuò)大自動擴(kuò)展組的規(guī)模(或簡單地釋放被洩流的結(jié)點,這將縮減新結(jié)點加速花費(fèi)的時間)。

Kubernetes-ec2-autoscaler能夠同時兼顧多個自動擴(kuò)展組,享有CPU之外的資源(內(nèi)存和GPU),并且能夠精細(xì)地約束你所運(yùn)行的作業(yè),如AWS區(qū)域和實例規(guī)模。此外,由于即便是AWS也不具備無限的內(nèi)存,突發(fā)性工作量將導(dǎo)致自動擴(kuò)展組超時運(yùn)行,并產(chǎn)生誤差。在這種情況下,Kubernetes-ec2-autoscaler能夠檢測誤差,并將多余的作業(yè)分配到次級AWS區(qū)域。

我們用于深度學(xué)習(xí)的基礎(chǔ)設(shè)施旨在最大限度地提高深度學(xué)習(xí)研究者的工作效率,使他們能夠?qū)P闹轮镜赝度氲娇蒲兄?。我們正在?gòu)建工具進(jìn)一步改進(jìn)我們的基礎(chǔ)設(shè)施,完善工作流程,并將在未來幾周和幾個月內(nèi)分享這些工具。歡迎大家共同努力加快深度學(xué)習(xí)研究的發(fā)展!

via Vicki Cheung et al

本文由雷鋒網(wǎng)獨(dú)家編譯,未經(jīng)允許拒絕轉(zhuǎn)載!


雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

OpenAI 教你如何構(gòu)建深度學(xué)習(xí)研究的基礎(chǔ)設(shè)施

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說