Flyingkiwi · Technical
How Flyingkiwi runs a language model in the browser
English defaults to Blazing Kiwi, a 122M-parameter 4-bit model that looks subjects up in an offline Wikipedia library; two Qwen3-0.6B fine-tunes, one per language, ship at 8-bit. A dependency-free C engine compiled to WebAssembly runs them in the tab. The measured results are below, including the weak ones.
Every number here was measured. The weak ones are printed too.
What Blazing Kiwi measured
Blazing Kiwi paper →81 MB
One-time download, English default
A 69.5 MB model and a 10.6 MB library: 7.1 times less than the 0.6B model.
94.1%
Right page among the two notes
Held-out questions about unseen passages; 97.5% for questions that name a title.
25/100
English, frozen blind set
Unchanged Qwen3-0.6B scores 64/100 in the same packets. Weak at arithmetic and reasoning.
98–134
Tokens per second in the browser
Six threads on a laptop processor; the 0.6B model wrote 29–35 in the same test.
Retrieval is measured on the held-out half of two question sets. The frozen set is the same 100 blind cases as release v3.1, graded again together with both 0.6B models. Mean KL of the shipped engine from PyTorch with the exact 4-bit codes, 30 prompts: 0.0008 (relaxed SIMD). Figures are for version 1.1.
What release v3.1 measured
Evaluation detail →63/100
English, frozen blind set
Unchanged Qwen3-0.6B scores the same, with 6 invented-detail flags each.
37/100
Turkish, frozen blind set
Unchanged Qwen3-0.6B scores 12/100. Still weak in absolute terms.
571 / 567 MB
One-time download, English / Turkish
17 parts each; every part size and SHA-256 hash checked.
8-bit
Shipped weight format
Plain 4-bit, GPTQ and mixed 4/8-bit formats all measured worse.
Scores are correct answers on frozen 100-case blind sets, graded against unchanged Qwen3-0.6B. Mean KL of the released files from their checkpoints at the first reply token of 30 development prompts: 0.0114 English, 0.0513 Turkish.
-
Request
Your message stays in the tab. The worker gets the conversation and the language choice, nothing else.
-
Worker
A module worker loads the weights (4-bit for Blazing Kiwi, 8-bit for the 0.6B models) from browser cache after checking each file’s size and SHA-256 hash.
-
Engine
Integer matrix products and a compact 8-bit KV cache calculate the next token; up to six threads share memory.
-
Tokens
The new token is decoded and streamed into the page. Nothing in this path touches the network.
Reports and model files
Sources and licences
Blazing Kiwi is an Apache-2.0 derivative of SmolLM2-135M-Instruct, distilled with a fine-tuned SmolLM2-1.7B-Instruct; its library is text from English Wikipedia’s vital articles (CC BY-SA 4.0, fetched 30 October 2026) with Wikidata descriptions (CC0). The two 0.6B models are Apache-2.0 derivatives of Qwen/Qwen3-0.6B. Training answers were written by Qwen3.5-35B-A3B (Apache-2.0) for prompts from OpenAssistant OASST2 and CohereLabs Aya (Apache-2.0), GSM8K (MIT), TriviaQA questions and teacher-written prompts. Details are in the report and the model cards.
Device speed figures in the report come from browser emulation, not real phones.