Transformer 為什麼翻譯長句特別準?
某跨國金融科技公司導入 Transformer 架構開發多語客服系統,以提升長篇金融文件的自動翻譯品質。下列何者為該模型能顯著改善翻譯準確度的主要原因?
一家跨國金融科技公司要做多語客服系統,要把很長的金融文件(例如合約、說明書)自動翻譯準確。他們用的是 Transformer 這個架構。
問你:Transformer 為什麼能把翻譯做得比以前好?主要原因是什麼?
一句話總結
Transformer 翻譯長句準的主要原因:透過自注意力機制(Self-Attention Mechanism),讓每個字都能直接「看到」句子裡所有其他字,不管距離多遠。這就是它能捕捉長距離語境的關鍵。
先感受問題:一個長句裡藏著一個陷阱
假設「富達金融科技」要把合約裡這一段英文翻譯成中文:
主詞是 "The fund",動詞是最後的 "is"。中間夾了一大段說明,總共 40 幾個字。
翻譯機器要知道:"is" 指的是誰?就是最一開始那個 "The fund",而不是中間提到的 Taiwan、Singapore 或 Japan。
這就是「長距離依賴」(Long-range Dependency)的問題:一個字的意思,取決於距離它很遠的另一個字。讀懂這種句子,以前的機器做得很爛。
舊方法(RNN)為什麼翻長句會翻錯
Transformer 之前,翻譯主要靠「循環神經網路」(Recurrent Neural Network,RNN)和後來改良的 LSTM。這些模型是一個字一個字依序讀,像一條鎖鏈。
一條鎖鏈的五個問題:
- 遺忘症:讀到句尾,前面讀過的字已經「被沖淡」了。讀 40 個字後,第 1 個字的資訊幾乎不剩。
- 長句翻譯品質差:合約、說明書動不動就是 60 字以上的長句,RNN 到句尾已經記不清主詞是誰。
- 無法平行運算:因為必須一個字等一個字,訓練速度很慢,不能用 GPU 高效加速。
- 跨語言詞序差異大:英文主動詞在前,日文動詞在句尾。RNN 線性讀法在詞序差異大的語言對上錯誤更多。
- 注意力分配死板:翻譯時機器不能「特別盯著」主詞,只能從頭到尾均等處理每個字。
這就是為什麼 2017 年之前,翻譯長篇金融合約的品質很差。
Self-Attention 怎麼解決這個問題
Transformer 不靠鎖鏈式依序讀,而是讓句子裡每一個字,同時看所有其他字,然後決定「我該對誰投注多少注意力」。
回到富達金融科技的合約句子。Self-Attention 在計算 "is" 這個字的意思時,會同時比對句子裡的每一個字,然後算出一個「注意力分數」:
"is" 對 "consortium" 的注意力分數:0.04(低,修飾語)
"is" 對 "Taiwan" 的注意力分數:0.02(低,地名)
"is" 對 "5 billion" 的注意力分數:0.03(低,數字)
機器就「知道」這個 "is" 的主詞是 "The fund",而不是中間夾著的任何一個名詞。不管 "The fund" 離 "is" 有多遠,都能直接連上,不會隨距離衰減。
而且所有字的注意力計算可以同時平行進行,不用等前一個字算完。這讓 GPU 能完全發揮效能,訓練速度大幅提升。
這就是選項 A 講的:透過自注意力機制(Self-Attention Mechanism)捕捉長距離語境依賴關係。
技術版:Self-Attention 實際怎麼計算
中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。
Self-Attention 的核心公式:
Attention(Q, K, V) = softmax( Q × Kᵀ / √d_k ) × V
看起來嚇人,但拆開來其實是三個步驟。
- 每個字變成三張名片:「我在問什麼(Q)」「我能回答什麼(K)」「我實際的內容(V)」
- 每個字拿自己的 Q 去和所有其他字的 K 配對,算出「我對你有多感興趣」
- 用 softmax 把分數壓縮成 0~1 的比例(全部加起來等於 1)
- 按這個比例把每個字的 V(實際內容)加權混合,得到「這個字在句子裡的最終意思」
| 故事 | 公式符號 |
|---|---|
| 我在問什麼 | Q(Query) |
| 我能回答什麼 | K(Key) |
| 我的實際內容 | V(Value) |
| Q 跟 K 的配對程度 | Q × Kᵀ |
| 縮放(防止分數太大) | ÷ √d_k |
| 壓縮成注意力比例 | softmax( ... ) |
| 按比例混合實際內容 | × V |
- Q(Query)
- 「查詢向量」。這個字在問:「句子裡有誰跟我最相關?」
- K(Key)
- 「鍵向量」。每個字對外宣告:「我能提供什麼資訊?」
- V(Value)
- 「值向量」。每個字實際攜帶的語義內容,會被按比例提取。
- d_k
- K 向量的維度。除以 √d_k 是為了防止點積值太大,讓 softmax 不會變成極端的 0/1。
- softmax
- 把任意一組分數轉成加總為 1 的概率分布。高分的字佔比高,低分的幾乎沒影響。
完整公式:Attention(Q, K, V) = softmax( Q × Kᵀ / √d_k ) × V
念法:「拿每個字的 Q,和所有字的 K 做點積,除以 √d_k 縮放,再 softmax 得到注意力權重,最後加權平均 V。」
實務上現代框架(PyTorch)一行就能呼叫:
import torch.nn.functional as F
# q, k, v 形狀:[batch, seq_len, d_k]
attn = F.scaled_dot_product_attention(q, k, v)
# 等價於 softmax(Q @ K.T / sqrt(d_k)) @ V
蓋住公式,用自己的話講出 4 步驟:
- 每個字產生 Q、K、V 三個向量
- 用 Q 和所有 K 做點積,再除以 √d_k
- softmax 轉成注意力比例
- 按比例加權平均 V,得到該字的新表示
講得出來,你就懂 Self-Attention 了。
為什麼其他選項是錯的
B透過卷積運算(Convolution Operation)加速訓練過程
卷積運算(Convolution Operation)是用一個小視窗在資料上滑動掃描,常見於影像辨識(CNN)。這個選項說 Transformer 靠這個來加速訓練。
Transformer 的核心是 Self-Attention,不是卷積。卷積只看固定視窗範圍內的鄰近元素,而 Self-Attention 能同時看整個句子的所有位置。加速訓練也不是 Transformer 勝出的原因,Self-Attention 的平行化才是。
學過 CNN(影像辨識)但第一次碰 NLP 的考生,看到「加速訓練」就聯想到 GPU 效能,覺得 B 聽起來很技術性、很合理。記住:Transformer 加速靠的是「平行計算注意力」,不是卷積視窗。
C透過強化學習(Reinforcement Learning)自動調整語句生成策略
強化學習(Reinforcement Learning,RL)是讓模型透過「嘗試→得到獎懲→調整策略」的循環自我改進。這個選項說 Transformer 靠 RL 來生成更好的翻譯。
標準 Transformer 架構的訓練是監督式學習(給正確答案讓模型學),不是強化學習。RL 確實有被用在 RLHF(人類反饋強化學習)等後訓練步驟,但那不是 Transformer 架構本身的特色,也不是翻譯準確度提升的主要原因。
最近看過 ChatGPT 或 RLHF 相關報導的考生,知道「AI 靠獎懲機制學習」這個概念,就直覺選 C。容易混淆「RLHF 是用在 GPT 後期微調」而非 Transformer 翻譯架構本身的運作原理。
D透過資料增強(Data Augmentation)平衡多語語料比例
資料增強(Data Augmentation)是人為製造更多訓練資料,例如把「這本書很好看」改寫成「這部書相當精彩」,讓模型見過更多樣的說法。這裡說靠這個來平衡多語資料比例。
資料增強是一種訓練策略,不是 Transformer 架構的設計特色。任何模型都可以用資料增強,它不是 Transformer 特別擅長翻譯長句的原因。題目問的是「這個模型為何能顯著改善翻譯準確度」,答案要指向架構本身的能力,不是通用的訓練技巧。
注意到題目提到「多語客服系統」和「多語語料」,就覺得 D 的「平衡多語語料比例」聽起來對應題目情境。這是被題目表面關鍵字誤導:多語是背景設定,不是問題核心。
同個考點下次怎麼變形
Self-Attention 有沒有「長度限制」?
Self-Attention 理論上每個字都能看到所有其他字,聽起來沒有限制。
有。Self-Attention 的計算量隨序列長度的平方成長(O(n²)),輸入太長會讓記憶體爆掉。GPT-4 的 context window 是 128k token,就是這個問題的工程解法。這也是 Mamba、Longformer 等後繼架構想改善的地方。
如果翻譯的是短句(3~5 個字),Transformer 比 RNN 強多少?
Self-Attention 的優勢是「長距離」,短句根本沒有長距離問題,差距應該不大。
對。短句(如「謝謝」「沒問題」)RNN 翻譯品質跟 Transformer 差距很小,因為短句不存在「忘記主詞」的問題。Transformer 的核心優勢在長句複雜語境。實務上即使是短句,Transformer 仍因平行化訓練效率而是主流選擇。
什麼是「多頭注意力」(Multi-Head Attention)?跟普通 Self-Attention 差在哪?
一組 Q、K、V 只能捕捉一種「關係視角」,例如主詞和動詞的關係。
多頭注意力(Multi-Head Attention)同時跑多組(例如 8 組)獨立的 Q、K、V,每組學習不同的關係(主動詞、代詞指向、修飾關係⋯),最後把 8 組結果拼在一起。一個句子可以同時捕捉多種語義關係,比單頭更豐富。
Self-Attention 除了 NLP,有沒有用在其他地方?
Self-Attention 聽起來是語言專用的,畢竟叫做「語境依賴」。
有,而且廣泛。Vision Transformer(ViT)把圖片切成一塊塊 patch,用 Self-Attention 看「這塊 patch 跟圖片哪個區域最相關」,現在是圖像辨識主流。蛋白質結構預測(AlphaFold2)也用 Attention 捕捉胺基酸之間的長距離交互作用。
怎麼評估翻譯系統的品質好不好?
請真人讀讀看,覺得通順就是好翻譯?
業界標準是 BLEU 分數(Bilingual Evaluation Understudy):自動比對機器翻譯和「標準答案」的 n-gram(連續字組)重疊率,0 到 1 分,越高越好。BLEU 的缺點是不懂語意,只看字面重疊;現在也有 COMET、chrF 等更接近人類判斷的指標。
想再往下看,這 5 個
- 自注意力(Self-Attention)核心考點:讓序列每個位置同時與所有其他位置互動,突破距離限制,是 Transformer 翻譯準確的根本原因。
- 轉換器架構(Transformer)以 Self-Attention 為核心的模型架構,2017 年提出後取代 RNN 成為機器翻譯與 NLP 的主流基底。
- 機器翻譯(Machine Translation)題目情境的核心應用,Transformer 在長篇金融文件翻譯上的準確度顯著優於 RNN-based 方法。
- 注意力機制(Attention Mechanism)Self-Attention 的廣義概念,讓模型動態分配對輸入各部分的關注權重,改善長距離語境捕捉。
- 循環神經網路(Recurrent Neural Network)Transformer 前的主流序列模型,因逐步傳遞隱藏狀態而難以捕捉長距離依賴,與 Transformer 形成對比。