Model Architecture: Gemma4ForConditionalGeneration
Input: Text / Image
Output: Text
Model Optimizations:
Weight quantization: FP8
Activation quantization: FP8
Release Date: 2026-04-04
Version: 1.0
Model Developers: RedHatAI
This model is a quantized version of google/gemma-4-31B-it.
It was evaluated on several tasks to assess its quality in comparison to the unquantized model.
Model Optimizations
This model was obtained by quantizing the weights and activations of google/gemma-4-31B-it to FP8 data type, ready for inference with vLLM.
This optimization reduces the number of bits per parameter from 16 to 8, reducing the disk size and GPU memory requirements by approximately 50%.
Weights are quantized using block-wise FP8 scaling (128×128 blocks), and activations are quantized dynamically per group (group_size=128). Only the weights and activations of the linear operators within transformer blocks are quantized using LLM Compressor. Vision tower, embedding, and output head layers are kept in their original precision.
Deployment
Use with vLLM
This model can be deployed using vLLM.
For detailed instructions including multi-GPU deployment, multimodal inference, thinking mode, function calling, and benchmarking, see the Gemma 4 vLLM usage guide.
Tip: For text-only workloads, pass --limit-mm-per-prompt '{"image": 0, "audio": 0}' to skip vision encoder memory allocation and free up GPU memory for a longer context window.
This model was evaluated on GSM8K Platinum, MMLU-Pro, IFEval, MATH-500, AIME 2025, GPQA Diamond, LiveCodeBench v6, and BFCLv4 (function calling) using lm-evaluation-harness, lighteval, and BFCL — all served with vLLM (OpenAI-compatible API). Accuracy results are reported both without and with thinking enabled; BFCLv4 was evaluated with thinking enabled. LiveCodeBench v6 was evaluated without thinking only.
Accuracy
Without thinking
Category
Benchmark
google/gemma-4-31B-it
RedHatAI/gemma-4-31B-it-FP8-block
Recovery
Instruction Following
IFEval (0-shot, prompt-level strict)
90.70
91.25
100.6%
IFEval (0-shot, inst-level strict)
93.45
94.00
100.6%
Reasoning
GSM8K Platinum (0-shot, strict-match)
95.78
95.78
100.0%
MMLU-Pro (0-shot, custom-extract)
85.41
85.44
100.0%
MATH-500 (0-shot, pass@1)
89.40
88.67
99.2%
AIME 2025 (0-shot, pass@1)
65.83
68.33
103.8%
GPQA Diamond (0-shot, pass@1)
77.44
77.95
100.7%
Coding
LiveCodeBench v6 (0-shot, pass@1)
71.43
73.52
102.9%
With thinking
Category
Benchmark
google/gemma-4-31B-it
RedHatAI/gemma-4-31B-it-FP8-block
Recovery
Instruction Following
IFEval (0-shot, prompt-level strict)
94.58
94.21
99.6%
IFEval (0-shot, inst-level strict)
96.44
96.12
99.7%
Reasoning
GSM8K Platinum (0-shot, strict-match)
96.11
96.20
100.1%
MMLU-Pro (0-shot, custom-extract)
87.05
87.01
100.0%
MATH-500 (0-shot, pass@1)
87.93
88.07
100.2%
AIME 2025 (0-shot, pass@1)
87.08
87.50
100.5%
GPQA Diamond (0-shot, pass@1)
86.36
86.87
100.6%
Tool Calling
BFCLv4 Overall
70.77%
67.59%
95.5%
BFCLv4 Single Turn
84.99%
85.15%
100.2%
BFCLv4 Multi-Turn
66.25%
67.62%
102.1%
BFCLv4 Agentic
65.82%
56.53%
85.9%
Reproduction
The results were obtained using the following commands:
Each benchmark was run 3 times with different random seeds (1234, 2345, 3456) and the scores were averaged; AIME 2025 used 8 seeds.
Note: To reproduce the results without thinking, remove --default-chat-template-kwargs '{"enable_thinking": true}'. To run without tool calling, remove --enable-auto-tool-choice, --tool-call-parser gemma4, and --reasoning-parser gemma4.
Step 2 — Add the key to bfcl_eval/constants/supported_models.py
Add "gemma-4-31b-it-FP8-block" to the SUPPORTED_MODELS list.
Step 3 — Start the vLLM server (use the command at the top of this section; the --served-model-name flag ensures BFCL can find the model by its registered slug).
Step 4 — Generate responses and evaluate
bfcl generate --model gemma-4-31b-it-FP8-block --test-category all
bfcl evaluate --model gemma-4-31b-it-FP8-block --test-category all