近年來,深度學(xué)習(xí)在很多機器學(xué)習(xí)領(lǐng)域都有著非常出色的表現(xiàn),在圖像識別、語音識別、自然語言處理、機器人、網(wǎng)絡(luò)廣告投放、醫(yī)學(xué)自動診斷和金融等領(lǐng)域有著廣泛應(yīng)用。面對繁多的應(yīng)用場景,深度學(xué)習(xí)框架有助于建模者節(jié)省大量而繁瑣的外圍工作,更聚焦業(yè)務(wù)場景和模型設(shè)計本身。
使用深度學(xué)習(xí)框架完成模型構(gòu)建有如下兩個優(yōu)勢:
節(jié)省編寫大量底層代碼的精力:屏蔽底層實現(xiàn),用戶只需關(guān)注模型的邏輯結(jié)構(gòu)。同時,深度學(xué)習(xí)工具簡化了計算,降低了深度學(xué)習(xí)入門門檻。
省去了部署和適配環(huán)境的煩惱:具備靈活的移植性,可將代碼部署到CPU/GPU/移動端上,選擇具有分布式性能的深度學(xué)習(xí)工具會使模型訓(xùn)練更高效。
因此,在開始深度學(xué)習(xí)項目之前,選擇一個合適的框架是非常重要的。目前,全世界最為流行的深度學(xué)習(xí)框架有PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等。下面我們就來介紹一下目前主流的、以及一些剛開源但表現(xiàn)非常優(yōu)秀的深度學(xué)習(xí)框架的各自特點,希望能夠幫助大家在學(xué)習(xí)工作時作出合適的選擇。
Theano
作為深度學(xué)習(xí)框架的祖師爺,Theano 的誕生為人類叩開了新時代人工智能的大門。Theano 的開發(fā)始于 2007 年的蒙特利爾大學(xué),早期雛形由兩位傳奇人物 Yoshua Bengio 和 Ian Goodfellow 共同打造,并于開源社區(qū)中逐漸壯大。
Theano 基于 Python,是一個擅長處理多維數(shù)組的庫,十分適合與其它深度學(xué)習(xí)庫結(jié)合起來進(jìn)行數(shù)據(jù)探索。它設(shè)計的初衷是為了執(zhí)行深度學(xué)習(xí)中大規(guī)模神經(jīng)網(wǎng)絡(luò)算法的運算。其實,Theano 可以被更好地理解為一個數(shù)學(xué)表達(dá)式的編譯器:用符號式語言定義你想要的結(jié)果,該框架會對你的程序進(jìn)行編譯,在 GPU 或 CPU 中高效運行。
Theano 的出現(xiàn)為人工智能在新時代的發(fā)展打下了強大的基礎(chǔ),在過去的很長一段時間內(nèi),Theano 都是深度學(xué)習(xí)開發(fā)與研究的行業(yè)標(biāo)準(zhǔn)。往后也有大量基于 Theano 的開源深度學(xué)習(xí)庫被開發(fā)出來,包括 Keras、Lasagne 和 Blocks,甚至后來火遍全球的 TensorFlow 也有很多與 Theano 類似的功能。
隨著更多優(yōu)秀的深度學(xué)習(xí)開源框架陸續(xù)涌現(xiàn),Theano 逐漸淡出了人們的視野。2013 年,Theano 創(chuàng)始者之一 Ian Goodfellow 加入 Google 開發(fā) TensorFlow,標(biāo)志著 Theano 正式退出歷史舞臺。目前僅有部分研究領(lǐng)域的學(xué)者會使用 Theano 進(jìn)行一些學(xué)術(shù)研究。
Caffe&Caffe2
Caffe 是一個優(yōu)先考慮表達(dá)、速度和模塊化來設(shè)計的框架,它由賈揚清和伯克利人工智能實驗室研究開發(fā)。支持 C、C++、Python等接口以及命令行接口。它以速度和可轉(zhuǎn)性以及在卷積神經(jīng)網(wǎng)絡(luò)建模中的適用性而聞名。Caffe可以每天處理超過六千萬張圖像,只需單個NVIDIA K40 GPU,其中 1毫秒/圖像用于推理,4毫秒/圖像用于學(xué)習(xí)。
使用Caffe庫的好處是從深度網(wǎng)絡(luò)存儲庫“Caffe 模型Zoo”訪問可用網(wǎng)絡(luò),這些網(wǎng)絡(luò)經(jīng)過預(yù)先培訓(xùn),可以立即使用。通過Caffe Model Zoo框架可訪問用于解決深度學(xué)習(xí)問題的預(yù)訓(xùn)練網(wǎng)絡(luò)、模型和權(quán)重。這些模型可完成簡單的遞歸、大規(guī)模視覺分類、用于圖像相似性的SiameSE網(wǎng)絡(luò)、語音和機器人應(yīng)用等。
不過,Caffe 不支持精細(xì)粒度網(wǎng)絡(luò)層,給定體系結(jié)構(gòu),對循環(huán)網(wǎng)絡(luò)和語言建模的總體支持相當(dāng)差,必須用低級語言建立復(fù)雜的層類型,使用門檻很高。Caffe2是由Facebook組織開發(fā)的深度學(xué)習(xí)模型,雖然使用門檻不像Caffe那樣高,但仍然讓不那么看重性能的開發(fā)者望而卻步。另外,Caffe2繼承了Caffe的優(yōu)點,在速度上令人印象深刻。Facebook 人工智能實驗室與應(yīng)用機器學(xué)習(xí)團隊合作,利用Caffe2大幅加速機器視覺任務(wù)的模型訓(xùn)練過程,僅需 1 小時就訓(xùn)練完ImageNet 這樣超大規(guī)模的數(shù)據(jù)集。2018 年 3 月底,F(xiàn)acebook 將 Caffe2 并入 PyTorch,一度引起轟動。
Tensorflow
TensorFlow 是 Google 于 2015 年開源的深度學(xué)習(xí)框架。TensorFlow前身是谷歌的神經(jīng)網(wǎng)絡(luò)算法庫 DistBelief,由谷歌人工智能團隊谷歌大腦(Google Brain)開發(fā)和維護,擁有包括 TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud 在內(nèi)的多個項目以及各類應(yīng)用程序接口。
TensorFlow 讓用戶可以快速設(shè)計深度學(xué)習(xí)網(wǎng)絡(luò),將底層細(xì)節(jié)進(jìn)行抽象,而不用耗費大量時間編寫底層 CUDA 或 C++ 代碼。TensorFlow 在很多方面擁有優(yōu)異的表現(xiàn),比如設(shè)計神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的代碼的簡潔度,分布式深度學(xué)習(xí)算法的執(zhí)行效率,還有部署的便利性(能夠全面地支持各種硬件和操作系統(tǒng))。
TensorFlow在很大程度上可以看作是Theano的后繼者,不僅因為它們有很大一批共同的開發(fā)者,而且它們還擁有相近的設(shè)計理念,都是基于計算圖實現(xiàn)自動微分系統(tǒng)。TensorFlow 使用數(shù)據(jù)流圖進(jìn)行數(shù)值計算,圖中的節(jié)點代表數(shù)學(xué)運算,而圖中的邊則代表在這些節(jié)點之間傳遞的多維數(shù)組(張量)。
TensorFlow編程接口支持Python、C++、Java、Go、R和Haskell API的alpha版本。此外,TensorFlow還可在GoogleCloud和AWS中運行。TensorFlow還支持 Windows 7、Windows 10和Windows Server 2016。由于TensorFlow使用C++ Eigen庫,所以庫可在ARM架構(gòu)上編譯和優(yōu)化。這也就意味著用戶可以在各種服務(wù)器和移動設(shè)備上部署自己的訓(xùn)練模型,無須執(zhí)行單獨的模型解碼器或者加載Python解釋器。
TensorFlow構(gòu)建了活躍的社區(qū),完善的文檔體系,大大降低了我們的學(xué)習(xí)成本,不過社區(qū)和文檔主要以英文為主,中文支持有待加強。另外,TensorFlow有很直觀的計算圖可視化呈現(xiàn)。模型能夠快速的部署在各種硬件機器上,從高性能的計算機到移動設(shè)備,再到更小的更輕量的智能終端。
不過,對于深度學(xué)習(xí)的初學(xué)者而言,TensorFlow的學(xué)習(xí)曲線太過陡峭,需要不斷練習(xí)、探索社區(qū)并繼續(xù)閱讀文章來掌握TensorFlow的訣竅。
Keras
Keras用Python編寫,可以在TensorFlow(以及CNTK和Theano)之上運行。TensorFlow的接口具備挑戰(zhàn)性,因為它是一個低級庫,新用戶可能會很難理解某些實現(xiàn)。而Keras是一個高層的API,它為快速實驗而開發(fā)。因此,如果希望獲得快速結(jié)果,Keras會自動處理核心任務(wù)并生成輸出。Keras支持卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò),可以在CPU和GPU上無縫運行。
深度學(xué)習(xí)的初學(xué)者經(jīng)常會抱怨:無法正確理解復(fù)雜的模型。如果你是這樣的用戶,Keras便是你的正確選擇。它的目標(biāo)是最小化用戶操作,并使其模型真正容易理解。Keras的出現(xiàn)大大降低了深度學(xué)習(xí)應(yīng)用的門檻,通過Keras的API可以通過數(shù)行代碼就構(gòu)建一個網(wǎng)絡(luò)模型,曾幾何時,Keras+Theano,Keras+CNTK的模式深得開發(fā)者喜愛。目前Keras整套架構(gòu)已經(jīng)封裝進(jìn)了TensorFlow,在TF.keras上可以完成Keras的所有事情。
如果你熟悉Python,并且沒有進(jìn)行一些高級研究或開發(fā)某種特殊的神經(jīng)網(wǎng)絡(luò),那么Keras適合你。Keras的重點更多地放在取得成果上,而不是被模型的復(fù)雜之處所困擾。因此,如果有一個與圖像分類或序列模型相關(guān)的項目,可以從Keras開始,很快便可以構(gòu)建出一個工作模型。Keras也集成在TensorFlow中,因此也可以使用Tf.keras構(gòu)建模型。
Pytorch
2017年1月,F(xiàn)acebook人工智能研究院(FAIR)團隊在GitHub上開源了PyTorch,并迅速占領(lǐng)GitHub熱度榜榜首。PyTorch的歷史可追溯到2002年就誕生于紐約大學(xué)的Torch。Torch使用了一種不是很大眾的語言Lua作為接口。Lua簡潔高效,但由于其過于小眾,用的人不是很多。在2017年,Torch的幕后團隊推出了PyTorch。PyTorch不是簡單地封裝Lua Torch提供Python接口,而是對Tensor之上的所有模塊進(jìn)行了重構(gòu),并新增了最先進(jìn)的自動求導(dǎo)系統(tǒng),成為當(dāng)下最流行的動態(tài)圖框架。
Pytorch官網(wǎng)的標(biāo)題語簡明地描述了Pytorch的特點以及將要發(fā)力的方向。Pytorch在學(xué)術(shù)界優(yōu)勢很大,關(guān)于用到深度學(xué)習(xí)模型的文章,除了Google的,其他大部分都是通過Pytorch進(jìn)行實驗的,究其原因,一是Pytorch庫足夠簡單,跟NumPy,SciPy等可以無縫連接,而且基于tensor的GPU加速非常給力,二是訓(xùn)練網(wǎng)絡(luò)迭代的核心——梯度的計算,Autograd架構(gòu)(借鑒于Chainer),基于Pytorch,我們可以動態(tài)地設(shè)計網(wǎng)絡(luò),而無需笨拙地定義靜態(tài)網(wǎng)絡(luò)圖,才能去進(jìn)行計算,想要對網(wǎng)絡(luò)有任務(wù)修改,都要從頭開始構(gòu)建靜態(tài)圖?;诤唵?,靈活的設(shè)計,Pytorch快速成為了學(xué)術(shù)界的主流深度學(xué)習(xí)框架。
Pytorch的缺點則是前期缺乏對移動端的支持,因此在商用領(lǐng)域的普及度不及 TensorFlow 。在 2019 年,F(xiàn)acebook 推出 PyTorch Mobile 框架,彌補了 PyTorch 在移動端的不足,使得其在商用領(lǐng)域的發(fā)展有望趕超 TensorFlow 。不過現(xiàn)在,如果稍微深入了解TensorFlow和Pytorch,就會發(fā)現(xiàn)他們越來越像,TF加入了動態(tài)圖架構(gòu),Pytorch致力于其在工業(yè)界更加易用。打開各自的官網(wǎng),你也會發(fā)現(xiàn)文檔風(fēng)格也越發(fā)的相似。
PyTorch Lightning
PyTorch非常易于使用,可以構(gòu)建復(fù)雜的AI模型。但是一旦研究變得復(fù)雜,并且將諸如多GPU訓(xùn)練,16位精度和TPU訓(xùn)練之類的東西混在一起,用戶很可能會引入錯誤。PyTorch Lightning就可以完全解決這個問題。Lightning會構(gòu)建你的PyTorch代碼,以便可以抽象出訓(xùn)練的細(xì)節(jié)。這使得AI研究可擴展且可快速迭代。這個項目在GitHub上斬獲了6.6k星。
Lightning將DL/ML代碼分為三種類型:研究代碼、工程代碼、非必要代碼。使用Lightning就只需要專注于研究代碼,不需要寫一大堆的 .cuda() 和 .to(device),Lightning會幫你自動處理。如果要新建一個tensor,可以使用type_as來使得新tensor處于相同的處理器上。此外,它會將工程代碼參數(shù)化,減少這部分代碼會使得研究代碼更加清晰,整體也更加簡潔。
PyTorch Lightning 的創(chuàng)建者WilliamFalcon,現(xiàn)在在紐約大學(xué)的人工智能專業(yè)攻讀博士學(xué)位,并在《福布斯》擔(dān)任AI特約作者。他表示,PyTorch Lightning是為從事AI研究的專業(yè)研究人員和博士生創(chuàng)建的。該框架被設(shè)計為具有極強的可擴展性,同時又使最先進(jìn)的AI研究技術(shù)(例如TPU訓(xùn)練)變得微不足道。
PaddlePaddle
PaddlePaddle 的前身是百度于 2013 年自主研發(fā)的深度學(xué)習(xí)平臺Paddle,且一直為百度內(nèi)部工程師研發(fā)使用。PaddlePaddle 在深度學(xué)習(xí)框架方面,覆蓋了搜索、圖像識別、語音語義識別理解、情感分析、機器翻譯、用戶畫像推薦等多領(lǐng)域的業(yè)務(wù)和技術(shù)。在 2016 年的百度世界大會上,前百度首席科學(xué)家 Andrew Ng首次宣布將百度深度學(xué)習(xí)平臺對外開放,命名 PaddlePaddle,中文譯名“飛槳”。
PaddlePaddle同時支持稠密參數(shù)和稀疏參數(shù)場景的超大規(guī)模深度學(xué)習(xí)并行訓(xùn)練,支持千億規(guī)模參數(shù)、數(shù)百個幾點的高效并行訓(xùn)練,也是最早提供如此強大的深度學(xué)習(xí)并行技術(shù)的深度學(xué)習(xí)框架。PaddlePaddle擁有強大的多端部署能力,支持服務(wù)器端、移動端等多種異構(gòu)硬件設(shè)備的高速推理,預(yù)測性能有顯著優(yōu)勢。PaddlePaddle已經(jīng)實現(xiàn)了API的穩(wěn)定和向后兼容,具有完善的中英雙語使用文檔,形成了易學(xué)易用、簡潔高效的技術(shù)特色。
2019 年,百度還推出了多平臺高性能深度學(xué)習(xí)引擎Paddle Lite(Paddle Mobile 的升級版),為 PaddlePaddle 生態(tài)完善了移動端的支持。
Deeplearning4j
DL4J 是由來自舊金山和東京的一群開源貢獻(xiàn)者協(xié)作開發(fā)的。2014 年末,他們將其發(fā)布為 Apache 2.0 許可證下的開源框架。主要是作為一種平臺來使用,通過這種平臺來部署商用深度學(xué)習(xí)算法。創(chuàng)立于 2014 年的 Skymind 是 DL4J 的商業(yè)支持機構(gòu)。2017 年 10 月,Skymind 加入了 Eclipse 基金會,并且將 DL4J 貢獻(xiàn)給開源 Java Enterprise Edition 庫生態(tài)系統(tǒng)。
DL4J是為java和jvm編寫的開源深度學(xué)習(xí)庫,支持各種深度學(xué)習(xí)模型。它具有為 Java 和 Scala 語言編寫的分布式深度學(xué)習(xí)庫,并且內(nèi)置集成了 Apache Hadoop 和 Spark。Deeplearning4j 有助于彌合使用Python 語言的數(shù)據(jù)科學(xué)家和使用 Java 語言的企業(yè)開發(fā)人員之間的鴻溝,從而簡化了在企業(yè)大數(shù)據(jù)應(yīng)用程序中部署深度學(xué)習(xí)的過程。
DL4J主要有三大優(yōu)勢:
1. Python 可與 Java、Scala、Clojure 和 Kotlin 實現(xiàn)互操作性。Python為數(shù)據(jù)科學(xué)家所廣泛采用,而大數(shù)據(jù)編程人員則在 Hadoop 和 Spark 上使用 Java 或 Scala 來開展工作。DL4J 填補了之間的鴻溝,開發(fā)人員因而能夠在 Python 與 JVM 語言(例如,Java、Scala、Clojure 和 Kotlin)之間遷移。通過使用 Keras API,DL4J 支持從其他框架(例如,TensorFlow、Caffe、Theano 和 CNTK)遷移深度學(xué)習(xí)模型。甚至有人建議將 DL4J 作為 Keras 官方貢獻(xiàn)的后端之一。
2. 分布式處理。DL4J 可在最新分布式計算平臺(例如,Hadoop 和 Spark)上運行,并且可使用分布式 CPU 或 GPU 實現(xiàn)加速。通過使用多個 GPU,DL4J 可以實現(xiàn)與 Caffe 相媲美的性能。DL4J 也可以在許多云計算平臺上運行。
3. 并行處理。DL4J 包含單線程選項和分布式多線程選項。這種減少迭代次數(shù)的方法可在集群中并行訓(xùn)練多個神經(jīng)網(wǎng)絡(luò)。因此,DL4J 非常適合使用微服務(wù)架構(gòu)來設(shè)計應(yīng)用程序。
CNTK
2015年8月,微軟公司在CodePlex上宣布由微軟研究院開發(fā)的計算網(wǎng)絡(luò)工具集CNTK將開源。5個月后,2016年1月25日,微軟公司在他們的GitHub倉庫上正式開源了CNTK。早在2014年,在微軟公司內(nèi)部,黃學(xué)東博士和他的團隊正在對計算機能夠理解語音的能力進(jìn)行改進(jìn),但當(dāng)時使用的工具顯然拖慢了他們的進(jìn)度。于是,一組由志愿者組成的開發(fā)團隊構(gòu)想設(shè)計了他們自己的解決方案,最終誕生了CNTK。
根據(jù)微軟開發(fā)者的描述,CNTK的性能比Caffe、Theano、TensoFlow等主流工具都要強。CNTK支持CPU和GPU模式,和TensorFlow/Theano一樣,它把神經(jīng)網(wǎng)絡(luò)描述成一個計算圖的結(jié)構(gòu),葉子節(jié)點代表輸入或者網(wǎng)絡(luò)參數(shù),其他節(jié)點代表計算步驟。CNTK 是一個非常強大的命令行系統(tǒng),可以創(chuàng)建神經(jīng)網(wǎng)絡(luò)預(yù)測系統(tǒng)。
CNTK 最初是出于在 Microsoft 內(nèi)部使用的目的而開發(fā)的,一開始甚至沒有Python接口,而是使用了一種幾乎沒什么人用的語言開發(fā)的,而且文檔有些晦澀難懂,推廣不是很給力,導(dǎo)致現(xiàn)在用戶比較少。但就框架本身的質(zhì)量而言,CNTK表現(xiàn)得比較均衡,沒有明顯的短板,并且在語音領(lǐng)域效果比較突出。
MindSpore
MindSpore是華為在今年3月召開的開發(fā)者大會上正式開源,MindSpore是一款支持端邊云全場景的深度學(xué)習(xí)訓(xùn)練推理框架,當(dāng)前主要應(yīng)用于計算機視覺、自然語言處理等AI領(lǐng)域,旨在為數(shù)據(jù)科學(xué)家和算法工程師提供設(shè)計友好、運行高效的開發(fā)體驗,提供昇騰AI處理器原生支持及軟硬件協(xié)同優(yōu)化。
MindSpore的特性是可以顯著減少訓(xùn)練時間和成本(開發(fā)態(tài))、以較少的資源和最高能效比運行(運行態(tài)),同時適應(yīng)包括端、邊緣與云的全場景(部署態(tài)),強調(diào)了軟硬件協(xié)調(diào)及全場景部署的能力。因此,使用MindSpore的優(yōu)勢可以總結(jié)為四點:
簡單的開發(fā)體驗。幫助開發(fā)者實現(xiàn)網(wǎng)絡(luò)自動切分,只需串行表達(dá)就能實現(xiàn)并行訓(xùn)練,降低門檻,簡化開發(fā)流程;
靈活的調(diào)試模式。具備訓(xùn)練過程靜態(tài)執(zhí)行和動態(tài)調(diào)試能力,開發(fā)者通過變更一行代碼即可切換模式,快速在線定位問題;
充分發(fā)揮硬件潛能。最佳匹配昇騰處理器,最大程度地發(fā)揮硬件能力,幫助開發(fā)者縮短訓(xùn)練時間,提升推理性能;
全場景快速部署。支持云、邊緣和手機上的快速部署,實現(xiàn)更好的資源利用和隱私保護,讓開發(fā)者專注于AI應(yīng)用的創(chuàng)造。
MegEngine(天元)
MegEngine(天元)是今年3月正式開源的工業(yè)級深度學(xué)習(xí)框架,曠世也成為國內(nèi)第一家開源AI框架的AI企業(yè)。天元可幫助開發(fā)者用戶借助友好的編程接口,進(jìn)行大規(guī)模深度學(xué)習(xí)模型訓(xùn)練和部署。架構(gòu)上天元具體分為計算接口、圖表示、優(yōu)化與編譯、運行時管理和計算內(nèi)核五層,可極大簡化算法開發(fā)流程,實現(xiàn)了模型訓(xùn)練速度和精度的無損遷移,支持動靜態(tài)的混合編程和模型導(dǎo)入,內(nèi)置高性能計算機視覺算子,尤其適用于大模型算法訓(xùn)練。
若說谷歌TensorFlow采用利于部署的靜態(tài)圖更適用于工業(yè)界,而Facebook PyTorch采用靈活且方便調(diào)試的動態(tài)圖更適合學(xué)術(shù)科研。那么曠視的天元則在兼具了雙方特性的過程中,找到了一個的平衡點。天元是一個訓(xùn)練和推理在同一個框架、同一個體系內(nèi)完整支持的設(shè)計。基于這些創(chuàng)新性的框架設(shè)計,天元深度學(xué)習(xí)框架擁有推理訓(xùn)練一體化、動靜合一、兼容并包和靈活高效四大優(yōu)勢:
訓(xùn)練推理:一體化天元既能夠支持開發(fā)者進(jìn)行算法訓(xùn)練,同時其訓(xùn)練得到的模型,還可以直接用于產(chǎn)品的推理和封裝,無需進(jìn)行多余的模型轉(zhuǎn)換。這極大地簡化了算法開發(fā)流程,實現(xiàn)速度和精度的無損遷移。與此同時,天元在模型部署時還能夠自動優(yōu)化模型,自動幫助開發(fā)者刪除冗余代碼。
動靜合一:天元將動態(tài)圖的簡單靈活,與靜態(tài)圖的高性能優(yōu)勢進(jìn)行整合,能在充分利用動態(tài)圖模型訓(xùn)練優(yōu)勢的同時,通過動靜態(tài)一鍵轉(zhuǎn)換功能,以靜態(tài)圖的形式完成生產(chǎn)和部署。此外,天元還支持動靜態(tài)的混合編程,進(jìn)一步提高其靈活性。
兼容并包:天元部署了Pythonic的API和PyTorchModule功能,支持模型直接導(dǎo)入,進(jìn)一步降低框架遷移的入門門檻和學(xué)習(xí)成本。同時,它內(nèi)置高性能計算機視覺算子和算法,能夠深度優(yōu)化計算機視覺相關(guān)模型訓(xùn)練和應(yīng)用。
靈活高效:在部署方面,天元擁有多平臺多設(shè)備適應(yīng)能力,其內(nèi)置算子能夠在推理或生產(chǎn)環(huán)境中充分利用多核優(yōu)勢,靈活調(diào)用設(shè)備算力,十分適用于大模型算法訓(xùn)練。
3月,曠視推出的天元是Alpha版本,其中包括曠視前期整理的代碼和關(guān)鍵步驟。今年6月曠視推出了Beta版本,添加對ARM系列CPU的支持,以及更多加速芯片的支持。而天元的正式版本將于今年9月發(fā)布,除了添加對主流計算設(shè)備的支持外,還將升級其動態(tài)計算能力,進(jìn)一步優(yōu)化訓(xùn)練推理全流程的使用體驗。與此同時,曠視天元已在GitHub和國內(nèi)新一代人工智能開源開放社區(qū)OpenI上同步開源。
Jittor(計圖)
Jittor 出自清華大學(xué),開發(fā)團隊來自清華大學(xué)計算機系圖形學(xué)實驗室,牽頭者是清華大學(xué)計算機系胡事民教授。Jittor 是國內(nèi)第一個由高校開源的深度學(xué)習(xí)框架,同時也是繼 Theano、Caffe 之后,又一個由高校主導(dǎo)的框架。
與主流的深度學(xué)習(xí)框架TensorFlow、Pytorch不同,Jittor是一個完全基于動態(tài)編譯(Just-in-time)、使用元算子和統(tǒng)一計算圖的深度學(xué)習(xí)框架。Jittor 前端語言為 Python,使用了模塊化的設(shè)計,類似于 PyTorch、Keras;后端則使用高性能語言編寫,如 CUDA、C++。元算子和 Numpy 一樣易于使用,而統(tǒng)一計算圖則是融合了靜態(tài)計算圖和動態(tài)計算圖的諸多優(yōu)點,在易于使用的同時,提供高性能的優(yōu)化。基于元算子開發(fā)的深度學(xué)習(xí)模型,可以被計圖實時地自動優(yōu)化并且運行在指定的硬件上,如 CPU、GPU。
Jittor開發(fā)團隊提供了實驗數(shù)據(jù)。在ImageNet數(shù)據(jù)集上,使用Resnet50模型,GPU圖像分類任務(wù)性能比PyTorch相比,提升32%;CPU圖像分類任務(wù)提升11%。在CelebA數(shù)據(jù)集上,使用LSGAN模型,使用GPU處理圖像生成任務(wù),Jittor比PyTorch性能提升達(dá)51%。
此外,為了方便更多人上手Jittor,開發(fā)團隊采用了和PyTorch較為相似的模塊化接口,并提供輔助轉(zhuǎn)換腳本,可以將PyTorch的模型自動轉(zhuǎn)換成Jittor的模型。他們介紹稱,在參數(shù)保存和數(shù)據(jù)傳輸上,Jittor使用和PyTorch一樣的 Numpy+pickle 協(xié)議,所以Jittor和PyTorch的模型可以相互加載和調(diào)用。
當(dāng)然, Jittor作為一個新興深度學(xué)習(xí)框架,在一些功能上,仍舊需要持續(xù)迭代完善。比如生態(tài)的建設(shè),以及更大范圍的推廣,仍舊需要很多的努力。Jittor開發(fā)團隊介紹稱,就目前來看,Jittor框架的模型支持還待完善,分布式功能待完善。這也是他們下一階段研發(fā)的重點。
總的來說,各家的深度學(xué)習(xí)框架各有千秋,重要的是找到適合自己團隊的,能夠快速匹配團隊的技術(shù)棧,快速試驗以期發(fā)揮深度學(xué)習(xí)技術(shù)應(yīng)用落地的商業(yè)價值。
編輯:hfy
評論