【我們為什麼挑選這篇文章】談到 Uber 大家似乎都會直覺聯想到瘋狂內鬥和新執行長 Dara Khosrowshahi 剛上任,也不知道前任執行長卡拉尼克會不會放手讓他做事,總之就是似乎是家內部一團亂的公司。

但其實,Uber 作為全球性的共享叫車平台還能維持運行,他的機器學習運算能力是很強大的!究竟 Uber 是如何順利維持營運?如何預估計程車接客時間?甚至還能順利發展 UberEATs ?這篇文章訪問 Uber 機器學習平台 Michelangelo 負責人王魯明,揭密 Uber 是如何做這些複雜運算?(責任編輯:劉庭瑋)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處

科技巨頭加注人工智能彷彿是場競賽。

前不久,Uber 正式推出機器學習平台 Michelangelo,希望透過這個平台全面處理工作流程,並推動 AI 普及化。恰巧就在當天,量子位在人工智能計算大會(AICC)上,遇到並專訪了 Uber 機器學習負責人王魯明。

對於這個機器學習平台的意義,Uber 機器學習負責人王魯明介紹說,Top 級企業真正的核心競爭力就是數據和平台,如果我們把大數據看成一個金礦,那這個平台就是挖掘金礦的工具。

「一個好的機器學習平台,不光是個鐵鍬,它必須是個現代化大型自動化挖掘機。只有讓大數據以更廉價的方式得到,才能讓人工智能更好走向最高峰。

關於 Uber 這個名為 Michelangelo 的機器學習平台,其負責人王魯明還向量子位分享了更多幕後故事。

Uber 機器學習平台 Michelangelo 能做什麼?

我們先從結果上來看,Michelangelo 到底可以做些什麼?

Uber 方面的說法是,Michelangelo 的主要作用是能夠讓內部團隊可以無縫構建、部署和運作適合 Uber 量級的機器學習解決方案,可以覆蓋端到端機器學習工作流,包含:管理數據、訓練、評估和部署模型,以及監控預測。該系統還支持傳統的機器學習模型、時間序列預測和深度學習。

在 Uber 內部,Michelangelo 是 Uber 工程師和數據科學家實際使用的機器學習系統,有幾十個團隊使用它構建和部署模型。由於該系統部署在多個 Uber 數據中心上,還會影響到專門的硬體,以及對 Uber 最高加載量的線上服務提供預測。

歸根結底,Michelangelo 的出現,把 Uber 內部分散在各個業務團隊中的機器學習開發需求集中起來,減少重複開發的資源浪費。

一開始走了彎路

王魯明稱,這個機器學習平台創建於 2015 年年底,當時最大的需求來自大量團隊在實際工作中需要用到機器學習。

在這個平台推出前,Uber 內部每個團隊都「各自為政」——自己做自己的機器學習開發,所以中間必然有大量重複的工作,效率也比較低。

這直接促成了 Michelangelo 建立,不過也並不意味著一路順利。

現在總結起來,最大的彎路在於對深度學習不夠專注。而圍繞非深度學習切換了不同的平台,比如 H2O 之類的,最後才決定使用 Spark ML 作為自己的機器學習平台。

「當時的出發點是盡可能使用開源資源,在開源的基礎上有一些 Uber 的開發和創新,也盡可能把這些開源和創新回饋給整個社區。在 Spark ML 我們做了很多工作,比如加了很多新的算法,像我們前段時間加了 Siri 的算法,這個是原來 Spark ML 不支持的。」王魯明透露說。

其後直到 2016 年 7 月,Uber 機器學習平台才加入了對深度學習的支持。這才算真正讓 Michelangelo 走上了正軌。

現在,有幾十個來自 Uber 的內部用戶透過 Michelangelo 來滿足自己在機器學習方面的要求,並且讓任務變得更富效率,幾乎所有的測試工作,都可以在 Michelangelo 上完成。

「具體業務團隊只需要專注他們所需的業務需求上,然後思考用什麼樣的算法去解決業務需求的問題。他們不需要考慮數據從哪裡來、需要多少台機器、機器在何方?這些問題都由 Michelangelo 承擔。」

王魯明進一步明確說,Michelangelo 實際上提供的就是一個端到端的解決方案,可以幫助 Uber 內部團隊完成挑選數據、建立模型、訓練模型、模型比較、管理,最後把最佳模型進行分析、計算和處理。

因為 Uber 的業務涉及全球成百上千個城市,而且每一個城市還可以按照區域往下建模型,因此一個「用戶」可能就會有幾千個模型,這就要求 Michelangelo 能夠給這幾千個模型同時支持、平衡和分析。

過去,涉及較大數據的模型,單機訓練可能要將近 1 個月的時間,但現在整個效率已經大大提升,整個技術從定向到開發,時間週期大大縮短。

王魯明舉例說,內部一個項目此前花了 4 個月時間,但換到 Michelangelo 後,整個週期變成了 1 個月。

實際應用

對於 Michelangelo 的實際應用,王魯明舉了幾個例子。

一是 Uber 的無人駕駛業務,之前圍繞深度學習方面的工作都在其他平台或買一台 4 GPU 的單機進行訓練,但現在已經完全轉到了 Michelangelo 上。

二是 Uber 的街景車業務,在獲取了眾多高精度相片中,需要對圖像中的價值訊息進行提取。一開始街景車團隊在 Caffe1.0 上進行,不過只有單機版的 Caffe1.0 顯然拖慢了效率。

20人規模的團隊,需要在模型和機器之間的管理、共享和資源分配上浪費精力,甚至需要人工去修改機器是否在用,非常落後且低效。

而換到 Michelangelo 之後,「用戶」不用再去記住模型和具體機器的對應關係,整個平台互聯互通,就好似在一台機器上一樣。

以上都是深度學習的案例,Uber 還有一些非深度學習解決的問題。

比如,有人叫車時,周圍有十幾個司機,選哪個司機來與乘客匹配?如果沒有選好的話,司機和乘客都有可能取消,而取消就是對所有人都存在損失——即便沒有經濟上的,也有時間成本和用戶體驗上的。

所以這個模型核心要解決的問題是最大概率減少「取消」的操作,「取消率」越低,效果越好。

類似的模型也應用於 Uber Eats 上,其中關於食物的推薦、下訂單後所需時長,其中都是機器學習的應用,而目前所有這些機器學習的應用,都在 Michelangelo 上實現。

UberEATS App 使用了由 Michelangelo 建立的機器學習模型,提供的時間估計功能。

深度學習非萬能

王魯明也解釋了為什麼 Michelangelo 平台並非全部使用深度學習的原因。

一方面跟深度學習目前存在的「瓶頸」有關,另一方面與 Uber 實際應用需要密不可分。

這位 Uber 機器學習負責人表示,深度學習的第一個問題是「不好解釋」:為什麼起作用、為什麼不起作用,無據可查。

另一個問題是在具體應用中模型層數的問題,以自動駕駛舉例,可能一千層在測試中效果很好,但真正實際應用中,40 毫秒之類的時間內,如此深的計算來不及,即便配上最好的 GPU,也迫使你需要把模型層級變得更窄,這就會造成限制。

目前,對於上述情況,Uber 內部的解決方案主要透過降低計算量和提升計算力兩大方面來展開。

Uber 機器學習負責人王魯明

揭秘 Uber 機器學習團隊

關於 Uber 機器學習團隊,王魯明也向量子位透露了規模、優勢和招聘要求。

他表示,目前 Uber 機器學習團隊維持著 30 人規模,最早的時候才有 10 人。現在隨著客戶數量的不斷增加,團隊規模也在不斷擴充。

對於人才吸引,這位 Michelangelo 負責人並不擔心。

他認為 Uber 對機器學習工程師吸引力明顯。

首先,Uber 的工作,是一個比特(數字世界)和原子(現實世界)結合的事業,可以透過算法去影響人在實際生活中的行為,這是很多互聯網公司所缺乏的。

其次,同樣因為核心業務的原因,Uber 源源不斷的數據相對更富價值,這也是 Uber 有信心在 AI 領域一展身手的原因。

王魯明透露說,在對數據模型的並行處理方面,Uber 目前甚至比 Google 還要出色。

不過,並不意味著機器學習方向的工程師都能進入 Uber 機器學習團隊。

在解釋 Michelangelo 所需人才的素質時,王魯明希望找到那些熟悉具體應用領域,又對機器學習有較深理解的技術人才。

「我們團隊不是真正在做應用,但需要對具體領域非常了解,這樣才能知道用戶痛點,才能給他提供最有效的支持。還需要較強的技術背景,比如在並行計算、性能優化等方面有技術能力。」

對其他公司的建議

最後,對於其他公司從無到有建立一個類似 Michelangelo 的機器學習平台,王魯明也向量子位表達了建議:

一方面是向優秀公司或優秀平台學習,比如在 Uber 機器學習平台建設過程中,就從 Facebook 學習了很多經驗;

另一方面是選擇合適的開源架構,比如完全學習 Google 並不容易,但從 Google 開源平台 TensorFlow 中選擇合適的開源技術,會讓所有的事情事半功倍。

(本文經 量子位  授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈 獨家| 揭秘出行巨頭Uber的機器學習平台與團隊 〉。)

延伸閱讀

Uber 新任 CEO 動態超展開!投資人爆炸性發言:特斯拉和 Uber 要合併,馬斯克當 CEO
Uber 大騙局!天價收購 Otto 竟是前 CEO 瞞董事會自導自演,我不是在看八點檔吧
所有領導人都該學的一課:Uber 新 CEO 只用了這八個字展現大師級領導力
【2017 年矽谷年度傳奇男人】從伊朗難民變身 Uber CEO,Dara Khosrowshahi 如何救爛攤?