LLM 架構日益增加的複雜度

現代大型語言模型 (LLMs) 已從早期模型如 Llama 中常見的簡單、重複的 Transformer 模組,演進為高度複雜的複合式架構。這種轉變是由提升能力的需求與追求極致推理效率的要求之間的張力所驅動的,這反映了推薦系統 (recsys) 的歷史軌跡。

從簡單堆疊到複合式架構的轉變

早期的 LLM 以乾淨、平滑且由相同模組組成的堆疊為特徵。然而,目前的尖端模型現在整合了多樣化的架構變體來優化性能與效率。

目前整合到現代 LLM 架構中的關鍵複雜度包括:

  • Attention Variants: 模型不再僅依賴單一的注意力機制;它們現在利用 query grouping、compressed attention、sparse attention、linear attention 以及 sliding-window attention。
  • Routing Mechanisms: Mixture-of-Experts (MoE) 為前饋層引入了選擇性路由,而路由現在正被應用於 attention blocks 與殘差流 (residual stream)。
  • Multimodal Integration: 視覺與音訊編碼器,先前被視為「附加」的獨立組件,現在直接混合在模型架構中。
  • Inference Scaling: 隨著模型規模擴大以在多個 GPU 上運行,通訊操作 (comms ops) 在模型結構內引入了額外的邊界與複雜度。

「Recsys」的類比:性能作為一種必要性

LLM 的演進正反映了推薦系統的經驗。近十年來,recsys 架構一直是一種簡單的雙塔式稀疏神經網路。複雜度之所以增加,是因為性能優化變成了「負載支撐」(load-bearing)——這意味著如果沒有特定的優化,模型會因為太慢或資源消耗過大而無法實際應用。

在 LLM 研究的背景下,性能作為一種「可選的優化」與「一種必要性」之間的差距正在縮小。這為研究迭代迴圈帶來了挑戰:如果研究人員想要測試一種新的 attention variant,他們無法承受新版本比一個融合且優化的基準線 (baseline) 慢上一個數量級。為了確定一個新的架構變更是否值得探索,在研究開始之前,就必須先存在該變更的部分優化版本。

為可組合性設計並探討 Kernel 的角色

為了避免為每個實驗性架構手動融合 (hand-fusing) kernel 的瓶頸,業界正朝著預先設計可組合性的方向發展。僅依賴 AI agent 根據 PyTorch 或 JAX 定義自動生成融合 kernel 是不夠的,因為 agent 需要一個固定且可用的基準線來驗證生成的代碼是否正確。

PyTorch 中的 FlexAttention

PyTorch 的 FlexAttention 被引用為可組合方法的首要範例。它允許開發者透過 Triton templates 生成廣泛類型的 attention 操作的 kernel。透過讓 attention 操作具備可組合性與可驗證性,FlexAttention 使研究人員能夠以極小的性能影響來探索新的架構變體,從而繞過手動且耗時的 kernel fusion。

社群對架構演進的觀點

雖然架構轉變正在加劇,但一些觀察者指出,這遵循了「慘痛教訓」(bitter lesson) 的生命週期。一位社群成員建議:

從特徵工程到「慘痛教訓」的生命週期。當一種技術或技術是新的時,人們僅透過將其應用於某些使用案例就能獲得巨大的進展... 隨著時間推移,那些「慘痛教訓」帶來的收益開始進入邏輯曲線的淺層部分,公司必須開始投入越來越多的精力於工程化,以獲取每一個微小的、增量式的收益。

此外,一些批評者認為,將不同的 LLM 系列(例如 Llama 3 與 Nemotron 3 Ultra)進行比較以強調複雜度,是不同設計選擇的自然結果,而非所有單一模型系列都趨向複雜化的普遍趨勢。

Sources