2026-09-09 13 min read -- 次瀏覽

LLM 常見參數白話指南:在溫度與亂數之間找到平衡

Temperature、Top-P、RepeP 等參數一次講清楚,附上實際調參對照案例。

大語言模型 參數LLM實務 問小墨這篇的內容
LLM 採樣參數示意
同一個模型,參數不同,性格完全不同。

📌 本篇文章重點

  • Temperature 控制「隨機性」是最大誤解——它控制的是機率分布的平滑度。
  • top_p(核採樣)與 top_k 二選一使用,別貪心全疊。
  • 選參數前先想任務:要「穩定正確」還是「豐富多樣」。
  • 用固定 seed 做實驗,才能一次只驗證一個變數。

一、為什麼這篇值得看?

如果你只會把温度調成 0.7 然後祈禱,那你對模型的掌控力大概只有三成。Temperature、top_p、top_k 是決定輸出的最後一道關卡,理解它們,你才能把「隨機」變成「可控」。

二、核心概念,3 分鐘搞懂

模型輸出的不是「一個字」,而是「每個候選字的機率」。採樣參數決定從這個機率分布裡怎麼挑字:

  • Temperature:改寫機率分布。低 → 分布更尖,傾向最高機率字;高 → 分布更平,冷門字也有機會。
  • top_k:只從機率最高的前 K 個字裡挑。
  • top_p:從「累積機率到達 p」的一組字裡挑(動態截取)。

💡 一句話總結

Temperature 決定「乖」還是「野」,top_k/top_p 決定「候選名單」多長。兩者配合,你就同時控制個性與範圍。

三、動手實作:3 步實驗出你的參數

Step 1

鎖住 seed,一次只動一個變數

Python
def generate(text, temperature, top_p=None, top_k=None, seed=42):
    resp = client.chat.completions.create(
        model="qwen2.5:7b",
        messages=[{"role": "user", "content": text}],
        temperature=temperature,
        top_p=top_p,
        top_k=top_k,
        seed=seed,  # 支援 seed 的 API 才有效
    )
    return resp.choices[0].message.content
Step 2

依任務類型選初始值

任務temperaturetop_p
程式碼、數學、JSON 輸出0–0.30.9
客服、摘要、翻譯0.3–0.60.9
文案、故事、創意發想0.7–1.00.95
腦力激盪、詩與歌詞1.0–1.51.0
Step 3

觀察輸出長相再微調

  • 答案反覆跳題 → 調低 temperature。
  • 輸出一成不變、像唸稿 → 調高 temperature。
  • 出現不知所云的怪字 → 調低 top_p(收緊候選名單)。
  • 某些 API 一次只能吃一個 top 參數——優先使用 top_p。

⚠️ 常被忽略

「重複性」不完全由這三個參數管。還受 repetition_penalty、frequency_penalty 影響。先調好採樣,再考慮去重懲罰。

四、三個參數的實際效果對照

設定輸出傾向適合
temp 0, top_p 1幾乎每次同一個答案測試、工廠流程
temp 0.7, top_p 0.9穩定但帶變化一般聊天與寫作
temp 1.2, top_p 1發散、偶爾出彩命名、標語、創意

五、常見問題(FAQ)

Q1temperature 設 0 就完全確定嗎?

在支援 seed 且關閉採樣時接近如此,但浮點運算與批次等因素仍可能造成細微差異。要「絕對確定」,正規做法是測完後驗證固定輸出。

Q2top_k 和 top_p 可以一起開嗎?

可以但意義不大。兩者功能重疊,多數實作建議「二擇一」,且優先使用 top_p(動態、更平滑)。

Q3換了模型要不要重調?

要。不同模型的機率分布不同,同一組參數換模型後效果可能完全不同。換模型後先用小基準盤重新校準。

總結

採樣參數不是玄學口訣,是你對 AI 輸出的實體遙控器。從「鎖 seed、一次一個變數」的實驗紀律開始,很快就能調出你專屬的「穩」與「活」。

問小墨 AI