專題推薦:金博士AI技術(shù)干貨分享
(相關(guān)資料圖)
文章推薦:硬核科普|深度學(xué)習(xí)主流開發(fā)框架解讀和比較
本文的知識點
通過本文,讀者可以從中學(xué)習(xí)和掌握的關(guān)鍵知識點,包括:
1. 深度學(xué)習(xí)框架:了解不同的深度學(xué)習(xí)框架,如PyTorch、TensorFlow和Keras,并理解每個框架的特定優(yōu)勢和使用場景。
2. 每個框架的技術(shù)細(xì)節(jié):了解每個框架的技術(shù)規(guī)格,如所用的編程語言、操作的API級別,以及架構(gòu)類型
3. 性能比較:理解這些框架在性能上的差異,如速度和處理大數(shù)據(jù)集的能力,例如Keras適合較小的數(shù)據(jù)集,而PyTorch和TensorFlow適合處理大數(shù)據(jù)集并提供高性能。
4. 如何選擇合適自己或行業(yè)的框架:學(xué)習(xí)在選擇深度學(xué)習(xí)框架時應(yīng)考慮的因素,如數(shù)據(jù)集的大小和類型、可用性的模型集,社區(qū)支持以及部署相關(guān)的流程和工具等。
大應(yīng)用對開發(fā)框架的要求
PyTorch 和 TensorFlow 都有其獨特的開發(fā)歷程和復(fù)雜的設(shè)計決策歷史。之前,這使得比較兩者變得是一個關(guān)于它們當(dāng)前特點和未來特點的復(fù)雜技術(shù)討論。鑒于兩個框架自從創(chuàng)立以來都已迅速成熟,許多這些技術(shù)差異現(xiàn)在已經(jīng)不再重要。
幸運的是,對于那些不希望聽得昏昏欲睡的人來說,當(dāng)前的 PyTorch 與 TensorFlow 的爭論主要圍繞三方面實踐所需考慮的因素:
1. 模型可用性:隨著深度學(xué)習(xí)領(lǐng)域的逐年擴大和模型相應(yīng)地變得更大,從零開始訓(xùn)練最先進(jìn)的模型已經(jīng)不再可行。幸運的是,現(xiàn)在有許多最先進(jìn)的模型公開可用,使用它們在可能的地方很重要。
2. 部署基礎(chǔ)設(shè)施:如果訓(xùn)練出的性能良好的模型不能被利用,那訓(xùn)練它們就沒有意義。降低部署時間至關(guān)重要,尤其是隨著微服務(wù)業(yè)務(wù)模型越來越受歡迎;高效的部署有可能決定許多以機器學(xué)習(xí)為中心的業(yè)務(wù)的成敗。
3. 生態(tài)系統(tǒng):深度學(xué)習(xí)不再只是在高度控制的環(huán)境中的特定用例。AI正在為眾多行業(yè)注入新的能量,因此,一個位于更大生態(tài)系統(tǒng)中的框架,可以為移動設(shè)備、本地和服務(wù)器應(yīng)用程序提供開發(fā)支持變得很重要。此外,專用機器學(xué)習(xí)硬件的出現(xiàn),如 Google 的 Edge TPU,意味著成功的實踐者需要使用能夠與這種硬件很好地集成的框架。
我們將依次探討這三個實際考慮因素,然后提供我們對在不同領(lǐng)域使用哪個框架的建議。
模型可用性比較
從零開始實現(xiàn)一個成功的深度學(xué)習(xí)模型可能是一項非常棘手的任務(wù),特別是對于如 NLP 這樣的應(yīng)用,其中工程和優(yōu)化都很困難。SOTA(State-of-the-Art,最新的、最先進(jìn)的)模型日益復(fù)雜,這對于小規(guī)模企業(yè)來,模型訓(xùn)練和微調(diào)都不太實際,甚至近乎不可能。初創(chuàng)公司和研究人員都沒有計算資源來自己利用和探索這樣的模型,因此,能夠使用預(yù)訓(xùn)練模型進(jìn)行遷移學(xué)習(xí)、微調(diào)或開箱即用的推理就顯得非常寶貴了。
在模型可用性方面,PyTorch 和 TensorFlow 有著明顯的差異。PyTorch 和 TensorFlow 都有自己的官方模型倉庫,我們將在下面的生態(tài)系統(tǒng)部分探討,但實踐者可能希望使用其他來源的模型。
我們下面從三個維度來比較模型可用性:1)在 HuggingFace 上公開的模型所支持的框架類型數(shù)量, 2)出版的科研論文其研究所基于的框架類型, 3)基于網(wǎng)站 Paper-with-Code,對提供代碼的論文所采用的框架類型進(jìn)行統(tǒng)計分析。
HuggingFace
HuggingFace 是一家領(lǐng)先的人工智能公司,致力于開發(fā)和提供一流的自然語言處理(NLP)技術(shù)。它是名為Transformers庫的開發(fā)者,該庫是一個開源項目,提供了各種最新的深度學(xué)習(xí)模型,如BERT、GPT-2、GPT-3和T5等,供研究人員和開發(fā)者使用。這些模型廣泛應(yīng)用于文本分類、信息抽取、語義理解、自然語言生成等任務(wù)。
HuggingFace的Transformers庫是NLP領(lǐng)域的一個重要資源,提供了豐富的預(yù)訓(xùn)練模型和相關(guān)工具,幫助開發(fā)者和研究人員簡化開發(fā)過程,快速實現(xiàn)各類NLP任務(wù)。此外,Transformers庫也是一個活躍的社區(qū),研究者和開發(fā)者可以在其中相互學(xué)習(xí),分享知識和經(jīng)驗。
除了Transformers庫,HuggingFace還提供了一個在線模型庫,用戶可以在其中找到、分享和使用各種預(yù)訓(xùn)練模型。此外,HuggingFace還開發(fā)了一些其他工具,如Datasets庫,這是一個開源的數(shù)據(jù)集庫,用于處理和加載各種NLP數(shù)據(jù)集。總的來說,HuggingFace是推動當(dāng)前NLP領(lǐng)域發(fā)展的重要力量,為研究和應(yīng)用提供了極大的便利。
HuggingFace可以讓你只用幾行代碼就將訓(xùn)練有素、調(diào)整優(yōu)化過的 SOTA 模型納入你的開發(fā)流程中。
當(dāng)我們比較 HuggingFace 對 PyTorch 和 TensorFlow 模型的可用性時,結(jié)果有點令人驚訝。下面我們看到的是在 HuggingFace 上可用的模型總數(shù)的圖表,這些模型要么僅限于 PyTorch 或 TensorFlow,要么適用于兩種框架。可以看到,只能在 PyTorch 中使用的模型數(shù)量絕對壓倒了競爭對手。幾乎有92% 的模型僅支持 PyTorch,比2022 年的 85% 還要多。相反,只有大約 8% 的模型僅支持 TensorFlow,所有可用模型中只有大約 14% 支持 TensorFlow ,比2022年的 16%還要少。此外,2022 年新增了超過4.5 萬個僅支持 PyTorch 的模型,而只增加了約 4 千個僅支持 TensorFlow 的模型。
圖 1 HuggingFace 上的模型數(shù)量
如果我們把注意力集中在 HuggingFace 最受歡迎的 30 個模型上,我們會看到有趣的結(jié)果。所有模型都可在 PyTorch 中使用,和去年一樣,沒有任何模型只支持 TensorFlow。不過同時支持兩種框架的模型數(shù)量已經(jīng)從 19 增加到 23。
圖 2 HuggingFace 上排名前 30 的模型
研究論文
關(guān)鍵詞:











