localaiforum
登入
指南 › 基礎概念

LLM 到底是什麼?

LLM 本質上是一個函式:輸入文字,輸出下一個 token 的機率分布。生成就是把這個函式放進迴圈裡——取樣一個 token、附加到後面、把全部內容再餵回去、重複——直到出現停止 token 或觸發長度上限。所有建立在 LLM 上的產品,從聊天應用到寫程式的智慧代理,都只是包在這個迴圈外的編排層。

模型檔案本身只有兩樣東西:數十億個浮點數權重(即參數),以及一個把這些權重組合起來的固定計算圖(見 transformer 內部)。裡面沒有資料庫、沒有規則引擎、也沒有暫存的記憶。推論時權重是凍結的;模型在對話中「記得」的任何東西,都只是你提示詞視窗裡的文字。

核心迴圈

整個生成引擎的虛擬碼。任何廠商出品的引擎都不比這更深:

tokens = tokenize(prompt)
while not done and len(tokens) < max_context:
    probs = model(tokens)             # 一次前向計算
    next  = sample(probs, temperature)
    tokens.append(next)
    stream_to_user(next)
    if next == stop_token:
        done = True

這個迴圈中有兩個旋鈕主宰了日常行為,而且都不在權重裡:溫度(取樣的冒險程度)與最大上下文(能塞進多少對話)。兩者都是引擎套用的執行期設定(見 引擎參數)。

權重的實體樣貌

一個「7B」模型就是 7,000,000,000 個浮點參數。儲存大小只取決於精度,與聰明與否無關:

精度 每參數位元組 7B 模型大小
FP16(原生) 2 ~14 GB
8-bit 量化 ~1 ~7 GB
4-bit 量化 ~0.55 ~4 GB

同樣的權重、更粗的儲存——用一點點品質換取大量記憶體(見 量化)。參數量在訓練當下就固定了;使用模型永遠不會改變它。

規模階梯

參數量是一把粗糙但誠實的尺,標記了各個年代到來的東西:

等級 參數量 年代 能做到什麼
GPT-2 125M–1.5B 2019 通順的段落,事實容易出錯
GPT-3 175B 2020 少樣本提示開始生效
小而美(Phi-3、Qwen 3B) 3–4B 2024 真正好用的輕量助理
開源 7B(Mistral、Llama 2) 7B 2023 在單張消費級 GPU 上穩定處理對話與程式
開源 70B 級 70B 2023+ 接近前緣的推理能力;需要 2×24 GB
開放前緣稠密模型(Llama 3.1) 405B 2024 前緣級開放權重,需多張 GPU
MoE 前緣 總計 100B–600B+,活躍 10–40B 2024+ 同級最佳輸出,服務成本合理

每一階大約是上一階的 10 倍,而且每一階都解鎖了較小模型根本產生不了的行為——不是「一樣但稍微好一點」。規模帶來技能;包裝讓它們可用。

跨連線沒有記憶

模型是無狀態的。狀態存在於對話中:你與它產生的、持續累積的 token 視窗。關掉分頁它就消失了;開新對話,它不知道你是誰。所有「記憶」功能都是一層包裝,把舊文字重新注入新的提示詞。

實際的後果:視窗裡留下的,就是它現在知道的全部。一旦視窗裝滿,冗長的對話會悄悄截掉自己的開頭——模型不會「察覺」少了那些文字(見 token 與分詞器)。

流暢不等於正確

訓練目標是合理的接續,而不是事實。幾個尖銳的面向:

  • 模型會產生自信、格式漂亮的錯誤內容。幻覺是下一個 token 預測的固有特性,不是有人忘了修的 bug。
  • 流暢度是很差的真實訊號:錯誤答案讀起來跟正確答案一樣好。
  • 校準很不穩。問它「你有多少把握?」常常得到一個編出來的數字。
  • 常見事實是可靠的——它們在訓練中出現過數百萬次。長尾事實則平滑地退化成自信的虛構。
  • 模型偏向迎合:反駁一個正確答案,它可能就讓步。正確與自信是不同的軸。
  • 強制可驗證的輸出(要填欄位的 JSON、選擇題)勝過要求模型自我反省。

知識在訓練時就凍結了

模型知道的一切都在訓練時就烤進權重裡了;知識有截止日,聊再多也不會更新權重。要新的資訊,得把文字餵進上下文(檢索)或重新訓練(見 訓練流程)。模型也無法引用某個事實的出處——它沒有語料庫的索引,只有語料庫在權重中的回聲。

能力的到來並不均勻

規模不是平滑地增加技能:

  • 3B 以下:自動補全、抽取、分類還不錯;多步推理大多失敗。
  • 7–9B:可靠的指令遵循、像樣的程式碼;算術與長鏈推理仍不穩。
  • 30B 以上:規劃、細膩度、更難的程式——來得晚而且有點突然。
  • MoE 讓階梯變複雜:以活躍參數判斷,而不是總參數。

所以「越大越好」平均而言成立、細節上卻誤導:有些任務很早就到高原,有些很晚才開竅。用你自己的任務做基準測試,而不是憑感覺(見 如何選模型)。

產品就是包裝過的迴圈

當你使用任何 LLM 產品時,大致發生以下過程:

  1. 你的文字被切分為 token。
  2. 系統提示詞、工具定義、檢索到的文件與對話歷史被串接成一個提示詞。
  3. 模型執行上述迴圈並串流輸出 token。
  4. 外包裝程式碼解析輸出、呼叫工具、把結果餵回去、重新提示。
  5. UI 渲染 markdown,然後把這稱為對話。

步驟 1、2、4、5 都不是模型。一旦你把「模型是一個有固定視窗、無狀態、文字進文字出的函式」內化,本指南其餘部分就只是記帳:視窗有多大(token 與分詞器)、迴圈跑多快(預填與解碼)、在哪裡跑(硬體總覽)、以及怎麼引導它(提示詞)。

相關章節: token 與分詞器 · transformer 內部 · 參數量 · 訓練流程