OpenAI 的第四代大型語言模型 GPT-4,據估計訓練耗費了 50 兆瓦時(Gigawatt-hours)的電力,相當於 5,000 個美國家庭一年的用電量。這是在 2023 年的情況,此後,用於訓練尖端 LLM 的運算資源只增不減,儘管直接的功耗數據難以取得。
現在,荷蘭特文特大學的一個研究團隊展示,透過在運算過程中巧妙調整 GPU 的時脈頻率,可以在不犧牲速度的情況下,將 LLM 訓練的能源消耗節省高達 14%。特文特大學的博士候選人兼論文主要作者 Jeffrey Spaan,上個月在西西里島卡塔尼亞舉行的 Computing Frontiers 會議上發表了這項成果。
Spaan 表示:「我的研究是關於尋找運算浪費。這類似於硬體利用率不足,但我們不是為硬體最佳化軟體,而是嘗試為軟體最佳化硬體。」
Spaan 和他的合作者透過動態電壓頻率調整(DVFS)技術實現了這一點。每個晶片,包括常用於訓練尖端模型的 GPU,都至少使用一個時脈來協調運算。晶片中的每個操作都由時脈脈衝觸發,而時脈跳動的頻率控制著晶片的運作速度和功耗。
現代 GPU 有兩個時脈,一個用於運算核心,一個用於記憶體。當核心努力進行數字運算時,時脈頻率會保持在高位以確保快速計算。然而,透過 DVFS,記憶體時脈可以在此期間減慢,從而降低功耗。原則上可以關閉晶片的記憶體部分,但 GPU 設計不支援軟體控制該開關,而且在計算中途重新開啟也會花費太長時間。同樣地,當核心等待記憶體載入數據時,核心時脈頻率可以減慢,同時記憶體時脈頻率則加快。
DVFS 是一項至少可以追溯到 1990 年代的知名技術。但 Spaan 表示,其他研究人員未能將其有效地應用於 LLM 訓練,因為他們的方法要麼使計算速度過慢,要麼不夠精細,無法改善能源使用。先前的 DVFS 嘗試在訓練過程的每個迭代中調整頻率。
在 LLM 訓練中,每個迭代包含兩個部分:前向傳播(forward pass),數據以當前權重通過模型層;以及反向傳播(backpropagation),根據前向傳播的結果逐層調整權重。因此,先前的工作會為前向傳播保持一個頻率值,並為反向傳播調整到另一個值。
Spaan 和同事在更短的時間尺度上調整時脈頻率。GPU 工作負載被分解成稱為「核心」(kernels)的微小運算單元。例如,單一向量乘法可以構成一個核心。這些核心被送入 GPU 進行多次平行處理。在 Spaan 的實作中,深度神經網路單一層的計算被分解成大約 40 個核心。透過在每個核心層級調整時脈頻率,該團隊實現了更大的節能效果。
Spaan 指出,當晶片的內部系統偵測到需求增減時,GPU 也會自動進行 DVFS。他說:「有些人可能會因此認為:我們就讓 GPU 自己處理吧。然而,由於 GPU 沒有我們對即將執行的核心的預知能力,它必須即時地進行最佳猜測,因此永遠無法達到相同的節能效果。」這就是手動調整發揮作用的地方。
該團隊透過在 Nvidia RTX 3080 Ti GPU 上訓練一個 13 億參數模型 GPT-3-xl 進行了實驗。為了節省時間,他們專注於訓練模型的單一層。在此設定下,他們找到了一組頻率調整方案,使其節省了 14% 的能源,同時訓練時間僅減慢了 0.6%。模型的性能取決於運算速度和能源使用。
這其中存在一個挑戰:降低時脈頻率比關閉和開啟核心要快得多,但仍不是即時的。在他們的實驗中,研究人員一次評估一個核心,沒有考慮頻率切換速度。因此,14% 的節能是最佳情況。Spaan 表示,在實際應用中會有多大問題,很大程度上取決於所使用的 GPU。像 Blackwell GPU 這樣的新硬體比舊版本具有更快的切換速度,應該能夠充分利用全部的節能效果。
現在,該團隊正在開發一種工具,能夠針對特定工作負載自動實施最佳頻率調整。Spaan 希望他們的方法能足夠吸引業界領導者,促使其採用。Spaan 說:「我們在不損失性能的情況下最佳化節能。在現實世界中,性能是至高無上的目標。」
