← All posts

Spark-X2.5-4B and 1.7B: iFLYTEK's open edge models, and which one fits your iPhone

iFLYTEK's Ciyuan Xinghuo open-sourced a 1.7B and a 4B dense model on September 1 under Apache 2.0 — the 1.7B fits down to a 4 GB iPhone, the 4B needs 8 GB, and the advertised 1M-token context is not something either one can actually use on a phone.

On September 1, iFLYTEK's Ciyuan Xinghuo unit open-sourced two dense language models, Spark-X2.5-4B and Spark-X2.5-1.7B, under Apache 2.0, with weights up on Hugging Face and ModelScope and GGUF builds available for llama.cpp from day one. That is the part worth your attention. The part the announcements lead with — a native 1,048,576-token context window — is the part that means almost nothing on a phone, and it is worth explaining why before you download either file.

What actually shipped

Both models are plain dense transformers, not mixture-of-experts, pretrained on roughly 20 trillion tokens with claimed support for 200-plus languages. The architecture repeats a block of one full-attention layer followed by three sliding-window attention layers — a pattern designed specifically to make a million-token context computationally survivable, since full attention at that length is what makes long-context models slow and memory-hungry in the first place. That is a real engineering choice, not padding on a spec sheet, and it is the same category of trick most long-context small models now use.

This is a separate release from the 293-billion-parameter Spark X2.5 flagship iFLYTEK also shipped this month — same version number, unrelated model, unrelated license. If you go looking, keep the two apart; several early write-ups didn't.

The 1M-token number, and why it doesn't survive contact with a phone

A context window is a promise about how many tokens the model can attend to, not a promise about what your device can afford to hold in memory while it does. Every token in context adds to the KV cache, and KV cache size scales with context length independent of how many parameters the model has — a 4B model holding a 1M-token conversation carries a KV cache that has nothing to do with the 4B number on the box. iFLYTEK's own architecture choice (three sliding-window layers for every one full-attention layer) exists precisely because this cost is real and needs mitigating even on server hardware. On an iPhone, with a RAM budget already spoken for by the model weights themselves, actually filling anything close to a million tokens of context is not realistic. Treat "native 1M context" as an architecture capability you'll use a sliver of, not a number you'll ever hit on this app or any other local one.

Does it fit your phone

The GGUF quantizations we found listed put Spark-X2.5-4B at 2.6 GB for Q4_K_M and 4.38 GB for Q8_0, and Spark-X2.5-1.7B at 1.11 GB for Q4_K_M and 1.82 GB for Q8_0. Running those against the RAM arithmetic from our earlier post on iPhone memory — the same roughly-44%-of-physical-RAM weight ceiling used throughout this blog:

Spark-X2.5-4B

DeviceWeight ceilingQ4_K_M (2.6 GB)Q8_0 (4.38 GB)
4 GB — iPhone 12/131.29 GB✗ too big✗ too big
6 GB — iPhone 12–14 Pro, 14, 152.23 GB✗ too big✗ too big
8 GB — iPhone 15 Pro, 16, 16e, 173.18 GB✓ fits✗ too big

Spark-X2.5-1.7B

DeviceWeight ceilingQ4_K_M (1.11 GB)Q8_0 (1.82 GB)
4 GB — iPhone 12/131.29 GB✓ fits✗ too big
6 GB — iPhone 12–14 Pro, 14, 152.23 GB✓ fits✓ fits
8 GB — iPhone 15 Pro, 16, 16e, 173.18 GB✓ fits✓ fits

The 4B is the size everyone is writing about, and it is the one that misses the 6 GB ceiling most current iPhones actually sit at — Q4_K_M lands at 2.6 GB against a 2.23 GB budget, close enough to look tempting and still too big. Only an 8 GB-class phone can hold it at Q4_K_M, and Q8_0 doesn't fit anywhere on this table. The 1.7B is the one that is actually usable across the board, down to a 4 GB iPhone 12 or 13, at either quantization.

The benchmark claims, and how much to trust them

iFLYTEK's own numbers, published in the model's GitHub README, show Spark-X2.5-4B scoring 30.4 on τ³-bench (a general agent benchmark) against 6.7 for Qwen3.5-4B and 9.3 for the larger Qwen3.5-9B; 54.6 on MCP-Atlas tool use against Qwen3.5-9B's 47.4 and Gemma4-12B's 30.5; and 44.4 on SWE-Bench Pro against Qwen3.5-9B's 33.8. On math it claims 90.7 on AIME 2026 and 81.2 on HMMT Feb 2026. Those are large, specific margins over models two to three times its size, in the lab's own comparison table. We have not reproduced any of it, and at the time of writing no independent benchmark run had turned up to confirm or challenge those numbers — so read them as a vendor's claim about its own model, not a settled result.

A note on how this post was researched: this network's access to Hugging Face, Ollama and ModelScope was blocked while writing it, so every number above comes from iFLYTEK's own GitHub README for the release plus independent write-ups that were cross-checked against each other rather than read directly off the model card or the GGUF repository itself. If a figure here turns out to be off, that's the reason — flag it and we'll correct it.

Should you download it

If you're on a 4 GB or 6 GB iPhone, get Spark-X2.5-1.7B, not the 4B — it's the one that actually fits your device, and iFLYTEK's own table has it holding up reasonably against models its own size. If you're on an 8 GB iPhone and want to try the 4B, Q4_K_M is your only option; Q8_0 doesn't clear the ceiling on any current iPhone. Either way, ignore the million-token context number when you're deciding whether to download this — it's real architecture, not a reason to pick this model over a shorter-context one for anything you'll actually do on a phone. What's genuinely worth the download is a small, dense, Apache-2.0 model with day-one GGUF support and no llama.cpp compatibility wait — that part is not marketing.