This is a tiny version of google/gemma-4-12B-it created for testing and development.

Intended Use

A small, fast stand-in for the gemma4_unified architecture, useful for:

  • Inference / CI testing where a real 12B checkpoint is too large to download or run
  • Quantization & compression pipeline smoke tests (llm-compressor, compressed-tensors)
  • Offloaded / distributed loading tests (see below)
  • Exercising the vLLM Gemma4UnifiedForConditionalGeneration model path

Weights are random (then briefly fine-tuned on a toy corpus), so generations are not meaningful, this model is for plumbing, not output quality.

Model Details

  • Base Model: google/gemma-4-12B-it
  • Architecture: gemma4_unified (Gemma4UnifiedForConditionalGeneration)
  • Total Parameters: 0.798B
  • Activated Parameters: 0.798B

Configuration Changes

The following parameters were reduced from the original model:

Parameter Original Tiny
text_config.num_hidden_layers 48 6
text_config.hidden_size 3840 2048
text_config.intermediate_size 15360 1536

Layer type patterns are preserved: the sliding/full attention mix is kept as 5× sliding_attention + 1× full_attention. Attention shape is unchanged (16 heads, 8 KV heads, head_dim 256), and the full 262,144-token vocabulary is retained. The vision (gemma4_unified_vision) and audio towers are left at base size; they are small relative to the shared token embedding.

Checkpoint Structure

Single safetensors file (model.safetensors). Key naming matches the original checkpoint format (model.language_model.*, model.embed_vision.*, model.embed_audio.*, model.vision_embedder.*). Module-path structure was verified equal to the base checkpoint's safetensors header.

Usage

from transformers import AutoModelForImageTextToText, AutoProcessor

model = AutoModelForImageTextToText.from_pretrained(
    "soyrsoyr/gemma-4-unified-0.8B-tiny", device_map="auto"
)
processor = AutoProcessor.from_pretrained("soyrsoyr/gemma-4-unified-0.8B-tiny")

input_ids = processor.tokenizer("According to all known laws", return_tensors="pt").input_ids.to(model.device)
output = model.generate(input_ids, max_new_tokens=20)
print(processor.tokenizer.decode(output[0]))

Offloaded / distributed loading (compressed-tensors)

AutoModelForCausalLM resolves this architecture (transformers maps gemma4_unified into the causal-LM auto-class), so the default load_offloaded_model() pattern works directly:

from transformers import AutoModelForCausalLM
from compressed_tensors.offload import load_offloaded_model
from compressed_tensors.distributed import init_dist

init_dist()
with load_offloaded_model():                       # patches AutoModelForCausalLM
    model = AutoModelForCausalLM.from_pretrained(
        "soyrsoyr/gemma-4-unified-0.8B-tiny",
        device_map="auto_offload",                 # weights on CPU/disk, GPU for activations
    )

Creation Process

This model was created using the llm-compressor create-tiny-model claude skill.

  • Config inspected via inspect_config.py
  • Tiny model created via a modified save_tiny_model.py, adapted for the multimodal class (AutoModelForImageTextToText.from_config); only the text tower was shrunk and any all-zero / non-finite / extreme param was fixed after init_weights()
  • Fine-tuned on the copypasta dataset; reached training perplexity 1.33 (target: ≤3.0) at lr=5e-4 (CPU, Adafactor)
  • Checkpoint structure validated against the original HuggingFace safetensors header (module-path match)
  • Inference validated via validate_tiny_model.py

Notes

  • Text-only shrink. The vision projector (embed_vision.multimodal_embedder.embedding_projection) reads text_config.hidden_size for its output dim, so it auto-aligns to the reduced 2048 hidden. vision_config.output_proj_dims / mm_embed_dim are intentionally left unchanged — editing them flips the modeling code to a different (flattened vision_embedder) module tree that no longer matches the original checkpoint layout.
  • tie_word_embeddings=True: lm_head shares embed_tokens and is not stored as a separate tensor.

Validation output: Success: 1.0278589725494385 <= 10.0

Downloads last month
97
Safetensors
Model size
0.8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for soyrsoyr/gemma-4-unified-0.8B-tiny

Finetuned
(171)
this model
Quantizations
1 model

Collections including soyrsoyr/gemma-4-unified-0.8B-tiny