要想讓 AI 跑得更快,可以給大模型找個替身隊友?這是上海交通大學教授戚正偉團隊的最新成果。你有沒有玩過這樣的游戲:一個團隊里每個人都有自己的特長,但有時候某個隊員臨時來不了,如果找個技能相似的替補隊員頂上,整個團隊也能順利完成任務。現在,AI 大模型也遇到了類似情況。
想象一下,AI 大模型就像一個由成千上萬個小專家組成的超級團隊。每個小專家都擅長處理不同類型的問題,有的擅長數學、有的擅長寫作、有的擅長編程。
但神奇的是,每當你問 AI 一個問題,它并不需要請出所有專家來回答。就像你問 AI 一道數學題的時候,只需要請出來數學專家工作就可以,不需要驚動寫作專家和繪畫專家。這種設計讓 AI 能夠保持較高效率,同時其還擁有海量的知識。
不過問題來了:雖然每次只用到少數專家,但是所有專家都必須隨時待命準備被召喚。為了解決這個“太胖裝不下”的問題,人們想了一個辦法:把不常用的專家搬到電腦的普通內存里待命,就像把不常用的物品放到倉庫一樣。當需要某個專家的時候,再臨時把它從倉庫請回來。
但是這個方法存在一個大問題:從倉庫搬東西太慢了,把一位專家從普通內存請到顯卡上工作,需要花費 10 毫秒左右的搬運時間。而專家在顯卡上的工作時間卻只需要不到 1 毫秒。也就是說,搬運時間比工作時間長了 10 倍。
戚正偉團隊在仔細觀察這些 AI 專家之后發現,很多專家其實長得特別像,功能也差不多。比如,在處理“蘋果”這個詞語的時候,可能同時有好幾個專家都能理解它,有的專家將蘋果理解為水果,有的專家將蘋果理解為蘋果公司,但它們在某些情況之下可以互相替代。為此,他和團隊通過繪制專家關系熱力圖,厘清了哪些專家經常一起工作、哪些專家的能力很相似。
基于此,戚正偉團隊提出一款名為 BuddyMoE 的智能系統(Buddy 就是好朋友的意思)。這個系統的核心思想很簡單:當需要某個專家但它又不在顯卡上的時候,不是急著去倉庫搬運,而是立即找一個已經在顯卡上的、能力相似的伙伴專家來臨時頂替。
BuddyMoE 的專家預取流程。當 GPU 正在處理第 i 層的計算時,CPU 會提前預測并預加載第 i+1 層所需的專家(Prefetch),將數據的搬運與計算并行進行,從而降低延遲。