科技行者
作者 | Janakiram MSV
編譯 | 科技行者
Uber公司是目前對(duì)數(shù)據(jù)依賴性最高的組織之一。
每一天,Uber公司在全球700個(gè)城市規(guī)劃出數(shù)百萬(wàn)次行程,而由此產(chǎn)生的關(guān)于交通、首選路線、預(yù)計(jì)到達(dá)/送貨時(shí)間以及下車(chē)地點(diǎn)的信息,則讓Uber得以為客戶提供更加順暢的乘車(chē)體驗(yàn)。
通過(guò)訪問(wèn)來(lái)自出租車(chē)、駕駛員以及用戶的豐富數(shù)據(jù)集,Uber一直在投資機(jī)器學(xué)習(xí)與人工智能技術(shù)以增強(qiáng)自身業(yè)務(wù)。優(yōu)步AI實(shí)驗(yàn)室由ML研究人員以及眾多從業(yè)者組成,他們負(fù)責(zé)將最先進(jìn)的機(jī)器學(xué)習(xí)技術(shù)與優(yōu)勢(shì)成果轉(zhuǎn)化為Uber的核心業(yè)務(wù)。從計(jì)算機(jī)視覺(jué)到會(huì)話型AI,再到識(shí)別與感知,Uber公司已經(jīng)成功將ML與AI融入其共享出行平臺(tái)當(dāng)中。
自2017年以來(lái),Uber方面一直在分享與機(jī)器學(xué)習(xí)模型的構(gòu)建、部署以及管理相關(guān)的最佳實(shí)踐。他們使用的一系列內(nèi)部工具與框架都建立在高人氣開(kāi)源項(xiàng)目基礎(chǔ)之上,具體包括Spark、HDFS、Scikit-learn、NumPy、Pandas、TensorFlow以及XGBoost。
下面,讓我們進(jìn)一步了解Uber公司在機(jī)器學(xué)習(xí)領(lǐng)域的成果。
>>>Michelangelo——ML平臺(tái)即服務(wù)
Michelangelo 是一套機(jī)器學(xué)習(xí)平臺(tái),通過(guò)端到端系統(tǒng)對(duì)各個(gè)團(tuán)隊(duì)的工作流程與工具進(jìn)行標(biāo)準(zhǔn)化。它的出現(xiàn),使得整個(gè)公司的開(kāi)發(fā)人員與數(shù)據(jù)科學(xué)家都能夠輕松實(shí)現(xiàn)機(jī)器學(xué)習(xí)系統(tǒng)的大規(guī)模構(gòu)建與操作。
Michelangelo構(gòu)建于一系列開(kāi)源組件之上,包括HDFS、Spark、Samza、Cassandra、MLLib、XGBoost以及TensorFlow。其利用Uber的數(shù)據(jù)與計(jì)算基礎(chǔ)設(shè)施構(gòu)建而成,提供的數(shù)據(jù)湖足以存儲(chǔ)Uber的全部交易與記錄數(shù)據(jù),Kafka以中間人的形式匯集所有Uber服務(wù)記錄——包括Samza流式計(jì)算引擎、托管Canssandra集群以及Uber的其它內(nèi)部服務(wù)供應(yīng)與部署工具等等。
Michelangelo主要負(fù)責(zé)實(shí)現(xiàn)典型機(jī)器學(xué)習(xí)工作流程中的以下六個(gè)階段:
1. 管理數(shù)據(jù)
2. 訓(xùn)練模型
3. 評(píng)估模型
4. 部署模型
5. 做出預(yù)測(cè)
6. 監(jiān)測(cè)預(yù)測(cè)
這套平臺(tái)擁有一個(gè)數(shù)據(jù)湖,可供模型在訓(xùn)練與推理期間進(jìn)行訪問(wèn)。通過(guò)指預(yù)測(cè)與在線推理,應(yīng)用程序?qū)⒛軌蛟L問(wèn)其集中數(shù)據(jù)存儲(chǔ)。
Michelangelo為訓(xùn)練中的ML模型提供標(biāo)準(zhǔn)算法,個(gè)人開(kāi)發(fā)者與團(tuán)隊(duì)也都可以輕松向該平臺(tái)添加新的算法。在部署模型之前,其會(huì)根據(jù)各種指標(biāo)及參數(shù)對(duì)模型的準(zhǔn)確性做出評(píng)估。Michelangelo通過(guò)UI或API提供端到端的模型部署管理支持。其能夠?qū)⑺渴鸬拿總€(gè)模型用于在線及離線預(yù)測(cè),或者作為與移動(dòng)應(yīng)用程序相集成的庫(kù)。該平臺(tái)會(huì)持續(xù)監(jiān)測(cè)預(yù)測(cè)結(jié)果的準(zhǔn)確性與速度,從而在必要時(shí)觸發(fā)重新訓(xùn)練。
Michelangelo的用戶能夠直接通過(guò)Web UI、REST API以及監(jiān)控與報(bào)警工具處直接同該平臺(tái)的組件進(jìn)行交互。
Uber公司通過(guò)PyML對(duì)Michelangelo項(xiàng)目進(jìn)行了擴(kuò)展,使得Python開(kāi)發(fā)人員能夠更輕松地完成模型訓(xùn)練與部署。PyML是一個(gè)用于處理Michelangelo流水線的高級(jí)API,使得團(tuán)隊(duì)能夠獨(dú)立于Michelangelo之外提供獨(dú)立的自定義算法、框架、工具以及依賴項(xiàng)。
雖然Uber方面并沒(méi)有開(kāi)源Michelangelo,但發(fā)布了相關(guān)說(shuō)明文檔,其中記錄了關(guān)于實(shí)現(xiàn)可擴(kuò)展機(jī)器學(xué)習(xí)流水線的設(shè)計(jì)思路與最佳實(shí)踐。
>>>Horovod——用于TensorFlow的分布式深度學(xué)習(xí)框架
Horovod 是一套利用GPU資源用于TensorFlow、Keras、PyTorch以及MXNet的分布式訓(xùn)練框架。Uber公司已經(jīng)開(kāi)源了Horovod并將其轉(zhuǎn)交給LF AI——Linux基金會(huì)下轄的另一機(jī)構(gòu)。順帶一提,LF AI主要關(guān)注人工智能、機(jī)器學(xué)習(xí)以及深度學(xué)習(xí)類項(xiàng)目的運(yùn)營(yíng)。
通過(guò)將對(duì)代碼內(nèi)容的修改量控制在最低水平,Horovod優(yōu)化了跨多GPU的模型訓(xùn)練方式,其支持目前各類高人氣深度學(xué)習(xí)框架,包括TensorFlow、Keras、PyTorch以及Apache MXNet等。
Uber方面還擴(kuò)展了百度公司在多GPU上實(shí)現(xiàn)的分布式訓(xùn)練成果。百度最初的方案強(qiáng)調(diào)了將標(biāo)準(zhǔn)高性能計(jì)算技術(shù)引入深度學(xué)習(xí)這一基本想法。
Horovod還與英偉達(dá)集合通信庫(kù)(NCCL)相集成,用以支持跨多個(gè)GPU與多臺(tái)機(jī)器的深度學(xué)習(xí)模型分布式訓(xùn)練。Horovod公開(kāi)的API能夠與各類主流深度學(xué)習(xí)框架共同配合使用。
Uber的Horovod項(xiàng)目目前以開(kāi)源形式通過(guò)Github 公開(kāi)交付。
>>>Ludwig——無(wú)代碼深度學(xué)習(xí)工具箱
Ludwig 是Uber旗下最有趣的機(jī)器學(xué)習(xí)項(xiàng)目。這是一套開(kāi)源深度學(xué)習(xí)工具箱,以TensorFlow為基礎(chǔ)構(gòu)建而成,允許用戶有無(wú)需編寫(xiě)代碼的前提下實(shí)現(xiàn)深度學(xué)習(xí)模型的訓(xùn)練與測(cè)試。
Ludwig是一套AutoML平臺(tái),其提供一組模型架構(gòu)集合;用戶可以將這些架構(gòu)組合起來(lái),從而為特定用例創(chuàng)建端到端模型。該工具箱要求將數(shù)據(jù)集格式化為一個(gè)逗號(hào)分隔值(CSV)文件,外加一個(gè)用于對(duì)特征、標(biāo)簽以及訓(xùn)練參數(shù)進(jìn)行描述的YAML文件。Ludwig還提供一個(gè)簡(jiǎn)單的Python API,允許開(kāi)發(fā)人員借此實(shí)現(xiàn)模型的訓(xùn)練或加載,以及獲取關(guān)于新數(shù)據(jù)的預(yù)測(cè)結(jié)果。
該工具箱支持文本分類、機(jī)器翻譯、情緒分析、圖像分類、圖像字幕用例以及其它多種場(chǎng)景。
Ludwig在構(gòu)建之初即考慮到可擴(kuò)展性原則,基于數(shù)據(jù)類型抽象,能夠輕松添加對(duì)新數(shù)據(jù)類型以及新模型架構(gòu)的支持。從業(yè)者可以利用它快速訓(xùn)練并測(cè)試深度學(xué)習(xí)模型,允許研究人員通過(guò)強(qiáng)大的基準(zhǔn)進(jìn)行性能比較,并提供實(shí)驗(yàn)設(shè)置選項(xiàng)以通過(guò)執(zhí)行標(biāo)準(zhǔn)數(shù)據(jù)預(yù)處理及可視化確??杀容^性。
Ludwig開(kāi)源項(xiàng)目已經(jīng)在 Github上公開(kāi)發(fā)布。
聯(lián)系客服