天天看點

賈揚清演講實錄:一個AI開發者的奇幻漂流

演講人:賈揚清

演講主題:一個AI開發者的奇幻漂流

活動:2021阿裡靈傑AI工程化峰會

對于絕大多數人來說,這一波AI浪潮興許是從深度學習開始的。

2011年谷歌發表的一篇文章講到,用16000個CPU和11個參數的連接配接來訓練一個能夠識别貓的模型。

今天AI算法和應用百花齊放,給我們帶來了非常多的夢想;而這幾年整個行業的起起伏伏,背後也有許多彎路和故事。今天我們已經習慣了刷臉支付,但是似乎有一些更加高冷的夢想,比如像無人駕駛,都還隻在路上。

我叫賈揚清,今天是一個消費網紅的年代,是以我們起了一個名字叫奇幻漂流。如果可以的話,我想把自己描述成一個AI老兵。在人工智能的上半場當中,我們的體驗可能沒有那麼奇幻,因為基本上我們就像拓荒者一樣,身兼多個角色,在嘗試着把AI 算法跟應用能夠逐漸落地。

我們做過算法研究員,從AlexNet開始到ResNet ,到LSTM 到Transformer ,各種各樣的模型,我們都希望逐漸把它落地。

賈揚清演講實錄:一個AI開發者的奇幻漂流

我們做過軟體工程師,從各種各樣的架構,像Torch、Theano、Caffe開始,到今天大家耳熟能詳的Tensorflow和Pytorch,我們相當于在不斷重新設計一套又一套語言,讓我們能夠把算法高效地實作出來。

我們做過資料工程師,把圖檔、語音、自然語言、使用者各種行為等資料做清洗做标注,把它放在無論是磁盤還是數倉的各種地方,然後再輸入到各種算法當中去來做應用。

最後。我們也做過系統工程師,從GPU開始到各種各樣嵌入式的系統。我們搭了大大小小的系統,讓我們這些模型能夠簡單更高效地跑起來。

當然我們也在不斷地看應用,搭一個webserver ,做一個open API,把上面訓練出來的模型能夠實際的做成一個像刷臉,或者說hopefully 自動駕駛這樣的應用。

但是我們就在想,老兵們遇到的挑戰是什麼?今天事情越來越多,各種元件越來越複雜。我們會發現,要把全鍊路問題都像以前這樣人拉肩扛地解掉會累死也不可能。今天AI的應用已經不是一個模型,一個算法那麼的簡單。

回到技術的角度,資料、算法、模型、以及最重要的人,我們有了怎樣的一些變化?我們希望能夠做什麼樣的進一步思考?我想從這幾個角度來比較過去和今天有什麼樣的差別。

我們先說資料,以前我們在做圖檔存儲的時候,我們就把圖檔都放到一個磁盤上面去。

會發現速度比較慢,于是我們又把它放到一個,比如說類似LevelDB資料庫上面,回過頭來看,我們會發現這些就是非常标準的KV資料庫。

在洞察使用者行為的時候,我們首先要從Hive的數倉裡面做各種各樣的處理,把資料從Java的環境裡搬出來。再到Python的環境裡做訓練,而這個訓練底層的實作又是C++的,類似這樣的拉通,以及AI的模型标準等等,這一系列的問題都變得非常麻煩。

而在AI應用當中,怎麼樣把資料回流下來,進一步地再做新的訓練,這些資料鍊路的品質都會決定了最終應用的品質。今天我們就會非常需要一個大資料和AI 一體化的平台來解決資料的全生命周期當中各種各樣的問題。

軟體就更是一個備受關注的領域。如果往回倒8年,我們經常聽到“我的架構比你的快”這樣的比較。那麼多年過去之後,今天為止我們依然看見有很多架構在走着老路,重新設計一套語言,重新設計一個開發環境等等。我覺得今天我們不需要來重複地造輪子。軟體,或者說架構,核心主要在于兩個,一個是往下如何來相容各種各樣的硬體、不同的處理器、不同的新的晶片,另一個是往上如何實作更好的分布式開發。

賈揚清演講實錄:一個AI開發者的奇幻漂流

尤其是當超大規模的模型變得越來越受關注,往下我們需要有更加好地AI編譯環境,讓軟體和硬體更容易地疊代和開發。往上我們會需要有更好的系統和模型,或者說系統和算法工程師更好的相協同工作模式,讓我們建構起分布式的模型以及規模化訓練。在今天接下來的講座當中,我們就會講到在AICompiler 以及在分布式架構Whale等等上面做的工作和思考。

當有了資料和算法,我們怎麼樣來找到最需要的AI模型?最簡單的方式是直接訓練一個。但是圖檔、語音、自然語言處理等等領域有太多的模型,我們不可能每一個都從零開始自己訓練。學術界有一個Model Hub ,我們經常可以在網上找到偏向學術的不同領域的模型。但這些實驗模型怎樣部署,會是個難題。工業界我們能夠看到各種各樣的AI服務,比如說像OCR 、語音識别等,但要把它們連接配接起來,好像又比較難。開發者自己也多多少少有一些自己的模型,我們怎麼樣來自己部署一個模型,怎麼樣實作所需要的彈性、穩定性、免運維的能力,怎麼樣把模型從非常大的訓練結果到逐漸做量化、做蒸餾、做壓縮,到變成一個可以在不同平台上部署的模型,這些都是我們在平台層面需要解決的問題。

最後我們來說人的故事。我們以前在做代碼開發的時候,有GitHub等非常成熟的模式。AI要管的東西更多,有資料、有算法代碼、有模型、有計算資源、有訓練跟推理的資源。怎麼樣來讓一個開發平台從以前的單機,到今天的多機多卡多個資料中心的情況下,依然能夠高效地管理排程這些資源。今天後面會跟大家講到,我們在AIdesigner 或者說AI 工作空間上的思考,用一個統一的空間來拉通我們的算法疊代,資料管理、模型訓練和最後模型上線。

AI 的痛苦在于本質上今天AI還沒有範式。AI 不是一個産品,這句話有兩層含義,一方面它不光是一個單點的産品,而是一系列能力的組合;AI 今天非常強烈地需要标準軟體和定制化服務的協同。

我們在雲栖大會推出的阿裡靈傑就是這樣的一個大資料和AI一體化的産品體系。為什麼要推出靈傑呢?我們非常強烈地意識到,我們需要把軟體、定制化服務、以及開發者效率都結合起來。靈傑做的一件事情是,它将可以标準化的部分标準化,将沒法标準化的部分用一系列工具群組件的方式提供出來,讓開發者在定制上層服務的時候,能夠更加便捷易用。

賈揚清演講實錄:一個AI開發者的奇幻漂流

我們可以把靈傑了解為四層産品的有機組合。它的最底層是基于雲基礎設施,比如像計算、存儲、網絡等等這一些我們耳熟能詳的基礎産品。和以前不同的是,我們并不需要思考,從資源視角怎麼樣搭一個叢集、加一堆GPU、或者裝一個硬碟。今天我們可以從需求視角來考慮,需要多大存儲、怎樣的異構計算、怎樣通過雲原生容器化等等方式把資源簡單地連結起來。這是最底層基礎設施給我們提供的簡單化、便捷化的能力。

在上面是大資料和AI一體化的平台。我覺得它是靈傑的核心部分。首先它給我們提供了大資料跟AI結合的能力。比如MaxCompute平台已經可以調用10萬台叢集來支援2000萬張表跟千萬級任務排程,它的Serverless模式代表着我們可以在非常小的,例如一張表、一個資料集、一個GB、一個任務開始就用零公攤成本來使用幾乎無限的彈性。

 和大家分享一個數字。過去我們經常有一個感覺,覺得大資料和AI是分開的。當我們在看阿裡集團内自己的應用情況時,在大資料平台上,有超過30%的資料計算都已經應用于AI模型訓練,這裡都還沒有計入AI推理這塊。通過AI  Compiler和Whale軟體架構,我們今天也在進一步提升AI計算效率。 當然平台的另一個重點是提升開發效率。在今天後面的分享中,我們會向大家介紹在大資料和AI一體化的平台上,如何用AI 工作空間這樣的輕量化平台,以及PAI-DSW、PAI-DLC、PAI-EAS等元件來打通資料、訓練、資源管理、推理和服務等等這一系列挑戰。 工程平台最終目的是為了實作算法創新。想象一下8年前我們要做一個AI應用的時候應該怎麼辦?基本上就是我們自己去搜集資料,然後訓練一個模型,再非常痛苦地把這個模型在自己手工搭建Web Server裡面透出出來。還要時刻擔心,如果沒有人來通路這個模型,是不是資源就浪費了,如果太多人來通路,是不是服務穩定性又會打折扣。 

今天很多AI能力,比如說像OCR、語音、自然語言處理等等,都已經是标準化開箱即用的狀态了。是以阿裡雲的工程師和達摩院的算法同學們合作,在10多種場景下的開放服務層,提供了上百種标準化的算法模型和服務,來解決AI落地應用最後一公裡的問題。無論是OCR、語音、還是文本的了解,我們希望能夠通過一個标準的模式來實作AI 模型的開通、接入和使用流程,就像下載下傳和使用一個APP那麼簡單。 在靈傑之上我們搭建了非常多應用,今天大家可能都經常聽見,像城市大腦、醫療大腦等等這樣的概念。今天後面分享當中,我們想跟大家分享在網際網路領域一個非常典型的應用,就是像在電商這類業務中,如何實作更高效地增長。它的本質就是怎麼樣把使用者和他們所感興趣的内容結合起來,最終達到使用者體驗和商業結果雙赢的局面,後面的分享會有更細節地呈現。 總結一下,8年前我們說能夠訓練一個圖像識别模型然後搭一個小的demo,就已經是一個頂級的AI開發者了。今天我們所面對的需求是将AI 的資料、算法和場景結合起來,去建構一個完整而且更加複雜的解決方案,來解決各行各業當中的實際問題。 從開發的角度來說,從我們想寫第一行代碼開始,到寫下第一個AI模型需要多久?從應用的角度來說,從我們看到一個需求到prototype上線和服務需要多久? 這是我們今天一直在考慮的問題。阿裡靈傑解決這個問題的思路,就是讓不同的開發者們都能夠按需取用、開箱即用。從最底層的基礎産品,到中間的開發平台,到上層的開放服務,來幫助各行各業的科學家們和開發者們在雲上一起畫出人工智能增長的第二曲線。

繼續閱讀