給學弟的架構巡禮 · 30 min

Frontier AI
模型架構巡禮

從 Diffusion 到 Sora,從 Transformer 到 Mamba,從 Whisper 到 Scaling Law
DiffusionDiTSAM VLMMoEMamba RoPE · FlashAttnWhisperScaling Law
課程地圖

一張圖看懂這趟旅程的走法

段落 A 影像生成
Diffusion
DiT → Sora
段落 B 影像理解
SAM / SAM 2
VLM
段落 C LLM 效率
MoE · Mamba
RoPE · FlashAttn
段落 D 聲音 + 全局
Whisper
Scaling Law

四個段落、九個架構。我們不背論文,建立直覺 → 看清資料流 → 認出它在拼哪些積木

先記住一句話

貫穿全場的一個念頭

💡 核心直覺

幾乎所有現代模型,
都在做同一件事:
把任務改寫成「序列預測」
再交給最強的序列引擎去學。

  • Diffusion 預測一串噪聲
  • DETR / SAM 預測一個物件 / 遮罩的集合
  • VLM 把圖變成 token 接到語言序列
  • Whisper 把語音轉成 文字 token
  • Transformer 之所以橫掃,是因為它是最強的序列預測引擎

接下來每個架構,我們都回到這句話:它把什麼變成了序列?

Part A
A
影像生成的革命
Diffusion — 從噪聲長出圖像 DiT → Sora — 換上 Transformer 骨幹
Diffusion Model · DDPM

Diffusion — 從噪聲長出圖像

← 起點 影像生成 → 接 DiT / Sora
💡 直覺

拿一張清晰照片,往上面慢慢撒鹽,撒一千次後變成純雜訊。

Diffusion 做的事,就是學會把這個過程倒帶回去

每一步模型只回答一個小問題:

「這張髒髒的圖,比起一秒前,多了哪些雜訊?」

把預測到的雜訊減掉,圖就乾淨一點點。重複幾十次,純雜訊就長成一張新圖

Diffusion Model · 兩個過程 + U-Net

加噪用來「出題」,去噪網路負責「解題」

x₀ 乾淨圖
逐步加噪
x_T 純雜訊
Forward:製造訓練資料(可一步跳到任意 t)
x_T 純雜訊
預測噪聲並減去ε_θ(xₜ,t)
x₀ 生成圖
Reverse:模型學會反轉

訓練 loss 簡單到不可思議:

𝓛 = ‖ ε − εθ(xₜ, t) ‖² 就是 MSE
去噪動畫:純雜訊 → 圖像
U-Net 每步預測噪聲並減去

U-Net 的 skip connection 把 Encoder 的高頻細節捷徑傳給 Decoder,所以生成的圖不會糊。

Diffusion Transformer · DiT

DiT — 把 U-Net 換成 Transformer

← 來自 Diffusion + ViT → 長成 Sora
💡 動機

U-Net 在 Diffusion 上很好,
但它不太 scale

而 Transformer 早被 GPT、ViT 證明:
加參數、加資料、加算力,效果穩定變好。

Peebles & Xie 的問題很直接 —

「能不能把去噪器從 U-Net 換成 Transformer?」
答案是可以,而且 scaling 曲線非常漂亮。

  • Latent 切成 patch → token(像 ViT)
  • 條件(時間步、類別)用 adaLN-Zero 注入
  • Stable Diffusion 3、Flux、Sora 全是 DiT 家族
DiT → Sora · 演進

同一招,從 2D 圖延伸到 3D 時空

DiT(2D 圖像)圖 → VAE → 2D Latent
切 2D patch256 個 token
DiT Transformer預測噪聲
↓ 多加一條「時間軸」
Sora(3D 影片)影片 → 時空 VAE
切 Spacetime patch時間+空間一起切
同一個 DiT+ 3D 位置編碼

架構不再卡死輸入大小 → Sora 能生成任意解析度、任意長度的影片。這就是「Diffusion 給穩定,Transformer 給 scaling」的強強聯手。

Part B
B
影像理解的進化
SAM / SAM 2 — 可提示分割之王 VLM — 讓 LLM 長出眼睛
Segment Anything Model · SAM

SAM — 可提示分割之王

← 借用 ViT 當 backbone → 升級 SAM 2(影片)
💡 直覺

訓一個基底模型,使用者用「提示」(點、框、文字)告訴它要切什麼 —— 就像 GPT 用 prompt 控制輸出。

Image EncoderViT-H · 632M · ~0.15s
只需跑一次
Image Embedding
Prompt Encoder點 / 框 / mask / 文字
Mask Decoder4M · ~10ms · 即時互動
輸出 3 個候選 mask

效率的秘密:重的 encoder 只算一次,之後每點一下只跑毫秒級的 decoder。

點一下 → mask 即時長出來

SA-1B:1,100 萬張圖、11 億個 mask,史上最大分割資料集。

SAM 2 · 演進

把「記憶」掛上去,一點就追完整段影片

← 來自 SAM
第 1 幀點一下給定物體
Memory Encoder把該幀特徵壓縮
Memory Bank存最近 N 幀記憶
Memory Attention當前幀 attend 過去
Mask Decoder預測這一幀 mask
↑ 每幀的結果又存回 Memory Bank,形成迴圈

遮擋也能找回:物體被擋住時,Memory Attention 可以跨過遮擋幀,直接 attend 到它消失前還完整可見的特徵。

更快更小:image encoder 從 ViT-H 換成 Hiera(分層式 MAE),多尺度、token 更少、速度更快。

Vision-Language Model · VLM

VLM — 讓 LLM 長出眼睛

→ 通往 GPT-4o 原生多模態
💡 核心問題

LLM 只懂 text token,視覺編碼器吐的是 image embedding
這是兩個不同空間的向量 —— 怎麼接起來?

圖片→ ViT / CLIP →
image embedding(空間 A)
?
文字→ Tokenizer →
text token(空間 B)

下一頁:三種把「眼睛」接到「大腦」的做法。

VLM · 三種接法

從「外掛眼睛」到「原生多模態」

① MLP 投影
LLaVA

CLIP 出 576 個 image token → 2 層 MLP 翻譯到 LLM 空間 → 直接接上文字 token。

  • 簡單、好訓
  • 視覺 token 多,吃 context
② Cross-Attn Resampler
Qwen-VL · BLIP-2

256 個可學習 query 去 cross-attend 圖像特徵,把任意大小的圖壓成固定長度。

  • token 數可控
  • 架構較複雜、難訓
③ 原生統一
GPT-4o · Gemini

不外接視覺,從 pretrain 就把圖像 token 和文字 token 混在一起學

  • 真正端到端
  • 計算量極大

比喻:Resampler 像帶 256 個筆記格進圖書館 —— 只帶走精煉筆記,而非整櫃原書。

Part C
C
LLM 的效率革命
MoE — 稀疏激活的專家系統 Mamba / SSM — 線性架構 RoPE & FlashAttention
Mixture of Experts · MoE

MoE — 只叫相關的專家上工

→ 撐起 GPT-4 · DeepSeek V3
💡 直覺

與其讓全部腦細胞都工作,不如只叫「相關的專家」上工。

Token
Routerlinear + softmax
Top-2 Experts加權求和
47B
總參數(知識容量)
13B
每 token 活化(推理快)
8 個專家,每個 token 只點亮 2 個
E0
E1
E2
E3
E4
E5
E6
E7

Mixtral 8×7B:總參數接近 47B 的知識量,推理速度卻接近 13B 的小模型。

MoE · 稀疏的代價

省了算力,但換來三個新麻煩

① 負載均衡

Router 老把 token 送同一個專家 → 其他專家學不到東西(expert collapse)。

解法:加 auxiliary loss 鼓勵 router 把 token 平均分給每個專家。

② 記憶體

每次只跑 2 個,但 8 個都得放在 VRAM。47B × 2 bytes ≈ 94 GB。

解法:量化(INT4 → ~24 GB)、把閒置 expert offload 到 CPU。

③ 通訊成本

分散式訓練時 token 要被 route 到不同 GPU 上的專家,all-to-all 通訊很貴

解法:Expert Parallelism + 通訊優化(如 aux-loss-free 均衡)。

為什麼工業界還是愛它?因為它繞過 Chinchilla 瓶頸:固定推理算力下塞進更多總知識。

Mamba / State Space Model

Mamba — 挑戰 O(n²) 的線性架構

← 對手是 Transformer Attention
💡 痛點

Self-attention 是 O(n²) 計算與記憶體。
序列長度翻倍,成本就翻四倍,KV cache 吃光顯存。

能不能做到 O(n),又記得住長期依賴?

答案來自控制理論的老朋友 —— 狀態空間模型 (SSM)

hₜ = Ā·hₜ₋₁ + B̄·xₜ  yₜ = C·hₜ

這其實就是一個 RNN —— 但 A,B,C 結構化後可等效成 convolution。

訓練時像 CNN

平行計算

推理時像 RNN

線性、O(1) per step

Mamba · Selective Scan

關鍵突破:讓模型自己決定記什麼、忘什麼

原始 SSM 的 A,B,C 是固定的,記性平均。Mamba 讓 B、C、Δ 都依賴輸入 —— 這就是 selective:

  • 關鍵字(如 "France")→ B 大,強力寫入 state
  • 填充詞(如 "of")→ B 小、A≈1,保留舊記憶、略過它
  • 該翻頁了 → A≈0,把過去的 state reset

像聽演講:大腦自動濾掉「嗯、啊」,但關鍵結論會特別記住

hidden state 隨 token 流入而更新

代價:固定大小的 state 是有損壓縮 —— 精確檢索「第 37 頁第 2 行」的能力弱於 Attention。所以趨勢是 Hybrid(如 Jamba:80% Mamba + 20% Attention)。

Rotary Position Embedding · RoPE

RoPE — 把位置變成「旋轉」

→ 撐起 128k 長文本
💡 洞見

不要直接編碼「絕對位置」,
而是讓 attention 的內積自然反映「相對距離」

位置 m 的向量旋轉 m·θ 角度,內積後:

qₘ · kₙ = qT R(n−m) k

結果只依賴 (n−m) —— 相對位置!而且不增加任何參數。

外推:推理時加大 base frequency(NTK / YaRN),訓在 4k 就能推到 128k+ 不崩。

位置 = 角度:高頻看近、低頻看遠

Llama、Mistral、Qwen 全用 RoPE。

FlashAttention · IO-Aware Attention

FlashAttention — 不改計算,只改「搬運」

← 搭配 RoPE 撐起長文本
💡 洞見

瓶頸不在計算量,在記憶體搬運 (IO)
標準 attention 要把 n×n 矩陣寫進慢的 HBM,IO 是計算的 12 倍。

SRAM~20 MB · 19 TB/s · 超快
HBM40 GB · ~2 TB/s · 大但慢
  • Tiling:把 Q,K,V 切小塊,在 SRAM 算完
  • Online softmax:邊算邊累積,從不寫出完整 n×n 矩陣
一塊一塊掃過,只在 SRAM 運算
n×n attention matrix(HBM)

exact,非近似 · 2–4× 加速 · 記憶體 O(n²)→O(n)。

Part D
D
聲音的世界 + 全局視野
Whisper — ASR 的業界標準 Scaling Law — 為什麼變大就變聰明
Whisper · Automatic Speech Recognition

Whisper — 弱監督的勝利

→ 接進 GPT-4o 端到端聽說
68
小時帶字幕音訊

不靠精心標註,而是靠海量「大概對」的網路字幕。量變造成質變。

它的強,不是架構創新,而是規模 + 弱監督。架構就是標準的 Encoder–Decoder Transformer:

30s 音訊
Log-Mel 頻譜80 × 3000
Encoderself-attention
Decoder輸出文字 token
  • 「在足夠大的弱監督資料上,模型學會了對標籤雜訊的魯棒性
  • 限制:30 秒切段、不辨情緒與說話者、非串流設計
Whisper · 神來一筆

一串特殊 token,把多任務統一成一件事

<sot>
<語言>en / zh / ja
<任務>transcribe / translate
<時間戳>有 / 無
開始生成文字
↓ 換不同 token 組合 = 換不同任務

<en><transcribe> → 英文轉寫

<ja><translate> → 日文 → 英文翻譯

不指定語言 → 模型先做語言偵測

<timestamps> → 帶時間戳記輸出

這跟今天用 ChatGPT 的 system prompt 是完全相同的思想 —— 用提示控制行為,不用改架構。早在 2022 年就出現了。

Scaling Law · Kaplan 2020

Scaling Law — 為什麼變大就會變聰明

← 解釋全場 所有架構的勝負
💡 發現

參數 N、資料 D、算力 C 同時加大,
test loss 就沿著一條漂亮的冪律穩定下降。

L(N,D) = a·N⁻ᵅ + b·D⁻ᵝ + L∞

α≈0.076, β≈0.095,C≈6ND —— 跨 6 個數量級都成立。

含義:不用做架構創新,三個變數一起加大,loss 就繼續降。這直接點燃了 GPT-3、GPT-4 的軍備競賽。

算力 ↑(log)→ loss ↓
Loss Compute

這也是為什麼追 DiT、追 Mamba 時,最在意的是「scaling 曲線漂不漂亮」。

Scaling Law · Chinchilla 與 Overtrain

同樣算力,怎麼分配給「模型」和「資料」?

Kaplan 路線
偏大模型 + 少資料

GPT-3:175B × 300B token

1.7
tokens / param —— 其實欠訓練
Chinchilla 最優 ✓
模型與資料等比例

Chinchilla:70B × 1.4T token

20
tokens / param —— 完勝 GPT-3
Llama 路線(Overtrain)
偏小模型 + 海量資料

Llama 3-8B:8B × 15T token

1875
tokens / param —— 推理超省

工業界為何選 overtrain?小模型多花 10× 訓練成本,但部署幾個月,推理省下的算力就回本。另外還有 Inference Scaling(o1 用 CoT 換品質)與 Data Scaling(合成資料)。

收尾 · 全局視野

架構即樂高:積木與成品的關係

基礎積木
Diffusion Transformer MoE SSM / Mamba RoPE FlashAttention
↓ 自由組合
DiT

= Diffusion + Transformer

Sora

= DiT + 時空 patch

GPT-4o

= Transformer + MoE + 多模態

Llama 3

= Transformer + RoPE + Flash

Jamba

= Mamba + Transformer hybrid

學會看出一篇論文在拼哪些積木,比記住每篇論文重要得多。

帶走的東西

五個思想框架,比任何單一架構都重要

1
任何任務都能重寫成「序列預測」

噪聲、物件集合、mask、文字 —— Transformer 是最強的序列引擎。

2
Scaling 才是真正的 SOTA

架構創新只領先半年;先看 scaling 曲線漂不漂亮。

3
模組化 = 可組合

Encoder、Decoder、Projector 自由換 —— 現代模型是樂高。

4
效率是 must-have,不是 nice-to-have

Flash、MoE、Mamba、量化 —— 最終都要面對「跑不跑得動」。

5
多模態是必然的方向

從 LLaVA → GPT-4o,從文字 → 圖像 → 影片 → 音訊,統一進同一個模型。

課後 · 動手做才是自己的

作業總覽 — 把積木親手摸過一遍

影像
  • Diffusion:用 diffusers 印出 t=0/250/500/750/999 的雜訊圖
  • DiT:實作 patchify,(B,C,H,W) → token 序列
  • SAM:用點 / 框兩種提示分割同一張圖
  • VLM:餵 LLaVA 一張圖表,問三個問題
LLM 效率
  • MoE:寫一個 top-2 Router,算參數量與 FLOPs
  • Mamba:畫 Transformer vs Mamba 的複雜度對比圖
  • RoPE:實作旋轉,驗證內積只跟 |m−n| 有關
  • Flash:用 numpy 寫 tiled attention,比對誤差 < 1e-5
聲音 + 全局
  • Whisper:跑一段中/英混合音訊,觀察 special token
  • Scaling:用 Chinchilla 比例估算你的算力該配多少資料

原則:建立直覺 → 理解觀念 → 動手實作 → 做出自己的東西。

最後一句話

下次看到新論文,
你能說出 「啊,這就是
DiT + MoE + RoPE 的組合」

把這些架構當成工具箱裡的工具。你不需要全部精通 —— 認得出它在拼什麼,就夠了。

接下來,做你想做的東西吧。