Phi-4 mini on a phone: RAM requirements
6GB-class phone runs it, razor-tight · 4GB is out — the smallest build misses by a hair
Phi-4 mini's recommended Q4_K_M build needs ~3.3 GiB of free RAM at 4K context — 2.3 GiB of measured weights plus a 0.50 GiB KV allowance and a 0.50 GiB runtime reserve. Count usable RAM at 60% of the sticker and the door for that build is a 6GB-class phone, razor-tight — 0.3 GiB to spare. This is the one honest caveat page in the phone family: 4GB is out, with the smallest tracked build (IQ2_M, 2.4 GiB) missing the 2.4 GiB usable budget by a hair; 12GB is still tight at its Q8_0 ceiling (2.4 GiB spare); 16GB is the comfortable tier. The LiteRT q8 build (4.6 GiB) runs in Google AI Edge Gallery as the 8GB door, razor-thin. Phones have no swap: past the line the app dies, it does not slow down.
unsloth Q4_K_M GGUF (2.3 GiB), keep context at 4K.Phi-4 mini is Microsoft's compact instruct model (released 2025-02, MIT license): 32 layers of GQA attention, 128K context, and a measured Q4_K_M file of 2.3 GiB. It punches above its size on benchmarks — and the price on phones is the tightest budget in this family: no 4GB floor, a razor 6GB door, and Q8_0 still tight at 12GB. The official repo is not gated; its config and BF16 shards are pinned below alongside the GGUF and LiteRT mirrors.
Data verified · sources pinned in Where every number comes from
How much RAM at each build? (weights + 4K KV allowance + reserve)
| Build | Weights | Total needed | Smallest phone tier | Note |
|---|---|---|---|---|
| IQ2_M | 1.4 GiB | 2.4 GiB | 6 GB tier | the floor — misses 4GB by a hair measured |
| Q2_K | 1.6 GiB | 2.6 GiB | 6 GB tier | the 6GB-class classic door measured |
| Q4_K_M — recommended | 2.3 GiB | 3.3 GiB | 6 GB tier | community default quality/size point — recommended measured |
| Q5_K_M | 2.7 GiB | 3.7 GiB | 8 GB tier | the 8GB-class ceiling measured |
| LiteRT (q8 ekv4096) | 3.6 GiB | 4.6 GiB | 8 GB tier | Google AI Edge Gallery build — the 8GB razor door measured |
| Q8_0 | 3.8 GiB | 4.8 GiB | 12 GB tier | the 12GB-class ceiling, still tight measured |
Caliber: this page counts in GiB throughout — the site-wide internal caliber — and applies the 60% usable rule to the sticker number as-is (4 → 2.4 GiB usable). Tier names keep the marketing GB spelling; every computed cell above derives from the pinned file bytes in provenance.
Is your phone enough? (find your phone class: one row tells you)
| Phone class | RAM | Usable | Biggest build that fits (ceiling) | Verdict |
|---|---|---|---|---|
| 4GB budget Android | 4 GiB | 2.4 GiB | none | NO · smallest build misses by ~0.004 GiB |
| 6GB class | 6 GiB | 3.6 GiB | Q4_K_M (3.3 GiB) | TIGHT · razor, 0.3 GiB spare |
| 8GB — iPhone 15/16 Pro tier | 8 GiB | 4.8 GiB | LiteRT q8 (4.6 GiB) | TIGHT · razor at LiteRT, 1.5 GiB at Q4_K_M |
| 12GB — Galaxy Ultra / iPhone 17 Pro tier | 12 GiB | 7.2 GiB | Q8_0 (4.8 GiB) | TIGHT · 2.4 GiB spare at Q8_0 |
| 16GB — Pixel Pro tier | 16 GiB | 9.6 GiB | Q8_0 | OK · 4.8 GiB spare |
| 24GB — OnePlus flagship tier | 24 GiB | 14.4 GiB | Q8_0 | OK · 9.6 GiB spare |
Each phone class has exactly one ceiling — the biggest tracked build that fits. KV cache is counted at 4K context with a runtime reserve — phones have no swap, so there is no soft landing past the line. iPhone 15/16 Pro tiers sit at 8GB; the iPhone 17 Pro generation moved the Pro tier to 12GB (Sept 2025), and Android flagships carry the 12–24GiB end.
What phone should you buy for it? (the 6GB razor logic)
| The logic | 6GB is the cheapest tier that runs the recommended Q4_K_M at all — and it is a razor: 3.3 GiB total vs 3.6 GiB usable. Below it, nothing tracked fits 4GB's 2.4 GiB usable budget. At 8GB the LiteRT q8 build joins in the Gallery, still razor. 12GB takes Q8_0 but stays tight by 0.1 GiB; 16GB is the first truly comfortable tier. |
| Why it is tight | Phi-4 mini carries a 0.50 GiB KV allowance at just 4K context — the heaviest per-token KV in the 4B class here (32 layers × 8 KV heads) — and its quality-preserving builds start at 1.4 GiB. The budget math punishes both ends at once. |
| Representative hardware | Galaxy A-class (6GB), iPhone 15/16 Pro tier (8GB); 12GB = Galaxy S Ultra / iPhone 17 Pro tier; 16GB = Pixel Pro tier; 24GB = OnePlus flagship tier |
| Source | unsloth GGUF listing + litert-community listing · accessed 2026-09-16 · measured |
⚠ Tight is a site-wide threshold: under 2.5 GiB of headroom. 6GB × Q4_K_M leaves 0.3 GiB (razor); 12GB × Q8_0 leaves 2.4 GiB — tight by 0.1. On iOS the binding constraint is often the absolute per-app cap, not the percentage.
Tracked builds (actual file sizes, not theory)
| Build | Publisher | File size | 8GB phone | 12GB phone | Source |
|---|---|---|---|---|---|
| Q4_K_M (recommended) | unsloth | 2.32 GiB | TIGHT · 3.3 | OK · 3.3 | HF @78eb92a4 verified |
| Q4_K_M | bartowski | 2.32 GiB | TIGHT · 3.3 | OK · 3.3 | HF @7ff82c2a verified |
Q4_K_M is the sweet spot, and again the publisher is not a size decision: unsloth and bartowski ship the same 2.32 GiB file. The LiteRT q8 ekv4096 build (3.6 GiB weights, 4.6 GiB total) is the Gallery runtime for 8GB phones — its KV cache is pre-bounded to 4096 tokens in the file name, which is why the page caps context at 4K. If you want Microsoft's own runtime instead, the official BF16 shards (7.1 GiB, pinned) are listed below — no phone fits those, they anchor the ladder.
How to run it on a phone
| iOS | PocketPal · LLM Farm |
| Android | PocketPal · llama.cpp (Termux or APK) · Google AI Edge Gallery (LiteRT) |
| Not MLC Chat | MLC Chat uses its own compiled model format and does not load GGUF files — for GGUF builds use PocketPal or llama.cpp. |
| Watch out | Thermal throttling cuts sustained tok/s on long generations; the OS reserve is why usable is 60%, not 100%; on iOS the per-app memory cap — not the percentage — is usually the binding constraint. |
Why phone RAM math is different
Phones have no swap: when memory runs out the app dies, not slows. In the community measurements we sampled, not one shows graceful degradation on a phone — iOS kills the app silently (jetsam), Android's LMK does the same; the boundary is a cliff, not a slope. KV cache shares one RAM pool with the OS and your background apps — that is why this page counts usable RAM at 60% of the sticker number. It is the same memory math as the GPU pages, with the budget switched from VRAM to unified phone RAM.
Running the same model on a desktop GPU is a different buying question — graphics-card VRAM, not the phone already in your pocket.
On thermals: short prompts feel instant almost everywhere the model fits. Sustained generation is where phones differ — a 2026 benchmark measured an iPhone 16 Pro dropping from ~40 tok/s peak to ~22.5 sustained over 20 iterations, and community reports put throttling onset at 30–60 seconds, so treat any speed number as a cold-start figure unless the source says otherwise (links in provenance).
The weights on this page are measured — GGUF and LiteRT file sizes read off the publishers' listings at pinned revisions (accessed 2026-09-16). What stays estimated is the total: KV cache at 4K context and a runtime reserve are added by simple arithmetic, and the KV figure is a classic-caliber upper bound derived from the pinned config, not a per-token measurement. The 0.60 usable rule stays an experience value — now with community measurements behind it — and if a better-supported figure shows up, the chart's zone boundaries move and the verdicts are recomputed.
Where every number comes from (every figure carries its tag)
Totals: labeled additive estimates — measured weights + KV allowance + runtime reserve.
| Tag | Slot | What it is | What the verdict can claim |
|---|---|---|---|
| measured | Weights | File sizes read off the publishers' Hugging Face listings at pinned revisions (accessed 2026-09-16): unsloth GGUF — IQ2_M 1.40, Q2_K 1.57, Q4_K_M 2.32, Q5_K_M 2.65, Q8_0 3.80 GiB; microsoft official — BF16 safetensors 7.15 GiB (config pinned); litert-community — LiteRT q8 ekv4096 3.64 GiB (tree 8cd368be7). Totals add a 4K KV allowance (0.50 GiB classic upper bound, from the pinned config: 8 KV heads × 128 dim × 32 layers) plus a 0.50 GiB runtime reserve. | Solid at file granularity — the weights are the files you will download; only the KV/reserve add-on is arithmetic. |
| reported | Usable = 60% rule | Experience value for the OS + background share, backed by community measurements: the maintained per-device table spans ~49–81% usable (per-device memory-budget table, accessed 2026-09-13), with a 2026 forums report of iPadOS 26.4 silently cutting 8GB iPads to ~37.5% (Apple Developer Forums 826325, accessed 2026-09-13 — single source, treated as provisional); iOS enforces a hard per-app cap rather than a percentage — PocketPal PR #651 measured 52% → 70% with the memory entitlement (accessed 2026-09-13). 0.60 is our conservative default inside that range. | Directionally safe — it separates 4GB phones from 16GB phones. On iOS the binding constraint is often the absolute per-app cap, not the percentage. |
| reported | App compatibility | PocketPal / Google AI Edge Gallery (LiteRT) / llama.cpp — project pages, not re-tested by us on every device. MLC Chat uses its own compiled format and does not load GGUF files — listed here as a correction, not an option. | These apps load builds of this size class — stands on the linked pages, re-checkable by you. |
| reported | Thermal throttling 30–60% | Benchmarks + community measurements of sustained-generation slowdown on phone SoCs: iPhone 16 Pro measured ~40 → ~22.5 tok/s over 20 iterations (2026 thermal benchmark paper, accessed 2026-09-13; Apple-silicon LLM benchmark suite). | Expect slowdown on long generations — never a cold-start speed promise. |
| unsloth/Phi-4-mini-instruct-GGUF | @78eb92a4 | accessed 2026-10-12 |
| bartowski/microsoft_Phi-4-mini-instruct-GGUF | @7ff82c2a | accessed 2026-10-12 |
| microsoft/Phi-4-mini-instruct (official) | cfbefacb9 | accessed 2026-09-16 |
| litert-community/Phi-4-mini-instruct | 8cd368be7 | accessed 2026-09-16 |
| SO 5887248 · per-device memory budget table | latest | accessed 2026-09-13 |
| Apple Developer Forums 826325 · iPadOS 26.4 cap cut | latest | accessed 2026-09-13 |
| PocketPal PR #651 · entitlement 52%→70% | latest | accessed 2026-09-13 |
| zenn.dev · iOS memory entitlements measurement | 2026-06 | accessed 2026-09-13 |
| 2026 thermal benchmark paper (arXiv 2603.23640) | 2026-03 | accessed 2026-09-13 |
| john-rocky/apple-silicon-llm-bench | latest | accessed 2026-09-13 |
FAQ
Can Phi-4 mini run on Android?
Yes — GGUF builds load in PocketPal or llama.cpp, and the LiteRT q8 build runs in Google AI Edge Gallery. Cap context at 4K: the LiteRT file pre-bounds its KV cache to 4096 tokens, and the classic-caliber KV allowance at 4K is 0.5 GiB.
Is 4GB RAM enough for Phi-4 mini?
No — this is the honest red on the chart. The smallest tracked build (IQ2_M) totals 2.4 GiB against 2.4 GiB usable on a 4GB phone, missing by a hair. 6GB is the door.
Is 6GB RAM enough for Phi-4 mini?
Enough for the recommended Q4_K_M, razor-thin: 3.3 GiB total against 3.6 GiB usable, 0.3 GiB to spare. Q2_K buys 1.0 GiB of headroom. 16GB is the comfortable tier.
Which Phi-4 mini build should I download?
For Google AI Edge Gallery, the LiteRT q8 ekv4096 build (3.6 GiB weights). For PocketPal or llama.cpp, the Q4_K_M GGUF — unsloth and bartowski list 2.32 GiB files at the same size for this model.
What app runs Phi-4 mini on a phone?
PocketPal or llama.cpp for GGUF builds; Google AI Edge Gallery for the LiteRT build. MLC Chat uses its own compiled format and does not load GGUF. Cap context at 4K.