GPU推理快速4倍,256K上下文全球最長:無問芯穹刷新大模型最佳化記錄


想用大模型賺錢?這個實力強勁的新面孔決定先把推理成本打下來。

原文來源:機器之心

圖片來源:由無界AI生成

大模型業務到底多燒錢?前段時間,華爾街日報的一則報導給了參考答案。

報告顯示,微軟的GitHub Copilot 業務(背後由OpenAI 的GPT 大模型支撐)雖然每月收費10 美元,但平均還是要為每個用戶倒貼20 美元。可見當前AI 服務供應商正面臨嚴峻的經濟帳挑戰— 這些服務不僅建置成本高昂,營運成本也非常高。

有人比喻說:「用AI 總結電子郵件,就像是讓蘭博基尼送披薩外賣。」

對此,OpenAI 算過一筆更詳細的帳:當上下文長度為8K 時,每1K 輸入token 的成本為3 美分,輸出的成本為6 美分。目前,OpenAI 擁有1.8 億用戶,每天收到的查詢數量超過1,000 萬次。這樣算來,為了經營ChatGPT 這樣的模型,OpenAI 每天都需要在必要的計算硬體上投入約700 萬美元,可以說是貴得嚇人。

降低LLM 的推理成本勢在必行,而提升推理速度成為一條行之有效的關鍵路徑。

實際上,研究社群已經提出了不少用於加速LLM 推理任務的技術,包括DeepSpeed、FlexGen、vLLM、OpenPPL、FlashDecoding 和TensorRT-LLM 等。這些技術自然也各有優勢和短板。其中,FlashDecoding 是FlashAttention 作者、史丹佛大學團隊的Tri Dao 等人在上個月提出的一種state-of-the-art 方法,它透過並行加載數據,大幅提升了LLM 的推理速度,被認為極具潛力。但同時,它也引進了一些不必要的運算開銷,因此依然存在著很大的最佳化空間。

為了進一步解決問題,近日,來自無問芯穹(Infinigence-AI)、清華大學和上海交通大學的聯合團隊提出了一種新方法FlashDecoding++,不僅能帶來比之前方法更強的加速能力(可以將GPU 推理提速2-4 倍),更重要的是同時支援NVIDIA 和AMD 的GPU它的核心思想是透過非同步方法實現注意力運算的真正並行,並針對「矮胖」矩陣乘優化加速Decode 階段的計算。

論文網址:https://arxiv.org/pdf/2311.01282.pdf

將GPU 推理提速2-4 倍,

FlashDecoding++ 是怎麼做到的?

LLM 推理任務一般為輸入一段文字(token),透過LLM 模型計算繼續產生文字或其他形式的內容。

LLM 的推理計算可分為Prefill 和Decode 兩個階段,其中Prefill 階段透過理解輸入文字,產生第一個token;Decode 階段則順序輸出後續token。在兩個階段,LLM 推理的計算可分為注意力計算和矩陣乘計算兩個主要部分。

對於注意力計算,現有工作如FlashDecoding 切分注意力計算中的softmax 算符實作並行載入資料。此方法由於需要在不同部分softmax 同步最大值,在註意力計算中引入了20% 的計算開銷。而對於矩陣乘計算,在Decode 階段,左乘矩陣多表現為「矮胖」矩陣,即其行數一般不大(如

為解決上述問題,「FlashDecoding++」的核心思想在於,透過非同步方法實現注意力計算的真正並行,並針對「矮胖」矩陣乘優化加速Decode 階段的計算。

非同步並行部分softmax 計算

圖1 非同步並行部分softmax 計算

先前工作對每個部分softmax 計算求輸入最大值作為縮放係數,避免softmax 計算中e 指數的溢出,這就導致了不同部分softmax 計算的同步開銷(圖1 (a)(b))。

圖2 softmax 輸入值統計分佈

「FlashDecoding++」指出,對於大部分LLM,其softmax 的輸入分佈較為中心化。如圖2 所示,Llama2-7B 的softmax 輸入99.99% 以上中心化在 [-16.8, 6.5] 這個區間。因此,「FlashDecoding++」提出在部分softmax 計算時使用固定的最大值(圖1 (c)),從而避免了不同部分softmax 計算間的頻繁同步。而當小機率發生的輸入超出給定範圍時,「FlashDecoding++」對這一部分的softmax 計算退化為原來的計算方法。

「矮胖」矩陣乘的最佳化

圖3 「矮胖」矩陣乘切分與雙緩存機制

由於Decode 階段的輸入為一個或幾個token 向量,因此該階段的矩陣乘表現為「矮胖」形狀。以矩陣A×B=C 為例,A 與B 矩陣的形狀為M×K 與K×N,「矮胖」矩陣乘即M 較小的情況。 「FlashDecoding++」指出「矮胖」矩陣乘一般快取受限,並提出雙快取機制等最佳化手段進行加速(圖3)。

圖4 自適應矩陣乘實現

此外,「FlashDecoding++」進一步指出,在LLM 推理階段,針對特定模型,N 和K 的取值固定。因此,「FlashDecoding++」會根據M 的大小,自適應選取矩陣乘的最優實作。

將GPU 推理提速2-4 倍

圖5 “FlashDecoding++”NVIDIA 與AMD 平台LLM 推理(Llama2-7B模型,batchsize=1)

目前,「FlashDecoding++」可以實現NVIDIA 與AMD 等多款GPU 後端的LLM 推理加速(圖5)。透過加速Prefill 階段的首token 生成速度,以及Decode 階段每個token 的生成速度,「FlashDecoding++」可以在長、短文本的生成上均取得加速效果。相較於FlashDecoding,「FlashDecoding++」在NVIDIA A100 上的推理平均加速37%,並在NVIDIA 和AMD 的多GPU 後端上相較於Hugging Face 實現加速多達2-4 倍。

AI 大模型創業新秀:無問芯穹

研究的三位共同一作分別是無問芯穹首席科學家、上海交通大學副教授戴國浩博士,無問芯穹研究實習生、清華大學碩士生洪可,無問芯穹研究實習生、上海交通大學博士生許。通訊作者為上海交通大學戴國浩教授及清華大學電子工程系主任汪玉教授。

創立於2023 年5 月的無問芯穹,目標是打造大模型軟硬體一體化最佳解決方案,目前FlashDecoding++ 已被整合於無問芯穹的大模型計算引擎「Infini-ACC」中。在「Infini-ACC」的支持下,無問芯穹正在開發一系列大模型軟硬體一體化的解決方案,其中包含大模型「無穹天權(Infini-Megrez)」、軟硬體一體機等。

據了解,「Infini-Megrez」在處理長文本方面表現非常出色,將可處理的文本長度破紀錄地提升到了256k token,實測處理大約40 萬字的一整本《三體3:死神永生》也不成問題。這是目前的大模型所能處理的最長文字長度。

此外,「Infini-Megrez」大模型在CEval (中)、MMLU (英)、CMMLU (中)、AGIEval 等資料集上均取得了第一梯隊演算法性能,並依托「Infini-ACC」計算引擎持續進化中。

資訊來源:由0x資訊編譯自8BTC。版權所有,未經許可,不得轉載

Total
0
Shares
Related Posts