5 月 20 日,阿里巴巴副總裁、阿里雲端計算平臺負責人賈揚清在媒體溝通會做了《科技創新時代的數字力量》演講,本文對其演講內容做了精簡編輯,以饗讀者。01 科技創新時代的數字力量 我們先來認識一家建築公司。 說建築公司的原因是,每一次工業革命往前升級、向前發展的背後,最重要的其實是現有行業怎麼革新自己的生產力。建築行業是非常典型的一個例子,今天說了那麼多大資料和 AI,到底能給他們帶來什麼樣的價值? 這家公司叫中建三局一公司,是國家基建中的核心力量,一直以建築速度跟效率著稱。 30 多年以前,1985 年,就以「三天一層樓」建造了深圳第一座超高層地標性建築、當時「中國高樓之最」——深圳國貿大廈。 1996 年,又以「九天四個結構層」的速度締造了當時亞洲第一、世界第四高樓——深圳地王大廈,將中國建築業從一般超高層推向可與世界摩天大樓相媲美的領先水平。 放眼全國乃至世界,都有他們的作品,承建了非常多我們耳熟能詳的標杆性建築 :國家體育館(鳥巢)、央視新址 CCTV 大樓…… 除了地標性建築,他們還建了機場、地鐵、高速、醫院(雷神山醫院)、學校(清華美院)、辦公大樓(阿里騰訊新浪移動等辦公大樓)…… 中建三局一公司高效的建築能力,給我們帶來非常大的價值。 幾十年過去了,建築設計變得越來越新,磚瓦結構變成了鋼筋混凝土結構,中建三局一公司對建築行業的理解也一直在向前發展。30 多年前,他們依靠人與時間的賽跑;如今,他們依靠資料的流動。去年,中建三局一公司聯手阿里雲,共同建設資料中臺。 造一座高樓,有非常多的物質在流轉,從一粒沙子到磚頭、玻璃、鋼筋、螺絲、各種工程機械,怎麼讓它們更高效地流轉起來,是建築公司都會遇到的問題。不僅如此,他們還需要考慮怎樣提升建造工藝、提升創新的建築方法,以及透過數字化能力,來管理建築過程、建築物料等一系列問題。 阿里雲基於一站式資料開發和綜合治理平臺 DataWorks 打造的資料中臺,為中建三局一公司建設了一個「數字孿生體」,用資料和演算法來預測,何時補沙子、何時調配工程機械,以及做其他運營管理方面的事情。 今天,我們看到,中國整個建築市場有 10 萬家建築公司,除了中建三局一公司這種大型的標杆企業,還有很多中小型的建築公司,從業人員共有 5000 餘萬。幫助這些中小型企業從傳統的、小作坊式的、刀耕火種的模式變成像中建三局一公司那樣,是阿里雲希望在資料方面做的一些事情。 我們相信把阿里雲資料中臺建設的核心能力,和各行各業的專業知識結合起來之後,可以幫助更多企業,就像中建三局一公司一樣實現數字化轉型。 02 「一體兩面」,助力企業用好資料 雖然每個人都在提大資料,每個人也都覺得自己在用大資料,但其實誰也不知道大資料到底該怎麼用。 阿里雲打造了一系列將資料用起來的「武器」,希望透過雲上資料綜合治理及智慧化,賦予企業數字力量。 企業經常面臨的挑戰是,建了很多零碎的資料系統,表格、Word、照片、影片等異構資料存在 Excel、資料倉儲等不同的資料庫裡,最後成為「資料孤島」。 因此,企業在建設資料中臺時,經常會在技術、業務、組織三方面遇到挑戰。技術上,資料怎麼打通;業務上,不同口徑的資料如何總結;組織上,怎麼把存放在不同地點的資料統一管理起來。 商業公司經常遇到的一個挑戰是——算收入會面臨財務、證監會等各種各樣的不同口徑,運營同學需要去看不同情況的營業額,這些最後都會下沉到一句 SQL 語言或者一個資料任務上。這些任務如果不一致,最後就會出現資料的不一致,結果的不一致,口徑的不一致,都是一系列問題。 從技術角度來講,我們逐漸構建了一套完整的資料處理體系,叫「一體兩面」。「一體」是指一體化的資料開發和資料綜合治理平臺 DataWorks,各種各樣的行業應用都基於這個平臺搭建。 DataWorks 迄今為止已經累積了約 8 萬名使用者。每天阿里大概有 1/4 的員工在 DataWorks 上做資料開發和應用。 一體化的開發平臺下,有兩種不同的資料組織形態——資料倉儲和資料湖,即所謂「兩面」。 「資料倉儲」的概念很早以前就有了,可以將其理解為一個巨大的 Excel 表格或者一堆巨大的 Excel 表格。阿里很早以前就建了自己的資料倉儲 MaxCompute,它是「飛天」的重要組成部分之一,已經沉澱了非常好的大規模資料倉儲能力 。 在 MaxCompute 的演進過程中,對資料進行實時分析的需求誕生了。比方說,雙 11 時,促銷策略要根據使用者的購買行為進行及時調整。於是,幾年前,我們開發了一套實時計算引擎 Flink。Flink 最開始是由德國一個團隊做的,現在阿里巴巴和德國團隊一起,繼續把 Flink 作為一個開源的流計算實施標準往前推進。 以前,我們只是對資料進行總結,出報表;但越來越多的資料開始需要實時的服務,比方說「猜你喜歡」,既需要實時化,也需要對使用者的歷史行為做實時分析,然後迅速對相關產品做服務。 前幾年開始,我們在「T+1」計算的離線數倉基礎上,做了實時數倉 + 服務一體化的應用——互動式分析產品 Hologres,它在雙 11 支撐了非常多的實時決策。淘寶、天貓的決策層可以透過 Hologres 實時看到每一個商品品類在每一個地區的實時的銷售額情況,當發現銷售額 / 觸達率與預期不一致時,可以及時調整策略。 隨著異構資料越來越多,在我們做各種服務的時候,不再是表格那麼精準的資料呈現形式,可能是像日誌(log)的形式,這些圖片、影片、語音等資料形態對傳統的資料倉儲來說就不是那麼合適了。記得我們 2013 年在谷歌剛開始做機器學習的時候,把一堆圖片存在了資料倉儲裡,結果發現,所有圖片都是一堆字串,看不見圖片的內容。 於是,「資料湖」的概念興起了。先不著急把資料都存成 Excel 表格,該是 Word 就是 Word,該是圖片就是圖片,該是影片就是影片,不管資料來源和格式,先把這些資料都放到一個湖裡。 但業務資料,有些存在湖裡,有些存在倉裡,怎麼合起來統一做分析和處理?去年,我們提出「湖倉一體」,在傳統的資料湖和資料倉儲上建一個資料中臺。這對於創新業務來說,沒什麼問題。但現有非常多的企業,本身已經有資料倉儲了,那如何把已有的資源利用起來? 我們在技術側做了很多工作。透過最底層的儲存資源、計算資源的打通,讓大家能夠更加容易地從資料倉儲的角度存取資料湖裡的資訊,或者在資料湖上構建一系列開源引擎,同時分析資料湖和資料倉儲裡的資料。 03 AI 加持,挖掘資料的價值,變「成本」為「資產」 管好資料的同時,我們發現,資料量越來越大,資料的單位價值越來越低。 因此,我們開始思考,怎麼挖掘資料的價值,幫助企業創新業務、提高效率,將資料從成本變成資產。 AI 可以讓資料更加智慧。AI 演算法不只能做資料的總結,還可以做分析和決策。 但並不是所有的企業都具備將 AI 變為生產力的能力,為自己所用。Gartner 的調查研究發現,只有 53% 的專案能夠從人工智慧(AI)原型轉化為生產。AI 要成為企業生產力,就必須以工程化的技術來解決模型開發、部署、管理、預測、推理等全鏈路生命週期管理的問題。 我們總結發現,AI 工程化領域有三大亟待推進的事情:資料和算力的雲原生化,排程和程式設計正規化的規模化,開發和服務的標準化普惠化。第一,從供給角度看,AI 工程化是資料和算力的雲原生化。 智慧時代是靠資料和算力來驅動的。無論是計算機視覺、自然語言處理,還是其他的 AI 系統,都與資料量密不可分。 上世紀九十年代,手寫體郵政編碼已經在用 AI 識別,那時用來訓練 AI 模型的資料量僅有 10M 左右。阿里與清華大學不久前合作釋出的超大規模中文多模態預訓練模型 M6,是用 2TB 影像、300GB 語料資料預訓練而成的。今天,在產業界,訓練一個 AI 模型需要的資料量通常會更大。 OpenAI 曾做過一個統計,從 2012 年做出 AlexNet,到 2018 年 DeepMind 做出 AlphaGo Zero,對於計算量的需求增長了約 30 萬倍。 根據摩爾定律,每 18 個月,CPU 單核的計算能力就會增長一倍。但 2008 年前後,摩爾定律就開始「失效」,算力的增速開始逐漸變緩。 可以看到,隨著資料量越來越大,模型變得越來越精準、高效且複雜,無論是在資料還是計算方面,都需要有一個更大規模、更大體量的底座,來支撐上層 AI 的需求。而云計算能夠在資料和算力上提供更強的支援。 第二,從核心技術的角度看,AI 工程化是排程和程式設計正規化的規模化。 因為大規模、大體量底座的背後,往往面臨兩個成本問題: 一個是資源的成本。訓練一個大模型,往往需要一堆 GPU 來做大規模計算。英偉達最新的 DGX-2,售價大概在一臺 20 萬美元,真的貴。OpenAI 訓練模型大概需要 512 塊 GPU、64 臺機器。如果搭一個專門用來做大規模訓練的叢集,可能是小一個億的成本。這個時候,如果跑去跟公司、研究院或者跟政府說,我需要一個億,就是為了搭一個叢集,這個叢集就是為了訓練一個模型,這個模型拿來還不知道怎麼用,我得先訓練出來看看。這顯然是很麻煩的事情。 管理大規模的叢集和大規模的系統,需要用到非常典型的「削峰填谷」方法,考驗我們是否能夠把 AI 計算任務掰開、揉碎,變成一小塊一小塊的任務,部署在資源空閒的機器上。這背後是一個巨大的訓練任務,AI 工程師需要做非常多的工作。我們在訓練 M6 模型的時候沒有買新的機器,就是在現有的生產叢集上面,利用「潮汐效應」,把計算量提出來,用來訓練模型。 另一個是人的成本。AI 沒有 SQL 那麼清晰乾淨的、以目標導向的框架,比如,寫一句 SQL,就能驅動 MaxCompute 等計算引擎拉一堆機器來做運算;AI 也不像線上服務一樣,可以實現非常簡單的、一臺機器和幾臺機器的簡單複製,機器間不需要互動,操作簡單。 AI 程式要在各種各樣的機器、資源之間(GPU 與 GPU 間,或 GPU 與 CPU 間)搗騰資料,要把一個演算法(一個數學公式)放到引數伺服器上,告訴機器 A 何時與機器 B 說話,機器 B 何時與機器 C 說話,並且最好是快一點。於是,AI 工程師就得寫一堆無比複雜、很多人看不懂的程式碼。 AI 工程師都聽說過資料並行、模型並行等概念,這些概念下需要有一個相對簡單的軟體程式設計正規化,讓我們更加容易把叢集以及計算的需求切片,把 Computer 跟 Communication 比較好地分配。但是程式設計正規化今天還沒有達到一個讓彼此都很好理解的程度。因此,人力成本非常高。 也就是說,在大量的資料和算力基礎上,一個非常明顯的需求是如何更好地做到資源排程和資源調配,以及如何讓工程師更容易撰寫分散式程式設計正規化,特別是如何來規模化,這是 AI 工程化的第二個體現。 我們設計了一個相對簡單、乾淨的程式設計框架 Whale,讓開發者能夠更容易地從單機的程式設計正規化跳到分散式的程式設計正規化。比如,只需告訴 Whale,將模型分為 4 個 stage,Whale 就會自動把這些 stage 放到不同的機器上去做運算。 第三,從需求或者出口的角度看,AI 工程化是開發和服務的標準化、普惠化。 AI 做了非常多有意思的模型,為了使這些模型能夠更加緊密地應用在實際場景中,還需要很多工作。但並不是每個人都有時間來學習 AI 如何建模,如何訓練和部署等。 所以,我們一直在思考,如何讓大家更容易上手這些高大上的 AI 技術。
阿里雲機器學習平臺 PAI 團隊,基於阿里雲 IaaS 產品,在雲上構建了一個完整的 AI 開發全生命週期的管理體系,從最開始寫模型,到訓練模型,到部署模型。其中,Studio 平臺提供視覺化建模,DLC 平臺(Deep Learning Container)提供雲原生一站式的深度學習訓練,DSW 平臺(Data Science Workshop)提供互動式建模, EAS 平臺(Elastic Algorithm Service )提供更簡易、省心的模型推理服務。我們的目標是,希望 AI 工程師能在幾分鐘之內就開始寫第一行 AI 程式碼。 迄今為止,阿里雲透過大資料、AI 平臺已經服務了各行各業的客戶,寶鋼、三一集團、四川農信、太平洋保險、小紅書、VIPKID、鬥魚、親寶寶等。我們希望透過我們的大資料和 AI 能力,給企業提供升級的動力。