# 課程目標與架構
* 80 分鐘快速全面理解大型語言模型(LLM)與 ChatGPT,涵蓋原理、演進、訓練與使用技巧。
* 以期中考示範、實作應用(GPTs 課程助教)與提示工程作法呈現
# 期中考示範重點
* 五題是非題中 ChatGPT 答對 4 題,部分題目屬陷阱題
* 典型誤區:未明確假設方陣或可逆就套用 det(AB)=det(BA)
* 能力觀察:多數基本題能正確,陷阱題易受先驗假設影響
# 專屬 AI 應用

# ChatGPT 與 LLM 基礎

* ChatGPT 由 OpenAI 開發;Bard(現 Gemini)、Claude 等為相近技術
* 名稱拆解:G=Generative、P=Pre-trained、T=Transformer
* 核心任務:生成文字以完成輸入的未完句(語言模型)
# 文字接龍(下一符號預測)



* 將提問視為未完句,逐步預測下個 Token,直到輸出結束符號
* 每步輸出為所有可接 Token 的機率分佈,再依分佈取樣產生
# 為何需要取樣而非永遠取最大機率

* 一味取最大機率(貪婪解碼)易導致語言退化與重複
* 隨機取樣提升多樣性與自然度(參考:Neural Text Degeneration)
# Token 與斷詞

* Token 為模型運算與計費單位,不同模型 Token 規則各異
* 英文多採子詞切分(如 un + kill + able),中文可用單字或多字片段
# 幻覺與事實性

* 模型追求語句連貫,不直接保證事實正確
* 錯誤前提會被延展生成,如產生看似合理但不存在的網址或事件
# 語言模型如何學習
* 任何文本皆可作教材:由前綴推論下一符號,調整機率分佈
* 大規模網路語料提供統計規律與語用知識
# 類神經網路與 Transformer

* 類神經網路可視為參數極大的函式 f(·)
* Transformer 為現今 LLM 主流架構(細節另見機器學習課程)
# GPT 系列演進
* GPT-1(2018):參數與資料量相對小
* GPT-2(2019):可進行問答與摘要,公開展示多任務能力

* GPT-3(2020):參數與資料量再大幅提升,出現少樣本學習能力

* [Better language models and their implications](https://openai.com/index/better-language-models/)
* [Language Models are Few-Shot Learners](https://arxiv.org/abs/2005.14165)
* [Training language models to follow instructions with human feedback](https://arxiv.org/abs/2203.02155)
# 從預訓練到「對齊」
* 預訓練:在海量語料上學一般語言能力

* 督導式微調(SFT / InstructGPT):以人類標註指令資料微調

* 從人類回饋學習(RLHF):以偏好比較訓練回饋模型,再用強化學習對齊輸出

[Zero-shot Reading Comprehension by Cross-lingual Transfer Learning with Multi-lingual Language Representation Model](https://arxiv.org/abs/1909.09587)
# 對齊與行為調整
* 目標:使模型更符合人類偏好與安全要求
* 策略:模仿人類示範、用回饋模型打分、強化學習提升高分行為
# 使用者能努力的方向
## 1. 把需求講清楚:使用技巧與提示工程

* 把需求講清楚:明確任務、輸出格式、限制
## 2. 提供資訊給 ChatGPT

* 提供資訊:將必要背景(教材、檔案、數據)一併加入
## 3. 提供範例

* 提供範例:示範期望風格或輸出樣式以利對齊
## 4. 鼓勵 ChatGPT 想一想


* 鼓勵「想一想」:要求逐步推理可顯著提升正確率
[Chain Of Thought](https://arxiv.org/abs/2205.11916)
[Large Language Models Are Human-Level Prompt Engineers](https://sites.google.com/view/automatic-prompt-engineer)
## 5. 如何找出神奇咒語


* 自動找咒語:以演算法或模型尋找更佳提示(如 APE、LLM as Optimizer)
[Learning to Generate Prompts for Dialogue Generation through Reinforcement Learning](https://arxiv.org/abs/2206.03931)
[Large Language Models as Optimizers](https://arxiv.org/abs/2309.03409)
## 6. 可以上傳檔案
* 可上傳檔案作為上下文,支援長上下文閱讀
## 7. ChatGPT 可以使用其他工具

* 可調用外部工具(搜尋、外掛等)以增強能力與即時性
## 8. 拆解任務:任務拆解與代理

* 將大任務拆解為子任務(Re3)
[Re3: Generating Longer Stories With Recursive Reprompting and Revision](https://arxiv.org/abs/2210.06774)
## 9. 自主進行規劃

* 以代理式框架(如 AutoGPT 等)規劃與執行多步流程
## 10. ChatGPT 其實是會反省的:自我反省與安全

* 新一代模型具較佳自我檢查/反省能力(Constitutional AI、DERA 等)
* 透過批判與修正迭代,提高一致性與安全性
[Constitutional AI: Harmlessness from AI Feedback](https://arxiv.org/abs/2212.08073)
[DERA: Enhancing Large Language Model Completions with Dialog-Enabled Resolving Agents](https://arxiv.org/abs/2303.17071)
## 11. 跟真實環境互動:與真實環境互動
* 將文字規劃轉譯為可執行動作,與工具、感知輸入或環境互動
* 相關研究:零樣本規劃、具身推理等
[Language Models as Zero-Shot Planners: Extracting Actionable Knowledge for Embodied Agents](https://arxiv.org/abs/2201.07207)
[Inner Monologue:Embodied Reasoning through Planning with Language Models](https://innermonologue.github.io/)
# Terminology
* 大型語言模型(Large Language Model, LLM):以巨量語料預訓練,能理解與生成自然語言的模型。
* 生成式人工智慧(Generative AI):根據機率分佈創作文字、影像等新內容的技術。
* 預訓練(Pretraining):以大規模未標註資料學習通用語言能力的階段。
* 微調(Fine-tuning):在特定任務或資料上進一步訓練以適應場景。
* 指令微調(Instruction Tuning):用「指令—回應」資料讓模型更會照指示行事。
* 人類回饋強化學習(Reinforcement Learning from Human Feedback, RLHF):以人類偏好作為回饋信號微調模型行為。
* 自我監督學習(Self-Supervised Learning):從未標註資料中構造預測任務來訓練模型。
* 因果語言模型(Causal Language Modeling, CLM):僅以左側上下文預測下一詞元的訓練目標。
* 遮罩語言模型(Masked Language Modeling, MLM):隨機遮罩詞元並要求模型復原。
* 變壓器架構(Transformer):以注意力為核心、擅長長距依賴的神經網路架構。
* 注意力機制(Attention):根據相關性為不同位置的表示分配權重。
* 多頭注意力(Multi-Head Attention):並行多組注意力以捕捉多樣關聯。
* 位置編碼(Positional Encoding):為序列位置提供可學或固定的位置信息。
* 旋轉位置編碼(Rotary Positional Embedding, RoPE):以旋轉變換融入相對位置信息的編碼方式。
* 前饋網路(Feed-Forward Network, FFN):對每個位置獨立的非線性變換層。
* 殘差連接(Residual Connection):將輸入加回輸出以穩定深層訓練。
* 層正規化(Layer Normalization):在特徵維度正規化以加速收斂。
* 丟棄法(Dropout):隨機失活部分單元以降低過擬合。
* 詞元(Token):模型處理的最小符號單位,可能是字、子詞或符號。
* 子詞分詞(Subword Tokenization):以子詞單位切分文本以兼顧泛化與稀有字處理。
* 合併式編碼(Byte Pair Encoding, BPE):以頻率合併字片段形成子詞詞彙。
* 單元語言模型分詞(Unigram Tokenization):以概率模型選擇最佳子詞切分。
* 詞彙表大小(Vocabulary Size):模型可輸出的詞元集合規模。
* 上下文視窗(Context Window):一次推理可讀取的最大序列長度。
* 提示詞(Prompt):引導模型完成任務的輸入文字或範例。
* 少樣本學習(Few-shot Learning):在提示中給少量示例以誘導能力。
* 零樣本學習(Zero-shot Learning):僅靠指令無示例完成任務。
* 連鎖思維(Chain-of-Thought):要求模型逐步推理以提升複雜任務表現。
* 檢索增強生成(Retrieval-Augmented Generation, RAG):先檢索外部知識再結合生成。
* 幻覺(Hallucination):模型生成看似合理但事實錯誤的內容。
* 事實一致性(Factuality):輸出內容與真實世界知識一致的程度。
* 機率分佈(Probability Distribution):對所有候選詞元的預測機率集合。
* 機率取樣(Sampling):依機率分佈隨機選擇下一詞元的解碼策略。
* 貪婪解碼(Greedy Decoding):每步選取機率最高的詞元。
* 集束搜尋(Beam Search):保留多條高分路徑以近似全域最佳序列。
* 溫度(Temperature):平滑或銳化機率分佈以控制隨機性。
* Top-k 取樣(Top-k Sampling):僅在機率最高的 k 個詞元中取樣。
* 核取樣(Top-p/Nucleus Sampling):在累積機率達 p 的詞元集合中取樣。
* 困惑度(Perplexity):衡量語言模型對測試集的不確定性指標。
* 交叉熵損失(Cross-Entropy Loss):度量預測分佈與真實分佈差異的損失。
* 反向傳播(Backpropagation):透過鏈式法則計算梯度以更新參數。
* 隨機梯度下降(Stochastic Groups Descent, SGD):以小批次樣本更新參數的優化法。
* Adam 優化器(Adam Optimizer):結合動量與自適應學習率的優化演算法。
* 量化(Quantization):用較低位寬近似權重/激活以降成本。
* 知識蒸餾(Knowledge Distillation):以大型教師模型指導小模型學習。
* 結構化剪枝(Structured Pruning):按通道/頭/層移除結構塊以壓縮模型。
* 低秩適配(Low-Rank Adaptation, LoRA):以低秩矩陣注入可訓練增量實現高效微調。
* 鍵值快取(KV Cache):在自回歸解碼中緩存注意力鍵與值以加速推理。
* 記憶體高效注意力(Flash Attention):降低注意力計算記憶體占用的演算法實作。
* 吞吐量(Throughput):單位時間可處理的請求或詞元數量。
* 終止符號(End-of-Sequence, EOS):表示序列結束的特殊詞元。
* 類神經網路(Neural Network):以多層線性與非線性組合近似複雜函數的模型。
* 參數(Parameters):決定模型行為的可學習權重與偏置。
* 前向傳播(Forward Propagation):將輸入經模型層層計算得到輸出的過程。
* 反向傳播(Backpropagation):利用鏈式法則計算梯度以更新參數。
* 自回歸模型(Autoregressive Model):按序依賴先前詞元生成下一詞元。
* Softmax 函數(Softmax):將logits轉換為機率分佈的正規化函數。
* 嵌入向量(Embedding):將離散詞元映射為連續向量表示。
* 矩陣乘法(Matrix Multiplication):線性層與注意力計算的核心運算。
* 線性層(Linear Layer):以權重矩陣與偏置進行仿射變換的神經層。
* 激活函數(Activation Function):引入非線性以提升表達能力的函數族。
* GELU(Gaussian Error Linear Unit):常見於Transformer的平滑激活函數。
* 殘差路徑(Residual Pathway):將輸入加回輸出以緩解梯度消失。
* 層正規化(Layer Normalization, LayerNorm):在特徵維度做正規化以穩定訓練。
* 多頭自注意力(Multi-Head Self-Attention):並行關注不同子空間關聯的機制。
* 查詢鍵值表示(Query-Key-Value):注意力中相似度計算與加權的表示分解。
* 位置編碼(Positional Encoding):為序列引入位置信息的技術。
* 自回饋機率(Logits):未正規化的分數,用於計算詞元機率。
* 上下文視窗(Context Window):一次可處理的最大序列長度。
* 語料庫(Corpus):模型訓練所用的大規模文本集合。
* 數據去重(Deduplication):移除重複樣本以降低偏差與過擬合。
* 資料清洗(Data Cleaning):過濾低質或有害文本以提升訓練品質。
* 批次大小(Batch Size):每次參數更新所用的樣本數量。
* 學習率(Learning Rate):控制每次梯度更新步幅的超參數。
* 權重衰減(Weight Decay):對權重施加L2正則以抑制過擬合。
* 梯度裁剪(Gradient Clipping):限制梯度範數以避免爆炸。
* 梯度累積(Gradient Accumulation):跨多個小批次累積梯度以等效大批次訓練。
* 混合精度訓練(Mixed-Precision Training):同時使用FP16/BF16與FP32以提速降耗。
* 張量並行(Tensor Parallelism):在張量維度切分計算以擴展模型。
* 資料並行(Data Parallelism):複製模型於多設備上處理不同資料切片。
* 流水線並行(Pipeline Parallelism):按層切分模型串接多設備以並行前後向。
* 檢查點儲存(Checkpointing):保存中間或最優權重以便恢復與部署。
* 訓練曲線(Training Curve):觀察損失與指標隨時間變化的圖形。
* 早停(Early Stopping):在驗證表現惡化前提前終止訓練避免過擬合。
* 監督式微調(Supervised Fine-Tuning, SFT):以人類標註的輸入—輸出對進一步訓練。
* 偏好資料(Preference Data):成對比較標註,表達哪個答案較佳的資料。
* 獎勵模型(Reward Model, RM):學習人類偏好並為回答打分的模型。
* 策略模型(Policy Model, PM):在RLHF中被優化以產生更佳回答的語言模型。
* 近端策略最佳化(Proximal Policy Optimization, PPO):RLHF常用的策略梯度演算法。
* KL 懲罰(KL Penalty):約束新策略與參考模型分佈差異的正則項。
* 對齊(Alignment):使模型行為符合人類意圖與價值的過程。
* 安全對齊(Safety Alignment):降低有害輸出與不當行為的技術與流程。
* 紅隊測試(Red Teaming):以攻防測試方式挖掘模型弱點與風險。
* 指令遵從性(Instruction Following):理解並執行自然語言指令的能力。
* 內文學習(In-Context Learning):僅靠提示中的示例即學會新任務的現象。
* 跨語言遷移(Cross-lingual Transfer):在一語言學得的能力遷移至他語言。
* 多語言模型(Multilingual Model):同時支援多種語言的語言模型。
* BERT(Bidirectional Encoder Representations from Transformers):雙向編碼器式語言模型。
* 中文閱讀理解資料集(DRCD):評估中文機器閱讀理解能力的基準數據集。
* 基準測試(Benchmarking):以標準資料集與指標系統性評估模型。
* 長度懲罰(Length Penalty):在解碼時調整序列長度偏好的正則策略。
* 對齊(Alignment):使模型行為符合人類意圖、偏好與價值的整體流程。
* 監督式微調(Supervised Fine-Tuning, SFT):用人類示範的輸入—輸出對,教模型產生期望回應。
* 人類回饋強化學習(Reinforcement Learning from Human Feedback, RLHF):以人類偏好作為獎勵信號,優化模型策略。
* 獎勵模型(Reward Model, RM):學習人類偏好,對候選回答打分的模型。
* 策略模型(Policy Model, PM):在RLHF中被優化以產生更佳回應的語言模型。
* 偏好資料(Preference Data):成對比較或排序的標註,指出哪個答案較佳。
* 近端策略最佳化(Proximal Policy Optimization, PPO):常用於RLHF的穩定策略梯度演算法。
* KL 散度正則(KL Divergence Regularization):約束新策略分佈勿偏離參考模型以防退化。
* 人類評估勝率(Human Win Rate):以人類投票衡量一模型相對另一模型的優勢比例。
* 安全對齊(Safety Alignment):降低有害、偏見與危險輸出的技術與流程。
* 憲法式 AI(Constitutional AI):以一組原則引導模型自我批判與自我修正的對齊方法。
* 自我反省提示(Self-Reflection Prompting):要求模型檢查並修正自身初稿的提示技巧。
* 批判—修正循環(Critique-and-Revise Loop):先產生解答,再生成批判,據此修訂的迭代流程。
* 多代理辯論(Multi-Agent Debate):讓多個模型互評與辯論以提升答案品質。
* 紅隊測試(Red Teaming):以攻防思維刻意挑戰模型,挖掘安全缺陷。
* 系統提示(System Prompt):為模型設定整體角色與行為邊界的高優先級指令。
* 提示注入攻擊(Prompt Injection):惡意輸入試圖覆寫原有指令或竊取機密的攻擊手法。
* 越獄(Jailbreak):誘導模型繞過安全對齊限制的提示或策略。
* 提示最佳化(Prompt Optimization):系統性調整提示以提升正確性與穩定性。
* 自動提示工程(Automatic Prompt Engineering, APE):用演算法自動搜尋高效提示。
* 思維鏈提示(Chain-of-Thought Prompting, CoT):引導模型逐步推理以提高複雜任務表現。
* 自洽取樣(Self-Consistency Decoding):對多條思維鏈取樣並投票以穩定最終答案。
* 步驟式推理(Step-by-Step Reasoning):明確要求分步闡述中間推理過程。
* 規劃—執行架構(Plan-and-Execute Architecture):先產生計畫再逐步執行與校正。
* 任務分解(Task Decomposition):把複雜任務拆成可處理的小步驟或子任務。
* 代理型系統(Agentic Systems):具備規劃、記憶、工具使用與迭代能力的LLM應用形態。
* 工具使用/函式呼叫(Tool Use / Function Calling):由模型結構化地呼叫外部API或工具。
* 檢索增強(Retrieval Augmentation):在生成前後查詢外部知識庫以降低幻覺。
* 瀏覽增強(Browsing Augmentation):結合即時網搜結果以補足最新資訊。
* 文檔解析(Document Parsing):抽取PDF/網頁等文本內容供模型理解與生成。
* 多模態模型(Multimodal Model):同時處理文字、圖像等多種訊號的模型。
* 視覺—語言模型(Vision-Language Model, VLM):將影像理解與語言生成結合的模型家族。
* 視覺問答(Visual Question Answering, VQA):就圖像內容回答自然語言問題的任務。
* 圖像描述(Image Captioning):為影像自動生成文字說明。
* 視覺地面化(Visual Grounding):把文字指稱對應到影像中的具體區域或物體。
* 動作序列化(Action Sequencing):將自然語言指令轉為可執行的動作序列。
* 任務規格語言(Task Specification Language):以結構化語法表述可執行任務的中介語言。
* 機器人規劃(Robot Planning):從高層目標導出連貫、可行的低層動作計畫。
* 感知—行動回路(Perception-Action Loop):感知、決策與執行的閉環控制流程。
* 工具鏈整合(Toolchain Integration):把搜尋、轉檔、繪圖等多工具編排於單一工作流。
* 來源依據生成(Grounded Generation with Citations):生成內容時連結可驗證的來源。
* 事實校準(Factuality Calibration):調整生成以提升與真實世界一致的程度。
* 不確定性估計(Uncertainty Estimation):以機率或信心指標表達模型把握度。
* 日誌機率輸出(Logprob Output):輸出詞元機率對數以供分析與過濾。
* 內容過濾器(Content Filter):在輸出端攔截違規或敏感內容的機制。
* 負責任 AI 原則(Responsible AI Principles):隱私、公平、透明、問責等治理準則。
* 技術報告(Technical Report):呈現模型能力、評測與限制的正式文件。
* 縮放定律(Scaling Laws):性能與參數、資料、算力的可預測關係。
* 參數規模(Parameter Count):可學權重總數,反映模型容量。
* 語境長度擴展(Context Length Extension):提升一次可處理的最大序列長度以支援長文脈。