Geminiでコンテンツを生成する際の挙動を制御する設定クラスであるgenai.types.GenerationConfig
の各属性について解説します。
このクラスを使用することで、出力の多様性、長さ、形式などを細かく調整できます。
基本的な生成制御パラメータ
パラメータ | 型 | 概要 |
---|---|---|
temperature | float | 出力のランダム性を制御します。値が高いほど多様で創造的な出力になり、低いほど決定的で一貫性のある出力になります。 |
top_p | float | 確率の高いトークンの集合から出力を選択する際の累積確率の閾値を設定します。値が小さいほど、より確実なトークンのみが選択されます。 |
top_k | int | モデルが次のトークン(単語)を生成する際に、上位 K 個の確率が高いトークン のみを考慮し、その中からランダムに選択します。 |
candidate_count | int | 生成される候補の数を指定します。複数の候補を生成して比較する際に有用です。 |
max_output_tokens | int | 生成される出力の最大トークン数を制限します。長すぎる出力を防ぐために使用します。 |
stop_sequences | List[str] | モデルが出力を停止するトークン列を指定します。指定したシーケンスが生成されると、出力が終了します。 |
top_pとtop_kは似ていますが、以下のように利用すると良いでしょう。
シチュエーション | おすすめ |
---|---|
短い応答や明確な回答が求められる場合 | top_k 小さめ(例: 5~10) |
クリエイティブな生成や長い文章が求められる場合 | top_p 大きめ(例: 0.9~0.95) |
説得力がありつつも多様性を求める場合 | 両方を組み合わせる(例: top_k=10 , top_p=0.8 ) |
ちなみに、両方を同時に設定した場合、まず top_k
による制限が行われ、その中から top_p
の確率を満たしたものがさらに選ばれます。
出力の多様性と繰り返しの制御
パラメータ | 型 | 概要 |
---|---|---|
presence_penalty | float | これまでに出現したトークンの再出現を抑制するためのペナルティを設定します。値が高いほど、新しいトークンの出現が促進されます。 |
frequency_penalty | float | 特定のトークンが頻繁に出現することを抑制するためのペナルティを設定します。値が高いほど、同じトークンの繰り返しが減少します。 |
seed | int | 生成の再現性を確保するためのランダムシードを設定します。同じシード値を使用すると、同じ入力に対して同じ出力が得られる可能性が高まります。 |
出力形式と構造の制御
パラメータ | 型 | 概要 |
---|---|---|
response_mime_type | str | 出力の MIME タイプを指定します。例えば、application/json を指定すると、JSON 形式の出力が得られます。 |
response_schema | dict | 出力の構造を定義するスキーマを指定します。OpenAPI 3.0 のスキーマ形式を使用して、出力の形式を厳密に制御できます。 |
出力の詳細情報とデバッグ
パラメータ | 型 | 概要 |
---|---|---|
logprobs | int | 各トークンの対数確率を取得する際に、上位何個のトークンの確率を返すかを指定します。デバッグや出力の解析に有用です。 |
response_logprobs | bool | True に設定すると、出力に各トークンの対数確率が含まれます。 |
音声およびマルチモーダル出力の制御
パラメータ | 型 | 概要 |
---|---|---|
audio_timestamp | bool | 音声出力にタイムスタンプを含めるかどうかを指定します。 |
media_resolution | enum | 出力されるメディアの解像度を指定します。 |
speech_config | dict | 音声出力の設定を指定します。例えば、音声の種類や話者の特性などを設定できます。 |
モデルのルーティングと構成
パラメータ | 型 | 概要 |
---|---|---|
routing_config | RoutingConfig | リクエストを特定のモデルにルーティングするための設定を指定します。自動ルーティングと手動ルーティングのオプションがあります。 |
model_config | ModelConfig | 使用するモデルの構成を指定します。 |
routing_config
は、リクエストをどのモデルにルーティングするかを指定する設定です。
利用可能なモードは以下の2つです。
AutoRoutingMode(自動ルーティング):
Google のルーティングモデルが最適なモデルを自動的に選択します。
modelRoutingPreference
を設定することで、以下のようなルーティングの優先度を指定できます:
PRIORITIZE_QUALITY
: 高品質を優先BALANCED
: 品質とコストのバランスを重視PRIORITIZE_COST
: 低コストを優先
ManualRoutingMode(手動ルーティング):
特定のモデル名を指定してリクエストをルーティングします。
例:modelName="gemini-1.5-pro-001"
コメント