乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      當(dāng)我們?cè)谡務(wù)摍C(jī)器學(xué)習(xí)平臺(tái)時(shí),我們到底在談什么

       flyk0tcfb46p9f 2019-04-29

      近年來,AI 領(lǐng)域?qū)椰F(xiàn)突破性進(jìn)展,吸引了全球企業(yè)爭(zhēng)相采用 AI 技術(shù)來培育新增長(zhǎng)、形成新動(dòng)能、加快產(chǎn)業(yè)與科技的創(chuàng)新融合。在這個(gè)背景下,AI 人才開始供不應(yīng)求,AI 產(chǎn)品迎來爆發(fā)。

      然而新技術(shù)總有一定壁壘,機(jī)器學(xué)習(xí)不僅需要算法科學(xué)家構(gòu)建新模型,工程師應(yīng)用新模型,還需要工程師合力建設(shè)機(jī)器學(xué)習(xí)平臺(tái)。而在應(yīng)用機(jī)器學(xué)習(xí)的企業(yè)和團(tuán)隊(duì)中,建設(shè)機(jī)器學(xué)習(xí)平臺(tái)正是重要一環(huán)。

      那么機(jī)器學(xué)習(xí)平臺(tái)是什么呢?它又有什么突出特性?今天,才云科技 AI 平臺(tái)工程師 gaocegege 將為各位答疑解惑。

      機(jī)器學(xué)習(xí)平臺(tái)對(duì)于不同工程師角色而言,有著不同的含義。在之前發(fā)布的關(guān)于 Kubeflow 的文章中,有不少網(wǎng)友私下詢問到底什么是機(jī)器學(xué)習(xí)平臺(tái),它與機(jī)器學(xué)習(xí)框架有何不同。在這篇文章里,我將從不同的維度來介紹一直談?wù)摰臋C(jī)器學(xué)習(xí)平臺(tái)到底是什么。

      01 如果你有一個(gè)算法工程師

      首先,我給大家講個(gè)故事:

      小咩是 TooYoung 科技的算法工程師,最近他正在為公司實(shí)現(xiàn)一個(gè)圖像識(shí)別的模型。為了支持他的工作,公司 Infra 團(tuán)隊(duì)的工程師小嬸給了他四臺(tái)機(jī)器,每臺(tái)各自配有 4 塊英偉達(dá)顯卡。

      臨走前,小嬸拍了拍小咩的肩膀:兄弟,之后一個(gè)月,這些機(jī)器隨便你用。小咩表面風(fēng)輕云淡,心里其實(shí)已經(jīng)樂開了花,他已經(jīng)很久沒有在這么多顯卡的機(jī)器上放飛過自我了。

      配備四塊 GPU 的工作站 來源:Vladimir Iglovikov

      拿到機(jī)器后,小咩需要做的第一件事是配環(huán)境。經(jīng)過簡(jiǎn)單的權(quán)衡,小咩決定使用自己熟悉的 TensorFlow 來進(jìn)行模型的開發(fā)工作。盡管 TensorFlow 已經(jīng)發(fā)布 2.0 版本,但小咩是一個(gè)戀舊的人,他還是習(xí)慣使用經(jīng)典的 1.4 版本。他登錄到了機(jī)器上,發(fā)現(xiàn)事情并不簡(jiǎn)單。

      四臺(tái)機(jī)器中:

      機(jī)器 A 的 TensorFlow 只支持 CPU;

      機(jī)器 B 的 TensorFlow 的版本是 1.13;

      機(jī)器 C 是公司里的算法科學(xué)家小莎在投稿 NeurIPS 時(shí)做實(shí)驗(yàn)用的,只安裝了 PyTorch。

      小咩嘆了一口氣,他飛快下樓買了一瓶快樂水,擼起了袖子,開始環(huán)境配置之旅。

      第一臺(tái)機(jī)器的問題在于已裝的 TensorFlow 版本不支持 GPU。小咩熟練地卸載了機(jī)器 A 的環(huán)境,首先確認(rèn)機(jī)器 A 上沒有安裝開源的英偉達(dá)驅(qū)動(dòng) Nouveau。之后,他開始安裝英偉達(dá)的官方驅(qū)動(dòng)以及 cuDNN,最后安裝了支持 GPU 的 TensorFlow 版本??粗聊簧洗虺龅?Hello World,小咩嘴角揚(yáng)起了微笑。

      第二臺(tái)機(jī)器的問題在于 TensorFlow 的版本太新了。于是小咩依樣畫葫蘆,卸載了新版本,安裝了舊版本。但在這個(gè)過程中,他發(fā)現(xiàn) TensorFlow v1.4 不支持機(jī)器 B 上的 CUDA 9.0。雖然有些不情愿,小咩還是打開了谷歌,熟練鍵入“Remove CUDA 9.0 and install CUDA 8.0”。按照網(wǎng)友的指示,他終于解決了這個(gè)問題。

      第三臺(tái)機(jī)器問題比較少,小咩很快就處理好了。

      接下來,小咩就可以開始自己的算法實(shí)驗(yàn)了。為了方便,他先在自己的筆記本電腦上建立了一個(gè) Jupyter Notebook,將數(shù)據(jù)下載到電腦上,進(jìn)行了小規(guī)模的實(shí)驗(yàn)。

      經(jīng)過一天的努力,他覺得自己的算法效果還算不錯(cuò),可以放到服務(wù)器上進(jìn)行分布式訓(xùn)練,以期更快的訓(xùn)練速度。于是他利用 /etc/hosts 給四臺(tái)機(jī)器做了一個(gè)簡(jiǎn)單的服務(wù)發(fā)現(xiàn),利用 TensorFlow 的分布式訓(xùn)練功能進(jìn)行了分布式的訓(xùn)練。

      經(jīng)過數(shù)天調(diào)參,小咩模型的各項(xiàng) metrics 都達(dá)到了公司的要求,于是他準(zhǔn)備將模型發(fā)布到公司的生產(chǎn)環(huán)境中。小咩利用了開源項(xiàng)目 TensorFlow Serving,在公司內(nèi)部的 PaaS 平臺(tái)上新建了一個(gè)服務(wù),并將自己訓(xùn)練的模型發(fā)布到了公司的生產(chǎn)集群上。看著流量穩(wěn)定地灌入自己的模型服務(wù),小咩深吸了一口氣。

      02 如果你有一個(gè)機(jī)器學(xué)習(xí)平臺(tái)

      時(shí)間一天天過去了,這個(gè)模型不知不覺已經(jīng)在線上服務(wù)了數(shù)月,小咩也由工程師變成了公司里的 Tech Lead。最近,這一模型有了相關(guān)的增量模型,但小咩已經(jīng)沒有足夠的時(shí)間再參與到一線的開發(fā)工作中了。為了進(jìn)一步提升模型性能,小咩團(tuán)隊(duì)里的新進(jìn)工程師小豆接起了這項(xiàng)任務(wù),利用新的數(shù)據(jù)集重新訓(xùn)練模型,并再次發(fā)布。

      在幾個(gè)星期之前,Infra 團(tuán)隊(duì)利用開源項(xiàng)目 Kubeflow 為算法工程師和算法科學(xué)家們搭建了一個(gè)麻雀雖小五臟俱全的機(jī)器學(xué)習(xí)平臺(tái)。小豆決定利用這一平臺(tái)對(duì)模型進(jìn)行訓(xùn)練。

      他首先利用 Infra 團(tuán)隊(duì)已經(jīng)打包好的 TensorFlow v1.4 的 Docker 鏡像,用平臺(tái)發(fā)起了一次分布式訓(xùn)練。訓(xùn)練中的服務(wù)發(fā)現(xiàn),異常處理等都由平臺(tái)自動(dòng)完成。

      訓(xùn)練間隙,小豆在查看文檔發(fā)現(xiàn)平臺(tái)還支持超參數(shù)訓(xùn)練,而且使用起來非常簡(jiǎn)單,只需要指定相應(yīng)的參數(shù)搜索空間即可。于是他又發(fā)起了一次超參數(shù)學(xué)習(xí)任務(wù),對(duì)模型的超參數(shù)選擇進(jìn)行了優(yōu)化。

      模型訓(xùn)練結(jié)束后,小豆利用平臺(tái)上已有的模型服務(wù)功能,直接將訓(xùn)練好的模型上傳到分布式存儲(chǔ)中。平臺(tái)根據(jù)配置自動(dòng)完成了模型的部署,并針對(duì)算法工程師們關(guān)注的指標(biāo)進(jìn)行了細(xì)粒度監(jiān)控。

      03 機(jī)器學(xué)習(xí)的工程化落地

      通過以上故事,我們可以了解到,機(jī)器學(xué)習(xí)平臺(tái)的用戶往往是機(jī)器學(xué)習(xí)算法科學(xué)家或工程師。而機(jī)器學(xué)習(xí)平臺(tái)希望解決的是機(jī)器學(xué)習(xí)工程化落地的問題。

      在小咩第一次進(jìn)行模型開發(fā)與部署的時(shí)候,他遇到了很多來自系統(tǒng)環(huán)境和服務(wù)發(fā)現(xiàn)等原本應(yīng)該由 Infra 來解決的問題。這其中包括服務(wù)器上的顯卡驅(qū)動(dòng)問題、TensorFlow 版本的問題、服務(wù)發(fā)現(xiàn)的問題、訓(xùn)練過程中的跟蹤與錯(cuò)誤恢復(fù)等。而當(dāng)小豆在機(jī)器學(xué)習(xí)平臺(tái)上進(jìn)行模型訓(xùn)練和模型發(fā)布時(shí),這些問題已經(jīng)都交由平臺(tái)來自動(dòng)化處理,他可以專注于業(yè)務(wù)的開發(fā)。

      對(duì)于機(jī)器學(xué)習(xí)工程師,TensorFlow、PyTorch 這些框架改變的是機(jī)器學(xué)習(xí)的編程范式,而機(jī)器學(xué)習(xí)平臺(tái)改變的是機(jī)器學(xué)習(xí)的開發(fā)與發(fā)布流程。

      而從基礎(chǔ)架構(gòu)工程師的角度來看,機(jī)器學(xué)習(xí)平臺(tái)某種程度上類似 PaaS,但又有所不同。兩者相同之處在于都涉及到資源的管理與調(diào)度、服務(wù)發(fā)現(xiàn)等功能,不同之處在于機(jī)器學(xué)習(xí)平臺(tái)對(duì)于 GPU 有極其強(qiáng)烈的需求,與此同時(shí),和傳統(tǒng)的應(yīng)用相比,機(jī)器學(xué)習(xí)有著不同的工作流程。

      舉個(gè)例子,傳統(tǒng)應(yīng)用可以很好地抽象出持續(xù)集成與持續(xù)部署工作流,應(yīng)用的每一次提交都可以觸發(fā)對(duì)應(yīng)的測(cè)試與發(fā)布流程。而對(duì)于機(jī)器學(xué)習(xí)任務(wù)來說,測(cè)試往往并不是對(duì)代碼本身的測(cè)試,而是對(duì)模型效果的測(cè)試。

      類似的諸多差異導(dǎo)致了目前的 PaaS 等平臺(tái)不能很好地處理機(jī)器學(xué)習(xí)這一應(yīng)用場(chǎng)景的需求。換句話說,這時(shí)候我們需要一個(gè)新的平臺(tái),它既繼承了 PaaS 的某些功能,又針對(duì)更好地支持機(jī)器學(xué)習(xí)業(yè)務(wù),增加了大量新特性。

      下面我們就來具體地談?wù)?,這些特性包括什么。

      04 機(jī)器學(xué)習(xí)平臺(tái)的特性

      準(zhǔn)備數(shù)據(jù)是一次機(jī)器學(xué)習(xí)任務(wù)的起點(diǎn),但數(shù)據(jù)準(zhǔn)備的平臺(tái)化,從實(shí)現(xiàn)上來說應(yīng)該是比較困難的。因?yàn)閿?shù)據(jù)準(zhǔn)備是一個(gè)需求差異非常大、很難將其標(biāo)準(zhǔn)化的過程。目前開源領(lǐng)域也有一些針對(duì)不同場(chǎng)景的打標(biāo)工具,如 labelme 等,但這一方面的工程實(shí)現(xiàn)和研究性工作其實(shí)都不太常見。

      訓(xùn)練是機(jī)器學(xué)習(xí)任務(wù)中的重中之重。機(jī)器學(xué)習(xí)平臺(tái)的訓(xùn)練支持指的是,用戶通過指定使用的資源數(shù)量、分布式模型(AllReduce、ParameterServer 等)、分布式配置(ParameterServer 數(shù)量等)等,直接在平臺(tái)上進(jìn)行模型訓(xùn)練。

      從平臺(tái)的角度來看,這一特性主要涉及到對(duì)不同類型的框架、不同的分布式模型、不同的硬件的支持,以及分布式訓(xùn)練任務(wù)的服務(wù)發(fā)現(xiàn)、錯(cuò)誤處理,不同任務(wù)的資源隔離與復(fù)用等問題。除此之外,有些場(chǎng)景對(duì)于在線訓(xùn)練也有需要,如何支持在線訓(xùn)練,是一個(gè)機(jī)器學(xué)習(xí)全流程都需要考慮的問題。

      再接下來,就是模型服務(wù)。這一特性與傳統(tǒng)的 PaaS 比較類似,因?yàn)槟P头?wù)目前多是以 RESTful API 暴露給外部的,與傳統(tǒng)的 Web 服務(wù)非常類似。不過從實(shí)現(xiàn)角度而言,不同的框架訓(xùn)練的模型往往需要用不同的方式發(fā)布出去,而且模型服務(wù)關(guān)注的度量指標(biāo)與傳統(tǒng) Web 服務(wù)也有較大差別。

      回到版本管理,傳統(tǒng)的應(yīng)用往往只涉及配置與代碼的管理,而機(jī)器學(xué)習(xí)則多了不少新的維度,如模型、版本等。這一部分的特性雖然比較 dirty work,但是卻與用戶的使用體驗(yàn)息息相關(guān)。除此之外,還有整個(gè)過程中的監(jiān)控問題(訓(xùn)練過程監(jiān)控,服務(wù)過程監(jiān)控),也是同樣性質(zhì)的工作。

      在解決完上面的問題后,機(jī)器學(xué)習(xí)工作流的構(gòu)建這一特性就水到渠成地?cái)[到臺(tái)面上了。如何讓用戶用盡可能少的交互取得他 / 她想要的效果,以及如何加強(qiáng)這一過程的自動(dòng)化,是離不開工作流方面的工作的。

      至于超參數(shù)訓(xùn)練與模型結(jié)構(gòu)搜索,這是機(jī)器學(xué)習(xí)平臺(tái)的高級(jí)特性。雖然自動(dòng)機(jī)器學(xué)習(xí)聽上去非常有前途,但相關(guān)技術(shù)目前仍處于研究階段。對(duì)于超參數(shù)訓(xùn)練來說,最難過的一關(guān)是性價(jià)比問題。Random Search、Grid Search 和貝葉斯優(yōu)化方法是最常用的調(diào)參方法,它們找到的參數(shù)確實(shí)可能比人工調(diào)參有更好的效果,但與此同時(shí),它們也會(huì)需要更多的硬件資源。因此這一特性屬于錦上添花,而不能起到雪中送炭的作用。至于模型結(jié)構(gòu)搜索,就更遙遠(yuǎn)了。

      05 小結(jié)

      上述的介紹是掛一漏萬的,一個(gè)成熟的平臺(tái)系統(tǒng)一定有更多的細(xì)節(jié)值得去討論,限于篇幅關(guān)系,這里不再展開。我撰寫此文只是想大致說明一下,機(jī)器學(xué)習(xí)平臺(tái)究竟是怎樣的一個(gè)存在,它可以幫助到用戶做到什么事情,提高了哪些方面的效率。

      介紹完之后,再打一個(gè)小小的廣告。我們團(tuán)隊(duì)目前正在招聘中。如果你對(duì)構(gòu)建基于 Kubernetes 的 Cloud Native 機(jī)器學(xué)習(xí)平臺(tái)系統(tǒng)感興趣,可以了解下我司才云科技的產(chǎn)品 Caicloud Clever。一直以來,我們始終在這一方面努力攻堅(jiān),目前才云科技在機(jī)器學(xué)習(xí)平臺(tái)開源項(xiàng)目 Kubeflow 上的貢獻(xiàn)位列全球前三。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多