7月15日消息,AMD近日在美國洛杉磯舉行的技術日活動中公布了“North Star”(北極星)計劃,未來推出的 Ryzen AI PC芯片將可支持以每秒100個Token的速度在本地運行300億個參數的大型語言模型(LLM),實現 3000 的語義長度,并且首個Token生成的延遲要低于100毫秒。
但是,要實現AMD提出的這個目標并不容易,這需要硬件和軟件性能上的巨大提升。要知道AMD最新推出的代號為“Strix Point ”的AI PC芯片Ryzen AI 300系列在以 4bit 精度運行70億參數的大語言模型,每秒只能生成20個Token,并且首個Token的生成延遲高達1-4秒。
如果要本地支持以每秒生成100個Token的速度運行 300 億參數的大模型,“North Star”不僅需要邏輯面積更大、性能更強的 NPU ,這對于提升 TOPS 或 FLOPS 肯定會有所幫助——尤其是在首次令牌延遲方面,但是在本地運行大型語言模型時,所需要的內存容量和帶寬也極為重要。
在這方面,AMD的Strix Point 的大語言模型性能在很大程度上受到其 128 位內存總線的限制——當選擇采用 LPDDR5x 配對時,其帶寬在一般 120-135 GBps 左右,具體取決于內存的速度。
理論上來說,一個真正的 300 億參數模型,量化為4bit,將消耗大約 15GB 的內存,并且需要超過 1.5 TBps 的帶寬才能達到每秒 100 個令牌的目標。作為參考,這與配備 HBM2 的 40GB Nvidia A100 PCIe 卡的帶寬大致相同,但功率要大得多。
這意味著,如果不進行優化以降低模型的要求(比如采用內存壓縮技術),AMD未來的SoC將需要更快、更高容量的LPDDR來達到芯片設計者的目標。
人工智能的發展速度快于芯片
AMD 從事 SoC 開發的高級研究員和芯片設計工程師Mahesh Subramony對于這些挑戰表示,“我們知道如何到達那里,雖然有可能設計出能夠實現AMD今天目標的部件,但如果沒有人能負擔得起使用它,或者沒有任何東西可以利用它,那就沒有多大意義了?!?/p>
“如果一開始就說每個人都必須擁有一輛法拉利,那么汽車就不會激增。你必須首先說每個人都有一臺很棒的機器,然后你首先展示你可以負責任地用它做什么,“他解釋道。
“我們必須建立一個滿足 95% 人需求的 SKU,”他繼續說道。“我寧愿擁有一臺價值 1,300 美元的筆記本電腦,然后通過云端來運行我的 300 億參數模型。今天這還是便宜的?!?/p>
在展示 AI PC 的價值方面,AMD 非常依賴其軟件合作伙伴。對于像 Strix Point 這樣的產品,這在很大程度上意味著需要微軟的支持。“當 Strix Point 最初開始時,我們與微軟的這種深度合作在某種程度上真正推動了我們的邊界,”他回憶道。
但是,雖然軟件可以幫助指導新硬件的發展方向,但開發和提升新芯片可能需要數年時間,Subramony解釋說?!癎en AI 和 AI 用例的發展速度遠快?!?/p>
自 ChatGPT 首次亮相以來,已經有兩年的時間來持續演變,Subramony 表示 AMD 現在對計算需求的發展方向有了更好的了解——這無疑是 AMD 制定這一目標的部分原因。
克服瓶頸
有幾種方法可以解決內存帶寬挑戰。例如,LPDDR5 可以換成高帶寬內存——但正如 Subramony 所指出的那樣,這樣做并不完全有利,因為它會大大增加成本并降低 SoC 的功耗。
“如果我們無法獲得 300 億個參數的模型,我們需要能夠獲得提供相同保真度的東西。這意味著在訓練中需要進行改進,以嘗試首先使這些更小的模型,“Subramony解釋說。
好消息是,有很多方法可以做到這一點——這取決于你是想優先考慮內存帶寬還是容量。
一種可能的方法是按照 Mistral AI 的 Mixtral 使用混合專家 (MoE) 模型。這些 MoE 本質上是一組相互協同工作的較小模型。通常,完整的 MoE 會被加載到內存中,但由于只有一個子模型處于活動狀態,因此與同等大小的單片模型架構相比,內存帶寬需求大大降低。
由六個 50 億參數模型組成的 MoE 只需要略高于 250 GBps 的帶寬即可實現每秒 100 個Token的目標——至少精度為4bit。
另一種方法是使用推測解碼——一個小型輕量級模型生成草稿的過程,然后將其傳遞給更大的模型以糾正任何不準確之處。AMD表示,這種方法在性能上有相當大的改進,但它并不一定能解決大語言模型需要大量內存的事實。
如今,大多數模型都是在 Float 16 或 FP16 數據類型中訓練的,它們每個參數消耗兩個字節。這意味著一個 300 億參數的模型需要 60GB 的內存才能以原始精度運行。
但是,由于這對絕大多數用戶來說可能并不實用,因此將模型量化為 8bit 或 4bit 精度的情況并不少見。這犧牲了準確性并增加了AI幻覺的可能性,但將您的內存需求減少到四分之一。這也是AMD現有AI PC芯片如何以每秒20個Token的速度運行70億個參數模型的關鍵。
新形式的加速可以提供幫助
作為一種折衷方案,從 Strix Point 開始,AMD的XDNA 2 NPU 將支持新的Block FP16 數據類型。因為傳統的 INT8 應對目前的需求似乎已經有點力不從心,但是使用 FP32 又太過于浪費浪費,相對而言,采用 FP16 可以實現更高的算力,并且精度也足夠使用,但是依然會占據不小的帶寬。于是, AMD 選擇將 FP16 以及 INT8 融合打造成為 Block FP16 數據類型,結合了16bit數據的高精度和 8bit位數據的高性能,它只需要每個參數9bit——它能夠通過取 8 個浮點值并使用一個共享指數來做到這一點。根據 AMD 的說法,Block FP16 能夠達到與原生 FP16 幾乎無法區分的精度,同時僅比 Int8 占用略多的空間。
更重要的是,AMD稱該Block FP16 數據類型不需要重新訓練模型來利用它們——現有的 BF16 和 FP16 模型無需量化步驟即可工作。
但是,除非普通筆記本電腦開始配備48GB或更多的內存,否則AMD仍然需要找到更好的方法來縮小模型的占用空間。
雖然沒有明確提及,但不難想象 AMD 未來的 NPU 和/或集成顯卡會增加對 MXFP6 或 MXFP4 等較小的浮點格式的支持。目前AMD 的 CDNA 數據中心 GPU 也將支持 FP8,而 CDNA 4 將支持 FP4。
無論如何,隨著大語言模型開始向邊緣部署,PC 硬件似乎將在未來幾年發生巨大變化。