LLM 生成參數清單與說明

這是一篇關於 LLM 生成參數的清單/說明,由 ChatGPT 5 Auto 使用搜尋功能整理起來的,為了避免幻覺,將找到的參考網址利用索引編號的方式補上。

先附上同樣內容 Gist 文章,喜歡的可以點星星。

LLM 生成參數清單與說明

目的:快速對齊 OpenAI、Anthropic、Google Gemini、AWS Bedrock 等 API 常用生成參數,提供定義、取值範圍、適用情境與風險備註,便於跨平台設定一致化。


主要生成參數與應用

1) Temperature(溫度) [1][2]

  • 定義:調整機率分布尖銳度以控制隨機性;值越高結果越發散,越低則越保守。
  • 範圍:0.0–1.5(常用 0–1)。
  • 建議
  • 低(0–0.3):事實型回答、程式碼、規格文件、翻譯。
  • 中(0.4–0.7):一般敘事、適度創意。
  • 高(0.8–1.2):腦力激盪、創意文案、多樣性輸出。
  • 風險:溫度升高會增加幻覺機率與降低一致性。

2) Top‑p(Nucleus Sampling,核採樣) [1][2][3]

  • 定義:從累積機率 ≥ p 的詞集合中抽樣,動態限制候選集大小。
  • 範圍:0.1–0.95。
  • 建議
  • 低(0.1–0.4):高精準度與集中度。
  • 高(0.8–0.95):創意與多樣性。
  • 注意:與 Temperature 同時升高會放大隨機性,通常僅調整其中一項。

3) Top‑k [4][5]

  • 定義:固定從機率最高的 k 個候選中抽樣。
  • 範圍:20–200(依模型與平台而異;Bedrock 常見 0–500)。
  • 適用:需要可控且穩定的生成,特別是批次處理或離線生成。

4) Max Tokens / Max Output Tokens(最大輸出 Token) [1][2][4][5]

  • 定義:限制回應的最大 token 數。
  • 建議:依任務長度設置,避免截斷長文或程式碼。
  • 風險:值過小會截斷,過大則增加成本與跑題風險。

5) Stop / Stop Sequences(停止序列) [1][3][4][5]

  • 定義:遇到指定字串即終止生成。
  • 用途:模板化輸出、只取特定段落、避免越界內容。
  • 注意:不同平台上限不同,常見最多 4 組。

6) Frequency Penalty(頻率懲罰) [1]

  • 定義:降低重複詞出現機率,避免冗詞與重複句。
  • 適用:摘要去重、對話減少重複表述。

7) Presence Penalty(出現懲罰 / 新詞誘導) [1]

  • 定義:對已出現詞施加懲罰,鼓勵新話題與新詞彙。
  • 適用:腦力激盪、多元化內容生成。

8) Candidate Count / n(多候選數) [2]

  • 定義:一次產生多個候選,供後續篩選。
  • 成本:成比例增加 token 消耗與計費。

9) Safety / Moderation(安全設定) [2][3]

  • 定義:控制內容安全過濾的嚴格度與策略。
  • 適用:開放式輸入、公共應用上線前防範不當內容。

10) JSON / Structured Output(結構化輸出) [1][2]

  • 定義:要求輸出為 JSON 或特定結構格式,部分平台支援嚴格模式。
  • 注意:仍可能違反格式,建議搭配 stop 序列與 schema 驗證。

主要供應商參數對照

供應商溫度Top‑pTop‑k最大輸出停止序列懲罰類安全設定備註
OpenAI [1]temperaturetop_p(無通用)max_tokensstopfrequency_penalty / presence_penalty模型內建審核 + Moderation APIChat Completions / Responses / Realtime
Anthropic Claude [3]temperature(依通道)(依平台)max_tokensstop_sequences(無傳統兩懲罰)平台側安全stop_reason 報告終止原因
Google Gemini [2][6]temperaturetopPtopKmaxOutputTokensstopSequences(無傳統兩懲罰)safetySettingsSDK 預設 Token 與安全策略
AWS Bedrock [4][5][7]temperaturetopPtopKmaxTokensstopSequences(依模型)(依模型)值域與預設視模型而定

:實際參數與範圍以官方文件為準。


快速設定策略

  • 嚴謹回覆temperature=0–0.2top_p=0.2–0.5,設定 stop 與足夠 max_tokens
  • 創意寫作temperature=0.8–1.0top_p=0.8–0.95;可搭配 presence_penalty
  • 程式碼 / SQLtemperature=0–0.3top_p≤0.5;增加 max_tokens 避免截斷。
  • 批次多樣化:提高 temperature 或使用 top_k,並啟用多候選 n

範例設定

OpenAI(Responses API)

{
  "model": "gpt-4.1-mini",
  "input": "Summarize the following text...",
  "temperature": 0.3,
  "top_p": 0.6,
  "max_tokens": 400,
  "stop": ["\n\n"],
  "frequency_penalty": 0.2,
  "presence_penalty": 0.1
}

Anthropic Claude(Messages)

{
  "model": "claude-3.7-sonnet",
  "max_tokens": 400,
  "temperature": 0.2,
  "stop_sequences": ["\n\nHuman:"]
}

Google Gemini(GenerateContent)

{
  "model": "gemini-2.5-flash",
  "contents": "...",
  "generationConfig": {
    "temperature": 0.7,
    "topP": 0.9,
    "topK": 40,
    "maxOutputTokens": 512,
    "stopSequences": ["\nEND\n"]
  },
  "safetySettings": { "HATE": "BLOCK_ONLY_HIGH" }
}

AWS Bedrock(Converse 匯總介面)

{
  "modelId": "anthropic.claude-3-7-sonnet",
  "inferenceConfig": {
    "temperature": 0.2,
    "topP": 0.5,
    "topK": 50,
    "maxTokens": 400,
    "stopSequences": ["\n\nHuman:"]
  }
}

實務備註

  • temperaturetop_p 同時升高會大幅增加隨機性,建議只調一項。
  • 結構化輸出需:明確 schema → 設定 stop → 程式端驗證 JSON。
  • 成本與延遲受 max_tokens 和候選數影響最大,應先設定上限再微調。
  • Token 長度定義跨平台略有差異,需預留緩衝。

參考資料

[1] OpenAI API 參考 — https://platform.openai.com/docs/api-reference/introduction
[2] Google Vertex AI / Gemini 參數 — https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/content-generation-parameters
[3] Anthropic Messages API — https://docs.anthropic.com/en/api/messages
[4] AWS Bedrock Inference 參數 — https://docs.aws.amazon.com/bedrock/latest/userguide/inference-parameters.html
[5] AWS Bedrock API InferenceConfiguration — https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InferenceConfiguration.html
[6] Google Vertex AI GenerationConfig — https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/GenerationConfig
[7] AWS Bedrock Converse API — https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html