TensorFlow、PyTorch 之後,“國產”AI 框架還有沒有機會?

出品 | AI科技大本營(ID:rgznai100)

衆所周知,在機器學習框架領域,PyTorch、TensorFlow已分別成爲目前學界和業界使用最廣泛的兩大實力玩家,而緊隨其後的Keras、MXNet等框架也由於其自身的獨特性受到開發者的喜愛。 

2020年上半年,數個“國產”AI框架漸次宣佈開源,討論的熱度一直在持續。很多人想知道,在已有成熟的AI框架並擁有完整生態的情況下,中國企業和機構是否有必要再另造一套框架,自研AI框架的價值在哪裏?底層技術創新和市場發展的空間有多大?

近日,在“2020北京智源大會”AI框架專題論壇上,以下來自學界和業界的專家在論壇上對AI框架的現狀和發展情況做出了專業解讀。

主持人:陳文光,清華大學教授,智源學者

嘉賓:

  • 胡事民,清華大學教授(編者注:其團隊推出深度學習框架“計圖”)

  • 張崢,亞馬遜雲服務(AWS)上海AI研究院,上海紐約大學教授(學術休假),曾同他人提出圖神經網絡框架DGL

  • 白俊傑,阿里巴巴(PyTorch和Caffe2的核心開發者)

  • 劉道福,寒武紀副總裁

  • 田忠博,曠視研究院高級技術總監(天元開源框架項目負責人)

  • 袁進輝,一流科技CEO(其公司研發OneFlow框架)

  • 董豪,北京大學前沿計算中心(曾主導開源TensorLayer 

以下爲對話內容,AI科技大本營(ID:rgznai100)整理,內容有刪減:

陳文光:在AI框架領域,本來TensorFlow看上去已經一統天下了,然後PyTorch突然來一個動態圖好像就翻身了,其他的AI框架還有沒有機會?後續最重要的技術創新可能是什麼?

張崢:模型上還是有很多可以突破的地方,我自己做結構化數據,我覺得這個方向很新穎,這帶來從上往下走,從模型開始到底下都有很多的變化,所以還是前瞻性比較多。如果你說我看得很近,我覺得結構性的東西會有突破,以前的很多step可能都不見得更加泛化。

我舉個例子,假如bert裏面大家知道它的結構是什麼樣,所有的Token都連在一起,它是個全連接的圖,它是圖計算的一個特例。還有我們把這一個有結構的和沒有結構的這個stack融合在一起。

如果讓我看有什麼重要問題,我覺得不在平臺,原動力還是在模型、在數學上面,這也是我詬病現在所有深度學習框架的一個通病,以爲學習了Python、學習了某一種框架就懂了深度學習,這其實是非常差的,它最後的動力在數學。也正是因爲這個原因,我們在做另外一個框架,現在還不能說。

陳文光:這個領域是由數學模型和算法驅動的,下面這些軟件應該去支持這些新的模型和算法的東西。

張崢:對,現在缺失這一點。

胡事民:剛纔張老師講了他的觀點,側重於方法和模型上更重要,這個觀點也是對的。但是今天講框架問題,我們想說爲什麼框架重要,怎麼能在框架上有所超越,這是今天討論的要點。

我們爲什麼做框架?深度學習做科學工程衝擊太大了,包括現在圖形學,MIT有個博士論文獲得了最佳博士論文獎,就是他做可微圖形學,在加強學習框架思路下,傳統學科都被重新定義、重新思考,這是一個激動人心的時代,一切都在變革。這種時候框架的重要性是毫無疑問的,如果你不用框架,從頭什麼都自己寫,這是不現實的。

我認爲過幾年之後,這些企業的工程師都得重新學習,因爲現在這些學生編程的東西跟10年前完全不一樣了,變化是非常大的。所以框架的重要性是非常值得我們關注的,這是一個。

第二個,我們如果沒有自己的框架,這顯然是有很大問題的,包括EDA軟件的問題等等,這是不可思議的。爲什麼中國這麼多企業想做框架?華爲不做不行,美國說你不能用了,那就不行了。曠視科技做得這麼好,如果沒有自己的天元,它說我不讓你用TensorFlow了,那大樓的底柱就塌了,所以這個是必須要做的。但怎樣超越它是很難的。

我覺得要超越,技術上要創新,如果我們重複(造輪子)的話可以解決“卡脖子”問題,但是無法超越它,要想超越它,必須進行技術創新。

框架最本質是計算圖的問題,因爲它是數據結構,能夠把它定義好。計算圖這個事情,利用算子融合把計算圖整合起來是個機會,不是唯一的機會,他們各位嘉賓談的很多觀點都非常好,咱們現在中國國內是百家爭鳴,希望有些嘗試和努力能夠成功、能夠超越。中國的科技創新機會的窗口期很小,PyTorch已經聯繫我們聊過很多技術細節,它下一代框架就會用統一計算圖,因爲都是開源的,它也能看得見,所以你的機會很小。

我們共同努力把框架這個事情推進一步,不讓它成爲中國人工智能發展的短板。

陳文光:胡老師提出的主要新技術是計算圖相關的優化技術。有一種說法是大學要不要做這種複雜的系統軟件?因爲你維護不了。但我經常反對這種觀點,就經常舉伯克利的例子,他們做了好幾個系統軟件都非常成功。大學裏面有非常多天才程序員,而系統軟件有個特點是少數天才可以超過很多中等水平的人,所以大學做一些技術上的探索是完全有可能的。當然,後續真正的產業化和長期維護是另外一個問題,但是大學做這種基礎性軟件的探索是非常好的。

董豪:雖然我們一直在討論框架技術,但是我覺得生態反而是我們應該更加要關注的一點。就像剛纔胡老師說到,所有的框架都在進步,而且它的投入比我們加起來還要大,這樣的話就給我們能夠做的比較好的概率就很低了。

比如我剛纔查了一下最近框架的下載量,最近7天TensorFlow的下載量是250萬次,然後我還查了一下其他的框架,我們在開這個會議的這段時間,TensorFlow的下載量已經遠超過我們這麼多框架歷史以來的下載量,所以差距在這兒。

我們應該更多探討一下生態該怎麼建設,可以看到TensorFlow和PyTorch雖然看起來是兩個公司,但其實他們後面的合作是挺多的,比如PyTorch的可視化也用了TensorFlow的。我們今天有這麼多企業、大學在一起,但是我很少見到國內兩個不同的企業或者不同的學校之間會有一些合作的例子。

白俊傑:在編程框架的接下來可以創新或者值得突破的地方,我個人覺得會有兩點。第一點是從第一代的caffee,到TensorFlow、PyTorch,更靠近真正的編程語言,正好這個編程語言選中了Python,但是在表達上越來越靠近圖靈完備的編程語言。從前年開始,Keras開始更流行起來,我們也有去討論比如PyTorch跟Keras、TensorFlow之間的區別,Keras的很大的優勢是提供一模一樣的API,只是底下實現到TPU或者GPU,在表達能力上是一個更純粹的Python的表達能力。

現在深度學習研究裏的一個問題是模型學習能力比較低效,大量數據進去,出來的學習能力近幾年遇到一些瓶頸,模型在逐漸變大。如果接下來想在這個方向有更大突破,在框架上不能支持更靈活表達能力的話,會阻礙AI在這個領域的發展。

比如像TensorFlow之前有一個工作是swift,嘗試用swift做成一個完全defensible的語言,PyTorch現在還是有些侷限,可以求導的只是在tensor上的操作,更原始的一些Python沒有表達能力。框架在接下來幾年如果能夠把這個做好,是一個更能吸引用戶的點。

第二,我覺得從research到production的過渡,框架如何在這上幫助用戶更好的過渡,也是非常重要的。從生態上來說,從研究到落地,一個商業模式向盈利,然後反哺商業上去推動研究,這個過程是很重要的。

接下來框架上比較重要的兩個點,一個是表達能力更趨向於完完整整可導的語言,第二個是從研究到落地怎麼能更快速。

陳文光:第一個點從技術上是比較清楚的,第二個點我不是特別理解,它更多是流水線的問題?還是框架內部問題?

白俊傑:這是比較複雜的問題,一個是從框架層面如何做到跟現有的生產系統更好的整合,這是第一點。第二點,光從框架本身來說,比如像PyTorch有做這樣的工作,直接解析Python代碼,然後到一個圖表示,這是其中一小步,可以看出來這個東西目前還沒有完全做到用戶無痛的轉換,有很大的發展空間,可以被不斷完善。

另外一點,在設計上,無論是框架還是系統,落地對不同公司不同案例是完全不一樣的。比如之前我在Facebook,工作負載是非常大的,你可能只要優化1%,也能省很多臺機器。但是對於更小規模的用量或者用戶來說,所謂的部署是有一個模型,現在已經訓練好了要上線,用量大部分可能達不到Facebook、谷歌或者阿里那麼大,對他來說想更快上線,而不是花一個月時間再優化這個pipeline。所以今天我先上線,但是假設一個月內有沒有機會朝性能更加高的方向去過渡,這個體驗也是很重要的。

袁進輝:我特別同意剛纔胡老師說的一個新框架,要想脫穎而出的話是一定要有創新,同時也非常同意陳老師說的,框架研發裏面人才非常非常關鍵,我們做過研究,知道創新通常不是堆錢、堆人就能必然發生的,有的時候它是有偶然性的,還有一些是它可能發生在少數人身上。

所以對於我們國內框架來說,很多人蔘與、很多廠家參與是一個好事,它從多個角度來做,成功率就會提高。

具體到技術上有什麼可做的,我認爲在效率上有很多可做的點。一個是在宏觀層面,怎麼解決網絡牆的問題。還有一個是在微觀層面,現在有很多學者、公司在研究自動代碼生成,你用數學的邏輯描述這個運算是什麼,然後它能自動生成GPU或CPU上最快的,這個很活躍,我覺得這是一個非常挑戰的問題。

劉道福:我在這方面肯定不是專家。先從產品角度來說,產品吸引用戶的話往往要有些亮點,一個框架一定程度上是個產品,那用戶或者客戶是誰呢?

最大用戶是開發者,開發者追求的是易用,尤其在訓練方面,易用框架的生態會建立得非常快。如果做到易用,需要做到哪些東西?對前沿算法的新結構支持得比較好,比如圖神經網絡或者新的骨幹結構剛出來,框架就有人去做了。性能反而在前期對開發者來說不是那麼在乎,因爲大家在訓練上更關注開發的效率,更少關注的是硬件成本或者其他。

但對推理部署來說,在實際的生產業務系統裏,大家追求的是性能。因爲推理業務尤其對一個大企業來說,部署量非常大的,假如能夠把性能做好,做5個百分點能節省5%的硬件成本,這其實是非常大的收益。

大家對於訓練和推理這兩個維度的關注是不一樣的,未來訓練和推理會慢慢的分開,比如訓練側重於通用,推理眼前類似融合到TensorRP或者其他東西里面。並且從技術上來說,訓練往往是逐層的,推理往往要做各種層融合優化,所以我覺得訓練和推理可能會有兩個框架,只要對於做產品來說,你把某一方面做得很好,就會有人用。

但這裏有一個問題,生態的起源往往是起源於訓練,所以怎麼把訓練好的模型在推理框架上更好的執行,可能中間會有一些新的挑戰。

另外,我覺得在終端現在有不一樣的需求,大家從創業角度,在終端做個專門的框架或者引擎會有價值,因爲終端的產品和形態差異化特別大,它導致現在終端的人在開發AI應用是苦不堪言。

我理解無論是訓練、推理還是終端,會有分出來的需求,這些需求導致往下發展的話會有分支,分支完了以後對開發者是一個很友好的事,我不知道未來會不會“天下合久必分,分久必合”,反正對我們做芯片的人來說,我們是希望這些框架都合在一起,我不需要支持那麼多框架。

田忠博:我的想法是最終迴歸到價值上來。因爲曠視有自己的技術信仰、價值務實,我們最終還要回到做框架,做技術創新,這是個功能,還是真正給用戶帶來什麼?

我特別同意道福的一點,我們的用戶有兩類,一類是研究者,一類是研發者,在曠視公司能夠知道深度學習從產品到落地有多少環節、多少困難,我們做這個框架是爲了自己更好,我們希望經驗幫助更多人,也是出於這樣的觀點。

如果從現狀來看,深度學習框架在價值維度上有三點:

第一點,我們希望它更快,性能肯定是大家非常關注的一點,性能意味着成本,意味着更好更大的模型,意味着更多、更好的商業機會。

第二點是靈活與易用,希望支持更多模型,支持更多範式,把更新技術嘗試引進,而不是一個僵化的體系。

第三點,更規範。現在看到深度學習硬件設施雨後春筍般的蹦出來,包括寒武紀等等都在做一些事情,這裏面蘊涵着大量的機會,我們在超越摩爾定律的狀況下做事情,爲什麼不更廣泛的使用,使得我們的技術在各種芯片上跑起來,讓大家都有機會成長起來。

從現狀來看,這三點是我們衡量當前價值的點。我覺得在這方面,不管你是大框架、小框架,是大公司還是小公司,誰能提供value,誰就能夠有機會,而不是一個壟斷的行業。

對於未來的看法,我更同意張崢老師的看法,它充滿不確定性,現在回過頭來看產業基礎,並不是那麼紮實。比如深度網絡,它會對我們的框架有怎樣的需求和衝擊,這是不知道的,現在的框架並沒有很好的利用這樣的變化。

張崢:非常同意前面老師講的,我們要關心大的生態環境,我是堅定的人類命運共同體的擁護者,堅決反對自己造原則。大家要從大局去考慮,然後選擇好的點去往前推。假設都做開源的話,到最後是沒有差異的。雖然它是開源,但它還是可以服務用戶的,所以保護生態系統,保持開放性、前瞻性和活力是最要緊的。從小的點來看,作爲它的動力去打磨、去造輪子,因爲我自己走過這個路,我不覺得是非常好的路線。

文光老是舉spark的例子,我覺得這點很重要,學校可以靜下心來做,但是有幾個前提,伯克利做系統的人都很強,都是好手,非常耐心,咱們中國這邊是比較急功近利。

張崢:俊傑對Keras看法是怎樣?它本身挺有威脅的,但作爲真正能用的框架還是差很多。 

白俊傑:我非常同意Keras是一個innovation,我個人也非常讚賞他們的創新。幾位老師提到框架現在是在互相學習、互相進步的過程。有些用戶爲什麼喜歡Keras,比如有人提到一點是能自動bach,Keras是現存框架做得最完善的。PyTorch也會加入這個功能,最早PyTorch有嘗試過,只不過我們沒有意識到這個功能對用戶很重要,對Pytorch也是很好的。

你提到Keras作爲真正能用的框架還是差很多。我們跟Keras團隊也有交流,他們的想法是PyTorch在dataload這塊已經做得很好,Pytorch也有很好的交互,沒必要再做這個事情。你到Keras官網去看,它會教你如何用PyTorch的dataload,然後用Keras定義,訓練完怎麼交互,框架間這種融合能夠工作迸發出新的創新。

陳文光:各位老師能否談談對深度學習編譯器如TVM、XLA的看法,以及與框架的區別和聯繫?

梁盾(計圖框架核心開發者):現在這些深度學習編譯器,TVM確實做得非常不錯,它讓更多框架能夠運用到更多硬件上,華爲的框架也有相當大部分代碼是基於TVM開發的,TVM作爲深度學習編譯器是非常不錯的,XLA是用於TensorFlow的編譯器,PyTorch好像也在對XLA進行移植和支持,這兩個深度編譯器都挺不錯的,就看它們應用的硬件是什麼,現在回傳的芯片都可以跑在TVM上,如果運行Google的TUP的話可能在XLA上性能比較好一點。

編譯器與框架面向的對象也是有區別的,比如深度學習編譯器更多用戶是開發框架的,對硬件有一定的瞭解,但用TensorFlow的更多是深度學習的用戶,從使用者角度是判斷編譯器和深度學習框架的最大區別。

袁進輝:早期編譯器都是藏在框架項目的,但現在編譯器本身的工作越來越完整了,就是基於編譯器,它也做了自動求導、子圖優化,也都有Python接口,所以現在編譯器和框架之間界限越來越模糊了,比如TVM,幾乎就是一個新的框架了,所以現在嚴格區分框架和編譯器好像比較困難,它們幾乎是一回事了。

陳文光:以前比較有名的框架慢慢被大公司收購,要麼消失了,是不是小公司不適合搞開源框架?

袁進輝:我感覺在開源社區裏能成長起來,開源社區是非常公正公平的,它是英雄不問出處。我們看到大公司做事情也不一定成功,同時小團隊做事也有可能成功。對這點,我持不同看法,只要創新性夠,產品競爭力夠,被開發者認可還是有機會的。

更多精彩推薦
☞專訪 | 觀遠數據吳寶琪:BI 最大的難點並不只在單點技術
☞比 Hive 快 500 倍!大數據實時分析領域的黑馬
☞厲害!國內大學生計算機編程第一人,一人挑戰一個隊,百度最年輕 T10,現創業自動駕駛
☞一隻端午節鴨蛋糉子的背後:AI 與農業
☞淺談分佈式存儲中的網絡通信
☞Balancer因通縮代幣STA遭遇閃電貸攻擊,價值50萬美元資產被黑
你點的每個“在看”,我都認真當成了喜歡
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章