天天看點

零一萬物李謀:當大模型推理遇到算力瓶頸,如何進行工程優化?

作者:InfoQ

作者 | 李忠良

自 OpenAI 釋出 ChatGPT 起,大語言模型的驚豔效果吸引了越來越多的人和資本關注到該領域,近年模型本身的參數量和序列長度也呈指數級增長,要面對的算力瓶頸問題接踵而至。

在 AICon 全球人工智能開發與應用大會 暨 大模型應用生态展·2024 上,InfoQ 邀請到了零一萬物資深算法專家李謀釋出演講分享,他将結合大模型的的算力需求和模型結構,詳細介紹零一萬物在建構 Yi 模型線上推理服務過程中所運用的優化技術手段。為了讓聽衆了解更多的内容,我們提前采訪了李老師,以下為内容紀要:

InfoQ:您在演講中提到了大模型的算力需求及其增長趨勢,可以詳細介紹一下目前大模型在推理過程中所面臨的主要算力挑戰是什麼?針對這種快速增長的算力需求,您認為目前的技術和資源是否足以應對?

李謀: 大模型的計算主要分為訓練和推理兩個步驟,他們對于算力的側重點不太一樣。模型訓練側重整體吞吐 (throughput),需要大規模,高擴充性,低能耗的分布式計算叢集,而推理側重延遲 (latency),在算力方面需要強大的計算晶片,高速的記憶體通路技術。這種算力的需求在深度學習和大模型流行之後的近年來呈指數級增長,對于硬體廠商和電力供應廠商是巨大的挑戰,目前也有不少晶片制造商針對大模型場景設計了專用晶片和硬體架構,相信短期的未來能夠完美迎接這波挑戰。

InfoQ:您覺得傳統模型和大語言模型在結構上的不同之處是什麼,推理優化手段是否有差異?

李謀: 傳統模型,包括 CNN, NLP, ASR 等網絡的特點是結構複雜,算子類型多,模型的變種也很多,不同的軟體架構有自己的模型描述語言和模型結構。而大語言模型絕大多數基于 Transformer 網絡結構,通過多個 Transformer Block 串聯得到,其特點是網絡結構簡單,但參數量巨大,針對這些差異這兩套模型在工程上也有不同的優化手段。

InfoQ:了解到分布式并行加速是一個在大模型推理中措施,零一萬物在這方面是如何做的?

李謀: 簡單來講對于分布式并行的推理優化手段主要是張量并行 (tensor parallelism) 和上下文并行 (context parallelism),分别從模型次元和輸入序列次元對參數做切分,使用多個裝置并行計算達到加速的目的。

InfoQ:在推理過程中,大模型的記憶體消耗通常是一個重要的考量因素。您對于記憶體管理方面有哪些優化政策或經驗分享嗎?

李謀: 大模型的記憶體消耗主要來源于模型權重本身的加載和 Transformer Block 中的 Key/Value 這 2 個矩陣,首先模型的低精度量化是一個常見降低記憶體使用量的優化手段,使用更低精度的資料類型往往也能得到正确性的推理結果。其次模型中 Key/Value 矩陣的分頁記憶體管理 (PagedAttention) 也可以大幅度提升記憶體使用率,甚至在任務空閑的時候我們可以将 Key/Value 矩陣臨時切換放置到其它記憶體區域,在需要的時候再切換回來,以時間換空間。

InfoQ:在面對算力瓶頸時,有時候需要進行折衷權衡,比如犧牲一定的模型精度以換取更快的推理速度。您是如何權衡和決策的?是否有一些通用的指導原則?

李謀: 從感覺上來講模型的參數量越大,其中的資訊備援程度也就越高,低精度量化在傳統的小模型推理中已經是一個常見的優化手段了,對于更大參數量的語言模型更是如此。零一萬物的低精度量化覆寫了訓練和推理整個流程,是以對于推理來講是無損量化,不需要校驗這個過程。從生産環境的角度來講,如果模型量化能夠在保持主流任務評測精度幾乎不降 (或降低零點幾個點) 的情況下服務成本效益提升 1 倍以上,我覺得是可以完全可以接受的。

InfoQ:大模型在推理過程中可能會面臨的另一個挑戰是延遲問題,特别是對于實時或者互動式應用來說,延遲是一個非常關鍵的名額。您是如何處理推理延遲的優化問題的?

李謀: 優化延遲比優化吞吐要棘手一些,首先最好的情況是有條件購買算力更強大的硬體,或者從硬體設計的角度上去降低延遲。軟體層面上,比如對于 NVIDIA GPU 可以開發更高效的 CUDA Kernel,使用多卡并行等手段,當然這中優化往往有較大的人力和時間成本。

InfoQ:除了硬體加速器和分布式并行加速外,是否還有其他類型的加速技術或者優化手段可以用于緩解大模型推理的算力壓力?

李謀:這個方面内容,技術點有點多,在 5 月 17 日的 AIConAICon 全球人工智能開發與應用大會 暨 大模型應用生态展·2024 上,我們會展開分享,歡迎關注。

InfoQ:針對不同規模和複雜度的任務,您是否采用了不同的推理優化政策?是否可以分享一些根據任務需求調整政策的經驗?

李謀:不同複雜度的任務使用了不同數量,不同配比的硬體。舉個例子,對于同一個模型 Yi-34B,我們部署了 2 套硬體叢集 (低配版 / 高配版,算力和成本不同),針對使用者線上請求的具體輸入長度來決定使用哪個叢集服務,這樣能兼顧使用者體驗,服務壓力和服務成本。

InfoQ:針對目前大模型推理算力瓶頸的問題,您認為未來可能出現的技術突破或發展方向是什麼?

李謀: 首先是針對大模型的場景的專用晶片,目前國内已經有一些相關的産品,但問題是這些專用晶片和軟體配套體系在市場上沒有形成良好生态,沒有使用者的使用和共識對于生态發展是個挑戰。其次随着大模型和 AI 對算力需求的增長,伴随計算叢集規模的增長,局部地區的電力供應可能會是一個問題,這可能會推動一些清潔能源和高效發電技術 (如風力發電,可控核聚變) 的發展。

嘉賓介紹:

李謀零一萬物資深算法專家,畢業于哈爾濱工業大學,零一萬物大模型線上推理服務負責人,曆任阿裡達摩院和華為雲 EI 服務産品部技術專家。長期從事 AI 模型推理和訓練全鍊路研發與優化工作,曾帶領團隊自研通用推理引擎與底層加速庫,取得 Standford DAWNBench GPU 排行榜 TOP1 的推理性能排名。

原文連結:零一萬物李謀:當大模型推理遇到算力瓶頸,如何進行工程優化?_AI&大模型_李忠良_InfoQ精選文章

繼續閱讀