モデル パラメータを理解して構成する

モデルに送信する呼び出しの一つ一つに、モデルがどのようにレスポンスを生成するかを制御するパラメータ値が含まれています。このモデルは、パラメータ値によって異なる結果を生成できます。さまざまなパラメータ値を試して、タスクに最適な値を取得します。使用可能なパラメータはモデルによって異なる場合があります。

この構成は、初期化された Vertex AI サービスとモデル インスタンスの存続期間中維持されます。モデル構成を更新するには、モデル インスタンスを再初期化する必要があります。

このページの後半では、モデル パラメータを構成する方法について説明します。

各パラメータの説明

最も一般的なパラメータは次のとおりです。

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

最大出力トークン

レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 20 語に相当します。

レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。

温度

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

ほとんどのユースケースでは、温度 0.2 から始めてみることをおすすめします。モデルが返すレスポンスが一般的すぎたり、短すぎたり、フォールバック レスポンスが返ってきたりする場合は、温度を高くしてみてください。

トップ K

Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が 1 の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が 3 の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。

トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。

ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。トップ K のデフォルト値は 40 です。

トップ P

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

ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。トップ P のデフォルト値は 0.95 です。

モデル パラメータを構成する


モデルのパラメータは、モデルの初期化時に generationConfig で構成します。基本的な例を以下に示します。

Kotlin+KTX

// ...

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

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

// ...

Java

// ...

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(
    "MODEL_NAME",
    generationConfig
);

GenerativeModelFutures model = GenerativeModelFutures.from(gm);

// ...

コンテンツ生成を制御するためのその他のオプション

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