百度副總裁侯震宇:面向 AI 的基礎架構建設
全球 AI 市場正在快速增長,據權威機構調查,到 2020 年,全球 AI 市場規模將達到 6800 億美元。人工智慧給不同行業帶來無數機會的同時,也給企業基礎架構帶來了巨大的變化和挑戰。AI 時代對基礎架構的要求與從前有何不同?面向 AI 的基礎架構應該怎麼做?本文整理自百度副總裁侯震宇在 QCon 全球軟體開發大會(北京站)2019 上的主題演講,他在演講中分享了百度在 AI 基礎架構方面進行的嘗試和探索。
非常高興能夠在 QCon 十週年之際來到這裡,跟大家分享百度在 AI 方面都做了哪些基礎性工作。就如剛才主持人所說,大家都相信 AI 是一個巨大的浪潮、AI 是又一次工業革命、AI 會給整個產業鏈賦能很多很多,但是 AI 的基礎架構本身應該怎麼做,這是我今天主要想跟大家分享的。
今天分享的主要內容包括:AI 對基礎架構的挑戰、面向 AI 的基礎架構方案,特別是在計算層、連線層我們正在做的一些工作。
AI 對基礎架構的挑戰
AI 是一個巨大的浪潮,我們通過一些權威機構的調研可以看到,全球 AI 市場巨大,而且增速非常非常快。從 2015 開始到 2020 年,全球 AI 市場規模將達到 6800 億美元,其中中國市場的增長非常快,全球市場和中國市場的增長曲線差不多,但其實中國的 AI 市場沒有那麼大,到 2020 年預計將達到 710 億人民幣。中國仍然是全球第二大潛在的 AI 市場。
為什麼會有這樣的差別呢?我們可以看到,中國的 2C 網際網路幾大巨頭,其實與美國那邊沒有什麼明顯的差距,或者基本是站在同一條線上。但是我們整個傳統行業,包括工業現代化方面,與世界先進水平還有很大的差距。現在各大公司都在大談產業網際網路,AI 帶動網際網路行業技術創新、AI 賦能傳統產業,這是我們接下來面臨的巨大機遇、也是我們面臨的巨大挑戰。
這是我們能夠看得到的,AI 在幾大領域上存在的機會,每個市場都非常巨大。比如在自動駕駛或者智慧交通領域,大家都知道百度在自動駕駛方面在全球一直是領先的,百度 Apollo 已成為目前全球涵蓋產業最為豐富、最為全面的自動駕駛平臺,我們跟眾多的車廠都展開了合作。同時,我們在車路協同、智慧紅綠燈等方面也做了很多工作,這是 AI 在智慧交通或者說智慧駕駛方面的應用。如果自動駕駛未來能夠跑在更多城市道路上,或者能夠應用到更多工業場景,比如物流、農業等,那麼這個市場其實是非常巨大的。
傳統的安防領域接下來也需要大量的 AI 能力,使整體安防效果大幅提升。當然還有 AI 家居、智慧生活,比如百度的小度音箱,我們能夠將小度音箱當作人工助手,對它提問題,讓它去操作家中的智慧裝置,小度音箱這一年來的增長也非常快。另外還有 AI+ 教育,如智慧課堂、AR 教育;AI+ 醫療層面,百度的智慧小程式去年也推出了智慧分診功能,和北大醫院在智慧分診小程式上也有合作。
剛才談到的這些業務場景,我們要如何去支援呢?百度構建了一套體系完整、功能全面的人工智慧技術開放平臺——百度大腦核心技術及開放平臺,百度大腦已經對外開放了 171 項 AI 能力,從最下層的框架到上層的平臺,包含百度訓練出來的各種 AI 能力,包括在端上的各種產品。我們可以幫助眾多的傳統企業、幫助眾多開發者迅速利用這些在百度內部已經驗證過的 AI 能力和技術,讓應用或者產品迅速插上 AI 的翅膀。
AI 給基礎架構帶來了巨大的變化和挑戰,我們需要從端到端來提供 AI 計算能力。就如剛剛胡喜提到的,這是一個非常好的需要整個體系架構發生大變化的時代,我非常認同。整個 AI 的能力,從最開始的資料收集,前端到後端,到訓練的整個過程,然後迭代,包括訓練過程中前向計算到後向計算與引數更新。整個調參過程中包含了大量的計算、大量的資料處理,包括大量原始資料,到處理過程中上億的特徵資料,其實對資料的訪問要求非常高,本質上最起碼是一個非常高的 IO 密集的計算。
以前所謂的大資料時代,當時資料處理的特點是需要用海量資料來幫助計算,而現在在 AI 這個時代,我們不僅要處理海量資料。現在和以前對儲存系統、計算系統的要求是非常不一樣的,以前可能更多核心要素追求是整個系統的綜合能力,而現在核心在於包括小檔案的訪問、小檔案的儲存,所以天生是一個 IO 密集型的計算。
同時現在有大量的 AI 訓練任務,這些任務的迭代速度或者迴圈訓練的次數非常多,需要跨節點、跨系統之間高速運轉,所以當一張卡或者一臺機器無法處理的時候,會從一個純粹的 IO 密集型計算,轉化成通訊密集型計算,這是一個非常有意思的話題。幾乎所有做系統的人都知道,我們做系統的時候很大一部分工作要考慮系統瓶頸的轉化,從而使整個系統更加平滑。
為什麼有很多平臺用了非常昂貴的 GPU 卡,但是這些 GPU 卡使用率並不高,同時我們卻有大量的任務在等待?如果仔細去研究一下,很多時候其實是 GPU 空閒但資料處於通訊的狀態。
另外,AI 推理當前更多直接在端側裝置上進行,因此會有大吞吐和低延時的要求,而低延時是一個典型的通訊領域問題,因此這對於整體技術或者系統的要求,相交之前的大資料時代也發生了變化。
面向 AI 的基礎架構方案
伴隨著 AI 時代,5G 馬上也要來臨了。5G 真正推廣應用之後,我們會擁有更大的接入頻寬,就會有更多資料流進入到資料中心,也會有更多的 AI 能力下放到端側和邊緣側。在 AI+5G 時代,計算是無處不在的,計算是所有系統的靈魂,計算會發生在資料中心、Cloud,也會發生在邊緣,發生在我們的手機或者是說智慧音箱裡面,或者在無人車裡面等等。所以這個架構是我們接下來要重點研究的計算的方向,計算會根據在這三個地方不同的功耗、價格以及需求帶來計算的連線。
按照剛才所謂的 Device、Edge、Cloud 場景區分,我們在晶片層面上也應該考慮通過軟體來定義晶片應該如何為 AI 加速。現在大量的 AI 晶片更多的都是這樣的晶片,這就是我們現在整個 AI 的體系結構,從晶片的層面到關注到 5G 給我們帶來的整體變化。
後面晶片的互聯,我們要想訓練一個超大模型,就需要有多張卡,同時在晶片層面上我們再高一層或者大一層。系統層面、節點層面的互聯,資料中心的內容在幾年前如果達到萬兆在當時可能已經覺得很快了。但接下來面臨 AI 高密度的通訊計算,我們需要百 G 網路來支援我們更多的節點互聯,從而實現整個計算的通訊。
大家可以看到,往往新型的互聯技術或者新型通訊技術巨大的變革,可以給我們的體系結構帶來巨大的變革。我們設計中存在的方方面面的問題會被新型的互聯技術拉寬,當頻寬變得更大的時候,我們軟體的設計就應該不同,體系結構就應該變得不同。
剛才胡喜總談到,做技術的人都應該有情懷,我高度認同這一點,特別是在座偏基礎研究、偏基礎工程的工程師,我們必須要有一種情懷,要知道技術能夠改變世界,要知道整個大的技術浪潮已經來臨,需要通過我們自己的努力把技術實現出來,來支撐我們走下去。我們做基礎架構的人不應該只看到在市面上各種應用的孵化,而是應該看到技術的變化,以及它可能帶來的問題。
無處不在的計算
計算首先發生在晶片層,從基礎的計算單元進入到整個機器,再進入到機房 Cloud,再進入到整個邊緣端大的計算裡面,計算無處不在。
去年百度釋出了崑崙晶片,在 D—E—C 三端上,我們對於晶片的效能指標會有不同的要求。不能指望一個手機或者一個智慧音箱,能夠做到像資料中心這麼好的基礎效能。根據實際的場景和應用的特點,我們會把考慮如何把計算的能力在 Cloud、在 APP 上最好地發揮出來,這其中很重要的一環是要基於我們自己打造的晶片。百度既有 AI 晶片,也有 AI 框架和各種各樣的 AI 解決方案,我們提供的是整個全棧式的服務。
晶片現在很火,AI 計算需要更多的資料、需要更大的計算力,我們認為這些都是在一些特定領域上的。我們現在更加關注的是在特定領域的場景裡面,體系架構有什麼變化(Domain Specific Architecture,DSA),百度崑崙晶片就是在這個大的思考下設計出來的。
這是我們整個 AI 的系統,其實這下面還缺少剛剛談到晶片層。再往上是我們自研的 X-MAN。我們把很多 CPU 卡插到一個 GPU 裡面,來實現巨大的 AI 計算能力,把它通過網線再連到普通的機器裡面,為 AI 訓練加速,它能夠使更大規模的模擬訓練成為可能。另外,它在整體的成本上是更優的。我們去年實現了 8 小時上線一萬臺機器的世界紀錄,8 小時一萬臺機器其實就是基於百度整個機櫃達到 30 個節點,普通伺服器插網線 8 小時都插不了 1 萬臺。
除了加速還有高效能儲存,這些加上機房構成了我們整體的基礎設施。
再往上是效能加速。我前面其實也談到了,現在很多人買非常昂貴的 GPU 卡,但是發現運維上不去,這一塊我們有通訊優化和整體的效能優化。再往上是叢集層面,我們可以排程大量的機器,在這上面實現智慧排程、資源分配。另外我們也做了 Auto Compiler, 現在是體系結構的黃金時代 ,我們需要更多有情懷的技術人去研究、去做底層技術,包括體系結構、交易系統這些可能最底層的技術,才可能實現高智慧的 AI 計算,第一是高效,第二可能才能使我們更大規模的模型成為可能。
基於剛才談到的晶片、基礎設施、優化基礎實驗平臺,再往上就是百度的 PaddlePaddle 深度學習平臺。再往上就是我們的 AI 業務,包括視覺、音樂等等多樣化的 AI 負載跟 PaddlePaddle 都是分不開的。
AI 的變化激發了我們對整個基礎架構進行重新思考和設計。早前的儲存系統已經無法很好地滿足我們的需求,這是第一點。第二點,現在有更多新型裝置出現了。百度可能是最早的幾家,我不敢說是最早的一家,至少是最早的幾家用這個技術,我第一次接觸到是 2006 年,我們很快在搜尋那邊就開始使用 SSD 100 不同的介面去替代我們產品的 SaaS 平臺。現在其實像 SSD 的效能和價格又有區分,針對不同的硬體,我們會有相應的網際網路技術,可以把整個大的儲存做成一個儲存模式,真正做到計算和儲存更好地分離開,這樣儲存資源的效率會變得更高。當然,一旦儲存和計算分離開,我們就需要更高速的互聯。我們希望 NVMe 這些節點能夠互聯起來,下面是我們硬體上的架構。
另外,我們在軟體層面上,在這些硬體的基礎之上也要做分層,我們會在上面做基本的塊來接管物理裝置,讓物理裝置從軟體上全部遮蔽掉。再往上可以做共享儲存系統,包括基於高速核心來處理小檔案,或者說冷備等等,根據我們對計算成本的不同要求,我們會對儲存系統進行整體優化。
PaddlePaddle 百度自研的深度學習框架,上圖是它的整體架構。我們上週還公佈了一個 1 億人民幣的基金,支援整個 PaddlePaddle 的運營和推廣。PaddlePaddle 支援訓練和開發,這是 AI 經典的兩大塊,包括訓練層剛剛談到的超大規模訓練,以及到預測層。另外,除了執行側,PaddlePaddle 也提供了非常好的面向動態圖、靜態圖開發的元件。在 AI 時代,不止是加速器、計算資源非常貴,AI 工程師也很貴,所以我們希望更好地應用計算資源,讓工程師發揮出更大的價值,因此我們也提供了更多的工具。
在基礎框架層面上,我們有大量的已經內嵌在 PaddlePaddle 框架裡面的模型庫,包括 PaddleRec、PaddleNLP、PaddleCV 等,其中包括很多百度內部正在使用的模型都隨著 PaddlePaddle 全部開放出來。再往上我們有面向遷移學習、強化學習等方向的工具軟體,包括 EDL 等,這些工具操作非常簡單,可以讓大家更低門檻的使用機器學習技術。
再往上我們有整套 AI 的開放平臺,包括 EasyDL 零基礎定製化訓練和服務平臺和 AI Studio 一站式開發平臺。
計算無處不在,從晶片再到 Cloud 叢集,再到邊緣計算。邊緣計算的三大驅動因素包括:低延時、資料本地化 / 隱私、計算多維度化。現在更多的計算逐步在地點上發生變化,計算更多發生在邊緣節點上,而不只是發生在最核心的中央處理器 CPU 上面,也會發生在往外的加速節點上,甚至是智慧網絡卡上,所以整個計算會越來越分散,需要良好的能力去支撐,從而讓無處不在的支撐變得更加高效,但是同時這些計算又能夠形成我們整個大的業務主流。
無處不在的連線
剛剛談到計算無處不在,但是其實真正可能推動巨大變革的往往是互聯技術,互聯使計算連線起來實現更大的計算力,能夠使資料流動產生很多的價值。所以其實連線也無處不在,這個連線既涉及到晶片間的互聯,也涉及到系統間的互聯,也涉及到資料中心內部的互聯、資料外部的互聯,也包括終端、5G 邊緣的互聯。
在晶片及系統內部的互聯,我們會使用 NVLink、PCIe 或 CCIX 等。此外,不久以前,百度宣佈同微軟、Facebook 展開合作,聯合制定 OAM (OCP Accelerator Module) 標準。該標準用於指導 AI 硬體加速模組和系統設計,也是用以實現更多晶片卡之間的互聯。除了晶片互聯,我們在整個 Cloud 資料內部,會將基礎資源、計算資源等全部分開,實現 CPU+Memory 池,實現高速的儲存、廉價的儲存等更多儲存池,實現節點平臺、機櫃、Pod 整個的互通互聯,以及必要的安全,最終實現整個資源的共享,使整個計算能力更大。這就是我們在互聯方面正在做的一些事情。
百度內部整個基礎網路架構,從機櫃到資料中心到 Spine 這個層面的交換機等,實現了資料中心內部的高速互聯、資料中心無收斂點的互聯。同時在基礎網路層面上,我們會將剛才談到的這些加速能力和技術結合進來,使我們基礎設施最底層的網路能夠面向更大型的計算。
在 5G 和 AI 相結合的時代,計算無處不在,連線也無處不在。上圖展示的是一個時延圈,從資料中心到各種場景。IOT、手機、智慧家居等到實際應用的通訊延遲通常小於 2 毫秒;而運營商,比如 5G 裡 MEC 的這些邊緣節點,一般到實際應用的延遲在 20 毫秒內;大型的資料中心到終端的使用者之間的通訊延遲則一般在 20-100 或者 200 毫秒,超過 100 毫秒以上可能就無法特別好地為使用者提供線上服務了。針對這麼大的時延圈我們會採用不同的通訊技術,比如中心側我們可能有 MEC 的計算節點,在 IoT 有 NBLot 等技術,能夠讓我們更好地實現通訊,支援智慧城市、智慧家居等應用場景。
通過時延圈來佈局整體的 AI 計算力的分佈,通過在內部、在邊緣節點上的 AI 加速能力,來使我們整體的 AI 計算力變得更大。現在其實是一個拼計算能力的時代,算力為王,但是我們也一定要看時延圈來決定。
以上這些是百度在面向 5G 大的浪潮之下,為 AI 計算提供的一些基礎設施,我們正在做和我們計劃做的工作。
我們相信,未來整個計算無處不在,互聯無處不在,通過我們的工作也可以讓 AI 無處不在。而我們要做的就是讓 AI 的基礎架構“無”影隨行,所謂“無”指的是我們希望所有的服務都以平臺的形式、雲的形式提供給大家,大家不需要關注下面到底是什麼樣的技術,而用一個更加簡單、更加易用的介面來實現百度 AI 能力的普惠。
演講嘉賓介紹
侯震宇,百度副總裁,負責基礎技術體系工程團隊的管理工作。侯震宇是百度貼吧、知道、空間、網盤、基礎架構部等業務的奠基工程師之一。在 2019 年初的春晚活動中,侯震宇帶領團隊實現了中國網際網路春晚活動的首次順暢運營。
在即將於 5 月 25~28 日舉行的 QCon 廣州 2019,將有更多來自螞蟻金服的專家帶來分享。 戳這裡 ,瞭解更多詳情!