On-device companion: what works, and the NPU wall
A logbook entry, not a launch. I’ve been chasing a small, stubborn idea: a companion whose whole mind fits on the phone — no cloud, no round-trip, nothing to phone home to.
Most “AI on your phone” is really AI in a datacenter with a phone-shaped window onto it. I wanted the opposite: the model itself on the device, running locally in your hand — a compact language-and-vision model that works where you are, even in airplane mode.
Here’s where it stands:
- The shape of the thing. A compact model (Gemma 3 / Gemma 3n) running on-device, with room to grow toward Vision-Language-Action (VLA) — not just chatting, but seeing and eventually doing small things. The whole point is locality.
- What already works. More than I expected. Using the standard export pipeline, I can take one of these models and shrink it with quantization so it’s small and fast enough to be realistic on a phone — the maths hold up, and the newer architectural details convert cleanly. The model, as a shape, fits.
- The wall. Getting a model onto a phone’s neural accelerator (the NPU) is the last mile, and it decides whether this is snappy or sluggish. A model like this can run on the phone’s CPU, but not fast enough to feel alive — the NPU is the difference between a toy and a companion. My phone is an Oppo Find X8 (MediaTek Dimensity 9400). The public tooling gets me to the edge — export, quantize — then stops. Mapping the model onto the Dimensity NPU needs MediaTek’s own developer SDK, and that’s behind a developer-access request. Current blocker, plainly: I’ve requested MediaTek NeuroPilot developer access, and I’m waiting.
The shape is proven; the runtime isn’t. If access comes through, the next entry is the interesting one: does the whole thing map onto the NPU, or does part fall back to the CPU? To be continued.
— Jasutin