HeliGO — Gemma 4 E4B Q4_0 (edge deployment weights)
These are the exact weights that ship with HeliGO,
an Android app that keeps working when the network does not.
This repository is a verbatim mirror of
google/gemma-4-E4B-it-qat-q4_0-gguf.
The weights are unmodified. We host our own copy so that a disaster-response app does not depend on a
repository we do not control: if an upstream path moves, every installed copy of the app would stop
being able to fetch its model.
| File |
Size |
Purpose |
gemma-4-E4B_q4_0-it.gguf |
4.4 GB |
Text generation |
gemma-4-E4B-it-mmproj.gguf |
0.92 GB |
Vision + audio projector |
Why this model, on a phone
Edge AI is not "a small model." It is a set of constraints that must all hold at once:
the weights have to fit in phone RAM, inference has to be fast enough to matter during an emergency,
and nothing may depend on a network that is already gone.
We selected this checkpoint after publishing an evaluation of 330 of the 426 models available on
OpenRouter across seven Korean-language criteria — only 7.6% reached grade A
(leaderboard). Quantization-aware
training is what makes the Q4_0 build usable here: it keeps quality close to bfloat16 while cutting the
memory needed to load the model.
Measured on a real device (Galaxy S25)
|
|
| Network required for inference |
0 |
| Resident memory with model loaded |
~3.6 GB |
| Runtime binary shipped in the APK |
12.6 MB (llama.cpp server, symbols stripped) |
| ARM acceleration |
dot-product and matrix instructions enabled (sdot 898, smmla 244 in the shipped binary) |
| First download |
4.4 GB + 0.92 GB, once, Wi-Fi recommended |
Numbers we have not measured are not published. Tokens per second depends on thermal state and
concurrent load, and we do not have enough repeated runs to quote a figure with an error bar.
How it runs inside the app
HeliGO starts a llama.cpp server inside the phone, bound to loopback with a random port and a
random API key, and talks to it over HTTP. There is no remote endpoint. The .so is packaged with
useLegacyPackaging so Android extracts it to disk, where it can be executed.
--host 127.0.0.1 --port <free> --api-key <random>
-c 4096 -t <cores/2> -ngl 0 --jinja --no-warmup
--mmproj gemma-4-E4B-it-mmproj.gguf
A warm-up generation runs once after load: the first answer took 127 s cold versus 11 s warm, because
the weights have to be paged in.
One thing we tried and removed. Pre-reading the whole model file into page cache to speed up the
first answer caused Android's low-memory killer to terminate about twenty other apps and froze the
phone. The code is gone and the reason is kept in a comment. Page-cache preheating is only safe when
free RAM clearly exceeds the file size — on a phone it does not.
Safety, and what this model is not allowed to say
A model that is confidently wrong about a mushroom can kill someone. HeliGO therefore does not let the
model speak freely on questions where a wrong answer causes harm. Three layers, in order:
- Hard rule — the app never outputs "safe to eat," regardless of how confident the model is.
- Fall back to the source — when the question is high-stakes, the answer is replaced or backed by
the original text from Korea's Ministry of the Interior and Safety (75 official guidance documents
shipped inside the app).
- Refuse — if neither of the above can answer, the app says nothing rather than guessing.
The asymmetry is deliberate: the app will never say something is safe to eat, but it will
always warn that something is toxic. The cost of silence is not the same on both sides.
Layers 1 and 2 are verified running on the device. Layer 3's confidence signal
(GINIGEN TELL, our metacognition work —
leaderboard)
is not yet wired into the on-device build, and we say so rather than implying otherwise.
Distances, elevations, bearings, sunset times and coordinates are not produced by the model. They
are computed. A model states wrong numbers with confidence; arithmetic does not.
Intended use
Offline assistance during disaster and distress: identifying plants, wounds and hazards from a photo,
explaining emergency procedures, and answering questions with no connectivity.
Not intended as a substitute for emergency services. HeliGO tells the user, in the app and in its
privacy policy, to contact emergency services first whenever a connection is available.
Limitations
- Quantized to Q4_0; quality is below the bfloat16 checkpoint.
- Korean-first. Other languages inherit the base model's behaviour and are not evaluated by us.
- Vision and audio run through the projector file; both must be present for multimodal input.
- The model does not know anything about the map, terrain or shelter data — those are separate
datasets bundled with the app, not knowledge inside the weights.
License
Apache 2.0, inherited from the upstream checkpoint. See the
Gemma 4 license. We redistribute the files
unmodified; all model credit belongs to Google DeepMind.
Citation
Weights: Google DeepMind, Gemma 4 — technical report.
Edge deployment, safety gating and on-device integration: GINIGEN AI.
GINIGEN AI — domain-specific edge AI. ginigen-ai-edge.static.hf.space