Each call that you send to a model includes parameter values that control how the model generates a response. The model can generate different results for different parameter values. Experiment with different parameter values to get the best values for the task. The parameters available for different models may differ.
The configuration is maintained for the lifetime of the initialized Vertex AI service and model instance. To update model configuration, the model instance must be re-initialized.
Later on this page, you can learn how to configure model parameters.
Description of each parameter
The most common parameters are the following:
Learn about each of these parameters in the following sections of this page.
Max output tokens
Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 20 words.
Specify a lower value for shorter responses and a higher value for longer responses.
Temperature
The temperature is used for sampling during response generation, which occurs
when topP
and topK
are applied. Temperature controls
the degree of randomness in token selection. Lower temperatures are good for
prompts that require a more deterministic and less open-ended or creative
response, while higher temperatures can lead to more diverse or creative
results. A temperature of 0
is deterministic, meaning that the
highest probability response is always selected.
For most use cases, try starting with a temperature of 0.2
. If
the model returns a response that's too generic, too short, or the model gives a
fallback response, try increasing the temperature.
Top-K
Top-K changes how the model selects tokens for output. A top-K of
1
means the next selected token is the most probable among all
tokens in the model's vocabulary (also called greedy decoding), while a top-K of
3
means that the next token is selected from among the three most
probable tokens by using temperature.
For each token selection step, the top-K tokens with the highest probabilities are sampled. Then tokens are further filtered based on top-P with the final token selected using temperature sampling.
Specify a lower value for less random responses and a higher value for more
random responses. The default top-K is 40
.
Top-P
Top-P changes how the model selects tokens for output. Tokens are selected
from the most (see top-K) to least probable until the sum of their probabilities
equals the top-P value. For example, if tokens A, B, and C have a probability of
0.3, 0.2, and 0.1 and the top-P value is 0.5
, then the model will
select either A or B as the next token by using temperature and excludes C as a
candidate.
Specify a lower value for less random responses and a higher value for more
random responses. The default top-P is 0.95
.
Configure model parameters
You configure model parameters in the
generationConfig
during initialization of the model. Here's a basic example:
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);
// ...
Other options to control content generation
- Learn more about prompt design so that you can influence the model to generate output specific to your needs.
- Use safety settings to adjust the likelihood of getting responses that may be considered harmful, including hate speech and sexually explicit content.
- Set system instructions to steer the behavior of the model. This feature is like a "preamble" that you add before the model gets exposed to any further instructions from the end user.
- Pass a response schema along with the prompt to specify a specific output schema. This feature is most commonly used when generating JSON output, but it can also be used for classification tasks (like when you want the model to use specific labels or tags).