硬體成本是大模型運用時必須面對的挑戰,本篇文章將從電腦架構演變、成本與耗電、硬體卸載、端雲共生等四大面向切入,探討各自發展的可能。
文章回顧:
- AI 大模型的硬體瓶頸與探討(一):從深度學習到大語言模型
- AI 大模型的硬體瓶頸與探討(二):無論雲端還是地端,始終面臨的問題
關於大模型硬體瓶頸的延伸討論(一):電腦架構的演變
電腦 CPU 就像是每項能力都具備的員工,當電腦開機時員工(CPU)會開始工作,並把常用的數據從倉庫(硬碟)取出,放在辦公室的櫃子(記憶體)裡,再將最常用的數據拿到辦公桌上(快取記憶體),根據需求完成各式各樣的任務。隨著電腦時代的發展,多核心處理變成多個CPU一起合作,就像是多個員工在同一個辦公室協同工作。
早期的 GPU 卡是專門進行繪圖運算的硬體設備。相比於一個十項全能的 CPU,一個 GPU 比較像是大量家庭代工,擅長一口氣進行大量的向量計算。NVIDIA 後來推出 CUDA,使得各種程式開發者都能透過 CUDA 來操作 GPU,隨著深度學習的興起,由於深度學習有很大部份需要大量向量計算,加上 CUDA 在開發上的便利性,GPU 的這種超能力變得非常受歡迎。
現今的電腦架構結合數據驅動與 AI 模型,導致大模型住進 GPU 卡並霸佔大量的向量計算設備。當模型開始工作時,需要將數據從辦公桌(快取記憶體)、辦公室(記憶體)或倉庫(硬碟)搬運到隔壁的 GPU 卡裡,讓大模型使用 GPU 卡做出正確推論,再與 CPU 一同協作,加上多核心與網路協作時代,資料的傳輸和交換成為 AI 模型的硬體計算瓶頸。
近期出現了一種專門為神經網路設計的處理單元:NPU(Neural Processing Unit),它是為了處理深度學習運算任務而生。2024 年 AI PC 熱潮可以看到各種新型的設計,例如將 NPU 放置在 CPU 旁邊來降低傳輸延遲(將 NPU 和 CPU 一起放在辦公室,不另外租用隔壁的 GPU),或是將 NPU 放置在 GPU 中來降低 GPU 的功耗(由 NPU 來承擔更多深度學習的責任)等,加上原有的 FPGA(Field-Programmable Gate Array)和 ASIC(Application-Specific Integrated Circuit)技術和生態系,將會催生出新的架構,使得 CPU、記憶體、GPU (或其他深度學習運算單元)、硬碟(或其他儲存數據的設施)、AI 模型與數據的協作更為流暢。
關於大模型硬體瓶頸的延伸討論(二):高成本和高耗電
每次計算時大模型的運算成本高昂且耗電量巨大,但實務上大模型能夠分成不同的區塊,每個區塊專門處理特定類型的任務。例如一個區塊專門負責數學計算,另一個區塊負責物理模擬,更上位的還可以設置一個 PM(專案經理)來決定哪個問題應該由哪個區塊來解答,或是哪些區塊應該共同討論。該架構具體可參考 Mixture of Experts,透過不同專家的子模型來處理特定的輸入,從而提高計算效率和精度,避免讓所有神經元參與每次計算。
其他像是脈衝神經網路(Spiking Neural Networks, SNNs),是一種受到生物神經系統啟發的神經網路模型,SNNs 只在神經元觸發脈衝時進行計算,以及利用量子位元(qubits)進行計算的量子計算,都是現在正在發展中的技術,可望未來有機會在不影響性能的前提下,降低大模型的運算成本。
關於大模型硬體瓶頸的延伸討論(三):硬體卸載(Hardware Offloading)
電腦系統會將常用的數據放在辦公室的櫃子(記憶體)裡,並將最常用的數據拿到辦公桌上(快取記憶體),降低員工(CPU)去從倉庫(硬碟)拿的時間,在計算機架構裡會有一系列的演算法來作程序上的優化,決定誰放在哪裡可以增加效率。
現在大模型多出大量神經元(模型權重)和深度學習設備(GPU),有時在硬體資源有限時,或是需要由 CPU 負責部份任務,部份的神經元會放置在記憶體中,如何在不同存儲設備之間動態轉移數據(可能會付出更多傳輸成本),是大模型高效運行的關鍵。
一種作法是硬體卸載(Hardware Offloading),將大語言模型中暫時不需要的部份從速度較快的 GPU 轉移到速度較慢但容量更大的儲存設備,例如記憶體或硬碟,當這些數據再次需要時,再將它們重新放回 GPU(或是預測未來有很大可能被使用到,提前進行載入)。這是一個在模型權重、推理輸入、中間運算結果和傳輸成本之間取捨與分配的優化問題,優化問題自然能使用機器學習方式來求得有效的卸載策略,這樣做可以讓大模型在記憶體受限的 GPU 上更有效地運行。
關於大模型硬體瓶頸的延伸討論(四):端雲共生(Edge-Cloud Collaborative)
大模型實際落地的硬體瓶頸有另一種常見的解法,地端設備(如智能手機、物聯網設備等)通常資源有限,但能夠部署較小的特化模型。這些特化模型負責簡單的任務或專一性的任務,回應速度更快(低延遲),並且能夠保護敏感資料。隨後將通用大模型放置在雲端,由特化模型與雲端大模型進行協作。當地端設備需要進行更複雜的任務,系統可以將這些請求發送到雲端的大模型中處理。
這些架構能進一步跟連續學習(Continuous Learning)結合,特化模型可以根據使用者的操作和反饋,不斷更新和優化,或是建立動態更新的知識庫,來打造個人AI助理,並且避開大模型重新訓練成本高昂的問題。