跳到主要內容
Foxyko

推論Inference

也常被稱為:Inference、推理、推斷

一句話解釋

模型訓練完成後,實際接收輸入並產生輸出的執行階段。

兩個階段

訓練(training)是把模型做出來:花上數週到數月,用大量資料和運算把參數調整到位。這件事做一次,成本以百萬美元計。

推論(inference)是把模型拿來用:你送進一段文字,它產生回應。單次成本極低,但因為每一次對話、每一個 API 呼叫都是一次推論,總量累積起來,長期營運成本往往超過訓練。

推論本身也分兩步

Prefill(讀取):模型讀完你的全部輸入,建立內部狀態。這一步可以平行處理,速度快,但時間隨輸入長度線性成長。

Decode(生成):一個一個產生 token。這一步無法平行——要生成第十個字,得先知道第九個字是什麼。所以輸出越長,等得越久。

影響速度與成本的因素

  • 輸入長度。決定 prefill 時間,也決定每次請求的基本成本。
  • 輸出長度。決定 decode 時間,是使用者感受到的「慢」的主要來源。
  • 模型大小。參數越多,每個 token 的運算越重。這也是為什麼各家都提供大小不同的模型讓你按任務挑。
  • 批次處理。多個請求一起處理能提高硬體利用率,這是非即時任務常有折扣的原因。

實務上的取捨

不是每件事都需要最強的模型。 分類、抽取、格式轉換這類任務,小模型往往又快又便宜,效果也夠。把最強的模型留給真正需要推理能力的工作。

輸出長度是可以控制的。 明確要求「三百字以內」「只回傳 JSON」,同時省下時間和費用。

串流改變的是體感。 逐字顯示不會讓總時間變短,但讓等待變得可忍受——使用者看到第一個字的時間,比看到最後一個字的時間更影響感受。

常見問題

Inference 為什麼常被翻成「推理」又常被翻成「推論」?
兩種譯法都通行,指的是同一件事。中文的麻煩在於「推理」也用來翻譯 reasoning——模型思考問題的能力,那是另一個概念。為避免混淆,把執行階段稱作「推論」、把思考能力稱作「推理」會清楚一些。
為什麼有時候第一個字要等很久,之後卻很快?
因為生成分兩個階段。模型要先讀完整個輸入(prefill),這一段的時間隨輸入長度增加;讀完之後才開始一個一個吐 token(decode),這階段速度相對穩定。輸入越長,第一個字出現得越慢。
主題標籤推論技術原理

更新於 全部術語