您傳送至模型的每個呼叫都含有參數值,用來控制模型生成回覆的方式,模型生成的結果會因參數值而異。嘗試不同的參數值,取得最適合工作目標的值。不同模型可用的參數可能不同。
在已初始化的 Vertex AI 服務和模型例項的生命週期中,系統會維持設定。如要更新模型設定,必須重新初始化模型例項。
本頁後續的內容將說明如何設定模型參數。
各個參數的說明
最常見的參數如下:
請參閱本頁下方的各節,瞭解這些參數。
輸出符記數量上限
回應中可產生的符記數量上限。一個符記約為四個字元。100 個符記大約對應 20 個字詞。
如要取得較短的回覆,請指定較低的值;如要取得較長的回覆,請調高此值。
溫度參數
溫度會在回應產生期間用於取樣,這會在套用 topP
和 topK
時發生。溫度參數會決定選取詞元時的隨機程度。如果您想藉由提示生成更具確定性、較不具開放性和創意性的回覆,建議調低溫度參數。另一方面,如果溫度參數較高,則可能產生較多元或有創意的結果。溫度參數為 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+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 輸出內容,但也可以用於分類作業 (例如希望模型使用特定標籤或標記時)。