透過 Kolmogorov-Arnold 網路在 FPGA 上的超高速機器學習

Kolmogorov-Arnold 網路 (KANs) 可以透過查找表 (LUTs) 在現場可程式化門陣列 (FPGAs) 上實作,以達成次微秒等級的推論與即時晶片上學習。此方法利用 KAN 激活函數的單變量特性以及 FPGA 內建的硬體原語,繞過與 GPU 與 CPU 相關的延遲開銷。

KANs 作為可訓練的查找表神經網路

KANs 特別適合在 FPGA 上實作,因為它們將多層感知器 (MLPs) 的固定激活函數與標量權重,替換為邊緣上可學習的單變量函數。這使得網路可以以一系列查找表 (LUTs) 來表示,而非複雜的矩陣乘法。

推論的硬體實作

在 FPGA 上執行推論時,已訓練的 KAN 激活會被轉換成 LUTs。由於 KAN 以單變量激活相加,它們避免了多變量基於 LUT 的網路常見的指數資源擴張。架構由每個激活的 LUT 組成,之後接一個加法樹以計算最終總和。此設計實現了納秒延遲的推論,並較先前的 KAN-FPGA 實作提升了 2700 倍的速度。

定點量化

FPGA 以位元運作,需要將實數函數量化。研究人員使用了定點量化,即以二進位制且固定小數位數來表示數字。此過程將連續函數轉換為可直接存於 LUTs 的二進位函數,最小化量化誤差以維持模型的穩定性。

FPGA 上即時線上學習

除了靜態推論之外,KANs 使得在 FPGA 上直接進行即時梯度式學習成為可能。這讓模型能夠適應非平穩系統——例如量子控制或核融合——其參數必須在次微秒的時間內更新。

B-樣條局部性與稀疏更新

為了支援線上學習,系統將 B-樣條基底函數儲存在 LUT 中,而非最終的激活。B-樣條是局部基底函數,表示對於任意輸入,只有少數基底會是非零的。

此局部性確保前向與反向傳遞的硬體邏輯會隨樣條階數 (k) 而非格點總數 (G) 成長。這使得網路在表達能力上可水平擴展,而不會成比例增加硬體資源使用。

定點訓練的穩定性

FPGA 訓練的主要挑戰之一是權重與梯度幅度的變異極大。KANs 透過 B-樣條的有界性來緩解此問題。由於 KAN 激活的輸出始終被限制在最小與最大係數之間,激活與梯度皆保持在可預測的範圍內。此穩定性使得選擇最佳量化範圍更為容易,較 MLPs 可減少誤差並提升學習的穩定性。

效能與應用案例

基於 KAN 的線上學習器可擴展至超過 50,000 個參數,同時在前向與反向傳遞皆維持次微秒的延遲。此效能在函數近似、量子位讀出與非平穩控制方面特別有效。

社群見解與限制

雖然 KAN-FPGA 方法提供了極低的延遲優勢,社群討論卻指出了若干限制:

  • Throughput vs. Latency(吞吐量 vs. 延遲): 此架構針對超低延遲而非高吞吐量進行最佳化。目前不適合加速大型語言模型 (LLMs),因其需要巨大的吞吐量且尺寸過大,超出現有 FPGA 的容量。
  • Model Size(模型規模): 此方法受限於相對較小的模型,或需極大型的 FPGA 才能容納基於 LUT 的表示。
  • Hardware Synthesis(硬體合成): 部分實務者指出 FPGA 合成相當複雜,因為 LUT 並非總是簡單的 2:1 映射,可能包含 flip-flops 與 muxes,這會使激活函數的直接轉換變得更為困難。

"資料傳送至 CPU/GPU 並返回的時間,更別說執行計算,在大多數情況下已超過一微秒。"

此說明了為何對於需要納秒級別適應的應用,必須使用專用的晶片內部邏輯。

Sources