標籤: Presence penalty

  • LLM 生成參數清單與說明

    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