昨天簡單介紹大型語言模型 (Large Language Model, LLM) 後,今天我會針對大型語言模型的輸入、輸出和整體架構做一個整體性的介紹。從使用者輸入的 Prompt 到進入大行語言模型後產生一串輸出進行剖析
大型語言模型的輸入與輸出:從 Prompt 到回應的完整旅程
一、整體流程總覽
當使用者輸入一段 Prompt 後,文字並不會直接進入模型運算,而是要經過幾個關鍵步驟:
使用者輸入 (Prompt)
↓
斷詞 / Tokenization
↓
Token 轉換為向量 (Embedding)
↓
加入位置資訊 (Positional Encoding)
↓
Transformer 架構運算(多層 Attention + FFN)
↓
輸出層 → 產生下一個 Token 的機率分布
↓
採樣 (Sampling) 選出一個 Token
↓
將該 Token 加回輸入序列,重複上述過程
↓
直到產生結束符號或達到長度限制 → 輸出完整回應
二、輸入端:Prompt 如何被模型「看懂」
Tokenization(斷詞)
LLM 不是以「字」或「詞」為單位處理文字,而是用 Token。一個 Token 可能是一個完整的詞、一個詞的片段,甚至是一個標點符號。例如英文的 "unbelievable" 可能被拆成 "un" + "believ" + "able"。中文則常以字或常見詞組為單位切分。
Embedding(向量化)
每個 Token 會被轉換成一個高維度的數值向量(例如 4096 維),這個向量代表這個 Token 在語意空間中的位置。意義相近的詞,向量距離也會比較接近。
Positional Encoding(位置編碼)
因為 Transformer 本身不像 RNN 那樣有順序性,需要額外加入「這是第幾個 Token」的位置資訊,讓模型知道語序。
三、核心運算:Transformer 架構
Prompt 轉換成向量序列後,會進入模型的核心——一層層堆疊的 Transformer Block,每一層通常包含:
Self-Attention(自注意力機制):讓每個 Token 都能「參考」序列中其他 Token 的資訊,決定該關注哪些上下文,藉此理解語意關聯(例如代詞指涉、上下文推論)。
Feed-Forward Network(前饋神經網路):對 Attention 的輸出做進一步的非線性轉換,強化特徵表達。
殘差連接與正規化(Residual + LayerNorm):協助訓練穩定與深層網路的資訊流通。
這個過程會重複數十層甚至上百層(取決於模型大小),每一層都讓模型對輸入的理解更深一層。
四、輸出端:如何從模型內部產生一段文字
Logits 與機率分布
經過所有 Transformer 層後,模型會針對「下一個 Token 應該是什麼」輸出一個機率分布,涵蓋整個詞彙表(可能有數萬到十幾萬個可能的 Token)。
Sampling 採樣策略
模型不是每次都選機率最高的 Token(那樣容易死板重複),常見的策略有:
Temperature:控制輸出的隨機性,越高越有創意但也越可能離題。
Top-k / Top-p:只從機率最高的前 k 個或累積機率達 p 的 Token 中採樣,避免選到極不合理的詞。
自回歸生成(Autoregressive Generation)
選出的 Token 會被加回輸入序列尾端,整段序列重新送回模型,預測「下一個」Token。這個過程逐字(逐 Token)進行,直到遇到結束符號(EOS)或達到長度上限。
這也是為什麼 LLM 生成文字時是「一個字一個字」吐出來的(串流輸出的原因),而不是一次性算出整段話。