# Best practices For the best performance when using [Gemma 4](../models/gemma-4/index.md), use these configurations and best practices. ## 1. Sampling parameters Use the following standardized sampling configuration across all use cases: | Parameter | Value | |---|---| | `temperature` | `1.0` | | `top_p` | `0.95` | | `top_k` | `64` | ## 2. Thinking mode configuration Compared to Gemma 3, the models use standard `system`{.token-role}, `assistant`{.token-role}, and `user`{.token-role} roles. To properly manage the thinking process, use the following control tokens: - **Trigger thinking:** Thinking is enabled by including the `<|think|>`{.token-think} token at the start of the system prompt. To disable thinking, remove the token. - **Standard generation:** When thinking is enabled, the model will output its internal reasoning followed by the final answer using this structure:
<|channel>thought
[Internal reasoning]<channel|>
- **Disabled thinking behavior:** For all models except for the E2B and E4B variants, if thinking is disabled, the model will still generate the tags but with an empty thought block:
<|channel>thought
<channel|>[Final answer]
!!! note Many libraries like Transformers and llama.cpp handle the complexities of the chat template for you. ## 3. Multi-turn conversations **No thinking content in history**: In multi-turn conversations, the historical model output should only include the final response. Thoughts from previous model turns must *not be added* before the next user turn begins, with the exception of tool call turns where thinking content should be preserved. ## 4. Modality order For optimal performance with multimodal inputs, place: - Image content **before** the text in your prompt. - Audio content **after** the text in your prompt. ## 5. Variable image resolution Aside from variable aspect ratios, Gemma 4 supports variable image resolution through a configurable visual token budget, which controls how many tokens are used to represent an image. A higher token budget preserves more visual detail at the cost of additional compute, while a lower budget enables faster inference for tasks that don't require fine-grained understanding. The supported token budgets are **70**, **140**, **280**, **560**, and **1120**. - Use *lower budgets* for classification, captioning, or video understanding, where faster inference and processing many frames outweigh fine-grained detail. - Use *higher budgets* for tasks like OCR, document parsing, or reading small text. !!! tip The [vision token budget demo](../resources/vision-token-budget.md) shows the quality and speed tradeoff at each budget. ## 6. Audio Use the following prompt structures for audio processing. **Audio speech recognition (ASR)** ```text Transcribe the following speech segment in {LANGUAGE} into {LANGUAGE} text. Follow these specific instructions for formatting the answer: * Only output the transcription, with no newlines. * When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three. ``` **Automatic speech translation (AST)** ```text Transcribe the following speech segment in {SOURCE_LANGUAGE}, then translate it into {TARGET_LANGUAGE}. When formatting the answer, first output the transcription in {SOURCE_LANGUAGE}, then one newline, then output the string '{TARGET_LANGUAGE}: ', then the translation in {TARGET_LANGUAGE}. ``` ## 7. Audio and video length All models support image inputs and can process videos as frames whereas the E2B, E4B, and 12B models also support audio inputs. Audio supports a maximum length of 30 seconds. Video supports a maximum of 60 seconds assuming the images are processed at one frame per second.