⭐ 答題得分:0 / 0
GENERATIVE AI · L21103 · AI 相關技術應用
生成式 AI 與大型語言模型
Transformer 架構、Self-Attention 3D視覺化、RAG 檢索增強生成、Prompt Engineering 技巧,對應 iPAS 中級科目一高頻考點
Transformer Self-Attention 3D RAG Prompt Engineering LLM 幻覺
🏗️ Transformer 架構(Encoder / Decoder)
現代 LLM 的基石:注意力機制取代 RNN 循環結構

Transformer 由 Encoder(編碼器)Decoder(解碼器) 組成。 BERT 只用 Encoder(雙向理解),GPT 只用 Decoder(單向生成),T5 / ChatGPT 使用完整 Encoder-Decoder。

Encoder(BERT) Multi-Head Self-Attention Add & Norm Feed-Forward Network Add & Norm 雙向上下文理解(←→) Context 向量 Decoder(GPT) Masked Self-Attention (只看左側 token) Cross-Attention(with Encoder) Feed-Forward Network 單向自迴歸生成(→)
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 向量得到輸出。

// Self-Attention 完整計算流程
Q = X · W_QK = X · W_KV = X · W_V  // 線性投影

// 縮放點積注意力(Scaled Dot-Product Attention)
Attention(Q,K,V) = Softmax( Q·Kᵀ / √d_k ) · V

// √d_k 縮放原因:防止點積過大導致 Softmax 梯度消失
// d_k = Key 向量維度(通常 64)
Q Kᵀ Q·Kᵀ ÷ √d_k Softmax V × V Attention Output 相似度分數 縮放防梯度消失 機率分佈(和=1) 加權求和

Multi-Head Attention:同時用 h 個不同的 W_Q, W_K, W_V 做 Attention,最後 Concat 拼接再線性映射。 允許模型從多個子空間學習不同語義關係(句法/語義/共指)。GPT-3 使用 96 個 Attention Head。

// Multi-Head Attention(h 個頭並行計算)
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 的一部分,大幅降低幻覺率。

使用者 查詢 Query Query 向量化 向量資料庫 相似度搜尋 Top-K 文件 Prompt 組裝 Query + 檢索文件 LLM 生成答案 Embedding模型 Faiss / Pinecone Context Injection
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 控制輸出隨機性
// Softmax with Temperature
P(token_i) = exp(logit_i / T) / Σ exp(logit_j / T)

T → 0  // 確定性:永遠選機率最高的 token(貪婪解碼)
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 題)