コンテンツ生成パラメータ

このページでは、モデルへのリクエストで設定できるオプションのサンプリング パラメータについて説明します。使用可能なパラメータはモデルによって異なる場合があります。詳細については、リファレンス ドキュメントをご覧ください。

トークン サンプリング パラメータ

Top-P

Top-P は、モデルが出力用にトークンを選択する方法を変更します。確率の合計が Top-P の値と等しくなるまで、最も確率が高いものから最も確率が低いものの順に、トークンが選択されます。たとえば、トークン A、B、C の確率が 0.3、0.2、0.1 であり、トップ P 値が 0.5 であるとします。この場合、モデルは温度を使用して A または B を次のトークンとして選択し、C は候補から除外します。

ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。

詳細については、topP をご覧ください。

温度

温度は、レスポンス生成時のサンプリングに使用されます。レスポンス生成は、topPtopK が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0 の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。

モデルが返すレスポンスが一般的すぎたり、短すぎたり、フォールバック(代替)レスポンスが返ってきたりする場合は、Temperature を高くしてみてください。

温度が低いほど、予測可能な結果(完全に確定的ではない)が得られます。詳細については、temperature をご覧ください。

停止パラメータ

最大出力トークン

レスポンスで生成されるトークン数を制限するには、maxOutputTokens を設定します。トークンは約 4 文字であるため、100 トークンは約 60 ~ 80 語に相当します。低い値を設定すると、レスポンスの長さを制限できます。

停止シーケンス

stopSequences で文字列を定義して、レスポンスでいずれかの文字列が検出された場合にテキストの生成を停止するようモデルに指示します。レスポンスで文字列が複数回出現する場合、レスポンスでは最初に見つかった箇所が切り捨てられます。文字列では大文字と小文字が区別されます。

トークンのペナルティ パラメータ

頻度のペナルティ

値が正の場合は、生成されたテキストに繰り返し出現するトークンにペナルティが課されるため、コンテンツが繰り返される確率は低下します。最小値は -2.0 です。最大値は 2.0 の手前の値です。詳細については、frequencyPenalty をご覧ください。

在宅ペナルティ

値が正の場合は、生成されたテキスト内の既存のトークンにペナルティが課されるため、より多様なコンテンツが生成される確率は高くなります。最小値は -2.0 です。最大値は 2.0 の手前の値です。詳細については、presencePenalty をご覧ください。

拡張パラメータ

これらのパラメータを使用すると、レスポンスでトークンに関する詳細情報を返したり、レスポンスのばらつきを制御したりできます。

出力トークンのログ確率

各生成ステップで、最上位の候補トークンのログ確率を返します。モデルが選択したトークンは、各ステップの上位候補トークンとは異なる場合があります。120 の範囲の整数値を使用して、返される候補の数を指定します。詳細については、logprobs をご覧ください。この機能を使用するには、responseLogprobs パラメータを true に設定する必要があります。

responseLogprobs パラメータは、各ステップでモデルによって選択されたトークンのログ確率を返します。

詳細については、Logprobs の概要ノートブックをご覧ください。

シード

シードが特定の値に固定されている場合、繰り返されるリクエストに対してモデルはベスト エフォートで同じレスポンスを提供します。確定的な出力は保証されません。また、モデルやパラメータの設定(温度など)を変更すると、同じシード値を使用してもレスポンスが変化することがあります。デフォルトでは、ランダムなシード値が使用されます。詳細については、seed をご覧ください。

パラメータを使用してモデルのレスポンスをチューニングする例を次に示します。

Gen AI SDK for Python

インストール

pip install --upgrade google-genai

詳細については、 SDK リファレンス ドキュメントをご覧ください。

Vertex AI で Gen AI SDK を使用するための環境変数を設定します。

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import GenerateContentConfig, HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="Why is the sky blue?",
    # See the SDK documentation at
    # https://googleapis.github.io/python-genai/genai.html#genai.types.GenerateContentConfig
    config=GenerateContentConfig(
        temperature=0,
        candidate_count=1,
        response_mime_type="application/json",
        top_p=0.95,
        top_k=20,
        seed=5,
        max_output_tokens=500,
        stop_sequences=["STOP!"],
        presence_penalty=0.0,
        frequency_penalty=0.0,
    ),
)
print(response.text)
# Example response:
# {
#   "explanation": "The sky appears blue due to a phenomenon called Rayleigh scattering. When ...
# }

Gen AI SDK for Go

Gen AI SDK for Go のインストールまたは更新方法をご確認ください。

詳細については、 SDK リファレンス ドキュメントをご覧ください。

Vertex AI で Gen AI SDK を使用するための環境変数を設定します。

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithConfig shows how to generate text using a text prompt and custom configuration.
func generateWithConfig(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.0-flash-001"
	contents := genai.Text("Why is the sky blue?")
	// See the documentation: https://googleapis.github.io/python-genai/genai.html#genai.types.GenerateContentConfig
	config := &genai.GenerateContentConfig{
		Temperature:      genai.Ptr(0.0),
		CandidateCount:   genai.Ptr(int64(1)),
		ResponseMIMEType: "application/json",
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, config)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText, err := resp.Text()
	if err != nil {
		return fmt.Errorf("failed to convert model response to text: %w", err)
	}
	fmt.Fprintln(w, respText)
	// Example response:
	// {
	//   "explanation": "The sky is blue due to a phenomenon called Rayleigh scattering ...
	// }

	return nil
}

次のステップ