賈揚清:一個AI開發者的奇幻漂流_風聞
谭婧在充电-谭婧在充电官方账号-偏爱人工智能(数据、算法、算力、场景)。-2021-12-05 20:58
編輯演講人:賈揚清
演講主題:一個AI開發者的奇幻漂流
活動:2021阿里靈傑AI工程化峯會(2012年12月3日)
對於絕大多數人來説,這一波AI浪潮興許是從深度學習開始的。
2011年穀歌發表的一篇文章講到,用16000個CPU和11個參數的連接來訓練一個能夠識別貓的模型。
今天AI算法和應用百花齊放,給我們帶來了非常多的夢想;而這幾年整個行業的起起伏伏,背後也有許多彎路和故事。今天我們已經習慣了刷臉支付,但是似乎有一些更加高冷的夢想,比如像無人駕駛,都還只在路上。
我叫賈揚清,今天是一個消費網紅的年代,所以我們起了一個名字叫奇幻漂流。如果可以的話,我想把自己描述成一個AI老兵。在人工智能的上半場當中,我們的體驗可能沒有那麼奇幻,因為基本上我們就像拓荒者一樣,身兼多個角色,在嘗試着把AI 算法跟應用能夠逐漸落地。
我們做過算法研究員,從AlexNet開始到ResNet ,到LSTM 到Transformer ,各種各樣的模型,我們都希望逐漸把它落地。
編輯我們做過軟件工程師,從各種各樣的框架,像Torch、Theano、Caffe開始,到今天大家耳熟能詳的Tensorflow和Pytorch,我們相當於在不斷重新設計一套又一套語言,讓我們能夠把算法高效地實現出來。
我們做過數據工程師,把圖片、語音、自然語言、用户各種行為等數據做清洗做標註,把它放在無論是磁盤還是數倉的各種地方,然後再輸入到各種算法當中去來做應用。
最後。我們也做過系統工程師,從GPU開始到各種各樣嵌入式的系統。我們搭了大大小小的系統,讓我們這些模型能夠簡單更高效地跑起來。
當然我們也在不斷地看應用,搭一個webserver ,做一個open API,把上面訓練出來的模型能夠實際的做成一個像刷臉,或者説hopefully 自動駕駛這樣的應用。
但是我們就在想,老兵們遇到的挑戰是什麼?今天事情越來越多,各種組件越來越複雜。我們會發現,要把全鏈路問題都像以前這樣人拉肩扛地解掉會累死也不可能。今天AI的應用已經不是一個模型,一個算法那麼的簡單。
編輯回到技術的角度,數據、算法、模型、以及最重要的人,我們有了怎樣的一些變化?我們希望能夠做什麼樣的進一步思考?我想從這幾個角度來比較過去和今天有什麼樣的區別。
我們先説數據,以前我們在做圖片存儲的時候,我們就把圖片都放到一個磁盤上面去。
會發現速度比較慢,於是我們又把它放到一個,比如説類似LevelDB數據庫上面,回過頭來看,我們會發現這些就是非常標準的KV數據庫。
在洞察用户行為的時候,我們首先要從Hive的數倉裏面做各種各樣的處理,把數據從Java的環境裏搬出來。再到Python的環境裏做訓練,而這個訓練底層的實現又是C++的,類似這樣的拉通,以及AI的模型標準等等,這一系列的問題都變得非常麻煩。
而在AI應用當中,怎麼樣把數據迴流下來,進一步地再做新的訓練,這些數據鏈路的質量都會決定了最終應用的質量。今天我們就會非常需要一個大數據和AI 一體化的平台來解決數據的全生命週期當中各種各樣的問題。
軟件就更是一個備受關注的領域。如果往回倒8年,我們經常聽到“我的框架比你的快”這樣的比較。那麼多年過去之後,今天為止我們依然看見有很多框架在走着老路,重新設計一套語言,重新設計一個開發環境等等。我覺得今天我們不需要來重複地造輪子。軟件,或者説框架,核心主要在於兩個,一個是往下如何來兼容各種各樣的硬件、不同的處理器、不同的新的芯片,另一個是往上如何實現更好的分佈式開發。
編輯尤其是當超大規模的模型變得越來越受關注,往下我們需要有更加好地AI編譯環境,讓軟件和硬件更容易地迭代和開發。往上我們會需要有更好的系統和模型,或者説系統和算法工程師更好的相協同工作模式,讓我們構建起分佈式的模型以及規模化訓練。在今天接下來的講座當中,我們就會講到在AICompiler 以及在分佈式框架Whale等等上面做的工作和思考。
當有了數據和算法,我們怎麼樣來找到最需要的AI模型?最簡單的方式是直接訓練一個。但是圖片、語音、自然語言處理等等領域有太多的模型,我們不可能每一個都從零開始自己訓練。學術界有一個Model Hub ,我們經常可以在網上找到偏向學術的不同領域的模型。但這些實驗模型怎樣部署,會是個難題。工業界我們能夠看到各種各樣的AI服務,比如説像OCR 、語音識別等,但要把它們連接起來,好像又比較難。開發者自己也多多少少有一些自己的模型,我們怎麼樣來自己部署一個模型,怎麼樣實現所需要的彈性、穩定性、免運維的能力,怎麼樣把模型從非常大的訓練結果到逐漸做量化、做蒸餾、做壓縮,到變成一個可以在不同平台上部署的模型,這些都是我們在平台層面需要解決的問題。
最後我們來説人的故事。我們以前在做代碼開發的時候,有GitHub等非常成熟的模式。AI要管的東西更多,有數據、有算法代碼、有模型、有計算資源、有訓練跟推理的資源。怎麼樣來讓一個開發平台從以前的單機,到今天的多機多卡多個數據中心的情況下,依然能夠高效地管理調度這些資源。今天后面會跟大家講到,我們在AIdesigner 或者説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上線和服務需要多久?
這是我們今天一直在考慮的問題。阿里靈傑解決這個問題的思路,就是讓不同的開發者們都能夠按需取用、開箱即用。從最底層的基礎產品,到中間的開發平台,到上層的開放服務,來幫助各行各業的科學家們和開發者們在雲上一起畫出人工智能增長的第二曲線。
編輯(完)
親愛的數據,出品
編輯