目錄
為什麼要建立 Kernl?
如何做到?
首頁 科技週邊 人工智慧 OpenAI程式語言加速Bert推理12倍,引擎備受關注

OpenAI程式語言加速Bert推理12倍,引擎備受關注

Apr 23, 2023 pm 03:19 PM
ai 推理

一行程式碼的威力到底有多大?今天我們要介紹的這個 Kernl 函式庫,使用者只需一行程式碼,在 GPU 上就能以快幾倍的速度運行 Pytorch transformer 模型,從而極大的加快了模型的推理速度。

具體而言,有了 Kernl 的加持,Bert 的推理速度比 Hugging Face 基準快了 12 倍。這項成果主要得益於 Kernl 以新的 OpenAI 程式語言 Triton 和 TorchDynamo 編寫了客製化的 GPU 核心。計畫作者來自 Lefebvre Sarrut。

OpenAI程式語言加速Bert推理12倍,引擎備受關注

GitHub 網址:https://github.com/ELS-RD/kernl/

以下是Kernl 與其他推理引擎的比較,橫座標中括號裡的數字分別表示batch size、序列長度,縱座標為推理加速情況。

OpenAI程式語言加速Bert推理12倍,引擎備受關注

基準測試在 3090 RTX GPU 運行,以及 12 核心 Intel CPU。

由上述結果可得,在長序列輸入這一塊,Kernl 可以說是最快的推理引擎(上圖中的右半部),在短輸入序列上接近英偉達的TensorRT(上圖的左半部)。除此之外,Kernl 內核程式碼非常簡短,易於理解和修改。該專案甚至添加了 Triton 偵錯器和工具 (基於 Fx) 來簡化核心替換,因此不需要修改 PyTorch 模型原始程式碼。

專案作者Michaël Benesty 對這項研究進行了總結,他們發布的Kernl 是一個用於加速transformer 推理的庫,速度非常快,有時會到達SOTA 性能,可破解以匹配大多數transformer 架構。

他們也在 T5 上做了測試,速度提高 6 倍,Benesty 表示這只是個開始。

為什麼要建立 Kernl?

在 Lefebvre Sarrut,專案作者在生產中運行幾個 transformers 模型,其中一些對延遲敏感,主要是搜尋和 recsys。他們也正在使用 OnnxRuntime 和 TensorRT,甚至創建了 transformer-deploy OSS 庫來與社區分享知識。

最近,作者在測試生成語言,並努力加速它們。然而事實證明,使用傳統工具要做到這些非常困難。在他們看來,Onnx 是另一種有趣的格式,它是一種針對機器學習所設計的開放式檔案格式,用於儲存訓練好的模型,具有廣泛的硬體支援。

但是,當他們處理新的LLM 架構時,Onnx 生態系統(主要是推理引擎)有以下幾個限制:

  • 沒有控制流的模型匯出到Onnx 很簡單,這是因為可以依賴追蹤。但動態行為更難取得;
  • 與PyTorch 不同,ONNX Runtime/TensorRT 還沒有原生支援實作張量並行的多GPU 任務;
  • TensorRT 無法為具有相同設定檔的transformer 模型管理2 個動態軸。但由於通常希望能夠提供不同長度的輸入,因此需要每個批次大小構建1 個模型;
  • #非常大的模型很常見,但Onnx(作為protobuff 檔案)在文件大小方面有一些限制,需要將權重儲存在模型之外來解決問題。

一個非常煩人的事實是新模型永遠不會被加速,你需要等著其他人來為此編寫自訂 CUDA 核心。現有解決方案並不是不好,OnnxRuntime 的一大優點是它的多硬體支持,TensorRT 則以非常快速著稱。

所以,專案作者想要在 Python/PyTorch 上有像 TensorRT 一樣快速的最佳化器,這也是他們創建 Kernl 的原因。

如何做到?

記憶體頻寬通常是深度學習的瓶頸,為了加速推理,減少記憶體存取往往是一個很好的策略。在短輸入序列上,瓶頸通常與 CPU 開銷有關,它必須被消除。專案作者主要利用了以下3 項技術:

首先是OpenAI Triton,它是一種編寫CUDA 等GPU 核心的語言,不要將它與Nvidia Triton 推理伺服器混淆,它的效率更高。幾個操作的融合實現了改進,使得他們不在 GPU 記憶體中保留中間結果的情況下連結計算。作者使用它重寫注意力(由 Flash Attention 取代)、線性層和激活以及 Layernorm/Rmsnorm。

其次是 CUDA 圖。在預熱(warmup)步驟中,它將保存每個啟動的核心及它們的參數。然後,專案作者重建了整個推理過程。

最後是 TorchDynamo,這個由 Meta 提出的原型機幫助專案作者應對動態行為。在預熱步驟中,它會追蹤模型並提供一個 Fx 圖(靜態計算圖)。他們使用自己的核心替換了 Fx 圖的一些操作,並在 Python 中重新編譯。

未來,專案路線圖將涵蓋更快的預熱、ragged 推理(padding 中沒有損失計算)、訓練支援(長序列支援)、多GPU 支援(多並行化模式)、量化(PTQ)、新batch 的Cutlass 核心測試以及提升硬體支援等。

更多詳細內容請參閱原始項目。

以上是OpenAI程式語言加速Bert推理12倍,引擎備受關注的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

解密Gate.io戰略升級:MeMebox 2.0如何重新定義加密資產管理? 解密Gate.io戰略升級:MeMebox 2.0如何重新定義加密資產管理? Apr 28, 2025 pm 03:33 PM

MeMebox 2.0通過創新架構和性能突破重新定義了加密資產管理。 1) 它解決了資產孤島、收益衰減和安全與便利悖論三大痛點。 2) 通過智能資產樞紐、動態風險管理和收益增強引擎,提升了跨鏈轉賬速度、平均收益率和安全事件響應速度。 3) 為用戶提供資產可視化、策略自動化和治理一體化,實現了用戶價值重構。 4) 通過生態協同和合規化創新,增強了平台的整體效能。 5) 未來將推出智能合約保險池、預測市場集成和AI驅動資產配置,繼續引領行業發展。

比特幣今日價格行情 比特幣今日價格行情 Apr 28, 2025 pm 07:39 PM

比特幣今日價格波動受宏觀經濟、政策、市場情緒等多因素影響,投資者需關注技術和基本面分析以做出明智決策。

排名前十的虛擬幣交易app有哪 最新數字貨幣交易所排行榜 排名前十的虛擬幣交易app有哪 最新數字貨幣交易所排行榜 Apr 28, 2025 pm 08:03 PM

Binance、OKX、gate.io等十大數字貨幣交易所完善系統、高效多元化交易和嚴密安全措施嚴重推崇。

全球幣圈十大交易所有哪些 排名前十的貨幣交易平台最新版 全球幣圈十大交易所有哪些 排名前十的貨幣交易平台最新版 Apr 28, 2025 pm 08:09 PM

全球十大加密貨幣交易平台包括Binance、OKX、Gate.io、Coinbase、Kraken、Huobi Global、Bitfinex、Bittrex、KuCoin和Poloniex,均提供多種交易方式和強大的安全措施。

比特幣值多少美金 比特幣值多少美金 Apr 28, 2025 pm 07:42 PM

比特幣的價格在20,000到30,000美元之間。 1. 比特幣自2009年以來價格波動劇烈,2017年達到近20,000美元,2021年達到近60,000美元。 2. 價格受市場需求、供應量、宏觀經濟環境等因素影響。 3. 通過交易所、移動應用和網站可獲取實時價格。 4. 比特幣價格波動性大,受市場情緒和外部因素驅動。 5. 與傳統金融市場有一定關係,受全球股市、美元強弱等影響。 6. 長期趨勢看漲,但需謹慎評估風險。

C  中的chrono庫如何使用? C 中的chrono庫如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

靠譜的數字貨幣交易平台推薦 全球十大數字貨幣交易所排行榜2025 靠譜的數字貨幣交易平台推薦 全球十大數字貨幣交易所排行榜2025 Apr 28, 2025 pm 04:30 PM

靠谱的数字货币交易平台推荐:1. OKX,2. Binance,3. Coinbase,4. Kraken,5. Huobi,6. KuCoin,7. Bitfinex,8. Gemini,9. Bitstamp,10. Poloniex,这些平台均以其安全性、用户体验和多样化的功能著称,适合不同层次的用户进行数字货币交易

全球幣圈十大交易所有哪些 排名前十的貨幣交易平台2025 全球幣圈十大交易所有哪些 排名前十的貨幣交易平台2025 Apr 28, 2025 pm 08:12 PM

2025年全球十大加密貨幣交易所包括Binance、OKX、Gate.io、Coinbase、Kraken、Huobi、Bitfinex、KuCoin、Bittrex和Poloniex,均以高交易量和安全性著稱。

See all articles