All notes

Testing Small Language Models on a Phone: 4K/8K Context, Memory, and Routing Accuracy

A practical benchmark of five compact GGUF language models on an iPhone 15 Pro Max, covering 4K/8K context memory, first-token latency, and a 96-case agent routing test.

on-device AILLMmobile inferencebenchmarkagent routing
Testing Small Language Models on a Phone: 4K/8K Context, Memory, and Routing Accuracy

We have been interested in a simple question: are compact language models already good enough to run useful agent-style tasks locally on a phone?

To make the answer less subjective, we tested five popular GGUF text models with two context sizes, 4K and 8K. The resource check ran on an iPhone 15 Pro Max. The capability check used the same 96 deterministic agent-routing cases for every model, covering skill selection, action extraction, mode classification, missing-slot handling, and simple planning behavior.

This is not a broad academic benchmark. It is a phone-first engineering check: can the model load, how much memory does 8K cost, how quickly does it produce the first token, and does it produce stable structured decisions for a small local agent runtime?

Models tested

ModelLocal sizeQuantizationStatus
MiniCPM5-1B656.2 MiBQ4_K_MTested
Gemma-3-1B-IT768.7 MiBQ4_K_MTested
Qwen3.5-2B1221.5 MiBQ4_K_MTested
Qwen2.5-3B-Instruct2007.4 MiBQ4_K_MTested
Phi-4-mini-instruct2376.4 MiBQ4_K_MTested

Why test Qwen3.5 when Qwen3.8 exists?

Qwen's newest mainline has moved beyond 3.5. As of this update, the public Qwen3.8 family is led by much larger models such as Qwen3.8-Max, Qwen3.8-2.4T-A95B, and Qwen3.8-27B. They are important models, but they are not in the same deployment class as a 1B-4B phone-local routing model.

The point of this test is not to benchmark the newest cloud flagship. It is to find a model that can actually live inside a phone runtime with a 4K default context, an optional 8K mode, predictable memory use, and stable structured decisions. Under that constraint, Qwen3.5-2B is still one of the most relevant Qwen-family candidates because the newer Qwen3.6, Qwen3.7, and Qwen3.8 lines do not currently provide an official 1B/2B-class open model that fits this exact role.

Qwen linePublic small phone-local candidateWhy it is or is not in this test
Qwen3.5Yes: 0.8B, 2B, 4B class modelsRelevant to phone-local routing; 2B was tested here
Qwen3.6No clear 1B/2B/4B open candidatePublic weights are mainly 27B and 35B-A3B class
Qwen3.7No clear 1B/2B/4B open candidateMostly API-side Max/Plus/Flash model line
Qwen3.8No phone-sized official candidate yetPublic focus is Max, 2.4T-A95B, and 27B; third-party GGUFs are desktop/workstation scale

Coverage and missing candidates

This table is not a claim that every phone-suitable model has already been tested. It covers the local GGUF text models we had available and could run through the same phone resource check plus the same 96-case routing protocol.

It also is not a China-only comparison. The current table includes Qwen and MiniCPM from Chinese model families, plus Gemma from Google and Phi from Microsoft. The gap is that several newer or still-interesting international mobile candidates were not yet in the local benchmark set.

Candidate still worth addingOrigin/ecosystemWhy it matters
LFM2.5-1.2B-InstructLiquid AIBuilt for on-device use and tool-style workloads
LFM2.5-1.2B-ThinkingLiquid AISmall reasoning-oriented candidate, but thinking output must be latency-controlled
Llama 3.2 1B/3B InstructMetaOlder than the newest releases, but still an important phone-local baseline
SmolLM2/SmolLM3 small instruct modelsHugging Face ecosystemUseful independent lightweight baselines
Gemma 3n E2BGoogleMobile-oriented multimodal candidate; needs a vision-language harness, not only text routing
MiniCPM-V-4.6OpenBMB ecosystemSmall multimodal candidate for screen, image, and OCR tasks

The next iteration should add those candidates only when the same conditions are met: a compatible local artifact, the same 4K/8K phone resource test, and the same structured routing or multimodal task protocol.

The phone-side environment was an iPhone 15 Pro Max with A17 Pro, 8 GB physical memory, iOS 26.6.1, SwiftLlama with llama.cpp b8668, and Metal full-layer offload. Each model/context pair used three independent launches.

Measurement flow

Flow diagram Preparing diagram
View diagram source
flowchart LR
    A[Select GGUF model] --> B[Run phone 4K and 8K resource check]
    B --> C[Record load time, TTFT, process memory, Metal memory]
    C --> D[Run the same 96 routing cases]
    D --> E[Score parse, skill, action, mode, slots, planning]
    E --> F[Apply a phone-first deployment gate]

The phone resource check used a short Chinese prompt and measures model loading, context allocation, short-prompt TTFT, basic generation, and memory footprint. It is not a full 4K/8K prefill stress test.

The 96-case capability check used the same model files and deterministic settings, but ran on a desktop Metal evaluation runner so that all model comparisons were repeatable. This separates phone resource feasibility from structured routing quality.

iPhone 4K and 8K resource results

All five models loaded successfully at both context sizes.

ModelContextLoad P50TTFT P50Process memory after loadMetal after loadResult
MiniCPM5-1B4K0.172 s0.140 s175.7 MiB1008.8 MiB3/3 loaded
MiniCPM5-1B8K0.176 s0.136 s271.6 MiB1104.8 MiB3/3 loaded
Gemma-3-1B-IT4K0.621 s0.215 s197.3 MiB1381.2 MiB3/3 loaded
Gemma-3-1B-IT8K0.567 s0.200 s301.3 MiB1485.2 MiB3/3 loaded
Qwen3.5-2B4K0.323 s0.268 s201.4 MiB1767.8 MiB3/3 loaded
Qwen3.5-2B8K0.323 s0.274 s249.6 MiB1819.8 MiB3/3 loaded
Qwen2.5-3B-Instruct4K0.303 s0.445 s230.8 MiB2447.0 MiB3/3 loaded
Qwen2.5-3B-Instruct8K0.296 s0.442 s375.0 MiB2591.0 MiB3/3 loaded
Phi-4-mini-instruct4K0.431 s0.503 s614.0 MiB3291.8 MiB3/3 loaded
Phi-4-mini-instruct8K0.569 s0.511 s1126.4 MiB3795.8 MiB3/3 loaded

The most important resource result is the 4K-to-8K delta. Qwen3.5-2B only added about 52 MiB of Metal memory in this setup, while Phi-4-mini added about 504 MiB. That makes Qwen3.5-2B a much cleaner fit for a phone runtime that normally stays at 4K but occasionally needs 8K for harder tasks.

96-case routing capability results

The capability set contains 96 Chinese and English agent-style requests. It checks whether the model can output a valid structured decision, choose the correct skill, choose the correct action, classify retrieve/act/clarify/answer behavior, preserve required slots, and identify planning cases.

ModelContextParseSkillActionModeMissing slotsPlanningTTFT P50E2E P50
MiniCPM5-1B4K62.5%85.4%51.0%53.1%28.6%25.0%0.136 s0.622 s
MiniCPM5-1B8K62.5%85.4%51.0%53.1%28.6%25.0%0.138 s0.592 s
Gemma-3-1B-IT4K68.8%82.3%52.1%58.3%42.9%37.5%0.147 s0.976 s
Gemma-3-1B-IT8K68.8%82.3%52.1%58.3%42.9%37.5%0.148 s0.920 s
Qwen3.5-2B4K100.0%95.8%95.8%96.9%100.0%87.5%0.276 s1.098 s
Qwen3.5-2B8K100.0%95.8%95.8%96.9%100.0%87.5%0.273 s1.079 s
Qwen2.5-3B-Instruct4K94.8%80.2%71.9%79.2%66.7%37.5%0.522 s1.633 s
Qwen2.5-3B-Instruct8K94.8%80.2%71.9%79.2%66.7%37.5%0.529 s1.644 s
Phi-4-mini-instruct4K67.7%50.0%42.7%51.0%42.9%12.5%0.606 s2.220 s
Phi-4-mini-instruct8K63.5%55.2%34.4%42.7%42.9%25.0%0.620 s1.870 s

The 1B-class models are attractive on resource cost, but they failed too often on structured action and mode decisions. For a local assistant that can touch reminders, email drafts, memory updates, or other write paths, that is a real product risk, not just a benchmark number.

Qwen3.5-2B was the only model in this batch that cleared the proposed deployment gate: high parse stability, above-90% skill and action accuracy, above-95% mode accuracy, and phone-side 8K Metal memory below 2 GiB.

Practical ranking

RankModelBest use
1Qwen3.5-2B Q4_K_MDefault local agent-routing candidate
2Qwen2.5-3B-Instruct Q4_K_MResearch baseline, not the best phone default
3MiniCPM5-1B Q4_K_MVery low-resource fallback for simpler classification
4Gemma-3-1B-IT Q4_K_MInteresting lightweight baseline, not stable enough for actions
5Phi-4-mini-instruct Q4_K_MToo heavy for this phone-first routing use case

What this suggests

For phone-side local agents, the best model is not simply the smallest model. The smallest models won on TTFT and memory, but their structured decision quality dropped sharply. The heavier models did not automatically win either: Qwen2.5-3B and Phi-4-mini both consumed more memory than Qwen3.5-2B while scoring lower on this routing task.

The useful middle ground in this test was Qwen3.5-2B. It kept 8K memory within a practical range and produced stable JSON-like routing decisions across Chinese and English cases. The default context should still be 4K for battery and thermal reasons, with 8K used only when task complexity justifies it.

Limits and next tests

These numbers should not be overgeneralized.

The phone resource test used a short prompt, so the next step is a long-prefill test at about 3.5K and 7.5K prompt tokens, plus a sustained 20-turn session that records tokens per second, thermal state, battery drop, and jetsam risk.

The capability test focuses on text routing. Multimodal candidates such as Gemma 3n and MiniCPM-V should be evaluated with a separate vision-language harness that includes screen understanding, OCR, photo questions, and permission-bound privacy cases.

There are also new on-device candidates worth testing next, including LFM2.5-1.2B-Instruct, LFM2.5-1.2B-Thinking, Llama 3.2 1B/3B, SmolLM-family small instruct models, Qwen3.5-4B, Gemma 3n E2B, and MiniCPM-V-4.6. They should enter the table only after the same phone-side resource check and the same capability protocol are available.

From MonoWare

Build trust before the App Store tap.

Explore the product portfolio or subscribe for future privacy and product engineering notes.

Newsletter

Privacy and product engineering notes, sent occasionally.