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