道器相融,論一個優秀機器學習平台的自我修養

嘉賓|黃明

編輯|Natalie

AI前線出品|公眾號 ai-front

2017 年 6 月,騰訊正式開源面向機器學習的第三代高性能計算平台 Angel,在 GitHub 上備受關注;2017 年 10 月 19 日,騰訊 T4 專家 Andymhuang(黃明)將為 QCon 上海的聽眾奉上一場 Spark on Angel 的精彩分享。作為 Angel 的主要開發者和團隊負責人,同時也是 Spark 的早期研究者和佈道者,他的工作經歷可以說同步了通用大數據平台到專用機器學習平台的轉變歷程。因此,在這之前,InfoQ 對黃明進行了一次採訪,他將與大家分享人工智慧時代的大數據平台演進之路,並結合 Angel 的開發經驗,談談如何打造一個優秀的機器學習平台,以及開源後 Angel 的最新消息和未來規劃。

人工智慧到底會給企業帶來什麼?——是改變,機遇,還是更大的挑戰?

在之前的大數據時代,企業開始意識到數據的重要性並著手搭建自己的大數據平台,大數據成為業界關注的焦點,Hadoop、Spark 等等各式各樣的大數據框架、組件、平台層出不窮。隨著人工智慧時代來臨,大數據平台發生了新的變化,也提出了更高的要求。Spark 等大數據平台多是為通用數據處理而設計的,並非專用於機器學習任務,企業該如何更好地利用機器學習、深度學習等人工智慧技術從實時數據中高效挖掘有價值的信息?

在過去的兩年(2015-2017),隨著機器學習、特別是深度學習在多個領域取得革命性成功,各種專用的機器學習平台應運而生,百花齊放,Angel 也是其中的一員。

人工智慧時代,大數據平台的演進之路

InfoQ:您不僅是 Angel 的主要開發者和團隊負責人,還是 Spark 的早期研究者和佈道者,並且一直從事分散式計算和機器學習領域的開發工作。能否結合您的工作經歷,為我們介紹一下通用大數據平台到專用機器學習平台的演進歷程?是什麼推動了這一轉變?您認為將來大數據中心的大多數任務會變成機器學習任務嗎?

黃明: 其實推動這一轉變的,本質上是人們對更高層面的追求所驅動的。從了解過去,到預知未來;從有限空間的窮舉,到無限空間的探索;從有監督的訓練,到無監督的自我學習……無論是企業高管,還是產品用戶,大家都希望能得到更加智能的服務,而也只有提供了這種服務級別的的產品和公司,才能在殘酷的互聯網競爭中勝出。

2010 年,業界的大數據剛剛興起,當時有很多受歡迎的項目都是統計類的,可以告訴大家昨天最流行的是什麼。底層的框架是 Hadoop 和 Hive,很多平台的最大的功能就是出各種各樣的報表,天報表、月報表……這時的層次是知道發生了什麼。

2012 年,當時有兩大發展方向,一種是更快的 SQL,一種是機器學習,湧現了很多開源項目。Spark 能夠勝出,是因為它在兩者中間取得了均衡,並展現了機器學習的潛質。Matei Zaharia 等人在 NSDI 的 RDD Paper[1] 提到了,Spark 的目標是為了解決 iterative algorithms 和 interactive data mining tools 這兩類問題,這個判斷從現在來看,依然是正確的。Spark 後來普及開來,目前很多公司依然會把 Spark 當成他們首選的通用數據處理平台兼機器學習平台。這是人們希望知道即將發生什麼。

到了 2014 年,李沐等人在 osdi 關於 Parameter Server 的 Paper[2] 中,給出了分散式機器學習一個更好的思路,後面 Petuum 和 DMLC 的 ps-lite 就出來了。Spark 當時的跟進不是很到位,而且本身 RDD 的理念和 PS 也有些衝突。我們當時還給 Spark 提過一個 PR[3],後來也沒被接受,但是引出了 Glint。到現在為止,官方的 Spark 依然以 RDD 為核心來實現機器學習演算法,這是個很大的約束和障礙。

但是在 2015 年,PS 的發展也受到了深度學習的衝擊,隨著 TensorFlow 的出現,大家紛紛轉向了深度學習的框架開發。包括微軟的 DMTK 轉向 CNTK,DMLC 的 PS-Lite 轉向 MXNet……但是實際上,很多公司的數據中心依然有大量 CPU 機器,大量的非深度學習演算法還是需要在大規模數據集上進行分散式訓練,這個領域是有空缺的,深度學習替代不了。

騰訊是 2015 年開始調研和開發 Angel,其目的就是為了填補上面所說的空缺,2016 年 Angel 開始在內部使用,到了 2017 年,Angel 終於開源,整個開源的過程還是很不容易的(詳情可查閱 InfoQ 早前的報道 [4][5])。希望 Angel 能把這塊空白填補上,成為一個專用的分散式機器學習平台,服務更多的公司內外產品,推動人們對更高層次的追求。

最後,未來數據中心,相信依然會有很多數據處理任務。因為無論什麼樣的模型和演算法,其前提都要建立在乾淨的數據之上。脫離了完整的數據預處理流程,談機器學習和人工智慧都是不現實的。但是大部分數據任務,它們的最終出口和末端,也將會是機器學習和人工智慧的任務,因為如果沒有了這個終點,前面的數據處理,也將是毫無意義的,能把控住末端的人,才是最終的勝利者。

InfoQ:大數據平台早期多以離線批處理為主,實時計算作為補充,但是現在越來越多應用場景對數據處理有了高時效性的要求。騰訊大數據平台也歷經了離線計算、實時計算、機器學習三個階段的發展。未來批處理計算和實時流式計算在企業構建 AI 平台的基礎架構中將分別起到什麼作用?

黃明:對一個高科技企業來說,實時計算能力和機器學習能力,都是 AI 能力的基礎,確實是必備的。而且機器學習的訓練(Training)和推理(Inference)兩個階段的重要性會並駕齊驅,實時計算能力的優勢還將進一步輻射到推理場景。但是這並不代表離線批量計算不重要了,尤其是訓練階段,離線批量計算依然是主要場景,原因是:

好的模型需要大量的數據,反覆迭代並達到一定的精確度才能上線,尤其是效果好的深度學習模型,通常需要多張 GPU 卡,訓練較長的時間,才能完成,所以這裡高性能的分散式機器學習平台,必不可少。

有很多的演算法和場景不支持實時更新,本身就存在約束,或者數學證明不成立,或者不支持流式疊加,所以模型還是需要離線訓練好之後,再推送到手機端或者其它終端設端。

在線學習(Online Learning)這個領域,模型的持續優化和更新的非常重要,但是總是需要一個基礎模型,而這個基礎模型的質量,很重要的制約了後續的改進效果。

綜合以上 3 點,離線批量處理,依然會是非常重要和核心的場景,不可替代。但是實時流式計算會快速發展,尤其是在推理階段。主要是因為在深度學習時代:

模型比以前複雜,從淺層模型變成了深度模型,其推理計算不是簡單的代數計算。

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

所以相信在未來 1-2 年,這方面,從硬體到軟體都將會湧現出很多優秀的初創公司。

一個優秀的機器學習平台是如何煉成的

InfoQ:計算是機器學習平台的基礎,但不是全部,在您看來,一個優秀的機器學習平台需要具備哪些特性?

黃明: 在機器學習界,有些人喜歡把調參和訓練的過程,比喻為煉丹, 上升到「道」的層面。而道器相融,在我看來,那煉丹就需要一個好的丹爐了,也就是一個優秀的機器學習平台。它需要能為煉丹提供合適的火候,也就是為創新的模型和演算法提供最佳的運行環境。因此,一個機器學習平台要取得成功,最好具備如下五個特點:

1.精闢的核心抽象

一個機器學習平台,必須有其靈魂,也就是它的核心抽象。當這個核心抽象和它要面對的模型和演算法匹配時,這個平台就成功了一半。如果一開始就錯誤了,例如 SQL 作為平台的核心抽象,那麼對後期的發展制約將會非常明顯,無異於緣木求魚,無論怎麼努力都不會成功的。

Spark 的 RDD 核心抽象,很好的解決了分散式大數據的通用問題;而 TensorFlow 中 Tensor、Mutable Variables 和 Dataflow Graphs 的 3 個核心抽象,高度概括了深度學習中的各個元素。Angel 目前的核心抽象是 PSModel,重點解決了分散式機器學習中 模型切分數據並行模型並行模式非同步 這 3 大問題,基本上可以滿足大部分非深度學習的機器學習需求。

2.充分的性能優化

在核心抽象正確的大前提下,性能是決定速度的關鍵。這就涉及了到平台層對硬體層的理解、調優和封裝。去年我們用 500 台高性能機器,獲得了 TeraSort 比賽的冠軍,也是這種性能優化能力的體現,並將其嫁接到了 Angel 之上。

現在已經不是 MR 的時代走海量低配機器路線。無論是 CPU 機器,還是 GPU 機器,都在往更強更快的方向走。去年比賽我們用的是很高性能的單機,包括 IBM 的 PowerPC,512G 的內存,多個 NVME 的 SSD,RDMA 的 100G 網路……都是業界頂配。

但是光有硬體堆砌是不夠的,平台要對硬體有充分的利用。對於非深度學習,Java 系的莫過於 JVM 的調優了。怎樣更好地使用內存,避免 FullGC 的產生,盡量讓計算不落地,預讀數據流水化處理……這些都是對平台設計的考驗。而對於深度學習,CUDA 和 OpenCL 的性能利用,顯存和內存的數據拷貝,浮點運算和定點運算的選擇,一機多卡的內部通訊……平台都需要進行很多調整,甚至於引入像 XLA 這樣的黑科技。

既然是分散式機器學習平台,肯定會涉及到分散式的拓撲結構。目前來看,比較成熟的分散式拓撲結構依然是 MR、MPI、PS 這 3 者。機器學習中,基本上 MR 已經出局了,MPI 憑藉深度學習捲土重來,和 PS 分庭抗禮,當然也有整體用 PS、局部用 MPI 的做法,這也未嘗不可。在確定網路拓撲之後,就要考慮網路加速了。RDMA 和 NVLINK 這 2 個關鍵技術很值得關注,也是未來的方向。畢竟數據是直接顯存落顯存,還是走兩次內存,差別是可想而知的,再加上不需要 CPU 開銷,對性能帶來的影響還是很可觀的。

所有這些優化,最後暴露給平台用戶的,最好是越簡單越好,平台能夠依據簡單的參數,自動選擇最佳的性能通道,這才是對演算法工程師和數據科學家意義最大的。

3.強大的容錯能力

談到容錯,不得不再提一下 MPI 和 MR。在 Hadoop 時代,海量低配機器理論的盛行,使 MPI 被 MR 打壓得很厲害。但是到了深度學習時代,大家發現這些高配機器和 HPC 也差不了太多,十幾萬一台的機器,可靠性還是很強的,出錯的概率很低,相比之下性能更加重要了,所以 MPI 這種模式又活了過來。

都是從整體來看,規模上去之後,在大型的數據中心,高配版本的 GPU 機器和 T 級別的訓練數據,對容錯性依然需要取得一定的均衡,這種情況下 PS 模式仍是最合適的。整體架構包括網路的通訊性能是最靈活和魯棒的,可以做的容災措施很多,代價也小。最終能夠達到的效果會遠勝於簡單的定期 Checkpoint。

4.靈活的介面設計

正如大家所知,2017 年 Python 已經藉助人工智慧成為了第一編程語言。這在某種程度上,當然歸功於 TensorFlow 和 PyTorch 的神助攻,但是這個趨勢背後有其必然原因。Python 語言的優勢在於語法簡單、上手難度低,而且資源豐富,有充實的數據、可視化和機器學習演算法庫,建立了非常良好的生態環境,同時它又能與 C 無縫結合,藉助 py4j 還能和 Java 結合。基於以上原因,Python 能夠為後台強勁的平台提供友好的介面層,達到簡約而不簡單的效果,也就難怪它會奇軍突起、一枝獨秀了。

但 Python 其實始終只是後台介面的體現,決定整體的,還是後台的介面設計,這時架構師的整體設計能力就非常重要了。核心理念的封裝和延伸、多個機器學習概念的整合、系統的分層和解耦、多個子系統的一致性,這些最終都會體現到介面上,從而決定用戶基於介面編寫演算法的難度。

5.完善的周邊系統

TensorFlow 開源之初,吸引眼球的工具之一,莫過於它的 TensorBoard,驚艷度超越了同期產品。當時還懷疑它是否會部分開源,不開源這個模塊。一個好的機器學習平台還是要在周邊系統的完善上多做些功夫,如果用戶基於你的平台,可以快速地調試和定位 Bug,將會大大增強他們使用的信心,這會對用戶形成很強的吸引力,最終也有助於形成更好的生態 。

InfoQ:在您看來,如何才能高效搭建一個優秀的機器學習平台?

黃明: 先講個大家都知道的小插曲:TensorFlow 的前身是 DistBelief,當時並不太受深度學習界待見,大部分人做深度學習,要麼 Caffe,要麼 Torch,基本忽略 DistBelief,後來 TensorFlow 推出,就很受歡迎。這裡有個時間細節,Hinton 是 2013 年加入 Google 的,而 DistBelief 是 2011 年開始研發的,TensorFlow 是 2015 年發布的,Jeff Dean 由始至終,都在 Google 負責這個項目。作為外人,不太可能知道 Hinton 到底對 TensorFlow 做出了什麼樣的貢獻,但是效果是很明顯的。DistBelief 之前工程性太強,對深度學習的模型本質和演算法友好度不足,Hinton 加入後,第二代的 TensorFlow 的水準遠遠超越第一代的 DistBelief。整個系統的設計,從上層到底層,從名字到周邊,都透露著對深度學習工程師的貼心理解。這也是 TensorFlow 成功的原因。

所以要設計和搭建一個優秀的機器學習平台,在我看來:

首先,要搭建一支工程和演算法模型能力都很強的團隊。整體上這個團隊需要很好的互補能力,要有演算法工程師,也要有系統架構師,大家互相配合。演算法工程師的數學功底和表達能力很重要,而系統架構師的理解能力和快速實現能力很重要。另外最好能將學術界的創新能力和工程界的落地能力結合,才能使系統創新性和可靠性兼得。騰訊的 Angel 項目從一開始,就是北大的博士生和騰訊的工程師聯合主導的項目,雖然遠比不上 Hinton 和 Jeff Dean 這樣的大神級別,但是模式是類似的,這是非常關鍵的一個要素。

其次,需要有大數據作為驅動。之前我們研究過 Petuum,發現有些理念很不錯,但是穩定性非常差,在大數據量下很難跑通,而且搭建也很難。所以在 Angel 的研發過程中,我們始終堅持以大數據為驅動的原則,各種 Tricks 和設計必須以最終壓測通過為原則,並緊密依靠內部業務,通過場景落地來檢驗效果,以此保障系統的設計合理性和可用性。這點對於大公司來說其實沒有太大的難度,只要有正確的理念和合作即可。但是這對於小公司來說則比較困難。所以這也是 BAT 等大企業開源的框架,和實驗室或者初創公司出品的框架相比的優勢之一。

最後,需要保持很快的演進速度。TensorFlow 現在經常被批評介面改動太快。其實最近 Angel 的介面改動也很多,而且有些不能向後兼容。這其中原因很簡單,一個是因為業界的深度學習發展太快,新演算法和模型、技巧層出不窮,作為一個平台必須能快速適應,不進則退。另一個原因是開發的人太多,即便是 Angel 目前 Star 還比較少,但是內部大量的並行開發,很難保證所有的模塊都是合理的,定期重構是消除這些不合理的唯一方法。整體來看,只要是合理的重構,能提升性能,就標識著這個項目還在快速的生長期中,不失為一件好事。

InfoQ:創新工場的王詠剛老師在《為什麼 AI 工程師要懂一點架構》中提到,研究不能只懂演算法,演算法實現不等於問題解決,問題解決不等於現場問題解決,架構知識是工程師進行高效團隊協作的共同語言。能不能談談您對架構能力的看法?

黃明: 王詠剛老師說的要懂「一點」。這個詞在我看來代表了兩個意思:

確實需要懂,不能什麼都不懂。企業里的演算法工程師和數據科學家一定要有動手能力,不能整天只會做研究、寫 Paper,Matlab 和單機版的 Python 試驗一下,自己獨佔一台 GPU 機器玩得很開心,模型做完了不會上線,溝通一到工程部分就聊不下去……其實是處於一種很不好的狀態。這樣的 AI 工程師,除非某方面特彆強或特別突出,否則在企業是很難落地生存的。

不能指望懂太多。畢竟做演算法和做工程的思維重點不一樣,腦迴路也不太一樣,方法論也不一樣。兩方面都精通的人才,有,但是難找。這也是騰訊做 Angel 的初衷和目的,就是讓演算法工程師不需要懂太多底層框架優化,也能輕鬆地寫出高效的、能分散式運行的生產代碼,把一些通用的體系化的系統和架構細節屏蔽掉,這樣才能極大地提高企業生產力。

目前來看,包括 Spark、TensorFlow 這些比較好的框架,也正是因為它們能夠使數據工程師和 AI 工程師,在適當屏蔽掉底層的架構細節後,依然能夠寫出高效的演算法代碼,才取得了成功。

Angel 平台的新變化和展望

InfoQ:通過您之前的投稿,大家對 Angel 平台開源前所做的一系列重構和升級已經有所了解,開源以來想必又有了不少新變化,能否介紹一下近三個月你們對 Angel 平台又做了哪些優化?

黃明:開源以來,Angel 低調的發布了 2 個小版本:1.1.0 和 1.2.0,主要是加入了新的演算法和優化方法,加強了穩定性,細化和完善之前的功能。這 3 個月內的優化,以穩定和性能提升為主。因為 Angel 的定位是工業級可用的平台,所以非常看重大數據量下的穩定性和性能,我們公布的演算法都是生產驗證過。同時我們對 Spark on Angel 的介面進行了反覆的重構,儘可能和 Angel 本身的介面接近一致和復用,這方面的工作到時候會在這次 QCon 大會上重點介紹。

另外根據用戶的反饋,Angel 開發團隊正在開發 2 個大功能,尚未發布,包括:

1.Python 介面:介面優化和重構,以提升易用性。因為之前宣傳的時候,很多用戶的第一個問題,就是有沒有 Python 介面……所以我們不得不把這個作為第一優先順序來滿足。

2.Spark Streaming on Angel:支持在線學習,加入 FTRL 演算法。就像之前說的,實時性也是機器學習必不可少的。那 Angel 本身不做實時這塊,但是支持 Spark on Angel,那通過 Spark Streaming 來接入實時訓練,也是水到渠成的事情,成本也很低,不過對 Angel 的 HA 和內存管理,需要進一步的優化。

這兩個新功能應該在下 2 個版本就能夠和大家見面了。至於深度學習的支持,其實也在進行了,但是有些難度,會晚點推出。

InfoQ:開源後這段時間,Angel 平台的推廣情況如何?有沒有什麼印象特別深刻的問題反饋?

黃明: Angel 開源以來,其實我們並沒有太刻意推廣,包括我們在 github 上 Public 的第一天(6 月 16 日)都沒有準備做任何 PR,不過由於之前的影響力,最終各大媒體都報道了。但是騰訊 TOSA(開源委員會)最近一年對開源項目的扶持非常大,態度也很 Open,所以我們主要是借著騰訊開源的力量在做這個事情,發了幾篇文章。目前整體的 Star 數接近 2.5k,我們比較欣慰的是 Fork 和 Star 數的比例比較高的,看得出很多人還是對項目很有興趣的。整體上,我們還是按照自己之前定好的節奏,小步快跑地進行新功能和版本的研發。

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

  1. 華為的一位工程師,項目剛發布不久就提交了一個比較大的 PR,幫忙把 Netty 版本升級了,非常給力。後來他想把 GraphX 集成進來,但是我覺得這個方向不太對,就 Reject 掉了,不太好意思。
  2. 微軟 LightBGM 的開發者之一提了個 Issue,和 Angel 開發 GBDT 的同學互動了 10 個來回左右,詳細地討論了機器學習任務中 MPI 和 PS 的網路通訊開銷到底誰更小的問題,進行了很有意思的學術互動。
  3. 海外的一個用戶主動幫忙翻譯 Angel 的文檔,之前為了開源,團隊花了快 1 個月的時間邊寫文檔邊改 Bug,所有文檔加起來應該有 100 篇左右,翻譯工作量巨大。但現在基本全部都翻譯完了。

這些都讓我們體會到了開源的力量和益處,一個平台在開源之後,會受到來自全球的關注,只要你用心經營,並保持良好的功能和性能,能幫助到用戶,用戶就會主動幫你做很多事情。而你的視野,也會變得更加的開闊。很多外部用戶的需求非常客觀到位,正是他們推動著我們往前走。

InfoQ:開源三個月後再看 Angel,與一眾機器學習平台相比(比如 Spark、Petuum、GraphLab、TensorFlow),Angel 的優勢是什麼?Angel 的什麼特性最能吸引機器學習開發者?

黃明:首先目前其實 Petuum、GraphLab 都不開源,沒有可比性。Angel 在研發初期借鑒參考過 Petuum 的一些思路,但是後來實驗中發現,Petuum 在可靠性和穩定性上都達不到工業可用級別,所以基本上也都推倒重做了。

和 Spark 比的話,目前 Spark 的重心還是在 SparkSQL 上,這從每個版本的 PR 數就可以看出來,MLLib 的比例很小。這在某種程度上也是因為 Spark 的 RDD 本質局限導致的。相比之下,Angel 重點是機器學習演算法,而基於 PSModel 的編程模型可以讓各種機器學習的優化和 Tricks 都很方便地實現,對於演算法工程師非常友好。伴隨著 Python 介面的提供,這個優勢將會變得更加明顯。

TensorFlow 目前在深度學習上的地位還是遙遙領先,從 7w 個 Star 數就可略見一斑。但是在多機多卡的性能上 TensorFlow 的 PS 做得並不好,最近發布的最新版本還在嘗試走 MPI 路線,這是業界難題之一。Angel 目前不會獨立做一套新的深度學習框架去和 TensorFlow 競爭,而是會發揮自身優勢,把 PS-Service 做好做極致,來加速並行訓練並形成互補。

關於傳統機器學習演算法的生命周期問題,我覺得不用太擔心。很重要的一點是傳統機器學習演算法比深度學習更貼近 problem solving 而非模擬智能。深度網路模擬大腦結構,所以在人類擅長的智能領域優於傳統演算法,比如視覺聽覺,各種對外界信號的理解……但是還有一些非智能領域,人大腦展現出各種認知缺陷(cognitive deficit),比如對模式是隨機還是真實的判斷,對概率的認知,對風險評估等等。這些方面傳統機器學習方法仍然更有效,不需要通過大量的野蠻暴力嘗試,就能得到更好的結論。也許以後會有所改變,但目前傳統思路的機器學習還是有必要的,在很多場合簡單有用,包括騰訊的很多場景對此還是有剛需,所以 Angel 還是要把它經營好。

整體上來看,目前 Angel 是業界,包括國內和國外,比較成熟的開源參數伺服器框架,能夠在十億級別的維度(其實百億也可以,只不過沒生產完全驗證過,所以不這樣宣傳)、T 級別大小的樣本量規模下,開發和運行通用的機器學習演算法的平台。另外值得一提的是,Angel 的演算法開發難度也比較低,有一位開源貢獻者很輕鬆地在 Angel 上實現了阿里巴巴用於 CTR 預估的 MLR 演算法,並貢獻給 Angel 社區,這正是 Angel 團隊所期待的。

InfoQ:您認為目前機器學習平台還存在哪些問題和難點?未來改進的重點是什麼?

黃明:目前機器學習平台還存在 3 個大問題:算力的水平擴展、模型的高效壓縮、快速的推理能力

機器學習平台最大的難題還是算力。性能再強,介面再好用,底層優化再極致,單機能力終有極限,需要能水平擴展,而深度學習大規模通用的多機多卡的分散式方案,目前依然是個難題,即便 TensorFlow 也沒解決得很好。這也是騰訊致力於 Angel 系統的原因,希望無論是 CPU 還是 GPU,我們都能提供高性能分散式機器學習方案。

除此之外,利用龐大的集群規模,長時間訓練出來的精細模型,其大小一般比較大,像 Angel 訓練出來的模型一般都會上百 G,而深度學習的模型,多數也到 G 級別。這麼大的模型,需要壓縮之後才能給終端使用,如何在盡量減少精度損失的情況下,最大化的壓縮模型,也是平台需要考慮的。

最後一個是快速的推理能力。無論是終端推理(手機端,無人駕駛車……),還是服務端推理(廣告,推薦……),要求都是一樣的,要儘可能速度快和高吞吐量。這時如何合理地利用和設計流式實時系統,來快速接入數據進行推理,也是平台需要考量的點。

在未來一年裡,相信大部分的機器學習框架,包括深度學習框架,都會圍繞著上述幾個問題重點發力。這也是 Angel 需要面對的挑戰和機遇。

採訪嘉賓介紹Andymhuang(黃明),騰訊 T4 專家,Spark 早期的研究者和佈道者,對分散式計算和機器學習,有獨到的經驗和研究。目前於數據平台部擔任海量計算組 Leader,負責構建大規模分散式計算和機器學習平台,助力騰訊各大數據和機器學習業務快速發展。

附上論文地址以及 AI 前線之前的報道:

[1] usenix.org/system/files

[2] cs.cmu.edu/~dga/papers/

[3] issues.apache.org/jira/

[4] 在 Angel 開源前的這半年,我們對架構和性能做了哪些重構和升級?

[5] 騰訊大數據已將第三代高性能計算平台 Angel 代碼在 Github 上開放

原文鏈接:道器相融,論一個優秀機器學習平台的自我修養

全文完

AI前線提供最新最全AI領域技術資訊、一線業界實踐案例、搜羅整理業界技術分享乾貨、最新AI論文解讀。歡迎關注我們的專欄:AI前線


推薦閱讀:

機器學習系列-SVD篇
李宏毅機器學習2016 第十講 為什麼是「深度」學習

TAG:机器学习 | 人工智能 | 大数据 |