Gemma-4 26B-A4B (MoE, int8 experts) on AWS Inferentia2 โ€” TP=8

An int8-quantized-expert build of google/gemma-4-26B-A4B-it for inf2.24xlarge (TP=8). The 128 MoE experts are quantized to per-channel symmetric int8; every other weight stays bf16. Greedy decode is token-for-token identical to the bf16 / CPU fp32 reference (SEQ_MATCH True, "The capital of France is Paris.") โ€” int8 per-channel loses nothing here.

Why this variant: the compiled model is 41.8 GB vs 64.6 GB for the bf16 build (the experts are ~93% of the weight; int8 halves them) โ€” a smaller HBM footprint and faster load/serve on the same box, at bf16-identical quality. See the bf16 build xbill9/gemma-4-26B-A4B-it-inferentia2 for the full recipe write-up.

Note on smaller boxes: int8 experts save ~22.8 GB but the model is still ~3โ€“4 GB over a 16 GB NeuronCore at TP=2, so this build targets the 24xlarge (12 cores), not the 2-core inf2.xlarge/ inf2.8xlarge. Fitting a 2-core box would need fp4 experts (a further, accuracy-risky step).

How it works

Reuses the bf16 MoE recipe (tp_mb_moe.py): all-experts-dense compute, SPMDRank scatter for the router weighting, mixed-attention shard/replicate. The only change (tp_mb_moe_int8.py) swaps the two expert linears for QuantizedColumnParallel/QuantizedRowParallel (INT8, per-channel-symmetric) and quantizes the fused expert weights in checkpoint_loader. Two NxD autograd quirks were fixed to compile: .clone() the down output, and monkeypatch scale_dequantize to be out-of-place.

Contents

file what
mb_26b_int8_tp8.pt Compiled TP=8 MoE model, int8 experts (~42 GB), KV 256/64
real-gemma4-26B-A4B-it/ Google's weights + tokenizer + chat_template.jinja
tp_mb_moe_int8.py The int8 recipe (QuantizedColumnParallel/RowParallel + q8 in checkpoint_loader)
optb_server_int8.py HTTP server (OpenAI-compatible + /generate, /metrics, streaming)
Dockerfile.int8, entrypoint.int8.sh Thin image that pulls these artifacts at start and serves

Run it

MODEL_DIR=/data/real-gemma4-26B-A4B-it MB_LOAD=/data/mb_26b_int8_tp8.pt \
  TP_DEGREE=8 KV_MAX=256 KV_BUCKET=64 python optb_server_int8.py
curl -s localhost:8080/generate -d '{"prompt":"What is the capital of France?"}'
# -> {"response":"The capital of France is Paris.", ...}

Docker: docker run -d --device /dev/neuron0 ... --device /dev/neuron5 --ipc=host -v gemma26b8:/data -p 8080:8080 xbill9/gemma4-optb-26b-int8:latest

Environment

Neuron SDK 2.23 ยท torch-neuronx 2.8.0 ยท neuronx-distributed 0.17.26814 ยท transformers 5.13.0. License follows the upstream Gemma weights' terms; see google/gemma-4-26B-A4B-it.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for xbill9/gemma-4-26B-A4B-it-inferentia2-int8

Finetuned
(164)
this model