成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

道器相融,由Angel論一個(gè)優(yōu)秀機(jī)器學(xué)習(xí)平臺(tái)的自我修養(yǎng)

leo108 / 2297人閱讀

摘要:而道器相融,在我看來(lái),那煉丹就需要一個(gè)好的丹爐了,也就是一個(gè)優(yōu)秀的機(jī)器學(xué)習(xí)平臺(tái)。因此,一個(gè)機(jī)器學(xué)習(xí)平臺(tái)要取得成功,最好具備如下五個(gè)特點(diǎn)精辟的核心抽象一個(gè)機(jī)器學(xué)習(xí)平臺(tái),必須有其靈魂,也就是它的核心抽象。

*本文首發(fā)于 AI前線 ,歡迎轉(zhuǎn)載,并請(qǐng)注明出處。

摘要

2017年6月,騰訊正式開源面向機(jī)器學(xué)習(xí)的第三代高性能計(jì)算平臺(tái) Angel,在GitHub上備受關(guān)注;2017年10月19日,騰訊T4專家Andymhuang(黃明)將為QCon上海的聽眾奉上一場(chǎng)Spark on Angel的精彩分享。作為Angel的主要開發(fā)者和團(tuán)隊(duì)負(fù)責(zé)人,同時(shí)也是Spark的早期研究者和布道者,他的工作經(jīng)歷可以說(shuō)同步了通用大數(shù)據(jù)平臺(tái)到專用機(jī)器學(xué)習(xí)平臺(tái)的轉(zhuǎn)變歷程。因此,在這之前,InfoQ對(duì)黃明的進(jìn)行了一次采訪問(wèn)答,他將與大家分享人工智能時(shí)代的大數(shù)據(jù)平臺(tái)演進(jìn)之路,并結(jié)合Angel的開發(fā)經(jīng)驗(yàn),談?wù)勅绾未蛟煲粋€(gè)優(yōu)秀的機(jī)器學(xué)習(xí)平臺(tái),以及開源后Angel的最新消息和未來(lái)規(guī)劃。

人工智能到底會(huì)給企業(yè)帶來(lái)什么?——是改變,機(jī)遇,還是更大的挑戰(zhàn)?

在之前的大數(shù)據(jù)時(shí)代,企業(yè)開始意識(shí)到數(shù)據(jù)的重要性并著手搭建自己的大數(shù)據(jù)平臺(tái),大數(shù)據(jù)成為業(yè)界關(guān)注的焦點(diǎn),Hadoop、Spark等等各式各樣的大數(shù)據(jù)框架、組件、平臺(tái)層出不窮。隨著人工智能時(shí)代來(lái)臨,大數(shù)據(jù)平臺(tái)發(fā)生了新的變化,也提出了更高的要求。Spark等大數(shù)據(jù)平臺(tái)多是為通用數(shù)據(jù)處理而設(shè)計(jì)的,并非專用于機(jī)器學(xué)習(xí)任務(wù),企業(yè)該如何更好地利用機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等人工智能技術(shù)從實(shí)時(shí)數(shù)據(jù)中高效挖掘有價(jià)值的信息?

在過(guò)去的兩年(2015-2017),隨著機(jī)器學(xué)習(xí)、特別是深度學(xué)習(xí)在多個(gè)領(lǐng)域取得革命性成功,各種專用的機(jī)器學(xué)習(xí)平臺(tái)應(yīng)運(yùn)而生,百花齊放。Angel也是其中的一員。為此,我們對(duì)其進(jìn)行了采訪。

人工智能時(shí)代,大數(shù)據(jù)平臺(tái)的演進(jìn)之路

InfoQ:您不僅是Angel的主要開發(fā)者和團(tuán)隊(duì)負(fù)責(zé)人,還是Spark的早期研究者和布道者,并且一直從事分布式計(jì)算和機(jī)器學(xué)習(xí)領(lǐng)域的開發(fā)工作。能否結(jié)合您的工作經(jīng)歷,為我們介紹一下通用大數(shù)據(jù)平臺(tái)到專用機(jī)器學(xué)習(xí)平臺(tái)的演進(jìn)歷程?是什么推動(dòng)了這一轉(zhuǎn)變?您認(rèn)為將來(lái)大數(shù)據(jù)中心的大多數(shù)任務(wù)會(huì)變成機(jī)器學(xué)習(xí)任務(wù)嗎?

黃明: 其實(shí)推動(dòng)這一轉(zhuǎn)變的,本質(zhì)上是人們對(duì)更高層面的追求所驅(qū)動(dòng)的。從了解過(guò)去,到預(yù)知未來(lái);從有限空間的窮舉,到無(wú)限空間的探索;從有監(jiān)督的訓(xùn)練,到無(wú)監(jiān)督的自我學(xué)習(xí)……無(wú)論是企業(yè)高管,還是產(chǎn)品用戶,大家都希望能得到更加智能的服務(wù),而也只有提供了這種服務(wù)級(jí)別的的產(chǎn)品和公司,才能在殘酷的互聯(lián)網(wǎng)競(jìng)爭(zhēng)中勝出。

2010年,業(yè)界的大數(shù)據(jù)剛剛興起,當(dāng)時(shí)有很多受歡迎的項(xiàng)目都是統(tǒng)計(jì)類的,可以告訴大家昨天最流行的是什么。底層的框架是Hadoop和Hive,很多平臺(tái)的最大的功能就是出各種各樣的報(bào)表,天報(bào)表、月報(bào)表……這時(shí)的層次是知道發(fā)生了什么。

2012年,當(dāng)時(shí)有兩個(gè)大發(fā)展方向,一種是更快的SQL,一種是機(jī)器學(xué)習(xí),涌現(xiàn)了很多的開源項(xiàng)目。Spark能夠勝出,是因?yàn)樗趦烧咧虚g取得了均衡,并展現(xiàn)了機(jī)器學(xué)習(xí)的潛質(zhì)。Matei Zaharia等人在NSDI的RDD Paper提到了,Spark的目標(biāo)是為了解決iterative algorithms和interactive data mining tools這兩類問(wèn)題,這個(gè)判斷從現(xiàn)在來(lái)看,依然是正確的。Spark后來(lái)普及開來(lái),目前很多公司依然會(huì)把Spark當(dāng)成他們首選的通用數(shù)據(jù)處理平臺(tái)兼機(jī)器學(xué)習(xí)平臺(tái)。這是人們希望知道,即將發(fā)生什么。

到了2014年,李沐等人在osdi關(guān)于Parameter Server的Paper中,給出了分布式機(jī)器學(xué)習(xí)一個(gè)更好的思路,后面Petuum和DMLC的ps-lite就出來(lái)了。Spark當(dāng)時(shí)的跟進(jìn)不是很到位,而且本身RDD的理念和PS也有些沖突。我們當(dāng)時(shí)還給Spark提過(guò)一個(gè)PR,后來(lái)也沒(méi)被接受,但是引出了Glint。到現(xiàn)在為止,官方的Spark依然以RDD為核心來(lái)實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法,這是個(gè)很大的約束和障礙。

但是在2015年,PS的發(fā)展也受到了深度學(xué)習(xí)的沖擊,隨著TensorFlow的出現(xiàn),大家紛紛轉(zhuǎn)向了深度學(xué)習(xí)的框架開發(fā)。包括微軟的DMTK轉(zhuǎn)向CNTK,DMLC的PS-Lite轉(zhuǎn)向MXNet……但是實(shí)際上,很多公司的數(shù)據(jù)中心依然有大量CPU機(jī)器,大量的非深度學(xué)習(xí)算法還是需要在大規(guī)模數(shù)據(jù)集上進(jìn)行分布式訓(xùn)練,這個(gè)領(lǐng)域是有空缺的,深度學(xué)習(xí)替代不了。

騰訊是2015年開始調(diào)研和開發(fā)Angel,其目的就是為了填補(bǔ)上面所說(shuō)的空缺,2016年,Angel開始在內(nèi)部使用,到了2017年,Angel終于開源,整個(gè)開源的過(guò)程還是很不容易的(詳情可查閱InfoQ早前的報(bào)道)。希望Angel還是能把這塊的空白填補(bǔ)上,成為一個(gè)專用的分布式機(jī)器學(xué)習(xí)平臺(tái),服務(wù)更多的公司內(nèi)外產(chǎn)品,推動(dòng)人們對(duì)更高層次的追求。

最后,未來(lái)數(shù)據(jù)中心,相信依然會(huì)有很多數(shù)據(jù)處理任務(wù)的任務(wù)。因?yàn)闊o(wú)論什么樣的模型和算法,其前提都要建立在干凈的數(shù)據(jù)之上。脫離了完整的數(shù)據(jù)預(yù)處理流程,談機(jī)器學(xué)習(xí)和人工智能都是不現(xiàn)實(shí)的。但是大部分?jǐn)?shù)據(jù)任務(wù),它們的最終出口和末端,也將會(huì)是機(jī)器學(xué)習(xí)和人工智能的任務(wù),因?yàn)槿绻麤](méi)有了這個(gè)終點(diǎn),前面的數(shù)據(jù)處理,也將是毫無(wú)意義的,能把控住末端的人,才是最終的勝利者。

InfoQ:大數(shù)據(jù)平臺(tái)早期多以離線批處理為主,實(shí)時(shí)計(jì)算作為補(bǔ)充,但是現(xiàn)在越來(lái)越多應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)處理有了高時(shí)效性的要求。騰訊大數(shù)據(jù)平臺(tái)也歷經(jīng)了離線計(jì)算、實(shí)時(shí)計(jì)算、機(jī)器學(xué)習(xí)三個(gè)階段的發(fā)展。未來(lái)批處理計(jì)算和實(shí)時(shí)流式計(jì)算在企業(yè)構(gòu)建AI平臺(tái)的基礎(chǔ)架構(gòu)中將分別起到什么作用?

黃明:對(duì)一個(gè)高科技企業(yè)來(lái)說(shuō),實(shí)時(shí)計(jì)算能力和機(jī)器學(xué)習(xí)能力,都是AI能力的基礎(chǔ),確實(shí)是必備的。而且機(jī)器學(xué)習(xí)的訓(xùn)練(Training)和推理(Inference)兩個(gè)階段的重要性會(huì)并駕齊驅(qū),實(shí)時(shí)計(jì)算能力的優(yōu)勢(shì)還將進(jìn)一步輻射到推理場(chǎng)景。但是這并不代表離線批量計(jì)算不重要了,尤其是訓(xùn)練階段,離線批量計(jì)算依然是主要場(chǎng)景,原因是:

好的模型需要大量的數(shù)據(jù),反復(fù)迭代并達(dá)到一定的精確度才能上線,尤其是效果好的深度學(xué)習(xí)模型,通常需要多張GPU卡,訓(xùn)練較長(zhǎng)的時(shí)間,才能完成,所以這里高性能的分布式機(jī)器學(xué)習(xí)平臺(tái),必不可少。

有很多的算法和場(chǎng)景不支持實(shí)時(shí)更新,本身就存在約束,或者數(shù)學(xué)證明不成立,或者不支持流式疊加,所以模型還是需要離線訓(xùn)練好之后,再推送到手機(jī)端或者其它終端設(shè)端。

在線學(xué)習(xí)(Online Learning)這個(gè)領(lǐng)域,模型的持續(xù)優(yōu)化和更新的非常重要,但是總是需要一個(gè)基礎(chǔ)模型,而這個(gè)基礎(chǔ)模型的質(zhì)量,很重要的制約了后續(xù)的改進(jìn)效果。

綜合以上3點(diǎn),離線批量處理,依然會(huì)是非常重要和核心的場(chǎng)景,不可替代。但是實(shí)時(shí)流式計(jì)算會(huì)快速發(fā)展,尤其是在推理階段。主要是因?yàn)樵谏疃葘W(xué)習(xí)時(shí)代:

模型比以前復(fù)雜,從淺層模型變成了深度模型,其推理計(jì)算不是簡(jiǎn)單的代數(shù)計(jì)算。

傳輸數(shù)據(jù)比之前大,輸入很可能是圖片、聲音、文本等,對(duì)吞吐量要求很高,而對(duì)推理過(guò)程依然要求在毫秒級(jí)別完成。這對(duì)推理的性能有更高的要求。

所以相信在未來(lái)1-2年,這方面,從硬件到軟件都將會(huì)涌現(xiàn)出很多優(yōu)秀的初創(chuàng)公司。

一個(gè)優(yōu)秀的機(jī)器學(xué)習(xí)平臺(tái)是如何煉成的

InfoQ:計(jì)算是機(jī)器學(xué)習(xí)平臺(tái)的基礎(chǔ),但不是全部,在你看來(lái),一個(gè)優(yōu)秀的機(jī)器學(xué)習(xí)平臺(tái)需要具備哪些特性?

黃明: 在機(jī)器學(xué)習(xí)界,有些人喜歡把調(diào)參和訓(xùn)練的過(guò)程,比喻為煉丹, 上升到”道”的層面。而道器相融,在我看來(lái),那煉丹就需要一個(gè)好的丹爐了,也就是一個(gè)優(yōu)秀的機(jī)器學(xué)習(xí)平臺(tái)。它需要能為煉丹提供合適的火候,也就是為創(chuàng)新的模型和算法提供最佳的運(yùn)行環(huán)境。因此,一個(gè)機(jī)器學(xué)習(xí)平臺(tái)要取得成功,最好具備如下五個(gè)特點(diǎn):

1.精辟的核心抽象

一個(gè)機(jī)器學(xué)習(xí)平臺(tái),必須有其靈魂,也就是它的核心抽象。當(dāng)這個(gè)核心抽象和它要面對(duì)的模型和算法匹配時(shí),這個(gè)平臺(tái)就成功了一半。如果一開始就錯(cuò)誤了,例如SQL作為平臺(tái)的核心抽象,那么對(duì)后期的發(fā)展制約將會(huì)非常明顯,無(wú)異于緣木求魚,無(wú)論怎么努力都不會(huì)成功的。

Spark的RDD核心抽象,很好的解決了分布式大數(shù)據(jù)的通用問(wèn)題;而TensorFlow中Tensor、Mutable Variables和Dataflow Graphs的3個(gè)核心抽象,高度概括了深度學(xué)習(xí)中的各個(gè)元素。Angel目前的核心抽象是PSModel,重點(diǎn)解決了分布式機(jī)器學(xué)習(xí)中模型切分,數(shù)據(jù)并行和模型并行,模式異步 這3大問(wèn)題,基本上可以滿足大部分非深度學(xué)習(xí)的機(jī)器學(xué)習(xí)需求。

2.充分的性能優(yōu)化

在核心抽象正確的大前提下,性能是決定速度的關(guān)鍵。這就涉及了到平臺(tái)層對(duì)硬件層的理解、調(diào)優(yōu)和封裝。去年我們用500臺(tái)高性能機(jī)器,獲得了TeraSort比賽的冠軍,也是這種性能優(yōu)化能力的體現(xiàn),并將其嫁接到了Angel之上。

現(xiàn)在已經(jīng)不是MR的時(shí)代走海量低配機(jī)器路線。無(wú)論是CPU機(jī)器,還是GPU機(jī)器,都在往更強(qiáng)更快的方向走。去年比賽我們用的是很高性能的單機(jī),包括IBM的PowerPC,512G的內(nèi)存,多個(gè)NVME的SSD,RDMA的100G網(wǎng)絡(luò)……都是業(yè)界的頂配。

但是光有硬件堆砌是不夠的,平臺(tái)要對(duì)硬件有充分的利用。對(duì)于非深度學(xué)習(xí),Java系的莫過(guò)于JVM的調(diào)優(yōu)了。怎樣更好地使用內(nèi)存,避免FullGC的產(chǎn)生,盡量讓計(jì)算不落地,預(yù)讀數(shù)據(jù)流水化處理……這些都是對(duì)平臺(tái)設(shè)計(jì)的考驗(yàn)。而對(duì)于深度學(xué)習(xí),CUDA和OpenCL的性能利用,顯存和內(nèi)存的數(shù)據(jù)拷貝,浮點(diǎn)運(yùn)算和定點(diǎn)運(yùn)算的選擇,一機(jī)多卡的內(nèi)部通訊……平臺(tái)都需要進(jìn)行很多調(diào)整,甚至于引入像XLA這樣的黑科技。

既然是分布式機(jī)器學(xué)習(xí)平臺(tái),肯定會(huì)涉及到分布式的拓?fù)浣Y(jié)構(gòu)。目前來(lái)看,比較成熟的分布式拓?fù)浣Y(jié)構(gòu)依然是MR、MPI、PS這3者。機(jī)器學(xué)習(xí)中,基本上MR已經(jīng)出局了,MPI憑借深度學(xué)習(xí)卷土重來(lái),和PS分庭抗禮,當(dāng)然也有整體用PS、局部用MPI的做法,這也未嘗不可。在確定網(wǎng)絡(luò)拓?fù)渲?,就要考慮網(wǎng)絡(luò)加速了。RDMA和NVLINK這2個(gè)關(guān)鍵技術(shù)很值得關(guān)注,也是未來(lái)的方向。畢竟數(shù)據(jù)是直接顯存落顯存,還是走兩次內(nèi)存,差別是可想而知的,再加上不需要CPU開銷,對(duì)性能帶來(lái)的影響還是很可觀的。

所有這些優(yōu)化,最后暴露給平臺(tái)用戶的,最好是越簡(jiǎn)單越好,平臺(tái)能夠依據(jù)簡(jiǎn)單的參數(shù),自動(dòng)選擇最佳的性能通道,這才是對(duì)算法工程師和數(shù)據(jù)科學(xué)家意義最大的。

3.強(qiáng)大的容錯(cuò)能力

談到容錯(cuò),不得不再提一下MPI和MR。在Hadoop時(shí)代,海量低配機(jī)器理論的盛行,使MPI被MR打壓得很厲害。但是到了深度學(xué)習(xí)時(shí)代,大家發(fā)現(xiàn)這些高配機(jī)器和HPC也差不了太多,十幾萬(wàn)一臺(tái)的機(jī)器,可靠性還是很強(qiáng)的,出錯(cuò)的概率很低,相比之下性能更加重要了,所以MPI這種模式又活了過(guò)來(lái)。

都是從整體來(lái)看,規(guī)模上去之后,在大型的數(shù)據(jù)中心,高配版本的GPU機(jī)器和T級(jí)別的訓(xùn)練數(shù)據(jù),對(duì)容錯(cuò)性依然需要取得一定的均衡,這種情況下PS模式仍是最合適的。整體架構(gòu)包括網(wǎng)絡(luò)的通訊性能是最靈活和魯棒的,可以做的容災(zāi)措施很多,代價(jià)也小。最終能夠達(dá)到的效果會(huì)遠(yuǎn)勝于簡(jiǎn)單的定期Checkpoint。

4.靈活的接口設(shè)計(jì)

正如大家所知,2017年P(guān)ython已經(jīng)借助人工智能成為了第一編程語(yǔ)言。這在某種程度上,當(dāng)然歸功于TensorFlow和PyTorch的神助攻,但是這個(gè)趨勢(shì)背后有其必然原因。Python語(yǔ)言的優(yōu)勢(shì)在于語(yǔ)法簡(jiǎn)單、上手難度低,而且資源豐富,有充實(shí)的數(shù)據(jù)、可視化和機(jī)器學(xué)習(xí)算法庫(kù),建立了非常良好的生態(tài)環(huán)境,同時(shí)它又能與C無(wú)縫結(jié)合,借助py4j還能和Java結(jié)合?;谝陨显?,Python能夠?yàn)楹笈_(tái)強(qiáng)勁的平臺(tái)提供友好的接口層,達(dá)到簡(jiǎn)約而不簡(jiǎn)單的效果,也就難怪它會(huì)奇軍突起、一枝獨(dú)秀了。

但Python其實(shí)始終只是后臺(tái)接口的體現(xiàn),決定整體的,還是后臺(tái)的接口設(shè)計(jì),這時(shí)架構(gòu)師的整體設(shè)計(jì)能力就非常重要了。核心理念的封裝和延伸、多個(gè)機(jī)器學(xué)習(xí)概念的整合、系統(tǒng)的分層和解耦、多個(gè)子系統(tǒng)的一致性,這些最終都會(huì)體現(xiàn)到接口上,從而決定用戶基于接口編寫算法的難度。

5.完善的周邊系統(tǒng)

TensorFlow開源之初,吸引眼球的工具之一,莫過(guò)于它的TensorBoard,驚艷的超越了同期產(chǎn)品。當(dāng)時(shí)還懷疑它是否會(huì)部分開源,不開源這個(gè)模塊。一個(gè)好的機(jī)器學(xué)習(xí)平臺(tái)還是要在周邊系統(tǒng)的完善上多做些功夫,如果用戶基于你的平臺(tái),可以快速地調(diào)試和定位Bug,將會(huì)大大增強(qiáng)他們使用的信心,這會(huì)對(duì)用戶形成很強(qiáng)的吸引力,最終也有助于形成更好的生態(tài) 。

在您看來(lái),如何才能高效的搭建一個(gè)優(yōu)秀的機(jī)器學(xué)習(xí)平臺(tái)?

黃明: 先講個(gè)大家都知道的小插曲:TensorFlow的前身是DistBelief,當(dāng)時(shí)并不太受深度學(xué)習(xí)界待見(jiàn),大部分人做深度學(xué)習(xí),要么Caffe,要么Torch,基本忽略DistBelief,后來(lái)TensorFlow推出,就很受歡迎。這里有個(gè)時(shí)間細(xì)節(jié),Hinton是2013年加入Google的,而DistBelief是2011年開始研發(fā)的,TensorFlow是2015年發(fā)布的,Jeff Dean由始至終,都在Google負(fù)責(zé)這個(gè)項(xiàng)目。作為外人,不太可能知道Hinton到底對(duì)TensorFlow做出了什么樣的貢獻(xiàn),但是效果是很明顯的。DistBelief之前工程性太強(qiáng),對(duì)深度學(xué)習(xí)的模型本質(zhì)和算法友好度不足,Hinton加入后,第二代的TensorFlow的水準(zhǔn)遠(yuǎn)遠(yuǎn)超越第一代的DistBelief。整個(gè)系統(tǒng)的設(shè)計(jì),從上層到底層,從名字到周邊,都透露著對(duì)深度學(xué)習(xí)工程師的貼心理解。這也是TensorFlow成功的原因。

所以要設(shè)計(jì)和搭建一個(gè)優(yōu)秀的機(jī)器學(xué)習(xí)平臺(tái),在我看來(lái)要具備如下3個(gè)條件:

首先,要搭建一支工程和算法模型能力都很強(qiáng)的團(tuán)隊(duì)。整體上的這個(gè)團(tuán)隊(duì),需要很好的互補(bǔ)能力,要有算法工程師,也要有系統(tǒng)架構(gòu)師,大家互相配合。算法工程師的數(shù)學(xué)功底和表達(dá)能力很重要,而系統(tǒng)架構(gòu)師的理解能力和快速實(shí)現(xiàn)能力很重要。另外最好能將學(xué)術(shù)界的創(chuàng)新能力和工程界的落地能力結(jié)合,才能使系統(tǒng)創(chuàng)新性和可靠性兼得。騰訊的Angel項(xiàng)目從一開始,就是北大的博士生和騰訊的工程師聯(lián)合主導(dǎo)的項(xiàng)目,雖然遠(yuǎn)比不上Hinton和Jeff Dean這樣的大神級(jí)別,但是模式是類似的,這是非常關(guān)鍵的一個(gè)要素。

其次,需要有大數(shù)據(jù)作為驅(qū)動(dòng)。之前我們研究過(guò)Petuum,發(fā)現(xiàn)有些理念很不錯(cuò),但是穩(wěn)定性非常差,在大數(shù)據(jù)量下很難跑通,而且搭建也很難。所以在Angel的研發(fā)過(guò)程中,我們始終堅(jiān)持以大數(shù)據(jù)為驅(qū)動(dòng)的原則,各種Tricks和設(shè)計(jì)必須以最終壓測(cè)通過(guò)為原則,并緊密依靠?jī)?nèi)部業(yè)務(wù),通過(guò)場(chǎng)景落地來(lái)檢驗(yàn)效果,以此保障系統(tǒng)的設(shè)計(jì)合理性和可用性。這點(diǎn)對(duì)于大公司來(lái)說(shuō)其實(shí)沒(méi)有太大的難度,只要有正確的理念和合作即可。但是這對(duì)于小公司來(lái)說(shuō)則比較困難。所以這也是BAT等大企業(yè)開源的框架,和實(shí)驗(yàn)室或者初創(chuàng)公司出品的框架相比的優(yōu)勢(shì)之一。

最后,需要保持很快的演進(jìn)速度。TensorFlow現(xiàn)在經(jīng)常被批評(píng)接口改動(dòng)太快。其實(shí)最近Angel的接口改動(dòng)也很多,而且有些不能向后兼容。這其中原因很簡(jiǎn)單,一個(gè)是因?yàn)闃I(yè)界的深度學(xué)習(xí)發(fā)展太快,新算法和模型、技巧層出不窮,作為一個(gè)平臺(tái)必須能快速適應(yīng),不進(jìn)則退。另一個(gè)原因是開發(fā)的人太多,即便是Angel目前Star還比較少,但是內(nèi)部大量的并行開發(fā),很難保證所有的模塊都是合理的,定期重構(gòu)是消除這些不合理的唯一方法。整體來(lái)看,只要是合理的重構(gòu),能提升性能,就標(biāo)識(shí)著這個(gè)項(xiàng)目還在快速的生長(zhǎng)期中,不失為一件好事。

InfoQ:創(chuàng)新工場(chǎng)的王詠剛老師在《為什么AI工程師要懂一點(diǎn)架構(gòu)》中提到,研究不能只懂算法,算法實(shí)現(xiàn)不等于問(wèn)題解決,問(wèn)題解決不等于現(xiàn)場(chǎng)問(wèn)題解決,架構(gòu)知識(shí)是工程師進(jìn)行高效團(tuán)隊(duì)協(xié)作的共同語(yǔ)言。能不能談?wù)勀鷮?duì)架構(gòu)能力的看法?

黃明: 王詠剛老師說(shuō)的要懂“一點(diǎn)”。這個(gè)詞在我看來(lái)代表了兩個(gè)意思:

確實(shí)需要懂,不能什么都不懂。企業(yè)里的算法工程師和數(shù)據(jù)科學(xué)家一定要有動(dòng)手能力,不能整天只會(huì)做研究、寫Paper,Matlab和單機(jī)版的Python試驗(yàn)一下,自己獨(dú)占一臺(tái)GPU機(jī)器玩得很開心,模型做完了不會(huì)上線,溝通一到工程部分就聊不下去……其實(shí)是處于一種很不好的狀態(tài)。這樣的AI工程師,除非某方面特別強(qiáng)或特別突出,否則在企業(yè)是很難落地生存的。

不能指望懂太多。畢竟做算法和做工程的思維重點(diǎn)不一樣,腦回路也不太一樣,方法論也不一樣。兩方面都精通的人才,有,但是難找。這也是騰訊做Angel的初衷和目的,就是讓算法工程師不需要懂太多底層框架優(yōu)化,也能輕松地寫出高效的、能分布式運(yùn)行的生產(chǎn)代碼,把一些通用的體系化的系統(tǒng)和架構(gòu)細(xì)節(jié)屏蔽掉,這樣才能極大地提高企業(yè)生產(chǎn)力。

目前來(lái)看,包括Spark、TensorFlow這些比較好的框架,也正是因?yàn)樗鼈兡軌蚴箶?shù)據(jù)工程師和AI工程師,在適當(dāng)屏蔽掉底層的架構(gòu)細(xì)節(jié)后,依然能夠?qū)懗龈咝У乃惴ùa,才取得了成功。

Angel平臺(tái)的新變化和展望

InfoQ:通過(guò)您之前的投稿,大家對(duì)Angel平臺(tái)開源前所做的一系列重構(gòu)和升級(jí)已經(jīng)有所了解,開源以來(lái)想必又有了不少新變化,能否介紹一下近三個(gè)月你們對(duì)Angel平臺(tái)又做了哪些優(yōu)化?

黃明:開源以來(lái),Angel低調(diào)的發(fā)布了2個(gè)小版本:1.1.0和1.2.0,主要是加入了新的算法和優(yōu)化方法,加強(qiáng)了穩(wěn)定性,細(xì)化和完善之前的功能。這3個(gè)月內(nèi)的優(yōu)化,以穩(wěn)定和性能提升為主。因?yàn)锳ngel的定位是工業(yè)級(jí)可用的平臺(tái),所以非常看重大數(shù)據(jù)量下的穩(wěn)定性和性能,我們公布的算法都是生產(chǎn)驗(yàn)證過(guò)。同時(shí)我們對(duì)Spark on Angel的接口進(jìn)行了反復(fù)的重構(gòu),盡可能和Angel本身的接口接近一致和復(fù)用,這方面的工作到時(shí)候會(huì)在這次QCon的大會(huì)重點(diǎn)介紹。

另外根據(jù)用戶的反饋,Angel開發(fā)團(tuán)隊(duì)正在開發(fā)2個(gè)大功能,尚未發(fā)布,包括:

Python接口:接口優(yōu)化和重構(gòu),以提升易用性。因?yàn)橹靶麄鞯臅r(shí)候,很多用戶的第一個(gè)問(wèn)題,就是有沒(méi)有Python接口……所以我們不得不把這個(gè)作為第一優(yōu)先級(jí)來(lái)滿足。

Spark Streaming on Angel:支持在線學(xué)習(xí),加入FTRL算法。就像之前說(shuō)的,實(shí)時(shí)性也是機(jī)器學(xué)習(xí)必不可少的。那Angel本身不做實(shí)時(shí)這塊,但是支持Spark on Angel,那通過(guò)Spark Streaming來(lái)接入實(shí)時(shí)訓(xùn)練,也是水到渠成的事情,成本也很低,不過(guò)對(duì)Angel的HA和內(nèi)存管理,需要進(jìn)一步的優(yōu)化。

這兩個(gè)新功能應(yīng)該在下2個(gè)版本就能夠和大家見(jiàn)面了。至于深度學(xué)習(xí)的支持,其實(shí)也在進(jìn)行了,但是有些難度,會(huì)晚點(diǎn)就推出。

InfoQ:開源后這段時(shí)間,Angel平臺(tái)的推廣情況如何?有沒(méi)有什么印象特別深刻的問(wèn)題反饋?

黃明: Angel開源以來(lái),其實(shí)我們并沒(méi)有太刻意推廣,包括我們?cè)趃ithub上Public的第一天(6月16日)都沒(méi)有準(zhǔn)備做任何PR,不過(guò)由于之前的影響力,最終各大媒體都報(bào)道了。但是騰訊TOSA(開源委員會(huì))最近一年對(duì)開源項(xiàng)目的扶持非常大,態(tài)度也很Open,所以我們主要是借著騰訊開源的力量在做這個(gè)事情,發(fā)了幾篇文章。目前整體的Star數(shù)接近2.5k,我們比較欣慰的是Fork和Star數(shù)的比例比較高的,看得出很多人還是對(duì)項(xiàng)目很有興趣的。整體上,我們還是按照自己之前定好的節(jié)奏,小步快跑地進(jìn)行新功能和版本的研發(fā)。

據(jù)了解和接觸,目前有部分公司(如小米、新浪微博等)正在試用Angel,也有了不少貢獻(xiàn)者。印象深刻的有幾個(gè):

華為的一位工程師,項(xiàng)目剛發(fā)布不久就提交了一個(gè)比較大的PR,幫忙把Netty版本升級(jí)了,非常給力。后來(lái)他想把GraphX集成進(jìn)來(lái),但是我覺(jué)得這個(gè)方向不太對(duì),就Reject掉了,不太好意思。

微軟LightBGM的開發(fā)者之一提了個(gè)Issue,和Angel開發(fā)GBDT的同學(xué)互動(dòng)了10個(gè)來(lái)回左右,詳細(xì)地討論了機(jī)器學(xué)習(xí)任務(wù)中MPI和PS的網(wǎng)絡(luò)通訊開銷到底誰(shuí)更小的問(wèn)題,進(jìn)行了很有意思的學(xué)術(shù)互動(dòng)。

海外的一個(gè)用戶主動(dòng)幫忙翻譯Angel的文檔,之前為了開源,團(tuán)隊(duì)花了快1個(gè)月的時(shí)間邊寫文檔邊改Bug,所有文檔加起來(lái)應(yīng)該有100篇左右,翻譯工作量巨大。但現(xiàn)在基本全部都翻譯完了。

這些都讓我們體會(huì)到了開源的力量和益處,一個(gè)平臺(tái)在開源之后,會(huì)受到來(lái)自全球的關(guān)注,只要你用心經(jīng)營(yíng),并保持良好的功能和性能,能幫助到用戶,用戶就會(huì)主動(dòng)幫你做很多事情。而你的視野,也會(huì)變得更加的開闊。很多外部用戶的需求非??陀^到位,正是他們推動(dòng)著我們往前走。

InfoQ:開源三個(gè)月后再看Angel,與一眾機(jī)器學(xué)習(xí)平臺(tái)相比(比如Spark、Petuum、GraphLab、TensorFlow),Angel的優(yōu)勢(shì)是什么?Angel的什么特性最能吸引機(jī)器學(xué)習(xí)開發(fā)者?

黃明:首先目前其實(shí)Petuum、GraphLab都不開源,沒(méi)有可比性。Angel在研發(fā)初期借鑒參考過(guò)Petuum的一些思路,但是后來(lái)實(shí)驗(yàn)中發(fā)現(xiàn),Petuum在可靠性和穩(wěn)定性上都達(dá)不到工業(yè)可用級(jí)別,所以基本上也都推倒重做了。

和Spark比的話,目前Spark的重心還是在SparkSQL上,這從每個(gè)版本的PR數(shù)就可以看出來(lái),MLLib的比例很小。這在某種程度上也是因?yàn)镾park的RDD本質(zhì)局限導(dǎo)致的。相比之下,Angel重點(diǎn)是機(jī)器學(xué)習(xí)算法,而基于PSModel的編程模型可以讓各種機(jī)器學(xué)習(xí)的優(yōu)化和Tricks都很方便地實(shí)現(xiàn),對(duì)于算法工程師非常友好。伴隨著Python接口的提供,這個(gè)優(yōu)勢(shì)將會(huì)變得更加明顯。

TensorFlow目前在深度學(xué)習(xí)上的地位還是遙遙領(lǐng)先,從7w個(gè)Star數(shù)就可略見(jiàn)一斑。但是在多機(jī)多卡的性能上TensorFlow的PS做得并不好,最近發(fā)布的最新版本還在嘗試走M(jìn)PI路線,這是業(yè)界難題之一。Angel目前不會(huì)獨(dú)立做一套新的深度學(xué)習(xí)框架去和TensorFlow競(jìng)爭(zhēng),而是會(huì)發(fā)揮自身優(yōu)勢(shì),把PS-Service做好做極致,來(lái)加速并行訓(xùn)練并形成互補(bǔ)。

關(guān)于傳統(tǒng)機(jī)器學(xué)習(xí)算法的生命周期問(wèn)題,我覺(jué)得不用太擔(dān)心。很重要的一點(diǎn)是傳統(tǒng)機(jī)器學(xué)習(xí)算法比深度學(xué)習(xí)更貼近problem solving而非模擬智能。深度網(wǎng)絡(luò)模擬大腦結(jié)構(gòu),所以在人類擅長(zhǎng)的智能領(lǐng)域優(yōu)于傳統(tǒng)算法,比如視覺(jué)聽覺(jué),各種對(duì)外界信號(hào)的理解……但是還有一些非智能領(lǐng)域,人大腦展現(xiàn)出各種認(rèn)知缺陷(cognitive deficit),比如對(duì)模式是隨機(jī)還是真實(shí)的判斷,對(duì)概率的認(rèn)知,對(duì)風(fēng)險(xiǎn)評(píng)估等等。這些方面?zhèn)鹘y(tǒng)機(jī)器學(xué)習(xí)方法仍然更有效,不需要通過(guò)大量的野蠻暴力嘗試,就能得到更好的結(jié)論。也許以后會(huì)改變。但目前傳統(tǒng)思路的機(jī)器學(xué)習(xí)還是有必要的,在很多場(chǎng)合,簡(jiǎn)單有用,包括騰訊的很多場(chǎng)景,還是有剛需,所以Angel還是要把它經(jīng)營(yíng)好。

整體上來(lái)看,目前Angel是業(yè)界,包括國(guó)內(nèi)和國(guó)外,比較成熟的開源參數(shù)服務(wù)器框架,能夠在十億級(jí)別的維度(其實(shí)百億也可以,只不過(guò)沒(méi)生產(chǎn)完全驗(yàn)證過(guò),所以不這樣宣傳)、T級(jí)別大小的樣本量規(guī)模下,開發(fā)和運(yùn)行通用的機(jī)器學(xué)習(xí)算法的平臺(tái)。另外值得一提的是,Angel的算法開發(fā)難度也比較低,有一位開源貢獻(xiàn)者很輕松地在Angel上實(shí)現(xiàn)了阿里巴巴用于CTR預(yù)估的MLR算法,并貢獻(xiàn)給Angel社區(qū),這正是Angel團(tuán)隊(duì)所期待的。

InfoQ:您認(rèn)為目前機(jī)器學(xué)習(xí)平臺(tái)還存在哪些問(wèn)題和難點(diǎn)?未來(lái)改進(jìn)的重點(diǎn)是什么?

黃明:目前機(jī)器學(xué)習(xí)平臺(tái)還存在3個(gè)大問(wèn)題:算力的水平擴(kuò)展、模型的高效壓縮、快速的推理能力

機(jī)器學(xué)習(xí)平臺(tái)最大的難題還是算力。性能再?gòu)?qiáng),接口再好用,底層優(yōu)化再極致,單機(jī)能力終有極限,需要能水平擴(kuò)展,而深度學(xué)習(xí)大規(guī)模通用的多機(jī)多卡的分布式方案,目前依然是個(gè)難題,即便TensorFlow也沒(méi)解決得很好。這也是騰訊致力于Angel系統(tǒng)的原因,希望無(wú)論是CPU還是GPU,我們都能提供高性能分布式機(jī)器學(xué)習(xí)方案。

除此之外,利用龐大的集群規(guī)模,長(zhǎng)時(shí)間訓(xùn)練出來(lái)的精細(xì)模型,其大小一般比較大,像Angel訓(xùn)練出來(lái)的模型一般都會(huì)上百G,而深度學(xué)習(xí)的模型,多數(shù)也到G級(jí)別。這么大的模型,需要壓縮之后才能給終端使用,如何在盡量減少精度損失的情況下,最大化的壓縮模型,也是平臺(tái)需要考慮的。

最后一個(gè)是快速的推理能力。無(wú)論是終端推理(手機(jī)端,無(wú)人駕駛車……),還是服務(wù)端推理(廣告,推薦……),要求都是一樣的,要盡可能速度快和高吞吐量。這時(shí)如何合理地利用和設(shè)計(jì)流式實(shí)時(shí)系統(tǒng),來(lái)快速接入數(shù)據(jù)進(jìn)行推理,也是平臺(tái)需要考量的點(diǎn)。

在未來(lái)一年里,相信大部分的機(jī)器學(xué)習(xí)框架,包括深度學(xué)習(xí)框架,都會(huì)圍繞著上述幾個(gè)問(wèn)題重點(diǎn)發(fā)力。這也是Angel需要面對(duì)的挑戰(zhàn)和機(jī)遇。

采訪嘉賓介紹

Andymhuang(黃明),騰訊T4專家,Spark早期的研究者和布道者,對(duì)分布式計(jì)算和機(jī)器學(xué)習(xí),有獨(dú)到的經(jīng)驗(yàn)和研究。目前于數(shù)據(jù)平臺(tái)部擔(dān)任海量計(jì)算組Leader,負(fù)責(zé)構(gòu)建大規(guī)模分布式計(jì)算和機(jī)器學(xué)習(xí)平臺(tái),助力騰訊各大數(shù)據(jù)和機(jī)器學(xué)習(xí)業(yè)務(wù)快速發(fā)展。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19648.html

相關(guān)文章

  • 快捷關(guān)機(jī)自我修養(yǎng)(正經(jīng)程序員多半是直接關(guān)機(jī)而不是這么花里胡哨)

    摘要:二對(duì)的修改一鍵關(guān)機(jī)寫上后保存是調(diào)出這個(gè)程序,是關(guān)閉的意思,是時(shí)間秒的意思。這里為零是指立即關(guān)機(jī)。四主題到來(lái)快捷關(guān)機(jī)將文件右擊選擇發(fā)送到的桌面快捷方式這樣就可以在桌面有個(gè)自己的快捷方式了。 ...

    Binguner 評(píng)論0 收藏0
  • 職業(yè)者自我修養(yǎng)

    摘要:自由職業(yè)是一個(gè)令人向往的的職業(yè)。為了努力成為一個(gè)成功的自由職業(yè)者,犧牲了無(wú)數(shù)的休息時(shí)間,導(dǎo)致了身體過(guò)早的出現(xiàn)問(wèn)題。 自由職業(yè)是一個(gè)令人向往的的職業(yè)。 如何成為自由職業(yè)者?自由職業(yè)的種類有很多, 自由撰稿人,網(wǎng)絡(luò)作家, 自媒體,微商, 淘寶店, 個(gè)人站長(zhǎng), 懂技術(shù)的還可以自己接活,豬八戒上面有很多這種任務(wù), 開源中國(guó)還開發(fā)了一個(gè)眾包平臺(tái), 如果英語(yǔ)過(guò)硬的話還可以上國(guó)外的網(wǎng)站接活,有名的f...

    binaryTree 評(píng)論0 收藏0
  • 專訪 | Angel團(tuán)隊(duì)負(fù)責(zé)人黃明:歷時(shí)半年,騰訊Angel為了開源都經(jīng)歷了些什么?

    摘要:詳見(jiàn)騰訊正式版發(fā)布基于與的機(jī)器學(xué)習(xí)高性能計(jì)算平臺(tái)在談及新一代平臺(tái)時(shí),黃明表示,是此次平臺(tái)升級(jí)的一大亮點(diǎn),而只是生態(tài)圈的第一個(gè)成員。對(duì)此,黃明表示,在的開發(fā)過(guò)程中,我們一直都是在同和對(duì)標(biāo)性能。 機(jī)器之心原創(chuàng) 作者:高靜宜 2017 年 6 月 16 日,騰訊新一代高性能計(jì)算平臺(tái) Angel 在 Github 上低調(diào)開源。開源兩周,這個(gè)項(xiàng)目在 Github 上持續(xù)得到關(guān)注,截至目前為止,已...

    William_Sang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<