第二部:《深度學習》60/100 小結與測驗:用 Transformer 訓練中英文翻譯模型 🌐 自己打造多語言橋樑!

更新 發佈閱讀 13 分鐘

AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》

60/100 第六週:📌 轉換器架構與注意力機制(Transformers & Attention)🔍

60.小結與測驗:用 Transformer 訓練中英文翻譯模型 🌐 自己打造多語言橋樑!

____________________________________________________

🧱 單元小結總覽(51~59):掌握 Transformer 的核心力量!

51 🚀為什麼要用 Transformer?➜ 擺脫 RNN 訓練瓶頸,專為處理長距序列設計的注意力架構

52 ✨Attention 機制原理 ➜ 模仿人類「關注重點」能力,Q/K/V 機制捕捉關聯

53 🧠Self-Attention ➜ 一句話內每個詞都能互相理解語境,是語言模型的語意底層

54 📏位置編碼 ➜ 補足 Transformer 不具時間性的缺陷,加入順序感

55 🏗Transformer 架構總覽 ➜ Encoder-Decoder 架構,多頭注意力 + 前饋層 + 殘差

56 🎯多頭注意力 ➜ 同時從多角度觀察資料,讓模型理解更全面

57 ✉️Encoder-Decoder 架構 ➜ 輸入語意表/ 輸出語言生成,是翻譯/摘要核心

58 🌪LayerNorm + 訓練技巧 ➜ 穩定每層輸出,促進深度網路收斂與泛化

59 🌍應用實例翻譯、摘要、聊天機器人 ➜ 一個架構橫掃 NLP 任務,從語言到多模態皆適用

________________________________________

✅ 單選測驗題組(含解析)

________________________________________

1️⃣ 為什麼 Transformer 能夠比 RNN 更有效處理長距依賴?

A. 因為它使用 CNN 結構

✅ B. 因為它使用自注意力可直接關注任意位置

C. 因為它沒有參數

D. 因為它只處理短語

📘 解析:

RNN 是一步步處理的結構,長距離會造成梯度消失,而 Transformer 的 Attention 可直接比較序列中任意兩詞的關係。

________________________________________

2️⃣ Self-Attention 的最大優勢是什麼?

A. 它只能觀察前一個詞

B. 它在計算上很簡單

✅ C. 它讓每個詞都能考慮整句話中所有詞的語意關係

D. 它是 RNN 的變體

📘 解析:

Self-Attention 允許每個位置關注所有其他位置,是語境理解的關鍵。

________________________________________

3️⃣ 為什麼需要 Position Encoding?

A. 為了減少運算時間

✅ B. 因為 Transformer 是全並行處理,沒有自然順序感

C. 因為用不到語意資訊

D. 為了讓模型變輕量化

📘 解析:

Transformer 是平行處理架構,無法像 RNN 一樣感知先後,因此需額外加入順序資訊。

________________________________________

4️⃣ 多頭注意力的目的為何?

A. 增加訓練資料量

✅ B. 從不同角度捕捉語意關係

C. 減少層數

D. 防止過擬合

📘 解析:

多頭 Attention 是將注意力分成多個視角並行運算,提升模型語意理解能力。

________________________________________

5️⃣ 哪些任務最常使用 Encoder-Decoder 架構?

A. 圖像分類

✅ B. 翻譯與摘要

C. 聲音辨識

D. 分類與排序

📘 解析:

Encoder-Decoder 架構的特點是從一種序列映射到另一種序列,如語言翻譯、文章摘要等。

________________________________________

📘 問答題 1

問題:Transformer 為何能有效解決 RNN 在處理長距序列中遇到的「梯度消失」與「資訊遺失」問題?請說明其核心機制。

✅ 建議答案:

Transformer 採用 Self-Attention 機制,可以讓每個詞的位置直接與句中所有其他詞建立關聯,而非像 RNN 一樣逐步傳遞。這種「任意位置直接互動」的特性消除了隱藏狀態傳遞所造成的訊息遺失問題。

此外,Transformer 支援 全並行計算,避免了時間步長積累誤差,也沒有連續乘法造成的梯度消失風險,因此更適合處理長距依賴的序列資料。

________________________________________

📘 問答題 2

問題:請說明在 Transformer 架構中,Encoder 與 Decoder 如何協同工作完成翻譯任務?包括它們各自的任務與相互連結方式。

✅ 建議答案:

在翻譯任務中,Encoder 的任務是將輸入語言(如英文)轉換為一組高階語意表示,這組表示保留了整句話的語境與詞彙間關係;Decoder 則根據這些語意表示和已生成的目標語言片段(如中文)來逐步預測下個詞。

兩者透過 Encoder-Decoder Attention 模塊協作,Decoder 利用這個模塊查詢 Encoder 的輸出,以便在生成詞彙時關注輸入中最重要的部分。這種設計讓模型具備「讀懂→翻譯」的能力。

________________________________________

📘 問答題 3

問題:在訓練深層 Transformer 模型時,為何需要使用 Layer Normalization?它如何與殘差連結搭配發揮作用?

✅ 建議答案:

Layer Normalization(層正規化)能夠穩定每層網路的輸出分佈,減少層與層之間訊號的變異,進而提升收斂效率與模型穩定性。在 Transformer 中,每個子層(如 Attention、FeedForward)都會套上 Residual Connection(殘差連結)+ LayerNorm 組合。

殘差連結可幫助梯度向後傳遞、避免梯度消失,而 LayerNorm 則標準化輸出,避免因深層網路而造成訊號爆炸或收斂困難。這兩者的搭配,是 Transformer 能穩定訓練數十層模型的關鍵技術之一。

________________________________________

🌐 實作任務:用 Transformer 訓練中英文翻譯模型

🧑‍💻 自己打造多語言橋樑!

________________________________________

✅ 任務簡介:

目標: 使用簡化版 Transformer 實作「英文 → 中文」翻譯任務

工具: Python + PyTorch + torchtext 或 HuggingFace's transformers

________________________________________

📦 安裝依賴(簡版 PyTorch)

pip install torch torchtext sentencepiece

________________________________________

🧱 1. 建構 Transformer 模型骨架(簡略版)

import torch.nn as nn

from torch.nn import Transformer

class TranslationModel(nn.Module):

def __init__(self, vocab_size_src, vocab_size_tgt, d_model=512, nhead=8, num_layers=6):

super().__init__()

self.src_embed = nn.Embedding(vocab_size_src, d_model)

self.tgt_embed = nn.Embedding(vocab_size_tgt, d_model)

self.transformer = Transformer(d_model, nhead, num_layers, num_layers)

self.output = nn.Linear(d_model, vocab_size_tgt)

def forward(self, src, tgt):

src_emb = self.src_embed(src)

tgt_emb = self.tgt_embed(tgt)

out = self.transformer(src_emb.permute(1, 0, 2), tgt_emb.permute(1, 0, 2))

return self.output(out.permute(1, 0, 2))

這個 TranslationModel 是基於 PyTorch 的 nn.Module 所建構的序列到序列(Seq2Seq)模型,內部使用了原生的 nn.Transformer 模組。模型包含兩個嵌入層(src_embed 和 tgt_embed),將輸入的詞 ID 映射為連續向量表示;接著經由 Transformer 編碼器-解碼器架構進行序列建模。在 forward 方法中,輸入的源語言和目標語言張量會先嵌入,再轉置為 (sequence_length, batch_size, embedding_dim) 的格式,符合 PyTorch 的 Transformer 要求。最後,模型輸出經過線性層轉換為目標詞彙表大小的 logits,用於預測翻譯結果中每個詞的機率分佈。

________________________________________

📝 2. 訓練資料可用:WMT14 英中翻譯資料集(或簡化版)

可用 torchtext.datasets.IWSLT2016(language_pair=('en', 'zh'))

或使用 HuggingFace 的 opus100、flores 多語對照資料集

________________________________________

🚀 3. 模型訓練技巧

使用 LabelSmoothingLoss 作為目標函數提升泛化能力

使用 Noam 動態學習率調整器

每 100 步打印翻譯樣本預測,觀察模型改善進度

________________________________________

🔚 4. 翻譯效果觀察

輸入:

The weather is nice today.

模型翻譯輸出:

今天天氣很好。

________________________________________

🔍 小結與啟示:

✅ 理解 Transformer 架構背後的機制與組件,有助於你開發各種語言智能應用

✅ 懂得調用開源工具與資料,可快速啟動多語翻譯項目

✅ 翻譯任務訓練完成後,也能遷移應用於摘要、對話等任務!



留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
8會員
166內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/19
Transformer 架構廣泛應用於 NLP,包括翻譯、摘要、聊天機器人。翻譯強調語意對齊,摘要需壓縮重構語意更具挑戰,聊天依靠上下文理解實現自然互動。其共同基礎為 Encoder-Decoder、Self-Attention 與預訓練微調技術。
2025/09/19
Transformer 架構廣泛應用於 NLP,包括翻譯、摘要、聊天機器人。翻譯強調語意對齊,摘要需壓縮重構語意更具挑戰,聊天依靠上下文理解實現自然互動。其共同基礎為 Encoder-Decoder、Self-Attention 與預訓練微調技術。
2025/09/19
LayerNorm 是 Transformer 穩定訓練的核心,針對每筆樣本特徵正規化,不受 batch 大小限制。與殘差結構結合可防止梯度爆炸或消失,提升收斂效率。常搭配 Dropout、Warm-up、Gradient Clipping 等技巧,確保模型高效穩定學習。
2025/09/19
LayerNorm 是 Transformer 穩定訓練的核心,針對每筆樣本特徵正規化,不受 batch 大小限制。與殘差結構結合可防止梯度爆炸或消失,提升收斂效率。常搭配 Dropout、Warm-up、Gradient Clipping 等技巧,確保模型高效穩定學習。
2025/09/19
Encoder-Decoder 架構透過 Encoder 理解輸入、Decoder 生成輸出,並以 Attention 對齊兩者,能捕捉完整語境與長距依賴。相較 RNN,更高效並行且資訊保留完整,廣泛應用於翻譯、摘要、問答與圖片描述。
2025/09/19
Encoder-Decoder 架構透過 Encoder 理解輸入、Decoder 生成輸出,並以 Attention 對齊兩者,能捕捉完整語境與長距依賴。相較 RNN,更高效並行且資訊保留完整,廣泛應用於翻譯、摘要、問答與圖片描述。
看更多
你可能也想看
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在 AI說書 - 從0開始 - 127 中提及: Transformer 的關鍵參數為: 原始 Transformer 模型中,左圖的 N = 6 原始 Tran
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在 AI說書 - 從0開始 - 127 中提及: Transformer 的關鍵參數為: 原始 Transformer 模型中,左圖的 N = 6 原始 Tran
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型。 現在我們來載入預訓練權重,預訓練的權重包含 Transformer 的智慧
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型。 現在我們來載入預訓練權重,預訓練的權重包含 Transformer 的智慧
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Trainin
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Trainin
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Decoder
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Decoder
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Attenti
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Attenti
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 講完 Transformer 之 Encoder 架構中的 Embedding 與 Positional Encoding 部分,現在進入 Multi-Head Att
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 講完 Transformer 之 Encoder 架構中的 Embedding 與 Positional Encoding 部分,現在進入 Multi-Head Att
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在AI說書 - 從0開始 - 41中,我們提及 Transformer 的 Encoder 架構如下圖所示,同時我們羅列幾個要點於圖示右邊: 原始 Transform
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在AI說書 - 從0開始 - 41中,我們提及 Transformer 的 Encoder 架構如下圖所示,同時我們羅列幾個要點於圖示右邊: 原始 Transform
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News