Transformer 引擎
Transformer 為何能擴展(why transformers scale)
在 Transformer 之前,領先的語言模型是循環網路,它們一次讀一個詞,沿著鏈條傳遞一份記憶。這種順序的習性正是它們的致命傷:第一個詞還沒處理完,你就無法開始第二個詞,所以它們訓練起來很慢,也容易忘掉很久以前的東西。Transformer 丟掉了這條鏈,一次處理整段序列。
有兩個特性讓 Transformer 能擴展。第一是平行性:因為每個位置同時被計算,訓練能漂亮地對應到 GPU 與 TPU——這些硬體最擅長一次對成千上萬個項目做同一種運算。第二是直接存取:任何詞元都能在單一個注意力步驟內連到任何另一個詞元,於是長距離的依賴不必撐過一場漫長的接力。兩者合起來,讓實作者能灌入更多資料、參數與算力,並可靠地得到更好的模型——這正是擴展律的基礎。
代價在於,自注意力的成本隨序列長度的平方成長,這就是為什麼長脈絡昂貴,也是為什麼如此多的工程都瞄準那個瓶頸。而且擴展並不附贈理解——更大的 Transformer 更有能力,卻不更透明。儘管如此,「同樣那個簡單的區塊,做得更大、餵得更多」,已經帶著這個領域走得相當遠了。
另见