目錄
- 什麼是 AI?
- 什麼是 LLM?
- 訓練 vs 推論
- Token 與 Tokenization
- Context Window 上下文視窗
- Prompt 與 System Prompt
- 常見參數
- Embedding 向量
- 幻覺 Hallucination
- 常見問題
- 總結
什麼是 AI?
這幾個詞常被混用,但其實是層層包含的關係:
人工智慧 (AI)
└─ 機器學習 (Machine Learning)
└─ 深度學習 (Deep Learning)
└─ 生成式 AI (Generative AI)
└─ 大型語言模型 (LLM)
| 名稱 | 一句話定義 | 例子 |
|---|---|---|
| 人工智慧 AI | 讓機器表現出類似人的智慧行為 | 下棋程式、推薦系統 |
| 機器學習 ML | 不寫死規則,讓機器從資料中學規律 | 垃圾郵件分類、房價預測 |
| 深度學習 DL | 用「神經網路」這種模型來學,擅長處理影像、語音、文字 | 人臉辨識、語音轉文字 |
| 生成式 AI | 不只判斷,還能產生新內容 | 生圖、寫文章、寫程式 |
| 大型語言模型 LLM | 專門處理「文字」的生成式 AI | ChatGPT、Claude |
重點
- 規則式程式 vs 機器學習:傳統程式是人把規則寫死(
if 金額 > 1000 then ...);機器學習是給它大量例子,讓它自己找出規律。 - 我們平常講的「AI」「ChatGPT」「Claude」,技術上指的幾乎都是最內層的 LLM。本系列接下來談的也是這一層。
什麼是 LLM?
LLM(Large Language Model,大型語言模型) 的核心工作其實只有一件事:
看著前面的文字,預測下一個最可能出現的「token」。
就這樣一個一個 token 接龍接下去,串起來就變成了一段流暢的回答。
輸入:「今天天氣真」
模型預測下一個 token:
「好」 ← 機率 70%
「不錯」← 機率 15%
「糟」 ← 機率 8%
...
選出「好」→ 接到後面 → 再預測下一個 → ...
為什麼它看起來「很聰明」?
- 它在訓練時讀過海量的文字(書籍、網頁、程式碼……),把語言中的規律、知識、推理模式都壓縮進模型的參數裡。
- 所以它不是在「資料庫查答案」,而是根據學到的規律即時生成——這也是它有時會「一本正經地說錯話」的原因(見 幻覺)。
關鍵認知
LLM 本質是一個機率性的文字接龍引擎,不是一個確定性的計算器。同樣的問題,它每次的回答可能略有不同(見 常見參數)。理解這點,後面很多行為就都說得通了。
訓練 vs 推論
LLM 的生命週期分成兩個完全不同的階段:
| 階段 | 在做什麼 | 何時發生 | 成本 |
|---|---|---|---|
| 訓練 Training | 餵海量資料,調整模型內部數十億個參數 | 模型發布之前,一次性 | 極高(數千張 GPU、數週到數月) |
| 推論 Inference | 拿訓練好的模型來回答你的問題 | 你每次發問時 | 相對低(但仍消耗算力) |
[訓練階段] 大量文字 → 調整參數 → 得到一個「固定」的模型
│
▼
[推論階段] 你的問題 → 固定的模型 → 生成回答
由此推導出兩個重要事實
-
知識截止日(Knowledge Cutoff) 模型的知識停在「訓練資料收集的那一刻」。訓練完之後發生的事,它本來就不知道。問它「最新版本」「今天的新聞」,它要嘛不知道、要嘛得靠工具去查。
-
模型本身不會「記住」你跟它說過的話 推論階段模型是固定的,不會因為你今天教它一件事,明天它就學會了。所謂的「記憶」是靠外部機制把對話內容再餵回去給它(見 Context Window 與 Skills 篇的 Memory)。
Token 與 Tokenization
Token 是 LLM 處理文字的基本單位。 模型不是一個字一個字地看,而是把文字切成一塊塊的 token。
Tokenization(分詞)
把文字切成 token 的過程叫 tokenization。一個 token 可能是一個字、半個詞、或一個常見的字串片段:
英文: "tokenization" → ["token", "ization"] (2 個 token)
英文: "Hello world" → ["Hello", " world"] (2 個 token)
中文: "今天天氣" → ["今", "天", "天", "氣"] (約 4 個 token)
粗略換算(方便估算,非精確值)
| 語言 | 大約比例 |
|---|---|
| 英文 | 1 token ≈ 4 個字元 ≈ 0.75 個單字 |
| 中文 | 1 個漢字 ≈ 1~2 個 token |
為什麼 token 很重要?
Token 幾乎是 LLM 世界的「計量單位」,三件事都用它計算:
- 計費:API 大多按「輸入 token 數 + 輸出 token 數」收費。
- 速度:輸出越多 token,回答就越慢(一個一個生成)。
- 限制:模型一次能處理的 token 有上限,就是下面的「上下文視窗」。
💡 想省錢、想加快:讓 prompt 更精簡、不要塞無關內容、控制輸出長度,都是直接在減少 token。
Context Window 上下文視窗
上下文視窗(Context Window)是模型「一次」能看到的 token 總量上限。
它包含這次互動的所有東西:
┌──────────── Context Window(例如 20 萬 tokens)───────────┐
│ System Prompt(系統設定) │
│ + 歷史對話(你問的、它答的) │
│ + 你這次的問題 │
│ + 工具回傳的資料、附上的文件…… │
│ ───────────────────────────────────────── │
│ = 全部加起來不能超過上限 │
└──────────────────────────────────────────────────────────┘
│
▼
模型據此生成回答(回答也佔 token)
關鍵特性
- 它是「短期工作記憶」,不是長期記憶。 對話一旦超出視窗,最舊的內容就會被擠掉或被摘要壓縮,模型就「忘了」前面講過的細節。
- 視窗越大 ≠ 越好用。 塞太多無關內容,反而會稀釋重點、增加成本、拖慢速度。把最相關的資訊放進視窗,比塞最多更重要。
- 這就是為什麼會需要 RAG(只撈相關片段塞進來)和 Memory 機制——它們都是在「上下文視窗有限」這個前提下想辦法。
Prompt 與 System Prompt
Prompt(提示詞)就是你餵給模型的輸入文字。 你問得越清楚、給的脈絡越足,回答通常越好——「prompt engineering(提示工程)」就是在研究怎麼問。
一次請求裡的文字通常分成幾種角色:
| 角色 | 是誰寫的 | 作用 |
|---|---|---|
| System Prompt(系統提示) | 開發者/平台 | 設定模型的身分、規則、語氣,整段對話的「最高指導原則」 |
| User(使用者訊息) | 你 | 你實際的問題或指令 |
| Assistant(助手訊息) | 模型 | 模型先前的回答(多輪對話時會一起帶上) |
System: 「你是一位親切的繁體中文技術助理,回答要附範例。」
User: 「什麼是 token?」
Assistant: 「Token 是……」(模型生成)
User: 「那它跟計費有什麼關係?」 ← 多輪對話,前面內容會一起送進去
重點
- System Prompt 的優先權最高,用來約束模型整體行為(例如本筆記庫要求「一律用繁體中文」就適合放在這裡)。
- 多輪對話時,前面的對話會一起被送進上下文視窗——這就是模型「記得」你剛剛說什麼的原理,也是對話越長越耗 token 的原因。
常見參數
呼叫 LLM 時通常能調幾個參數,影響輸出的「風格」。最常見的是 temperature:
| 參數 | 白話效果 | 調高 | 調低 |
|---|---|---|---|
| temperature(溫度) | 控制「隨機性 / 創意」 | 更發散、更有創意,但較不穩定 | 更保守、更一致、更可預測 |
| top-p | 另一種控制隨機性的方式(取機率累積前 p% 的候選) | 候選更多元 | 候選更集中 |
| max tokens | 限制這次最多輸出幾個 token | — | — |
temperature 低(如 0.2):適合寫程式、抽資料、要正確答案的場合
temperature 高(如 0.9):適合腦力激盪、寫文案、要多樣性的場合
💡 同一個問題每次答案略有不同,主因就是 temperature > 0 帶來的隨機性。要結果穩定可重現,就把它調低。
Embedding 向量
Embedding(嵌入向量)是把「文字的語意」轉換成「一串數字」的技術。
"狗" → [0.21, -0.88, 0.05, ... ] (例如 1536 個數字)
"小狗" → [0.23, -0.85, 0.07, ... ] ← 跟「狗」很接近
"汽車" → [-0.67, 0.12, 0.91, ... ] ← 跟「狗」差很遠
核心概念
- 語意相近的文字,轉出來的向量在空間中距離也近;語意無關的就離很遠。
- 於是「找語意相似的內容」就變成了「算向量距離」這種電腦很擅長的數學問題。
為什麼要先認識它?
Embedding 是 RAG(檢索增強生成) 的基礎:
1. 把大量文件切塊,各自算出 embedding,存進「向量資料庫」
2. 使用者提問 → 把問題也算成 embedding
3. 找出向量最接近的幾塊文件 → 塞進上下文視窗 → 讓模型根據這些內容回答
這讓模型能回答「它原本沒學過」或「超出知識截止日」的內容——把相關資料現查現給,而不是靠它腦中記得。第⑤篇會詳談。
幻覺 Hallucination
幻覺指模型「一本正經地講出聽起來合理、但其實是錯的」內容——捏造不存在的函式、虛構的引用、錯誤的事實。
為什麼會發生?
回想 什麼是 LLM:模型在做的是「預測下一個最像樣的 token」,它追求的是**「聽起來通順合理」,而不是「事實正確」**。當它沒有可靠依據時,仍會「流暢地」編出一個答案,因為通順的錯誤答案在機率上也很「像樣」。
常見觸發情境
- 問它知識截止日之後的事
- 問非常冷門、訓練資料很少的細節
- 要求精確的數字、日期、引用出處、API 名稱
怎麼緩解?
| 方法 | 原理 |
|---|---|
| 提供來源資料(RAG) | 把正確資料塞進上下文,讓它「照著答」而非「憑記憶答」 |
| 給它工具 | 讓它去查資料/算數,而不是自己腦補 |
| 要求附出處 | 逼它有所本,沒根據就答不出來 |
| 降低 temperature | 減少發散、亂猜的傾向 |
| 人工查證關鍵資訊 | 重要的數字、事實一律自己再確認 |
⚠️ 核心心態:LLM 的輸出是「很有可能對」,不是「保證對」。 越關鍵的場合,越要驗證。
常見問題
問題 1:LLM 和我們以前說的「AI」有什麼不同?
「AI」是大概念,涵蓋下棋、推薦、辨識……各種智慧行為;LLM 是專門處理文字的那一支,屬於生成式 AI。你平常用的 ChatGPT、Claude 就是 LLM。
問題 2:為什麼模型會「忘記」我前面說過的話?
因為模型本身是固定的、不會記憶(見 訓練 vs 推論)。所謂「記得」是把歷史對話再送進上下文視窗。一旦對話太長超出視窗上限,舊內容被擠掉,它就忘了。
問題 3:token、字數、費用三者的關係?
文字會先被切成 token,API 按 token 計費(輸入+輸出都算)。中文大約 1 字 ≈ 1~2 token。想省錢就精簡 prompt、少塞無關內容、控制輸出長度。
問題 4:同一個問題為什麼每次答案不一樣?
因為 LLM 是機率性生成,且 temperature > 0 會引入隨機性。要答案穩定可重現,把 temperature 調低(接近 0)。
總結
核心要點
LLM = 機率性的「文字接龍引擎」,一次預測一個 token
關鍵特性:
├─ 知識停在「訓練截止日」,之後的事要靠工具查
├─ 模型本身不記憶,靠「上下文視窗」當短期工作記憶
├─ 一切以 token 計量:計費、速度、限制都看它
└─ 輸出是「很可能對」而非「保證對」(會有幻覺)
快速記憶
| 概念 | 一句話 |
|---|---|
| LLM | 看前文、預測下一個 token 的接龍引擎 |
| Token | 文字的基本單位,也是計費/限制的計量單位 |
| Context Window | 一次能看到的 token 上限,是短期工作記憶 |
| System Prompt | 優先權最高的整體行為設定 |
| Temperature | 隨機性/創意旋鈕,低=穩定、高=發散 |
| Embedding | 把語意轉成向量,是 RAG 的基礎 |
| 幻覺 | 流暢但不保證正確,關鍵資訊要驗證 |
學習路徑
1. 理解 LLM 是「token 接龍」 ✓
2. 搞懂 token / 上下文視窗的限制 ✓
3. 知道 prompt / 參數怎麼影響輸出 ✓
4. 認識 embedding 與幻覺 ✓
5. 下一步 → 看 AI 怎麼從「會聊天」變成「會做事」
下一篇
👉 AI Agent 是什麼:當 LLM 能規劃、能呼叫工具、能持續行動,它就從聊天機器人變成了「會自己完成任務」的 Agent。
建立日期:2026-06-01 最後更新:2026-06-01