Gemma 4 E2B in JAX on One TPU v5e: bf16 or 4-Bit, Python or Rust, and How It Stands Against vLLM A developer built a pure-JAX inference engine for Gemma 4 E2B that serves the model on a single Cloud TPU v5e chip, alongside a Rust implementation of the same graph compiled through libtpu and a vLLM baseline for comparison. Measured on one flex-start v5e-1 VM, the bf16 build loads 9.257 GB of weights into 16.909 GB of HBM, while two 4-bit QAT builds cut weights to 6.559 GB, with load times of 64.7s, 39.2s and 51.9s respectively. The engine exposes an OpenAI-compatible chat API and reads Hugging Face safetensors directly without PyTorch. This article provides a step by step guide to serving Gemma 4 E2B on a single Cloud TPU v5e chip with JAX. A pure-JAX engine serves the model from Python, a second engine builds the same graph in Rust and hands it to the libtpu compiler that JAX itself uses, and vLLM serves the same checkpoint as the reference. Every number below was measured on one flex-start v5e-1 VM on 2026-11-03, and every run is committed with its logs. https://github.com/xbill9/jax-dev https://github.com/xbill9/jax-dev A v5e-1 is the smallest Cloud TPU you can rent: one chip, 16.909 GB of HBM, in a ct5lp-hightpu-1t VM. Gemma 4 E2B in bf16 puts 9.257 GB of weights on it, which leaves room for the KV cache with no quantization at all. That makes it the place to ask three questions with nothing else in the way: TPUV5sLitepodPerProjectPerZoneForTPUAPI in us-west4-a gcloud with the alpha components tpu-jax-v5e1-2b directory as the working directory No Hugging Face token is needed: google/gemma-4-E2B-it and both 4-bit builds are public. Each rig ships an MCP server, server.py , whose tools wrap the gcloud calls. The rig's tpu.env sets ACCELERATOR TYPE=v5litepod-1 , and the server derives the machine type from it. workload="jax" installs Python 3.13 and jax tpu on a bare VM with no Docker: python $ python3 -c 'import asyncio, server as s; print asyncio.run s.create tpu vm instance instance name="jax-v5e1-2b", zone="us-west4-a", accelerator="v5litepod-1", workload="jax", max run duration="4h", request valid for="30m" ' Executing gcloud command: gcloud compute instances create jax-v5e1-2b --project=