四、RNN/ LSTM/ Transformer 的小結&後續發展**
(**註:關於 RNN/ LSTM/ Transformer 系列.1&RNN 說明,請參考以下網址: https://vocus.cc/article/68bf7c99fd897800013126c7)
(**註:關於 RNN/ LSTM/ Transformer 系列.2&LSTM 說明,請參考以下網址: https://vocus.cc/article/68bf7ff0fd897800013204e5)
(**註:關於 RNN/ LSTM/ Transformer 系列.3&Transformer 說明,請參考以下網址: https://vocus.cc/article/68bf7ff0fd897800013204e5)
▷ RNN、LSTM 與 Transformer:突破框架的思考方式
在 AI 領域中,隨著自然語言處理的需求加劇,以及在硬體算力提升與大數據時代的到來,處理「序列」關係的神經網路模型也隨之逐步演進。作為處理「序列」關係最主要的神經網路模型,RNN、LSTM 與 Transformer 的演進,正好例證了「突破框架」的重要性。要如何看待這段演進的進程,就要從這三者如何達成任務(i.e.搞定序列關係)去理解。
與空間關係不同,序列關係是線性的、按照順序的。所以要處理序列關係,也就是去處理序列中的每個 token 之間的關係。
在處理序列中的每個 token 之間的關係時,可以預想得的到是:只要是在序列中,每個 token 都可能與另一個 token 有高關聯性,無關乎距離、先後。這個「token之間」的關聯性,即為「依賴關係」。而 RNN、LSTM 與 Transformer 正是在這「依賴關係」上的處理不同,而且是根本性的不同,所以才能使 NLP 大幅進步。
換言之,能處理到什麼程度的依賴關係,也就意味著:能「多有效地」掌握在一序列中 token之間的關聯性」。
▪︎ 三種模型所能處理的「依賴關係」
RNN
運作原理:按照序列,token by token,以「記憶」+「循環」組成單一資訊傳輸線。
可處理:短程依賴 (Short-Range Dependencies)
說明:一次處理一個 token,依次將其資訊傳遞給下一個 token。
缺點:資訊會隨著傳遞過程而逐漸衰減或遺失。
解法:LSTM
LSTM
運作原理:按照序列,token by token,原先的單一資訊傳輸線,再加上「長期記憶」共兩條傳輸線並行。
可處理:長程依賴 (Long-Range Dependencies)
說明:加上另一條主動管理所有資訊的「長期記憶」傳輸線,更有效地保存重要資訊,處理比 RNN 更長的依賴關係。
缺點:仍受限於依序處理的模式,在序列長度增加、資料量體巨大時 (ex大數據訓練模型),依序運算將難以克服規模與速度。
解法:Transformer
Transformer
運作原理:捨棄「序列」,以平行方式一次對其所有 token。
可處理:全域依賴 (All-to-All Relationships)
說明:透過創新的「注意力」機制,實現每次同時處理序列中所有 token,直接找出任何 token 間的關聯,無論相隔多遠。所以稱之為「全域依賴」。
缺點&解法:稍後於下段說明。
→至此,我們便可看出因為突破框架思考,使得 RNN、LSTM 與 Transformer 三者自根本上就發展出截然不同的處理方式。
❖ RNN 創新之處:賦予網路「循環」的能力,從而實現「記憶(i.e. 傳輸資訊)」的可能。
❖ LSTM 創新之處:捨棄「將焦點擺在函數的任何面向之優化」,另闢一條通道,直接主動管理所有資訊。
❖ Transformer 創新之處:捨棄固有直觀的「序列關係、序列處理」,開創出「一次處理所有」的處理方式。
▪︎ 三種模型的對照

→總結來說,Transformer 的核心突破在於「一次性」處理整個序列,這從根本上解決了 RNN 和 LSTM 的速度與規模限制,也使得訓練更大、更複雜的模型成為可能。
▷ Transformer 困境
現在在NLP領域中,最急迫且最熱衷研究的主題之一仍舊是上下文長度 (Context Length) 的問題。但,為什麼呢?如果 Transformer 已經解決了依序運算的限制。
這首先要先來了解「上下文長度」是一個怎麼樣的問題。「上下文長度」表面上看起來是與記憶容量相關,但其實,這在根本上是運算力的問題:極長的上下文帶來的問題不是記憶體無法承載,而是其長度將導致運算耗費極大的成本與時間),導致無法運算。
這裡我們就回到了最初的疑問:Transformer 已經解決了依序運算的限制,讓運算速度跳躍式飛昇,為何還會有「上下文長度」的運算力的問題?先簡單給出一個回答:因為 Transformer 其實沒有根本的解決速度問題。而這也正是 Transformer 的困境。
▪︎ 幾乎是「量變造成質變」再一次經典例證
重新檢視 RNN/ LSTM/ Transformer 在運算力上的差異。
早前我們已經討論過,RNN 與 LSTM 在設計邏輯上的原罪「依照序列運算」,致使運算速度是不可能加快的:運算時間會隨每次 token 增加而線性地增長,次次都是 token by token。這在面對長序列、資料量體大時,無疑是雪上加霜。
而 Transformer 透過「注意力機制」進行平行運算,完美地一次處理所有 token,解決了按序列處理的慢速問題。
看起來無懈可擊?想想每一次都進行平行運算,會發生什麼?隨著輸入序列長度的增加,注意力機制所需要進行的「運算量」將隨序列長度呈「平方成長O(n²)」。這也就是所謂的二次方複雜度 (Quadratic Complexity)。這樣的運算量幾乎可堪比為爆炸式成長,可說是再次應證了量變造成質變。Transformer 解決問題的能力,最終也為它自身帶來新的困境。
簡言之,Transformer 用「同時處理」取代「依序處理」所換來的是,處理長上下文時的「二次方速度」瓶頸:運算成本高昂、費時,且記憶體消耗巨大,導致難以處理極長的上下文。而這也正是「上下文長度」的本質。
▷ 關於未來
要如何解決 Transformer 所面臨的「上下文長度」困境?目前幾個主要發展的解決方案有以下兩大方向:
1. 改良Transformer
仍以 Transformer 架構 為核心,專注於改良注意力的計算方式,或,結合外部記憶,來降低資源需求或延長可處理的上下文。
(a) 改變「注意力」計算方式
說明:直接從根本上減少運算量。
Sol.1 - 稀疏注意力 (Sparse Attention):設計規則,只讓 token 關注部分相關的 token,而非全部,從而大幅降低運算成本。具體實現:Longformer、BigBird。
Sol.2 - 線性注意力 (Linear Attention):改變計算方式,用數學方法來模擬注意力的結果,將運算複雜度從二次方降低為線性,避免計算龐大的 N×N 矩陣。具體實現:Performer、Linear Transformer、Reformer。
(b) 引入「外部記憶」或「分層結構」
說明:不直接修改注意力機制,而是以「外部支援」輔助處理更長的上下文。
Sol.1 - 記憶機制 (Memory Mechanism):提供外部資料庫,保存舊的上下文資訊(隱藏狀態),讓當前區塊在處理時能同時參考過去記憶,建立跨區塊的長程依賴。具體實現:Transformer-XL。
Sol.2 - 分層結構 (Hierarchical Structures):將超長文本切成多個區塊,就區塊內部先行處理序列關係,再彙整成一個更高層次的表徵,最終進行全域運算。具體實現:Hierarchical Transformer。
(c) 整合(a)+(b)解決方案
說明:將上述技術整合的終極方案,長上下文模型 (Long Context Models),同時兼具高效注意力、多層級結構和記憶機制等技術。目前已有落地商業的實際應用產品,如 Anthropic 的 Claude 3.5 Sonnet。
2. 捨棄改造 Transformer,另謀出路
(a) 復興RNN
說明:重啟 RNN 的研究,搭配 gating (更高效的閘門機制)或混合機制,希望保留長期記憶卻更省資源。具體實現:LSTM輕量版GRU (Gated Recurrent Unit)、RNN輕量級 SRU (Simple Recurrent Unit)。
(b) RNN/ LSTM/ Transformer 混合
說明:結合三者各自擅長處理的不同長度依賴關係,成就Hybrid 模型。具體實現:Transformer 區塊與 RNN 記憶機制結合
(c) State Space Models (SSM)
說明:保留 Transformer 的創新「以空間向量方式理解序列」,但並未如同 Transformer 捨棄「依序列處理」。是再一種突破框架思考的創新。相較Transformer 是一次性「平行處理」所有 token,SSM則是用數學上的「狀態空間」來表示序列,也就是每處理一個 token,by token 地,該 token 就會更新一次「狀態向量」。換言之,SSM 以串流 (streaming) 方式依序處理詞元。這使得計算複雜度更低,以此解決 Transformer 必須一口氣大量計算的問題。具體實現:S4, Mamba。
→從以上的說明,加上根據最近看到的相關資訊,其實不論是哪一方向,相信上下文長度的限制應該可以較預期更快得到突破。(也根據無根據的樂觀,其實。)


















