|
| 1 | +kind: model_asset |
| 2 | +metadata: |
| 3 | + name: gemma-4-26b-a4b-it |
| 4 | + type: vlm |
| 5 | + family: gemma |
| 6 | + parameter_count: "26B" |
| 7 | + license: apache-2.0 |
| 8 | + description: "Google DeepMind Gemma 4 26B A4B-it: MoE VLM, official BF16 safetensors, image/text input with text output" |
| 9 | +storage: |
| 10 | + formats: [safetensors] |
| 11 | + default_path_pattern: "{{.DataDir}}/models/{{.Name}}" |
| 12 | + sources: |
| 13 | + - type: huggingface |
| 14 | + repo: google/gemma-4-26B-A4B-it |
| 15 | + format: safetensors |
| 16 | + - type: local_path |
| 17 | + path: "" |
| 18 | +variants: |
| 19 | + # --- GB10 / DGX Spark (Blackwell, 128GB unified, custom Gemma4 vLLM image) --- |
| 20 | + # Official BF16 weights fit in unified memory, but stable serving on GB10 required: |
| 21 | + # 1. a Gemma 4-capable ARM64 vLLM runtime on Blackwell SM121 |
| 22 | + # 2. enforce_eager=true |
| 23 | + # 3. replacing a corrupted first safetensors shard that caused zero logits / <pad> output |
| 24 | + - name: gemma-4-26b-a4b-it-blackwell-vllm-bf16 |
| 25 | + hardware: |
| 26 | + gpu_arch: Blackwell |
| 27 | + vram_min_mib: 40960 |
| 28 | + unified_memory: true |
| 29 | + engine: vllm-gemma4-blackwell |
| 30 | + format: safetensors |
| 31 | + source: |
| 32 | + type: huggingface |
| 33 | + repo: google/gemma-4-26B-A4B-it |
| 34 | + default_config: |
| 35 | + gpu_memory_utilization: 0.74 |
| 36 | + max_model_len: 155648 |
| 37 | + dtype: bfloat16 |
| 38 | + enforce_eager: true |
| 39 | + expected_performance: |
| 40 | + startup_time_s: 180 |
| 41 | + cold_start_time_s: 300 |
| 42 | + tokens_per_second: [24, 28] |
| 43 | + latency_first_token_ms: [127, 489] |
| 44 | + tpot_ms: [45, 59] |
| 45 | + vram_mib: 92800 |
| 46 | + max_context_tokens: 155648 |
| 47 | + notes: | |
| 48 | + Validated 2026-04-04 on NVIDIA GB10 / DGX Spark Blackwell ARM64 with 128GB unified memory. |
| 49 | + Serving stack: qujing/vllm-gemma4-gb10:0.19.0-torchmoe2, official Hugging Face BF16 |
| 50 | + safetensors, gpu_memory_utilization=0.74, max_model_len=155648, enforce_eager=true. |
| 51 | +
|
| 52 | + Single-stream long-context spot checks (TTFT / decode): |
| 53 | + 128 -> 127ms / 24.65 tok/s |
| 54 | + 512 -> 129ms / 24.44 tok/s |
| 55 | + 1024 -> 130ms / 24.01 tok/s |
| 56 | + 2048 -> 121ms / 27.25 tok/s |
| 57 | + 4096 -> 128ms / 27.31 tok/s |
| 58 | + 8192 -> 146ms / 28.19 tok/s |
| 59 | + 16384 -> 167ms / 27.45 tok/s |
| 60 | + 32768 -> 207ms / 27.12 tok/s |
| 61 | + 65536 -> 316ms / 27.87 tok/s |
| 62 | + 98304 -> 411ms / 26.34 tok/s |
| 63 | + 131072 -> 489ms / 25.91 tok/s |
| 64 | +
|
| 65 | + AIMA benchmark matrix at the same config: |
| 66 | + C1 / in128 / out128 -> 21.12 tok/s, TTFT P50 219ms, TPOT P50 45.6ms |
| 67 | + C1 / in1024 / out128 -> 19.77 tok/s, TTFT P50 636ms, TPOT P50 46.2ms |
| 68 | + C4 / in128 / out128 -> 44.81 tok/s, TTFT P50 1068ms, TPOT P50 59.0ms |
| 69 | + C4 / in1024 / out128 -> 47.32 tok/s, TTFT P50 1106ms, TPOT P50 55.2ms |
| 70 | +
|
| 71 | + Root-cause note: if generation collapses to repeated <pad> tokens or all-zero logits, |
| 72 | + verify safetensors shard integrity before tuning vLLM. On GB10, a corrupted |
| 73 | + model-00001-of-00002.safetensors zeroed activations after layer 25; re-downloading |
| 74 | + the official shard fixed the issue. |
| 75 | +
|
| 76 | + Experimental gpu_memory_utilization=0.85 raises KV cache size to 225,376 tokens |
| 77 | + at max_model_len=155648, but AIMA benchmarking did not show throughput gains and |
| 78 | + short-prompt C=4 latency regressed. Keep 0.74 as the catalog default. |
| 79 | + engine_compatibility: |
| 80 | + vllm-gemma4-blackwell: "supported (validated GB10 path)" |
| 81 | + vllm-blackwell: "NOT supported for Gemma 4 on the validated GB10 stack (runtime too old)" |
| 82 | + vllm-spark: "not required for this model; local Gemma4 image is the validated path" |
0 commit comments