🏗️ Transformer 架構(Encoder / Decoder)
現代 LLM 的基石:注意力機制取代 RNN 循環結構
Transformer 由 Encoder(編碼器) 與 Decoder(解碼器) 組成。
BERT 只用 Encoder(雙向理解),GPT 只用 Decoder(單向生成),T5 / ChatGPT 使用完整 Encoder-Decoder。
BERT(只用 Encoder)
雙向(←→)閱讀整個句子,善於理解任務:文本分類、問答、NER命名實體辨識。預訓練任務:MLM(遮蔽語言模型)
▶ 考點:雙向上下文 / MLM
GPT(只用 Decoder)
單向(→)自迴歸生成,每次預測下一個 token。善於生成任務:文本生成、對話、補全。
▶ 考點:單向自迴歸 / 生成
T5 / ChatGPT(完整架構)
Encoder 理解輸入,Decoder 生成輸出,中間通過 Cross-Attention 傳遞語義。適合翻譯、摘要等 Seq2Seq 任務。
▶ 考點:Cross-Attention / Seq2Seq
📌 考試考點(必考):BERT 雙向(MLM預訓練)→ 理解任務 ;GPT 單向自迴歸 → 生成任務。問「哪個模型適合文本理解?」→ BERT;「哪個模型適合文本生成?」→ GPT。
🎯 Self-Attention 機制(注意力計算)
Attention = Q · Kᵀ / √d_k → Softmax → × V
每個 token 分別映射成三個向量:Query(Q)、Key(K)、Value(V)。
Q 與所有 K 計算相似度得到「注意力分數」,Softmax 歸一化後加權 V 向量得到輸出。
Q = X · W_Q, K = X · W_K, V = X · W_V
Attention(Q,K,V) = Softmax( Q·Kᵀ / √d_k ) · V
Multi-Head Attention:同時用 h 個不同的 W_Q, W_K, W_V 做 Attention,最後 Concat 拼接再線性映射。
允許模型從多個子空間學習不同語義關係(句法/語義/共指)。GPT-3 使用 96 個 Attention Head。
MultiHead(Q,K,V) = Concat(head₁, head₂, ..., headₕ) · W_O
head_i = Attention(Q·W_Qᵢ, K·W_Kᵢ, V·W_Vᵢ)
📌 考試考點:Attention 分數公式 = Q·Kᵀ / √d_k,除以 √d_k 是為了防止向量維度過高時點積過大導致 Softmax 梯度消失。
🔍 RAG — 檢索增強生成(解決幻覺問題)
Retrieval-Augmented Generation:讓 LLM 查外部知識庫再回答
純 LLM 可能「幻覺(Hallucination)」——生成看似合理但錯誤的答案。RAG 在生成前先從向量資料庫檢索相關文件,以真實資料作為 Prompt 的一部分,大幅降低幻覺率。
LLM 幻覺問題
純 LLM 依靠訓練時的「記憶」作答,當問題超出訓練資料或需要即時資訊時,會生成「自信但錯誤」的答案,即幻覺(Hallucination)。
▶ 考點:幻覺原因 / RAG 解決方案
向量資料庫(Vector DB)
文件先用 Embedding 模型轉為高維向量儲存。查詢時計算餘弦相似度(Cosine Similarity)找 Top-K 最相關文件。常見:Faiss、Pinecone、Chroma。
▶ 考點:餘弦相似度 / Top-K 檢索
RAG vs Fine-tuning
RAG 無需重新訓練模型,知識可即時更新,成本低;Fine-tuning 需重訓,知識固化在權重中。RAG 適合頻繁更新的知識庫場景。
▶ 考點:RAG vs 微調選擇場景
📌 考試考點:RAG 解決 LLM 幻覺的核心機制是「先檢索後生成」——把外部知識注入 Prompt,讓模型基於真實文件回答而非憑空生成。
✏️ Prompt Engineering 技巧
Zero-Shot / Few-Shot / Chain-of-Thought(CoT)
| 技巧 | 做法 | 適用場景 | 效果 |
| Zero-Shot | 直接提問,不給範例 | 通用任務,簡單指令 | 快速,可能不精準 |
| Few-Shot | 給 2-5 個輸入/輸出範例 | 特定格式輸出、分類 | 大幅提升準確率 |
| CoT | 要求「一步步思考」 | 數學、邏輯推理、複雜問題 | 複雜推理能力顯著提升 |
| System Prompt | 設定角色與行為規範 | 客服機器人、角色扮演 | 控制輸出風格/限制 |
📌 考試考點:Few-Shot 比 Zero-Shot 效果更好因為提供了「示例」;CoT(Chain-of-Thought)讓模型逐步推理,對數學/邏輯問題效果顯著。
🎨 生成模型比較:GAN / VAE / Diffusion
| 模型 | 核心機制 | 優點 | 缺點 | 代表應用 |
GAN 生成對抗網路 |
Generator(生成器)vs Discriminator(鑑別器)相互博弈 |
生成品質高、輸出清晰 |
訓練不穩定(模式崩塌)、難以控制 |
StyleGAN(臉部生成)、DeepFake |
VAE 變分自編碼器 |
Encoder→潛在空間(μ,σ)→Decoder,最大化 ELBO |
潛在空間連續、可插值 |
生成圖像略模糊 |
圖像生成、異常偵測、資料增強 |
Diffusion 擴散模型 |
逐步加噪(Forward)→學習去噪(Reverse) |
高品質多樣、訓練穩定 |
推論速度慢(多步去噪) |
Stable Diffusion、DALL-E 3、Sora |
GAN 訓練目標
G 盡量讓 D 分不清真假;D 盡量識別假圖片。達到納什均衡時 G 生成完美樣本。問題:訓練崩塌(Generator 陷入局部最優)。
▶ 考點:Generator vs Discriminator 目標相反
VAE 潛在空間
將輸入壓縮到均值μ和方差σ定義的分佈。通過重參數化技巧(Reparameterization)使梯度可傳播。潛在空間連續,可線性插值生成過渡樣本。
▶ 考點:ELBO / 潛在空間插值
Diffusion 核心思想
前向過程(T 步):逐步加高斯噪聲直到純雜訊。反向過程:訓練 U-Net 預測每步的噪聲,逐步去噪還原圖像。可用文字條件(CLIP)控制生成內容。
▶ 考點:加噪→去噪 / CLIP條件生成
🌡️ Temperature 參數與 LLM 幻覺
Temperature 控制輸出隨機性
P(token_i) = exp(logit_i / T) / Σ exp(logit_j / T)
T → 0
T = 1
T > 1
| Temperature | 機率分佈 | 輸出特性 | 適用場景 |
| T ≈ 0 | 極尖銳(幾乎確定) | 重複、確定、保守 | 程式碼生成、數學計算 |
| T = 0.7 | 適中 | 平衡質量與多樣性 | 聊天機器人(推薦值) |
| T = 1.0 | 原始分佈 | 正常採樣 | 一般文字生成 |
| T > 1.5 | 平坦(接近均勻) | 高度多樣、可能胡言亂語 | 創意寫作、腦力激盪 |
LLM 幻覺的根本原因
LLM 是「機率統計模型」,預測「最可能」的下一個 token,並非「查找事實」。當訓練資料不足或問題超出分佈,模型仍會生成高信心但錯誤的答案。
▶ 考點:幻覺 = 統計預測而非事實查找
解決幻覺的方法
① RAG:注入外部事實 ② RLHF:人類反饋強化學習對齊 ③ 降低 Temperature ④ Grounding:要求引用來源 ⑤ 知識圖譜輔助。
▶ 考點:RAG / RLHF / Temperature
RLHF(人類反饋強化學習)
ChatGPT 的關鍵訓練技術。人類標註者對模型輸出排名,訓練「獎勵模型(Reward Model)」,再用 PPO 強化學習讓 LLM 生成更受人類偏好的回應。
▶ 考點:RLHF = 人類標注 + 獎勵模型 + PPO
📌 考試考點:Temperature 高 → 創意性高但準確率低;Temperature 低 → 確定性強適合程式碼/計算。RAG 是解決 LLM 幻覺最直接的工業界方法。
🎮 3D 互動視覺化:Attention 權重矩陣
Self-Attention 權重熱力圖 → 3D 長條圖(可旋轉拖曳)
每根柱子代表一個 token pair 的 Attention 權重。柱子越高,表示兩個 token 互相「注意」程度越強。拖曳旋轉觀察不同視角。
Attention Weight Matrix 3D · 拖曳旋轉
📋 考試重點整理
Attention 公式
Softmax(Q·Kᵀ / √d_k) · V。除以 √d_k 是為防止高維度下點積過大導致 Softmax 梯度消失。
▶ 必背公式
BERT vs GPT
BERT = 雙向 Encoder,MLM 預訓練,適合理解任務。GPT = 單向 Decoder,自迴歸預測,適合生成任務。
▶ 高頻選擇題
RAG 核心流程
Query 向量化 → 向量資料庫相似度搜尋 → Top-K 文件注入 Prompt → LLM 生成。解決幻覺問題。
▶ 情境題必考
Temperature 參數
T 高 → 創意/多樣(腦力激盪);T 低 → 確定/保守(程式碼)。Temperature 影響 Softmax 機率分佈的尖銳程度。
▶ 應用情境題
Diffusion > GAN
Diffusion 模型訓練更穩定(無模式崩塌問題)、生成品質更高、多樣性更好,已成為影像生成的主流技術(Stable Diffusion)。
▶ 模型比較題
Few-Shot > Zero-Shot
提供 2-5 個範例讓模型「學習格式」,顯著提升特定格式輸出準確率。CoT(一步步思考)對複雜推理效果最佳。
▶ Prompt Engineering
💻 程式碼考點(Transformers · OpenAI API · LangChain)
🤗 Hugging Face Transformers — 載入預訓練模型
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
# 一行載入文字生成 pipeline(考點:task 參數)
generator = pipeline('text-generation', model='gpt2')
result = generator('AI的未來是', max_new_tokens=50)
# 情感分析(zero-shot 分類)
classifier = pipeline('zero-shot-classification')
classifier('這個產品很棒', candidate_labels=['正面', '負面', '中性'])
pipeline('task')
快速載入任務模型,無需手動處理
max_new_tokens
控制生成長度,非 max_length
zero-shot-classification
無需標記資料即可分類
🔑 OpenAI API — 呼叫 GPT 模型
from openai import OpenAI
client = OpenAI() # 讀取環境變數 OPENAI_API_KEY
response = client.chat.completions.create(
model='gpt-4o',
messages=[
{'role': 'system', 'content': '你是專業的 AI 助理'},
{'role': 'user', 'content': '請解釋 RAG 技術'}
],
temperature=0.7, # 考點:0=確定性,1+=創意
max_tokens=500
)
print(response.choices[0].message.content)
🔗 RAG 實作流程(LangChain 概念)
# Step 1:文件向量化存入向量資料庫
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(docs, embeddings)
# Step 2:相似度搜尋(考點:k=最近鄰數量)
retriever = vectorstore.as_retriever(search_kwargs={'k': 3})
# Step 3:組合 Prompt 送給 LLM
from langchain.chains import RetrievalQA
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)
Embedding
文字→向量,供相似度搜尋
FAISS
本地向量資料庫,快速近鄰搜尋
RetrievalQA
檢索→生成,解決幻覺問題
🧪 歷屆考題程式題型(選擇題)
Q: 呼叫 OpenAI API 時,temperature=0 代表?
(A) 輸出最確定、重複性最高 ✓
(B) 隨機性最高
(C) 生成速度最快
(D) 停止生成
Q: RAG 架構中,向量資料庫的主要用途為?
(A) 訓練 LLM 參數
(B) 儲存原始 PDF
(C) 相似度搜尋,找出相關文件段落 ✓
(D) 壓縮模型大小
🎯 仿真考題(8 題)