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