
大家都在談論 ChatGPT、Gemini 和 Grok 等大型 AI 模型。但很多人可能沒有意識到,這些模型大多都使用同一種核心架構——Transformer。最近,生成式 AI 領域又出現了一個新的術語——專家混合模型(Mixture of Experts,簡稱 MoE)。這導致人們對 Transformer 和 MoE 之間的區別產生了諸多困惑。有些人認為 MoE 是一種全新的架構,而另一些人則認為它只是一個規模更大的 Transformer。這使得人們很難理解其背後的運作機制。
MoE 是 Transformer 的替代品,還是僅僅是 Transformer 的一種更智慧的擴充套件方式?兩者之間真的有區別嗎?當人們聽到 Transformer 和 MoE 時,這些問題常常浮現出來。
在本文中,我將用通俗易懂的方式解釋所有這些問題。您將瞭解 Transformer 是什麼,MoE 增加了什麼,它們之間有何不同,以及何時應該選擇哪一個。
理解Transformer
在比較 Transformer 和 MoE 之前,我們需要先了解 Transformer 的本質。
從宏觀層面來說,Transformer 是一種神經網路架構,旨在處理文字、程式碼或音訊等序列。它不像 RNN 或 LSTM 那樣逐個處理詞元。它不是從左到右讀取並攜帶隱藏狀態,而是一次性處理整個序列。然後,它會判斷哪些詞元彼此之間最重要。這種決策過程被稱為自注意力機制。
我知道這聽起來可能有點複雜,所以這裡有一個簡單的理解方式。把 Transformer 想象成一個黑盒子。你給它一個輸入,它就給你一個輸出。例如,想想機器翻譯工具。你用一種語言輸入一個句子,它就生成另一種語言的翻譯句子。

Transformer的組成部分
Transformer 是如何將一個句子轉換成另一個句子的呢?
它包含兩個重要的組成部分:編碼元件和解碼元件,它們共同負責轉換過程。編碼元件是一個編碼器棧,解碼元件是一個相同數量的解碼器棧。

編碼器的作用
這些編碼器的結構都類似,每個編碼器都分為兩個子層:前饋神經網路和自注意力層。在編碼器中,輸入詞元首先經過自注意力層。該層允許模型在處理給定詞的同時,觀察句子中的所有其他詞,從而理解該詞的上下文含義。自注意力層的結果隨後被傳遞到前饋網路,這是一個小型多層感知器(MLP)。序列中的每個位置都應用了相同的網路。
解碼器的作用
解碼器也使用這兩個部分,但它在兩者之間增加了一個額外的注意力層。這個額外的注意力層使解碼器能夠專注於編碼器輸出中最相關的部分,類似於經典序列到序列(seq2seq)模型中注意力機制的工作原理。

如果您想深入瞭解 Transformer 模型,可以閱讀 Jay Alammar 的這篇文章。他以清晰全面的方式解釋了 Transformer 模型和自注意力機制的方方面面,涵蓋了從基礎到高階的所有內容。
何時何地使用Transformer模型?
當您需要捕捉序列中各個元素之間的關係,並且擁有足夠的資料或強大的預訓練模型時,Transformer 模型是最佳選擇。

當您的資料具有順序和上下文,並且序列中不同部分之間的關系在長範圍內至關重要時,請使用 Transformer 模型。它們在文字任務(例如聊天機器人、翻譯、摘要和程式碼)中表現出色。它們對於時間序列、音訊,甚至結合文字、影像或音訊的視覺和多模態問題也同樣有效。
在實踐中,當您可以從預訓練模型開始,或者擁有足夠的資料和計算能力來訓練有意義的模型時,Transformer 模型表現最佳。對於非常小的表格資料集、微小的問題或對延遲有嚴格限制的情況,更簡單的模型通常更合適。但是,一旦您處理豐富的序列或結構化資料,Transformer 模型幾乎總是預設選擇。
瞭解專家混合模型 (MoE)
專家混合模型是一種流行的架構,它使用多個專家來改進現有的 Transformer 模型,或者說提高邏輯學習模型 (LLM) 的質量。專家混合模型主要由兩個部分組成:

- 專家:每個前饋神經網路層都被一組專家所取代,並且對於任何給定的詞元,只使用其中的一個子集。這些專家通常是獨立的前饋神經網路(FFNN)。
- 路由器或門控網路:它決定哪些詞元被髮送給哪些專家。它的作用類似於守衛。
為了保持本文簡潔並專注於Transformer和混合專家模型(MoE),我只涵蓋核心概念,而非所有細節。如果您想深入瞭解,可以檢視 Marteen 的這篇文章。
何時何地使用混合專家模型?
讓我們將其分解為您真正想問的兩個問題:
- 混合專家模型何時真正有用?
- 在模型的哪個部分使用它才有意義?
您應該在以下情況下使用混合專家模型:

在模型/流程的哪個環節應該使用MoE?

Transformers與MoE之間的區別
它們的主要區別在於解碼器模組。
Transformer 使用單個前饋神經網路,而 MoE 使用多個專家模型,這些專家模型是比 Transformer 中的前饋神經網路 (FFNN) 更小的模型。在推理過程中,僅選擇這些專家模型的一個子集。這使得 MoE 的推理速度更快。

MoE 的網路包含多個解碼器層:

由於網路包含多個解碼層,文字在每一層都由不同的專家進行處理,即使在同一層內,所選專家也會因詞元而異。問題在於模型如何決定使用哪些專家。這由路由器負責。路由器的工作方式類似於多類分類器,它會為所有專家生成 softmax 分數。然後,模型會根據這些分數選擇排名前 K 的專家。路由器與網路的其餘部分聯合訓練,並隨著時間的推移學習哪些專家最適合每個輸入。您可以參考下表瞭解更多關於兩者之間差異的資訊。

小結
混合專家模型 (MoE) 和 Transformer 模型都旨在擴充套件模型智慧,但它們實現的方式不同。Transformer 模型採用密集計算,每個引數都會影響每次預測。這使得它們簡單、強大且易於部署。MoE 模型採用條件計算,僅針對每個輸入啟用一部分引數。這在不增加相同比例計算資源的情況下,提高了模型的處理能力,並允許不同的專家進行專攻。
簡而言之,Transformer 模型定義了資訊在模型中的流動方式,而 MoE 模型則決定模型的哪些部分應該處理每個輸入。隨著模型規模的擴大和任務複雜性的增加,最有效的系統很可能會結合這兩種方法。
常見問題解答
問題 1:ChatGPT 只是一個 Transformer 模型嗎?
答:ChatGPT 構建於 Transformer 架構之上,但它不僅僅是一個 Transformer 模型。它包含了大規模訓練、對齊技術、安全層,有時還包含 MoE 元件。Transformer 模型是其基礎,但整個系統要複雜得多。
問題 2:為什麼 GPT 被稱為 Transformer?
答:GPT 使用 Transformer 解碼器架構作為其核心構建模組。它依靠自注意力機制來理解文字之間的關係並生成連貫的輸出。由於其整個設計都基於 Transformer 原理,因此被歸類為 Transformer 模型。
問題 3:三種主要的 Transformer 模型是什麼?
答:Transformer 通常分為僅編碼器模型、僅解碼器模型和編碼器-解碼器模型。僅編碼器模型最適合理解任務,僅解碼器模型最適合生成任務,而編碼器-解碼器模型最適合結構化的輸入到輸出任務,例如翻譯或摘要。
問題 4:Transformer 和 Mixture of Experts(專家混合模型)有什麼區別?
答:Transformer 使用密集計算,其中每個引數都參與每次預測。MoE 使用條件計算,並且每個輸入只啟用少數專家。這使得 MoE 能夠在不增加相應計算成本的情況下實現更大的處理能力。Transformer 處理流程,而 MoE 處理專業化。


評論留言