在之前的一篇博文里我介紹了在首次Ray聚會(huì)里出現(xiàn)的一些早期Ray的應(yīng)用場(chǎng)景。Ray是由加州大學(xué)伯克利分校的RISE實(shí)驗(yàn)室開發(fā)的一個(gè)分布式計(jì)算框架。第二次Ray聚會(huì)在幾個(gè)月后舉行。在這兩次聚會(huì)上都可以看到一些使用Ray構(gòu)建的早期應(yīng)用。在Ray自身的開發(fā)層面,它的核心API已經(jīng)穩(wěn)定下來,并且很多工作都致力于提升和改進(jìn)Ray的性能和穩(wěn)定性。現(xiàn)在在GitHub上Ray項(xiàng)目已經(jīng)得到了5700顆星,吸引了來自多個(gè)機(jī)構(gòu)的100多名貢獻(xiàn)者。
在現(xiàn)階段,應(yīng)該如何向一個(gè)不熟悉Ray的人介紹它?RISE實(shí)驗(yàn)室的成員把Ray描述成一個(gè)“面向集群或云環(huán)境編程的通用框架”。把這個(gè)項(xiàng)目放到上下文里看,Ray和云功能(比如FaaS和Serverless)目前處于極度靈活的系統(tǒng)和更聚焦、強(qiáng)調(diào)易用性這兩個(gè)極端的中間。更確切的說,一方面,目前用戶可以利用極度靈活的集群管理和虛擬化工具,如Docker、Kubernete、Mesos等;另一方面,可以利用領(lǐng)域?qū)S玫撵`活的系統(tǒng),如Spark、Kafka、Flink、PyTorch、TensorFlow、Redshift等。
實(shí)踐上這些是怎么實(shí)現(xiàn)的?Ray對(duì)于無狀態(tài)和有狀態(tài)的計(jì)算都支持,也支持調(diào)度里面的細(xì)粒度控制,允許用戶在其上面實(shí)現(xiàn)多種多樣的服務(wù)和應(yīng)用。

圖1 可以構(gòu)建在Ray之上的庫的例子。來源:Robert Nishihara和Philipp Moritz授權(quán)使用
基于Ray之上的庫已經(jīng)出現(xiàn)了,例如:RLib(可擴(kuò)展的強(qiáng)化學(xué)習(xí)庫)、Tune(一個(gè)超參數(shù)優(yōu)化的框架),以及很快就會(huì)發(fā)布的一個(gè)流計(jì)算庫等。如下面介紹的,我認(rèn)為更多的庫將會(huì)出現(xiàn)。
上面所說的庫都很好,但是大部分的開發(fā)人員、數(shù)據(jù)科學(xué)家和研究人員不必也不會(huì)開發(fā)庫。他們對(duì)直接能使用的庫更感興趣。如果你是一個(gè)使用Python的數(shù)據(jù)科學(xué)家或開發(fā)人員,下面是一些你應(yīng)該研究一下Ray的原因:
- Modin庫:這個(gè)庫可以讓你只修改一行代碼就能擴(kuò)展pandas工作流。鑒于大部分?jǐn)?shù)據(jù)科學(xué)家已經(jīng)喜歡使用pandas,Modin庫是擴(kuò)展和加速你已有代碼的一個(gè)極度簡(jiǎn)單的方法。
- 易擴(kuò)展的數(shù)據(jù)科學(xué):還沒有被充分注意到的是Ray為Python使用者提供了一個(gè)簡(jiǎn)單的并行運(yùn)行他們代碼的方法。在最近的加州大學(xué)伯克利分校的《數(shù)據(jù)科學(xué)100》課程里,Ray是分布式計(jì)算內(nèi)容的核心。這個(gè)課程是由Jupyter的一個(gè)發(fā)明人參與教學(xué)的。
- 強(qiáng)化學(xué)習(xí)(RL):強(qiáng)化學(xué)習(xí)是數(shù)據(jù)科學(xué)家開始探索的課題之一。但是就如很多機(jī)器學(xué)習(xí)使用者利用了已有的機(jī)器學(xué)習(xí)庫(例如scikit-learn)一樣,大部分強(qiáng)化學(xué)習(xí)的使用者不會(huì)自己從零開始編寫相關(guān)的庫。好消息是RLib為不同類型的強(qiáng)化學(xué)習(xí)訓(xùn)練提供了統(tǒng)一的API接口,而且所有RLib的算法都是分布式的。因此強(qiáng)化學(xué)習(xí)的使用者和研究人員都可以從RLib里獲益。

圖2 Ray和強(qiáng)化學(xué)習(xí)。來源:Eric Liang授權(quán)使用
- 自動(dòng)機(jī)器學(xué)習(xí)(AutoML):在近期的一篇博文里隨著模型構(gòu)建成為一個(gè)重要的組件,我介紹了一些自動(dòng)化機(jī)器學(xué)習(xí)項(xiàng)目的不同階段的工具。Ray的使用者已經(jīng)在利用Tune這一易擴(kuò)展的超參數(shù)優(yōu)化工具。超參數(shù)調(diào)優(yōu)是一個(gè)非常重要且常見的機(jī)器學(xué)習(xí)模型探索和構(gòu)建的步驟。也已經(jīng)有了一些使用Ray的自動(dòng)機(jī)器學(xué)習(xí)的項(xiàng)目,有希望其中的一些會(huì)在近期被開源發(fā)布出來。
那么具體的Ray的使用案例有哪些?貢獻(xiàn)者的增加以及庫和工具的增多,這些都帶來了更多的Ray應(yīng)用案例和它在生產(chǎn)系統(tǒng)上的部署。在之前的博文里我列舉了加州大學(xué)伯克利分校研究組(他們研究混合自主化交通)和螞蟻金服(他們已經(jīng)在生產(chǎn)系統(tǒng)的幾個(gè)場(chǎng)景里使用Ray)作為Ray的使用案例。在那之后,我又聽到了多個(gè)不同場(chǎng)景里使用Ray的案例。
- 金融服務(wù)和工業(yè)自動(dòng)化應(yīng)用。
- Ray被用在文本挖掘上,構(gòu)建知識(shí)圖譜和圖譜查詢。
- 一些企業(yè)在探索使用Ray來進(jìn)行實(shí)時(shí)推薦,其中包括了針對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行建模。
另外,在人工智能、機(jī)器學(xué)習(xí)、機(jī)器人和工程等領(lǐng)域采用Ray的研究群體數(shù)量也在增加。隨著Ray開始在云平臺(tái)上(亞馬遜的SageMaker強(qiáng)化學(xué)習(xí)里包括進(jìn)了Ray)可用,我認(rèn)為會(huì)聽到更多的使用Ray的有趣案例出現(xiàn)。
綜上所述,現(xiàn)在是開始探索Ray的一個(gè)好時(shí)間。它的核心API已經(jīng)穩(wěn)定下來,相關(guān)的庫在被進(jìn)一步改進(jìn)和增強(qiáng),更多的生產(chǎn)級(jí)應(yīng)用部署開始出現(xiàn)。更重要的是整個(gè)用戶社區(qū)和貢獻(xiàn)者也在增加。
相關(guān)內(nèi)容:
- RISE實(shí)驗(yàn)室團(tuán)隊(duì)提供的《Ray編程——給首次使用者的訣竅》
- 來自首次Ray聚會(huì)的記錄
- Cathy Wu的《在混合自主化交通里使用強(qiáng)化學(xué)習(xí)》
- Robert Nishihara和Phillipp Moritz寫的《Ray是如何讓持續(xù)學(xué)習(xí)可用和易于擴(kuò)展的》
- 《深度學(xué)習(xí)里的深度自動(dòng)化》
- Danny Lange寫的《釋放強(qiáng)化學(xué)習(xí)的潛能》
- 《克服采用人工智能的障礙》
Ben Lorica
Ben Lorica是O’Reilly Media公司的首席數(shù)據(jù)科學(xué)家,同時(shí)也是Strata數(shù)據(jù)會(huì)議和O’Reilly人工智能會(huì)議的內(nèi)容日程主管。他曾在多種場(chǎng)景下應(yīng)用商業(yè)智能、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)和統(tǒng)計(jì)分析技術(shù),這些場(chǎng)景包括直銷、消費(fèi)者與市場(chǎng)研究、定向廣告、文本挖掘和金融工程。他的背景包括在投資管理公司、互聯(lián)網(wǎng)初創(chuàng)企業(yè)和金融服務(wù)公司就職。

