瞭解及設定模型參數

您傳送至模型的每個呼叫都含有參數值,用來控制模型生成回覆的方式,模型生成的結果會因參數值而異。嘗試不同的參數值,取得最適合工作目標的值。不同模型可用的參數可能不同。

在已初始化的 Vertex AI 服務和模型例項的生命週期內,系統會維持設定。如要更新模型設定,必須重新初始化模型例項。

本頁後續的內容將說明如何設定模型參數

各項參數的說明

最常見的參數如下:

請參閱本頁下方的各節,瞭解這些參數。

輸出符記數量上限

回應中可產生的符記數量上限。一個符記約為四個字元。100 個符記大約對應 20 個字詞。

如要取得較短的回覆,請指定較低的值;如要取得較長的回覆,請調高此值。

氣溫

溫度會在回應產生期間用於取樣,這會在套用 topPtopK 時發生。溫度參數會決定選取詞元時的隨機程度。如果您想藉由提示生成更具確定性、較不具開放性和創意性的回覆,建議調低溫度參數。另一方面,如果溫度參數較高,則可能產生較多元或有創意的結果。溫度參數為 0 代表具有確定性,即模型一律會選取可能性最高的回覆。

以大部分用途來說,可以先將溫度設為 0.2,如果模型的回覆太普通、太短或提供了備用回覆,再試試看調高 Temperature。

Top-K

「Top-K」會影響模型選取輸出符記的方式。如果「前 K 個」設為 1,代表下一個所選詞元是模型詞彙表的所有詞元中可能性最高者 (也稱為「貪婪解碼」)。如果「前 K 個」設為 3,則代表模型會依據溫度參數,從可能性最高的 3 個詞元中選取下一個詞元。

在每個符記選取步驟中,模型會對機率最高的「Top-K」符記取樣,接著進一步根據「Top-P」篩選詞元,最後依 temperature 選出最終詞元。

如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。預設的 Top-K 為 40

Top-P

「Top-P」會影響模型選取輸出符記的方式。模型會按照機率最高 (請見「Top-K」) 到最低的順序選取符記,直到所選符記的機率總和等於 Top-P 值。舉例來說,假設詞元 A、B 和 C 的可能性分別為 0.3、0.2 和 0.1,而 Top-P 值為 0.5,模型會依據溫度參數選擇 A 或 B 做為下一個詞元,並排除 C 做為候選詞元。

如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。預設的 top-P 為 0.95

設定模型參數


您可以在模型初始化期間,在 generationConfig 中設定模型參數。以下是基本範例:

Kotlin

// ...

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 輸出內容,但也可以用於分類工作 (例如希望模型使用特定標籤或標記時)。