Views
No views yet
google/gemma-4-E2B-it for
zeromodels. One implementation runs unmodified on
TensorFlow / Torch / JAX. This is the 5B variant, served here as
image + audio + text -> text via Gemma4Processor; weights are stored in bfloat16.| Property | E2B | E4B | 12B Unified | 31B Dense |
|---|---|---|---|---|
| Total Parameters | 2.3B effective (5.1B with embeddings) | 4.5B effective (8B with embeddings) | 11.95B | 30.7B |
| Layers | 35 | 42 | 48 | 60 |
| Sliding Window | 512 tokens | 512 tokens | 1024 tokens | 1024 tokens |
| Context Length | 128K tokens | 128K tokens | 256K tokens | 256K tokens |
| Vocabulary Size | 262K | 262K | 262K | 262K |
| Supported Modalities | Text, Image, Audio | Text, Image, Audio | Text, Image, Audio | Text, Image |
| Vision Encoder Parameters | ~150M | ~150M | - | ~550M |
| Audio Encoder Parameters | ~300M | ~300M | - | No Audio |
1import os
2os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow"
3
4from zeromodels.models.gemma4 import Gemma4TextGenerate, Gemma4Tokenizer
5
6model = Gemma4TextGenerate.from_weights("zeromodels/gemma-4-e2b-it")
7tokenizer = Gemma4Tokenizer.from_weights("zeromodels/gemma-4-e2b-it")
8
9inputs = tokenizer([{"role": "user", "content": "Hello, who are you?"}])
10outputs = model.generate(**inputs, max_new_tokens=64)
11print(tokenizer.decode(outputs[0]))1import os
2os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow"
3
4from PIL import Image
5from zeromodels.models.gemma4 import Gemma4ConditionalGenerate, Gemma4Processor
6
7model = Gemma4ConditionalGenerate.from_weights("zeromodels/gemma-4-e2b-it")
8processor = Gemma4Processor.from_weights("zeromodels/gemma-4-e2b-it")
9
10inputs = processor(conversation=[
11 {"role": "user", "content": [
12 {"type": "image", "image": Image.open("cat.jpg")},
13 {"type": "audio", "path": "clip.wav"},
14 {"type": "text", "text": "Describe the image and what you hear."},
15 ]}
16])
17outputs = model.generate(**inputs, max_new_tokens=64)
18print(processor.decode(outputs[0]))from_weights("zeromodels/<variant>"):| Variant | Hub |
|---|---|
gemma-4-12b | zeromodels/gemma-4-12b |
gemma-4-12b-it | zeromodels/gemma-4-12b-it |
gemma-4-26b-a4b | zeromodels/gemma-4-26b-a4b |
gemma-4-26b-a4b-it | zeromodels/gemma-4-26b-a4b-it |
gemma-4-31b | zeromodels/gemma-4-31b |
gemma-4-31b-it | zeromodels/gemma-4-31b-it |
gemma-4-e2b | zeromodels/gemma-4-e2b |
gemma-4-e2b-it | zeromodels/gemma-4-e2b-it |
gemma-4-e4b | zeromodels/gemma-4-e4b |
gemma-4-e4b-it | zeromodels/gemma-4-e4b-it |
KERAS_BACKEND before importing Keras / zeromodels.load_dtype="float32" for full precision,
or quantization="int8" to shrink further.hf: prefix:
Gemma4ConditionalGenerate.from_weights("hf:google/gemma-4-E2B-it").