出力制御パラメータ(温度、最大トークン長など)

LLMフレームワークAutoGenにおいて、「LLMとの連携」に関する**出力制御パラメータ(temperature、max_tokensなど)**は、生成されるテキストの性質や長さ、創造性に大きく影響を与える重要な要素です。以下に代表的な出力制御パラメータについて詳しく解説します。


1. temperature(温度)

概要

  • 出力の**ランダム性(多様性)**を制御するパラメータ。

  • 低い値(例:0.1〜0.3)は決定論的な出力に、
    高い値(例:0.7〜1.0)は創造的で多様な出力になります。

設定例

python
llm_config = { "temperature": 0.7 }

用途

  • 明確な答えがあるQAタスク → 低め(例:0.2)

  • アイデア生成やストーリーテリング → 高め(例:0.8)


2. max_tokens(最大トークン数)

概要

  • モデルが一度の応答で生成できる**最大トークン数(単語や記号の単位)**を指定します。

  • AutoGenでは、制限を超えたトークン生成は打ち切られるため、応答長を制御できます。

設定例

python
llm_config = { "max_tokens": 512 }

注意点

  • 入力と出力を合わせたトークン数が**モデルの最大長制限(例:4096など)**を超えないように調整が必要です。


3. top_p(nucleus sampling)

概要

  • 出力候補の中から、確率の累積がtop_p未満になる範囲のトークンをランダムに選びます。

  • 例:top_p=0.9なら、上位90%の確率質量に収まる選択肢の中から出力。

設定例

python
llm_config = { "top_p": 0.9 }

特徴

  • temperatureとの併用で多様性制御が可能


4. frequency_penalty / presence_penalty

概要

  • いずれも、繰り返し語句の抑制に用います。

パラメータ名 効果
frequency_penalty すでに多く出現した語句の使用確率を下げる
presence_penalty 一度でも出た語句の再使用を抑える傾向を持たせる

設定例

python
llm_config = { "frequency_penalty": 0.5, "presence_penalty": 0.3 }

5. stop(ストップワード)

概要

  • 指定した文字列が出現した時点で出力を終了させる制御。

設定例

python
llm_config = { "stop": ["\n\n", "User:", "Assistant:"] }

AutoGenにおける指定方法の例

AutoGenのエージェントやLLMノード設定時に、以下のようにllm_configで渡します:

python
from autogen import OpenAIWrapper llm = OpenAIWrapper( config={ "temperature": 0.7, "max_tokens": 256, "top_p": 0.9, "frequency_penalty": 0.2, "presence_penalty": 0.3, "stop": ["\n\n"] } )

まとめ

パラメータ 主な用途
temperature 創造性・決定性の調整
max_tokens 出力の長さ制限
top_p 出力候補の確率範囲の制限
frequency_penalty 語句の頻出回避
presence_penalty 語句の再使用抑止
stop 出力の自動終了トリガー

これらのパラメータはAutoGenのプロンプト出力の品質や信頼性を制御する鍵となるため、タスクやユースケースに応じて適切に調整することが重要です。必要に応じてCriticと連携して動的に変更する設計も可能です。

ChatGPT4o 生成日:2025/06/15