Transformer家族2.0版
本文是Lilian Weng對2020年《Transformer家族》一文的重大更新,篇幅翻倍。文章系統梳理了近年來Transformer架構的眾多改進,涵蓋注意力機制、位置編碼、長上下文支援、自適應建模和高效注意力等核心主題,並納入Transformer-XL、Rotary位置嵌入、ALiBi、通用Transformer等最新進展。
本文是Lilian Weng於2023年1月27日釋出的部落格文章,是對她2020年同名文章的全面更新。原文篇幅翻倍,結構重新組織,並融入了過去三年中大量新的Transformer架構改進。文章系統介紹了Transformer的基礎知識、注意力機制、位置編碼、長上下文處理、自適應建模以及高效注意力等核心主題,並涵蓋了Transformer-XL、Compressive Transformer、kNN-LM、SPALM、Memorizing Transformer、DA-Transformer、ALiBi、Universal Transformer、自適應注意力跨度、深度自適應Transformer以及多種稀疏注意力模式等最新進展。
文章首先回顧了Transformer的基礎:縮放點積注意力、多頭自注意力以及編碼器-解碼器架構。注意力機制允許模型有選擇地關注輸入資料的特定部分,而自注意力則關注同一序列的不同位置。多頭注意力透過平行計算多個子空間豐富了表示能力。編碼器-解碼器結構分別用於生成上下文感知的表示和提取資訊。
位置編碼是Transformer的關鍵,因為自注意力是置換不變的。文章詳細介紹了多種位置編碼方法:正弦位置編碼使用不同頻率的正弦和餘弦函式;學習位置編碼為每個位置分配可學習向量;相對位置編碼(Shaw et al.)編碼位置偏移;Transformer-XL提出了一種基於點積重引數化的相對位置編碼;旋轉位置嵌入(RoPE)利用旋轉矩陣將相對位置資訊注入每一層。這些方法對於模型理解序列順序至關重要。
為了支援更長的上下文,研究者提出了多種改進。Transformer-XL透過引入段級別的迴圈連線和記憶來重用前一隱藏狀態,從而擴充套件注意力範圍。Compressive Transformer進一步壓縮舊記憶以支援更長的序列。kNN-LM和SPALM使用外部鍵值儲存作為非可微長期記憶,透過最近鄰檢索增強預測。Memorizing Transformer在解碼器頂部新增了kNN增強的注意力層。此外,DA-Transformer和ALiBi透過基於距離的偏置項調整注意力分數,鼓勵模型外推至更長的上下文。Universal Transformer則將遞迴機制與Transformer結合,透過自適應計算時間動態調整處理步數。
自適應建模方面,自適應注意力跨度(Sukhbaatar et al.)允許每個注意力頭學習最優的注意力範圍,透過軟掩碼和L1正則化實現。深度自適應Transformer(Elabyad et al.)和CALM(Schuster et al.)則在推理時動態決定每個令牌需要經過的層數,以平衡速度和效能。這些方法顯著降低了計算成本。
高效注意力旨在解決標準Transformer二次複雜度的問題。文章介紹了多種稀疏注意力模式,包括固定區域性上下文(如影像Transformer)、步進上下文、區域性與全域性組合等。低秩注意力透過矩陣分解進一步降低複雜度。這些改進使得Transformer能夠處理更長的序列,同時保持計算可行性。
總之,自2020年以來,Transformer架構在多個維度上取得了顯著進步,這些改進不僅提升了模型效能,還擴充套件了其應用範圍,特別是在自然語言處理和強化學習領域。