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

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(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自動(dòng)擴(kuò)展深度學(xué)習(xí)研究中的網(wǎng)絡(luò)模型,將有助于廣大深度學(xué)習(xí)研究愛好者構(gòu)建自己的深度學(xué)習(xí)基礎(chǔ)設(shè)施。

深度學(xué)習(xí)是一門實(shí)證科學(xué),一個(gè)研究團(tuán)隊(duì)的基礎(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è)構(gòu)想,你運(yùn)用一個(gè)小問題來測試該構(gòu)想的可行性。在這個(gè)階段,你想要快速開展許多特設(shè)實(shí)驗(yàn)。理想條件下,你僅需要運(yùn)用SSH(外殼安全協(xié)議)連接一臺(tái)計(jì)算機(jī),在屏幕上編寫腳本代碼,通過這樣的操作,獲取結(jié)果,整個(gè)研究過程耗時(shí)不超過一個(gè)小時(shí)。

要使構(gòu)建的模型真的有用通常會(huì)經(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)你觀察它是如何打球時(shí),會(huì)發(fā)現(xiàn)右邊的球拍一直停留在原地沒有移動(dòng)。因此,深度學(xué)習(xí)基礎(chǔ)設(shè)施必須能夠允許用戶靈活地反觀所采用的模型,僅僅展示出總結(jié)性的統(tǒng)計(jì)結(jié)果是不夠的。

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

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

實(shí)例

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

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

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

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

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

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

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

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

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

軟件

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

我們TensorFlow代碼的樣本

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

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

硬件

對于一個(gè)理想的批次作業(yè),使集群中的結(jié)點(diǎn)數(shù)量成倍增長將會(huì)把代碼運(yùn)行的時(shí)間縮減一半。遺憾的是,在深度學(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為我們慷慨地提供了大量的計(jì)算方法。我們正將這些計(jì)算方法應(yīng)用到CPU實(shí)例中,并用于水平擴(kuò)展GPU。我們也運(yùn)行自己的服務(wù)器,主要以運(yùn)行Titan X GPU為主。我們期望研發(fā)出一種混合云:對于用不同的GPU,連接和其他技術(shù)開展實(shí)驗(yàn)極為重要,這將有助于未來深度學(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ù)器,盡可能保證每臺(tái)服務(wù)器的配置都一樣。

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

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

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

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

編制

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

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

Kubernetes要求每一個(gè)作業(yè)都是一個(gè)Docker容器,這樣便能夠?yàn)槲覀兲峁┮蕾嚪蛛x和代碼快照。但是,建立一個(gè)新的Docker容器能夠?yàn)檠芯繂T操作代碼循環(huán)增加額外的寶貴時(shí)間,因而,我們也提供工具,旨在透明地將研究員便攜式電腦上的代碼轉(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)采用這種方法會(huì)遇到很多難題)。

Kubernetes-ec2-autoscaler

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

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

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

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

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

Kubernetes集群的啟動(dòng)配置

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

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

我們用于深度學(xué)習(xí)的基礎(chǔ)設(shè)施旨在最大限度地提高深度學(xué)習(xí)研究者的工作效率,使他們能夠?qū)P闹轮镜赝度氲娇蒲兄小N覀冋跇?gòu)建工具進(jìn)一步改進(jìn)我們的基礎(chǔ)設(shè)施,完善工作流程,并將在未來幾周和幾個(gè)月內(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料
姓名
電話
郵箱
微信號
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說