Agentic Research

Inference(推理)

又稱:推理 · 模型推理 · model inference · 推理成本 · inference cost

把一個已經訓練好的模型拿來跑、產生輸出這件事 —— 和「訓練」相對,是使用模型時實際發生的全部計算。

你會在什麼時候遇到它

你每一次呼叫 API、每一次在本機跟模型對話,用的都是推理。分不清推理和訓練,你會看不懂三件事:為什麼 API 按用量計費(因為每次使用都在燒算力)、為什麼模型不會「記住」你教它的東西(權重是凍結的)、以及為什麼本機跑不動大模型的瓶頸是記憶體和頻寬,而不是硬碟空間。

打個比方

訓練像念廚藝學校:漫長、昂貴、會改變廚師本人。推理像叫外送:按單付費、隨叫隨到,但廚師不會因為你點了三次同一道菜就變了一個人。廠商念廚藝學校的錢已經付過了;你付的是每一頓外送。

最小範例

訓練(廠家做的事,一次性):
  海量語料 → 反覆調整全部權重 → 得到模型檔案

推理(你做的事,每一次):
  prompt → 載入權重(凍結,不會被你的輸入改變)→
  一個 token 一個 token 產生輸出 → 按用量計費

你送給 API 的資料只影響這一次的輸出,
不會變成模型的一部分 —— 除非你另外花錢做微調。

關鍵在「權重凍結」四個字:推理只做前向計算,不做學習。這也解釋了為什麼帳單算在每一次使用上 —— 訓練的成本廠家付過一次、攤進定價裡,推理的成本則是你用多少、算多少。

大模型運算:prefill 與 decode 兩個階段流程圖:生成其實分兩個階段。第一階段 prefill 把整段提示一次平行處理,把每個 token 的 K 與 V 存進 KV cache,這段是 compute-bound,決定了 TTFT(首字延遲)。第二階段 decode 一次只產一個 token:讀 cache、做一次 forward、把新 token 附回 cache,再重複,直到模型吐出 EOS 或撞到輸出上限;這段是 memory-bandwidth-bound,決定了 tokens/second。底部的時間軸說明兩段瓶頸不同,所以縮短提示救的是 TTFT,讓模型少廢話救的是總時間。階段一 · PREFILL(整段提示,一次平行處理)你幫我解釋這段… 共 N 個 token一次 forward pass,全部 token 同時算compute-bound:瓶頸在算力,所以提示越長這段越久KV cache每個 token 的 K 與 V,算過就存起來prefill 的結果存進 cache階段二 · DECODE(一次只產一個 token,重複到結束)讀 cache + 新 tokenmemory-bandwidth-bound產出 1 個 token並 append 回 cache剛產出的 token 變成下一步的輸入 —— 這就是 autoregressive停下來只有兩種原因:模型吐出 EOS,或撞到 max output 上限使用者實際感受到的時間TTFT ← 由提示長度決定tokens/second ← 由輸出長度決定兩段瓶頸不同,所以優化手段也不同:縮短提示(或做前綴快取)救 TTFT;讓模型少廢話救總時間。把兩者混成一個「速度」數字,就會優化錯地方。
1/8輸入:一整段提示
系統提示、歷史、文件、這次的問題,全部拼成一個 token 序列送進去。
第 1 步,共 8 步 輸入:一整段提示

最常搞錯的地方

  • 以為跟模型聊過之後,它就「記住」了你教的東西。推理不改權重,下一次對話它對你一無所知 —— 所謂記憶,是 harness 把舊對話重新塞進 prompt 製造出來的錯覺。
  • 以為推理很輕、訓練才重,所以本機跑模型應該很容易。對單次請求來說,推理確實比訓練便宜無數倍,但它仍要在每個 token 上把整個模型跑一遍 —— 模型越大,對記憶體和頻寬的要求越實打實。

相關詞條

下一步