偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

谷歌狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓(xùn)練最快選擇

人工智能 新聞
JAX在最近的基準(zhǔn)測試中的性能已經(jīng)不聲不響地超過了Pytorch和TensorFlow,也許未來會有更多的大模型誕生在這個平臺上。谷歌在背后的默默付出終于得到了回報。

谷歌力推的JAX在最近的基準(zhǔn)測試中性能已經(jīng)超過Pytorch和TensorFlow,7項指標(biāo)排名第一。

而且測試并不是在JAX性能表現(xiàn)最好的TPU上完成的。

雖然現(xiàn)在在開發(fā)者中,Pytorch依然比Tensorflow更受歡迎。

圖片

但未來,也許有更多的大模型會基于JAX平臺進(jìn)行訓(xùn)練和運行。

模型

最近,Keras團(tuán)隊為三個后端(TensorFlow、JAX、PyTorch)與原生PyTorch實現(xiàn)以及搭配TensorFlow的Keras 2進(jìn)行了基準(zhǔn)測試。

首先,他們?yōu)樯墒胶头巧墒饺斯ぶ悄苋蝿?wù)選擇了一組主流的計算機(jī)視覺和自然語言處理模型:

對于模型的Keras版本,其采用了KerasCV和KerasNLP中已有的實現(xiàn)進(jìn)行構(gòu)建。而對于原生的PyTorch版本,則選擇了網(wǎng)絡(luò)上最流行的幾個選項:

- 來自HuggingFace Transformers的BERT、Gemma、Mistral

- 來自HuggingFace Diffusers的StableDiffusion

- 來自Meta的SegmentAnything

他們將這組模型稱作「Native PyTorch」,以便與使用PyTorch后端的Keras 3版本進(jìn)行區(qū)分。

他們對所有基準(zhǔn)測試都使用了合成數(shù)據(jù),并在所有LLM訓(xùn)練和推理中使用了bfloat16精度,同時在所有LLM訓(xùn)練中使用了LoRA(微調(diào))。

根據(jù)PyTorch團(tuán)隊的建議,他們在原生PyTorch實現(xiàn)中使用了torch.compile(model, mode="reduce-overhead")(由于不兼容,Gemma和Mistral訓(xùn)練除外)。

為了衡量開箱即用的性能,他們使用高級API(例如HuggingFace的Trainer()、標(biāo)準(zhǔn)PyTorch訓(xùn)練循環(huán)和Keras model.fit()),并盡可能減少配置。

硬件配置

所有基準(zhǔn)測試均使用Google Cloud Compute Engine進(jìn)行,配置為:一塊擁有40GB顯存的NVIDIA A100 GPU、12個虛擬CPU和85GB的主機(jī)內(nèi)存。

基準(zhǔn)測試結(jié)果

表2顯示了基準(zhǔn)測試結(jié)果(以步/毫秒為單位)。每步都涉及對單個數(shù)據(jù)批次進(jìn)行訓(xùn)練或預(yù)測。

結(jié)果是100步的平均值,但排除了第一個步,因為第一步包括了模型創(chuàng)建和編譯,這會額外花費時間。

為了確保比較的公平性,對于相同的模型和任務(wù)(不論是訓(xùn)練還是推理)都使用相同的批大小。

然而,對于不同的模型和任務(wù),由于它們的規(guī)模和架構(gòu)有所不同,可根據(jù)需要調(diào)整數(shù)據(jù)批大小,從而避免因過大而導(dǎo)致內(nèi)存溢出,或是批過小而導(dǎo)致GPU使用不足。

過小的批大小也會使PyTorch看起來較慢,因為會增加Python的開銷。

對于大型語言模型(Gemma和Mistral),測試時也使用了相同的批處理大小,因為它們是相同類型的模型,具有類似數(shù)量的參數(shù)(7B)。

考慮到用戶對單批文本生成的需求,也對批大小為1的文本生成情況進(jìn)行了基準(zhǔn)測試。

圖片

關(guān)鍵發(fā)現(xiàn)

發(fā)現(xiàn)1

不存在「最優(yōu)」后端。

Keras的三種后端各展所長,重要的是,就性能而言,并沒有哪一個后端能夠始終勝出。

選擇哪個后端最快,往往取決于模型的架構(gòu)。

這一點突出了選擇不同框架以追求最佳性能的重要性。Keras 3可以幫助輕松切換后端,以便為模型找到最合適的選擇。

發(fā)現(xiàn)2

Keras 3的性能普遍超過PyTorch的標(biāo)準(zhǔn)實現(xiàn)。

相對于原生PyTorch,Keras 3在吞吐量(步/毫秒)上有明顯的提升。

特別是,在10個測試任務(wù)中,有5個的速度提升超過了50%。其中,最高更是達(dá)到了290%。

圖片

如果是100%,意味著Keras 3的速度是PyTorch的2倍;如果是0%,則表示兩者性能相當(dāng)

發(fā)現(xiàn)3

Keras 3提供一流的「開箱即用」性能。

也就是,所有參與測試的Keras模型都未進(jìn)行過任何優(yōu)化。相比之下,使用原生PyTorch實現(xiàn)時,通常需要用戶自行進(jìn)行更多性能優(yōu)化。

除了上面分享的數(shù)據(jù),測試中還注意到在HuggingFace Diffusers的StableDiffusion推理功能上,從版本0.25.0升級到0.3.0時,性能提升超過了100%。

同樣,在HuggingFace Transformers中,Gemma從4.38.1版本升級至4.38.2版本也顯著提高了性能。

這些性能的提升凸顯了HuggingFace在性能優(yōu)化方面的專注和努力。

對于一些手動優(yōu)化較少的模型,如SegmentAnything,則使用了研究作者提供的實現(xiàn)。在這種情況下,與Keras相比,性能差距比大多數(shù)其他模型更大。

這表明,Keras能夠提供卓越的開箱即用性能,用戶無需深入了解所有優(yōu)化技巧即可享受到快速的模型運行速度。

發(fā)現(xiàn)4

Keras 3的表現(xiàn)始終優(yōu)于Keras 2。

例如,SegmentAnything的推理速度提升了驚人的380%,StableDiffusion的訓(xùn)練處理速度提升了150%以上,BERT的訓(xùn)練處理速度也提升了100%以上。

這主要是因為Keras 2在某些情況下直接使用了更多的TensorFlow融合操作,而這可能對于XLA的編譯并不是最佳選擇。

值得注意的是,即使僅升級到Keras 3并繼續(xù)使用TensorFlow后端,也能顯著提升性能。

結(jié)論

框架的性能在很大程度上取決于具體使用的模型。

Keras 3能夠幫助為任務(wù)選擇最快的框架,這種選擇幾乎總能超越Keras 2和PyTorch實現(xiàn)。

更為重要的是,Keras 3模型無需進(jìn)行復(fù)雜的底層優(yōu)化,即可提供卓越的開箱即用性能。

責(zé)任編輯:張燕妮 來源: 新智元
相關(guān)推薦

2022-06-15 14:48:39

谷歌TensorFlowMeta

2024-12-20 14:30:00

2023-03-08 18:43:50

GPU模型隔離

2015-05-11 15:45:10

Android M谷歌

2021-08-09 15:56:43

機(jī)器學(xué)習(xí)人工智能計算機(jī)

2016-08-31 11:19:11

Daydream谷歌Oculus

2022-09-21 10:40:57

TensorFlowPyTorchJAX

2021-08-20 15:32:14

機(jī)器人人工智能系統(tǒng)

2020-05-28 13:20:49

算法谷歌性能

2019-10-14 09:58:00

機(jī)器學(xué)習(xí)人工智能計算機(jī)

2020-10-27 09:37:43

PyTorchTensorFlow機(jī)器學(xué)習(xí)

2020-05-29 15:40:40

NVIDIA

2012-12-24 15:25:59

Xhpone Xhpone Android

2017-04-10 18:00:11

2015-08-14 15:10:45

2022-02-16 13:58:53

谷歌深度學(xué)習(xí)框架

2020-02-21 15:33:44

人工智能機(jī)器學(xué)習(xí)技術(shù)

2023-08-11 08:00:00

人工智能Keras 3.0
點贊
收藏

51CTO技術(shù)棧公眾號