モデル構成を使用してレスポンスを制御する

モデルを呼び出すたびに、モデル構成を送信して、モデルがレスポンスを生成する方法を制御できます。モデルごとに構成オプションは異なります。

プロンプトとモデル構成をテストし、Vertex AI Studio を使用して迅速に反復処理できます。

Gemini 構成オプションに移動 Imagen 構成オプションに移動



Gemini モデルの構成オプション

このセクションでは、Gemini モデルで使用する構成を設定する方法と、各パラメータの説明について説明します。

Gemini モデルのモデル構成を設定する

GenerativeModel インスタンスの初期化時に、GenerationConfig でパラメータの値を設定します。構成はインスタンスの存続期間中維持されるため、別の構成を使用するには、新しい GenerativeModel インスタンスを作成する必要があります。

KotlinJava
// ...

val config = generationConfig {
    maxOutputTokens = 200
    stopSequences = listOf("red")
    temperature = 0.9f
    topK = 16
    topP = 0.1f
}

val generativeModel = Firebase.vertexAI.generativeModel(
    modelName = "GEMINI_MODEL_NAME",
    generationConfig = config
)

// ...
// ...

GenerationConfig.Builder configBuilder = new GenerationConfig.Builder();
configBuilder.maxOutputTokens = 200;
configBuilder.stopSequences = List.of("red");
configBuilder.temperature = 0.9f;
configBuilder.topK = 16;
configBuilder.topP = 0.1f;

GenerationConfig generationConfig = configBuilder.build();

GenerativeModel gm = FirebaseVertexAI.getInstance().generativeModel(
    "GEMINI_MODEL_NAME",
    generationConfig
);

GenerativeModelFutures model = GenerativeModelFutures.from(gm);

// ...

各パラメータの説明については、このページの次のセクションをご覧ください。

Gemini モデルで使用する各パラメータの説明

使用可能なパラメータの概要は次のとおりです。パラメータとその値の包括的なリストは、Google Cloud のドキュメントで確認できます。

パラメータ 説明 デフォルト値
音声のタイムスタンプ
audioTimestamp

音声のみの入力ファイルでタイムスタンプの認識を有効にするブール値。

generateContent 呼び出しまたは generateContentStream 呼び出しを使用し、入力タイプが音声のみのファイルの場合にのみ適用されます。

false
頻度のペナルティ
frequencyPenalty
生成されたレスポンスに繰り返し出現するトークンを含める確率を制御します。
値が正の場合は、生成されたコンテンツに繰り返し出現するトークンにペナルティが課されるため、コンテンツが繰り返される確率は低下します。
---
最大出力トークン
maxOutputTokens
レスポンスで生成できるトークンの最大数。 ---
プレゼンス ペナルティ
presencePenalty
生成されたレスポンスにすでに存在するトークンが含まれる確率を制御します。
値が正の場合は、生成されたコンテンツ内の既存のトークンにペナルティが課されるため、より多様なコンテンツが生成される確率は高くなります。
---
停止シーケンス
stopSequences
レスポンスでいずれかの文字列が検出された場合に、コンテンツの生成を停止するようモデルに指示する文字列のリストを指定します。 ---
温度
temperature
回答のランダム性の度合いを制御します。
温度が低いほど、確定的なレスポンスが得られ、温度が高いほど、多様性や創造性のあるレスポンスが得られます。
モデルによって異なる
Top-K
topK
生成されたコンテンツで使用される最も高い確率の単語の数を制限します。
Top-K 値が 1 の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものである必要があります。Top-K 値が n の場合、次に選択されるトークンは、最も確率の高い n 個のトークンから選択されます(すべて設定された温度に基づきます)。
モデルによって異なります
Top-P
topP
生成されるコンテンツの多様性を制御します。
トークンは、確率の合計が Top-P 値に等しくなるまで、確率の高いもの(上記の Top-K を参照)から低いものへと選択されます。
モデルによって異なります



Imagen モデルの構成オプション

このセクションでは、Imagen モデルで使用する構成を設定する方法と、各パラメータの説明について説明します。

Imagen モデルのモデル構成を設定する

ImagenModel インスタンスの初期化時に、ImagenGenerationConfig でパラメータの値を設定します。構成はインスタンスの存続期間中維持されるため、別の構成を使用するには、新しい ImagenModel インスタンスを作成する必要があります。

KotlinJava
// ...

val config = ImagenGenerationConfig(
    negativePrompt = "frogs",
    numberOfImages = 2,
    aspectRatio = ImagenAspectRatio.LANDSCAPE_16x9,
    imageFormat = ImagenImageFormat.jpeg(compressionQuality = 100),
    addWatermark = false
)

val imagenModel = Firebase.vertexAI.imagenModel(
    modelName = "IMAGEN_MODEL_NAME",
    generationConfig = config
)

// ...
// ...

ImagenGenerationConfig config = new ImagenGenerationConfig.Builder()
    .setNegativePrompt("frogs")
    .setNumberOfImages(2)
    .setAspectRatio(ImagenAspectRatio.LANDSCAPE_16x9)
    .setImageFormat(ImagenImageFormat.jpeg(100))
    .setAddWatermark(false)
    .build();

ImagenModel m = FirebaseVertexAI.getInstance().imagenModel(
    "IMAGEN_MODEL_NAME",
    config
);

ImagenModelFutures model = ImagenModelFutures.from(m);

// ...

各パラメータの説明については、このページの次のセクションをご覧ください。

Imagen モデルで使用する各パラメータの説明

使用可能なパラメータの概要は次のとおりです。パラメータとその値の包括的なリストは、Google Cloud のドキュメントで確認できます。

パラメータ 説明 デフォルト値
否定的なプロンプト
negativePrompt
生成される画像から除外する内容の説明

このパラメータは imagen-3.0-generate-002 ではまだサポートされていません。

---
結果の数
numberOfImages
リクエストごとに返される生成画像の数 デフォルトは、Imagen 3 モデルの場合は 1 つの画像
アスペクト比
aspectRatio
生成された画像の幅と高さの比率 デフォルトは正方形(1:1)です
画像形式
imageFormat
出力オプション(画像形式(MIME タイプ)や生成された画像の圧縮レベルなど) デフォルトの MIME タイプは PNG
デフォルトの圧縮は 75(MIME タイプが JPEG に設定されている場合)
ウォーターマーク
addWatermark
生成された画像に目に見えないデジタル透かし(SynthID)を追加するかどうか デフォルトは、Imagen 3 モデルの場合は true です。
人物の生成
personGeneration
モデルによる人物の画像生成を許可するかどうか デフォルトはモデルによって異なります



コンテンツ生成を制御するその他の方法

  • プロンプトの設計について学び、ニーズに固有の出力を生成するようにモデルに影響を与えましょう。
  • 安全性設定を使用して、ヘイトスピーチや露骨な性的描写を含むコンテンツなど、有害と見なされる可能性のあるレスポンスを受け取る頻度を調整します。
  • システム指示を設定して、モデルの動作を制御します。この機能は、エンドユーザーからの詳細な手順を示すためにモデルが公開される前に追加する「プリアンブル」のようなものです。
  • プロンプトとともにレスポンス スキーマを渡して、特定の出力スキーマを指定します。この機能は、JSON 出力の生成に最もよく使用されますが、分類タスクにも使用できます(モデルで特定のラベルやタグを使用する場合など)。