日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tensorflow 指定cpu 但是还会运行 gpu_PyTorch VS TensorFlow 谁最强?这是标星 15000+ Transformers 库的运行结果...

發布時間:2023/12/10 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tensorflow 指定cpu 但是还会运行 gpu_PyTorch VS TensorFlow 谁最强?这是标星 15000+ Transformers 库的运行结果... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“AI有道”,選擇“星標”公眾號

重磅干貨,第一時間送達

作者 | Lysandre Debut譯者 | 陸離出品 | AI科技大本營(ID: rgznai100)【導語】自然語言處理預訓練模型庫 Transformers 實現了幾種用于 NLP 任務的最先進的 Transformer 架構,如文本分類、信息提取、問題解答和文本生成等,它經常被研究人員和公司所使用,提供 PyTorch 和 TensorFlow 的前端實現。究竟是 PyTorch 還是 TensorFlow 更有效率地訓練和運行 Transformers 模型?作者對不同環境下所展現的性能進行了對比,最終的結果是,無論在 CPU 還是 GPU 上,最終兩大框架的表現都差不多。Transformers庫:https://github.com/huggingface/transformers自 TensorFlow 發布以來,我們一直在致力于模型產品化的工作,并使其可以用在 TPU 上,逐步適應它的性能。本文對比了我們的模型在幾種環境中所展現出來的性能。在 CPU 和 GPU 上比較了 PyTorch(1.3.0)和 TensorFlow(2.0)的推斷結果。出于對一些原因的考慮,本文只是關于基準測試和后續性能優化系列文章中的第一篇。此外,我們還在文檔中創建了基準測試部分,隨著進一步的模型研究,并在不同環境中對它們進行基準測試,該部分還將不斷完善。

結果

測試的平均結果顯示在下表中,在接下來的討論部分里將對這些結果進行詳細介紹。? ? ?平均推斷時間Benchmarking Transformers測試結果:https://url.cn/5hZHCll電子表格中的 N/A 記錄表示內存不足或是數列長度不合適。Transformer-XL(Transformer extra-long,Transformer 在模型設計上做了長度方面的延申)沒有 TorchScript 結果,因為它當前不能由 TorchScript(TorchScript 是一種從 PyTorch 代碼創建可序列化和可優化模型的方法)進行序列化。大多數情況下,TensorFlow 和 PyTorch 的模型在 GPU 和 CPU 上都得到了非常相似的結果。下面是對結果相關的闡述,不僅是 PyTorch 和 TensorFlow 之間的比較,也是模型之間的比較。

測量推理

推理時間是模型投入生產時的一個重要指標。為了評估模型的推理時間,我們對不同批量和不同序列長度的模型進行了對比。我們比較了適當的批量大小[1,2,4,8]和序列長度[8,64,128,256,512,1024]。批量大小仍然很小,因為我們僅僅關注推斷設置。BERT和其它類似模型的最大序列長度為 512 或 256(用于 CTRL),因此不能在最后一個序列長度上進行測量。以下是我們在兩種不同環境中的測試結果:
  • 在 CPU 上,使用 GCP n1-standard-32,它有 32 個 vCPU 和 120GB 的內存。CPU 的型號是 Intel Xeon@2.3GHz:
  • 在 GPU 上,使用了帶有 12 個 vCPU、40GB 內存和一個 V100 的 GPU(16GB 的 ? ?VRAM)的定制 GCP 機器;

實驗細節和最佳實踐

為了最大化性能,我們進行了更進一步的優化:
  • 上述測量使用的 Intel Xeon CPU 帶有 AVX 和 AVX2 的擴展,而 TensorFlow 需要從源代碼編譯之后才能夠利用這些擴展,所以只能這么做;
  • 我們通過使用 tf.function 和預先跟蹤模型來確保我們沒有使用 TensorFlow 的 eager 模式;
  • 我們比較了依賴于庫和不依賴于庫的工具:PyTorch的 TorchScript 和帶有 GPU 的TensorFlow 的 XLA(自動聚類),后面會詳細介紹這兩個工具;
  • 我們使用了原生的 Python 模塊 timeit 來測量推斷時間。另外,用repeat=30 和 number=3 來進行每個實驗。然后求出30 個值的平均數,就會得到所期望的平均推理時間。通常超過30 個值就會獲得非常穩定的結果了;
  • 我們不會使用如 TFX 這樣的生產環境,并且我們使用的測量模型的可調用方法是:PyTorch 的nn.module.forward 和 TensorFlow 的 tf.keras.layers.layer.call;
  • 對于 TensorFlow 和 PyTorch,我們會很謹慎地使用適當的 CUDA 版本;

討論

PyTorch TensorFlow

在大多數情況下,這兩個框架都會得到類似的結果,與 PyTorch 相比,TensorFlow 在CPU 上的速度通常會稍慢一些,而在 GPU 上的速度則稍快一點:
  • 所有的模型中,在 CPU 上,PyTorch 的平均推斷時間為 0.748s,而 TensorFlow 的平均推斷時間為 0.823s;
  • 所有模型中,在 GPU 上,PyTorch 的平均推斷時間為 0.046s,而 TensorFlow 的平均推斷時間為 0.043s;
這些結果通過計算平均值來比較所有模型的推斷時間。因此,輸入值越大,對最終結果的影響就越大。當輸入值過大時,PyTorch?就會耗盡內存;當計算平均值時,這些結果會從所有度量中刪除,因為這樣會使結果向?PyTorch 傾斜。運行過程中,PyTorch 模型往往比 TensorFlow 模型更早地耗盡內存:除了Distilled 模型之外,PyTorch 在輸入批量大小達到 8 以及序列長度達到 1024 時會耗盡內存。

TorchScript

TorchScript 是PyTorch 用來創建可序列化模型的一種方法,可以在不同的運行時間上運行,而不需要 Python 的依賴包,如 C++ 環境。我們的測試是通過在 Python 中跟蹤模型并在相同的環境中重用這個跟蹤模型來完成的。我們通過預先執行前向傳遞以確保在測量其推斷之前來跟蹤模型。免責聲明:雖然 TorchScript 并不是為了在 Python 環境中提高運行速度而創建的,但是我們的結果表明,使用 TorchScript 的跟蹤模型可以提高性能。TorchScript 似乎非常依賴于模型以及輸入的大小(批量大小*序列長度)。例如,在XLNet 上使用 TorchScript 可以獲得永久性的性能提升,而在 XLM 上使用 TorchScript 則可能會出現問題,因為它在較小輸入下才會提高性能,但在較大輸入下反而會降低性能。平均來說,使用 TorchScript 跟蹤模型的推斷速度比使用相同 PyTorch 非跟蹤模型的推斷速度快 20%。

XLA

XLA 是一個線性代數編譯器,它可以提高 TensorFlow 模型的速度,但我們只能在 GPU上使用。它基于TensorFlow 的自動聚類,編譯了模型的一些子圖。這些結果在速度和內存的使用效率方面得到了提高:大多數內部基準在啟用了XLA 后運行速度提高了 1.15 倍。在啟用 XLA 后,我們所有模型性能都得到了提高。在某些極端情況下,特別是在較小輸入的情況下,推斷時間可以減少 70%。

模型及其精煉版本

精煉模型版本在這個測試中表現出色,因為它可以很快就進行基準測試。這兩個 Hugging Face-engineered 模型——DistilBERT 和 DistilGPT-2 的推斷時間比它們的老師模型減少了一半。

貢獻

由于不同的基準測試有不同的設置和相應的工具,這些都不是靠一個組織所能實現的,因此我們也歡迎來自廣大社區的基準。Github用戶 @tlkh 已經通過在 TensorFlow 的模型上使用 AMP、XLA 和分布式策略實現的基準測試性能做出了重大的貢獻,目前也被添加到文檔的基準測試部分。

如何做貢獻

如果你愿意參與,我們已經在 Github 上設置了主題模板,這樣操作起來就會更簡單一些。你可以隨意打開已有結果的主題,或者打開一個請求并到文檔的基準測試部分進行添加。

基準測試腳本

和本文的發布和文檔中的基準測試頁一起,我們在示例部分添加了一個新腳本:benchmarks.py,它是用于獲取下面詳細結果的腳本。它可以使用XLA 或 TorchScript 在 TensorFlow 或 PyTorch 上運行基準測試,并將結果保存到 CSV 文件當中。

接下來的計劃對模型進行基準測試只是提高性能的第一步。我們相信這篇介紹性的文章可能有助于比較模型的當前狀態,特別是在研究 PyTorch 和 TensorFlow 之間的差異時。當我們深入研究 Transformers 生產方面時,一定會致力于性能改進。對于 Pythorch 和 TensorFlow 的自動化腳本、新架構和定制 TPU 培訓,請密切關注后續文章。原文鏈接:https://medium.com/huggingface/benchmarking-transformers-pytorch-and-tensorflow-e2917fb891c2

推薦閱讀

(點擊標題可跳轉閱讀)

完備的 AI 學習路線,最詳細的資源整理!

干貨 | 公眾號歷史文章精選

我的深度學習入門路線

我的機器學習入門路線圖

總結

以上是生活随笔為你收集整理的tensorflow 指定cpu 但是还会运行 gpu_PyTorch VS TensorFlow 谁最强?这是标星 15000+ Transformers 库的运行结果...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。