Taobao open-sources a tiny 0.3B phone model that hits 350 tokens per second

Taobao's MNN team has open-sourced MNN-Pocket-0.3B, a tiny language model that runs fully offline on your smartphone. The team says it reaches about 350 tokens per second on the iPhone 18 Pro, takes up just 173 MB, and scores higher on benchmarks than Qwen3-0.6B, a model twice its size.

Model releases Try it yourself Nov 6, 2026 7 min read Source: ITHome (CN)
Illustrative image, AI-generated

What's going on

On November 6, 2026, the MNN team at Chinese e-commerce giant Taobao (part of Alibaba Group) open-sourced a language model called MNN-Pocket-0.3B. MNN is the team's in-house inference engine, the software that runs AI models directly on smartphones and other devices. The new model has only about 0.3 billion parameters and was built for mobile apps from the start. The goals: fast responses, a small memory footprint, and very little battery drain.

The team calls it an "app-native large model." In plain terms, it's a language AI that lives inside an app like Taobao and works without an internet connection. According to the team, it runs fully offline on an iPhone 18 Pro at an average of about 350 tokens per second. A token is roughly a piece of a word. That's faster than most cloud chatbots stream their text.

Four design goals

The team set four targets up front:

  • Speed: More than 200 tokens/s during decoding, the step where the model writes its answer token by token. Fast cloud services served as the benchmark.
  • Memory: Peak RAM use should stay under 300 MB. The reasoning: even a phone with 8 to 16 GB of RAM shares that memory with the OS and lots of other apps. If you budget about 500 MB for the model, a 300 MB peak leaves room for longer texts and for integrating it into the app.
  • Energy: A typical request (512 to 1,024 tokens in, 128 tokens out) should use no more than one ten-thousandth of the battery's energy. That way, 100 requests cost at most 1 percent of your battery.
  • Quality: In the use cases it was built for, the model should match an 8-billion-parameter model. The focus areas are Chinese and English, general knowledge, math, code, and above all instruction following, meaning how precisely it sticks to your instructions.

How they made it so small and fast

The first step was picking the size. The team tested dense models (where every part of the network does work for every token) from about 50 million to 1.3 billion parameters on an iPad Pro M5. About 300 million parameters was the largest size that met both targets: under 300 MB of memory and over 200 tokens/s.

Next came the shape of the network at that fixed size. Going from 16 to 28 layers made the model better. At 36 layers the benchmark scores stopped improving, but speed fell from 355 to 323 tokens/s. So the team settled on 28 layers plus Grouped Query Attention (GQA). With GQA, several parts of the attention mechanism share the same caches, which saves memory and compute.

The vocabulary was another lever. The team started from Qwen3's tokenizer, the tool that splits text into tokens, and cut its vocabulary from about 151,000 to 64,000 entries, roughly 57 percent smaller. Since the model is mainly meant for Chinese and English, the team accepted that other languages get split into tokens less efficiently. The payoff is lower memory use and less compute for every token generated.

For on-device use, the model is quantized to INT4, which shrinks it by storing its numbers at lower precision. Specifically, it uses W4A16 with QAT (quantization-aware training): weights are 4-bit, activations are 16-bit, and the model was prepared for this compression during training so it loses less quality.

Numbers and benchmarks

All figures come from the team. Measurements used MNN 3.6.2 and INT4: one warm-up run, five measured runs, median reported.

Measurement MNN-Pocket-0.3B Qwen3-0.6B
File size (INT4, incl. tokenizer & compute graph) 173 MB 340 MB
Additional peak memory (iPad Pro M5, Metal, 512 tokens) 228 MB 427 MB
Decoding iPad Pro M5 / Metal 466 tokens/s 286 tokens/s
Prefill iPad Pro M5 / Metal 8,721 tokens/s –
Decoding Snapdragon 8 Gen 5 (CPU) 251 tokens/s –
Decoding iPhone 18 Pro (offline) approx. 350 tokens/s –

Prefill is the step where the model reads your input. Decoding is the step where it writes the answer. According to the team, that makes the file about 49 percent smaller than Qwen3-0.6B and peak memory about 47 percent lower. Decoding is about 1.63 times as fast.

The team measured power draw on a OnePlus 13 (Snapdragon 8 Elite) using the CPU with 4 threads, 1,024 input tokens, and 128 output tokens. After subtracting idle consumption, one request used about 2.7 joules on average. With a 6,000 mAh battery, 100 of these requests use about 0.3 percent of a charge, well under the team's own 1 percent target.

On capabilities, the technical report lists these scores: IFEval (English instruction following) 73.20 and IFEval-zh (a Chinese version the team built itself) 74.59. Both are the best results among the models compared. Averaged across 11 tests covering knowledge, reasoning, math, code, and instruction following, the model scores 50.00. The report says that puts it ahead of models its own size and also ahead of bigger ones like MiniCPM4-0.5B and Qwen3-0.6B. Other individual scores: MGSM-zh (Chinese math problems) 51.20 and HumanEval (coding) 53.66.

Six variants for different jobs

The team is releasing the model in several variants, covering everything from research to shipping in apps:

Variant Purpose
MNN-Pocket-0.3B-Base Continued training, domain adaptation, basic research
MNN-Pocket-0.3B-SFT Research on post-training, reinforcement learning, distillation
MNN-Pocket-0.3B General instructions and tasks in apps
MNN-Pocket-0.3B-MNN W4A16 QAT package for devices, up to 466 tokens/s
MNN-Pocket-0.3B-DFlash2 Draft model for speculative decoding, up to 2.06x faster
MNN-Pocket-0.3B-Dec Selection tasks via a decision head

Speculative decoding works like this: a very small draft model guesses several tokens ahead, and the main model checks them all in one pass. When the draft is right, output comes out much faster. The Dec variant uses its own decision head to choose from a set of given answers instead of writing free text. That's a good fit for classification or selection tasks inside an app.

What you need to try it

The model is so small that almost any current device will do. The on-device version is 173 MB, and the team says it needs just over 200 MB of extra memory while running. You don't need a GPU. It runs fine on a regular laptop CPU, a Mac with Apple Silicon, or Google Colab. To get the top measured speeds, though, you need the MNN engine on the right hardware: Metal on Apple devices, OpenCL or CPU on Android. On a PC, the Base, SFT, and Instruct variants will probably work with common tools like Hugging Face Transformers, but the source doesn't say so explicitly. It's also unclear whether GGUF files for llama.cpp or Ollama are available.

Our take

MNN-Pocket-0.3B isn't trying to compete with the big chatbots. It's a tool for app developers who want to ship offline, fast, power-efficient AI features on phones, for things like search queries, forms, summaries, or selection tasks. What stands out isn't any single benchmark score. It's that everything was optimized together: model size, vocabulary, quantization, and engine were all tuned as one package for real devices. The memory and power measurements also go further than in many other releases.

There are caveats, though. All the numbers come from the team itself, and it built the Chinese IFEval-zh test on its own. The goal of matching an 8B model applies only to "specific business scenarios" and hasn't been shown for general tasks. A model with 0.3 billion parameters has little room to store knowledge, so expect mistakes and made-up facts when you ask factual questions. German and other languages were deliberately deprioritized. The source doesn't mention the license. Still, for developers and researchers experimenting with small on-device models, it's an interesting new starting point, especially since the Base and SFT versions are part of the release.

Sources

#on-device#small language model#taobao#mnn#open source#smartphone
Read the original source

Try it yourself: MNN-Pocket-0.3B

Explained step by step, no prior knowledge needed – on your own computer or free in your browser.

What can I do with it?

MNN-Pocket-0.3B is a very small language model that runs fully offline on your phone, tablet, or laptop. It mainly understands Chinese and English and is trained to follow instructions precisely. It scores 73.20 on IFEval and 74.59 on the Chinese IFEval-zh. It can rephrase, summarize, and classify short texts, solve simple math and coding tasks (HumanEval 53.66), and pick from a set of given options. According to the team, it beats Qwen3-0.6B, a model twice its size, across 11 benchmarks while using only half the memory. Speed is its biggest strength: answers show up almost instantly, at 350 to 466 tokens per second on Apple devices with MNN. But a model this size quickly hits its limits on general knowledge, long chains of reasoning, and German. It doesn't compare to a big cloud chatbot. Think of it as a specialized tool.

Who is it worth it for?

It's worth a look for app developers, tinkerers, and researchers who want to put AI directly on phones or experiment with small models, for example by fine-tuning them for their own tasks. If you're after a smart, general-purpose assistant in German, you'll be better off with larger models like Qwen3-8B or a cloud service.

Ideas: What you can do with it

Offline text assistant on your phone

Use the MNN engine on your smartphone to rephrase short messages or make them more polite, even on a plane or with no signal. Answers come back almost instantly, and no data leaves your device.

Automatically sort customer messages

For a small online shop, have it sort incoming messages into categories like returns, delivery problems, or product questions. With the Dec variant or a quick fine-tune, this is fast and cheap, with no cloud costs at all.

Your own app with built-in AI

Developers can embed the 173 MB package directly in an iOS or Android app for things like smart search, form help, or summaries. According to the team, memory and battery use are so low that even frequent calls barely register.

A playground for fine-tuning

Since the Base and SFT versions are open, you can use a regular laptop or Google Colab to see how fine-tuning, distillation, or reinforcement learning change a small model. At this size, a training run takes minutes to hours instead of days.

English or Chinese practice partner

Have it explain or correct simple sentences, or rewrite them in plainer language. It's too small for advanced learners, but it's good enough for quick help with grammar and wording.

Small coding helpers

Ask for short Python or JavaScript functions for standard tasks. The model scores 53.66 on HumanEval. That's enough for simple helper functions, but you should always check the code.

Size0.4 B parameters
Download0.7 GB (about 1 min at 100 Mbit/s)
Licenseapache-2.0
TypeLanguage model (text chat)

What your computer needs

Graphics card (NVIDIA) at least 1.5 GB VRAM, recommended 2 GBalmost any graphics card with 4 GB or more (e.g. GTX 1650, RTX 3050)
Mac (Apple Silicon M1–M5) from 8 GB unified memoryThe GPU and CPU share the memory – the model can use about 70% of it
CPU only (no graphics card) Runs smoothly without a graphics cardan estimated 150 words per second on a current desktop PC. This requires at least 8 GB of RAM.
Storage approx. 2.7 GB freeModel download plus programs
Google Colab runs for freeThe free Tesla T4 GPU with 15 GB is enough

Which variant is right for me?

Many models come in several sizes or "quantizations." These are compressed versions: smaller and faster, but slightly less accurate. Rule of thumb: pick the largest variant whose memory requirement fits in your VRAM (video memory). The scripts below choose this for you automatically.

VariantDownloadNeeds approx.Compatible graphics cards
Q8_0 0.4 GB1.5 GBalmost any graphics card with 4 GB or more (e.g. GTX 1650, RTX 3050)
F16 Default 0.7 GB2 GBalmost any graphics card with 4 GB or more (e.g. GTX 1650, RTX 3050)

To try it out and chat, use the Instruct variant MNN-Pocket-0.3B. For phones and tablets running the MNN engine, there's the ready-made MNN-Pocket-0.3B-MNN package (INT4, 173 MB), which the team says delivers the fastest results. Base and SFT are meant for your own further training, not for direct use. DFlash2 is just a helper model that speeds up the main model in the MNN engine. Dec is suited to selection tasks with fixed answer options. Because the model is so small, the unquantized version is also worth using on a PC or Mac, since it needs barely more than 1 GB of memory.

  • The INT4 on-device version is only 173 MB (including tokenizer, compute graph, and config). No GPU required.
  • According to the team, peak memory on the iPad Pro M5 (Metal, 512-token context) goes up by only 228 MB. Longer contexts need more.
  • Decoding speeds reported by the team: about 350 tokens/s on the iPhone 18 Pro, 466 tokens/s on the iPad Pro M5 with Metal, and 251 tokens/s on the Snapdragon 8 Gen 5 CPU.
  • Supported MNN backends: Metal (Apple), OpenCL, and CPU (Android and others). Testing was done with MNN 3.6.2.
  • Power use on the OnePlus 13: about 2.7 J per request (1,024 tokens in, 128 out). 100 requests use about 0.3 percent of a 6,000 mAh battery.
  • It runs fine on the CPU of regular PCs, Macs with Apple Silicon, or in Google Colab.
How do I find out what my computer has?
  • Windows: Press Ctrl + Shift + Esc → Task Manager → Performance tab → click GPU on the left. At the bottom you'll see Dedicated GPU memory (that's your VRAM). You'll find system memory under Memory.
  • Mac: Apple menu at the top left → About This Mac. You'll see your chip (e.g. M2) and memory (e.g. 16 GB). On Apple chips, graphics and processor share this memory.
  • Linux: Type nvidia-smi in the terminal (shows your graphics card and its memory) and free -h for system memory.

Guide

Google Colab (in your browser, no installation)

Google Colab is a free service from Google. It gives you a computer with a graphics card in your browser for a few hours. All you need is a Google account. For this model: runs for free – The free Tesla T4 GPU with 15 GB is enough.

  1. Download the notebook. Click the button and save the file.

    Download colab.ipynb

  2. Open Colab. Go to colab.research.google.com and sign in with your Google account.
  3. Upload the notebook. In the window that appears, click Upload on the left (or choose File → Upload notebook at the top) and select the file colab.ipynb.
  4. Turn on the GPU. In the top menu, go to Runtime → Change runtime type → under Hardware accelerator, select T4 GPU → Save.
  5. Start everything. Runtime → Run all (keyboard shortcut Ctrl + F9). If you see the warning “This notebook was not authored by Google,” click Run anyway.
  6. Wait. The cells run one after another. A green checkmark appears to the left of each cell when it's done. Installation and download take about 4 minutes here.
  7. Try it out. The result appears below the last cell. To test something else, change the text in the cell and run it again with Shift + Enter. The last cell starts a proper chat with an input field.
  8. Clean up. When you're done: Runtime → Disconnect and delete runtime. This saves your free quota.

Good to know: The free GPU is limited (usually a few hours per day). After about 90 minutes of inactivity, Colab disconnects, and you'll have to start everything over.

Windows 10 / 11

The easiest way is Ollama, a free program that launches AI models with a single command.

  1. Update your graphics driver (NVIDIA cards only): Install the NVIDIA app or the latest driver. For AMD cards, use the latest Adrenalin driver.
  2. Install Ollama. Download the file OllamaSetup.exe from ollama.com/download/windows, double-click it, and choose Install. Afterward, a small llama icon appears in the taskbar at the bottom right.
  3. Open a terminal window. Press the Windows key, type PowerShell and press Enter. A blue or black window opens.
  4. Start the model. Copy this command ("Copy" button), paste it into the window with a right-click, and press Enter:
    ollama run hf.co/taobao-mnn/MNN-Pocket-0.3B-GGUF:F16
    The first time, Ollama downloads the model (0.7 GB (about 1 min at 100 Mbit/s)). After that, it's instant.
  5. Start typing. Once >>> Send a message appears, type your question and press Enter. Type /bye to end the chat.

Not enough memory? Pick a smaller variant from the table above, e.g. ollama run hf.co/taobao-mnn/MNN-Pocket-0.3B-GGUF:Q8_0.

Prefer automatic? A script that picks the right variant for you
  1. Download both files into the same folder: try_windows.ps1 demo.py
  2. Open the folder in File Explorer, right-click an empty spot and choose Open in Terminal.
  3. Paste this command and press Enter:
    powershell -ExecutionPolicy Bypass -File try_windows.ps1

If needed, the script installs Ollama via winget, measures your VRAM (video memory) and downloads the matching variant.

macOS

Macs with an Apple chip (M1 to M5) are ideal. Older Intel Macs are very slow.

  1. Install Ollama. Download it from ollama.com/download/mac, open the file, and drag Ollama into your Applications folder. Launch Ollama once – a llama appears in the menu bar at the top.
  2. Open Terminal. Press Cmd + Space, type Terminal, and press Enter.
  3. Start the model. Paste the command (Cmd + V) and press Enter:
    ollama run hf.co/taobao-mnn/MNN-Pocket-0.3B-GGUF:F16
    The first time, the model is downloaded (0.7 GB (about 1 min at 100 Mbit/s)).
  4. Start typing. Type your question and press Enter. Quit with /bye.
Pick the right variant automatically

try_mac.sh

cd ~/Downloads
bash try_mac.sh

Linux

  1. Check your GPU. nvidia-smi should show your card. If it doesn't, install the driver on Ubuntu and restart:
    sudo ubuntu-drivers install
  2. Install Ollama:
    curl -fsSL https://ollama.com/install.sh | sh
  3. Start the model:
    ollama run hf.co/taobao-mnn/MNN-Pocket-0.3B-GGUF:F16
    Exit with /bye. Use ollama ps to check whether the model is running on the GPU.
  4. Or let it pick the right variant automatically:

    try_linux.sh

    bash try_linux.sh
    # mit Python/transformers statt Ollama:
    MODE=hf bash try_linux.sh

Try it

Summarize this text in two sentences: [paste text]
Write a polite email declining a meeting invitation, in exactly three sentences.
Classify this customer review into one category (praise, complaint, question) and reply with that word only: "The package arrived two weeks late."
Write a Python function that returns all even numbers from a list.
A sweater costs 40 euros and is discounted by 25 percent. How much does it cost now? Work it out step by step.

Tips for better results

  • Write short, clear instructions with a fixed format, such as "answer in three bullet points." Instruction following is the model's biggest strength.
  • Don't rely on the model for factual questions. A 0.3B model can only store a little knowledge, so it's better to include the information it needs in your prompt.
  • For a fixed task like sorting customer messages, a quick fine-tune on the Base or SFT variant pays off. The model is small enough that this works even on modest hardware.
  • The Dec variant with its decision head is built for selection tasks with fixed answer options. It's more reliable at returning one of the given options than free text is.

If something goes wrong

The team's speed figures only apply with the MNN engine (tested with version 3.6.2) and the INT4 variant MNN-Pocket-0.3B-MNN. With other software, the model runs slower.

The model is built for Chinese and English, and the vocabulary was trimmed for other languages. German input may only work to a limited degree. When in doubt, ask in English.

The source doesn't say whether GGUF files or an official Ollama listing exist. For llama.cpp or Ollama, you may need to convert the model yourself or wait for community versions.

The Base and SFT variants aren't meant for chatting and respond poorly to instructions. To try it out, use the Instruct model MNN-Pocket-0.3B.

The DFlash2 variant isn't a standalone model. It's a draft model for speculative decoding in the MNN engine.

The source doesn't mention the license. Check the license details in the repository before any commercial use.

“out of memory,” a crash, or your computer freezes

The model is too big for your VRAM (video memory). Pick a smaller variant from the table above and close other programs, especially games and browsers with lots of tabs.

It runs, but extremely slowly

Your CPU is probably doing the work instead of your graphics card. In Ollama, the PROCESSOR column of ollama ps shows how much runs on the GPU. If it says "100% CPU", update your graphics driver or pick a smaller variant that fits entirely into VRAM (video memory).

“ollama” or “python” is not found

Close the terminal window and open it again so it recognizes the newly installed program. For Python on Windows: reinstall it and check Add python.exe to PATH.

Windows: "Running scripts is disabled on this system"

Run the script with exactly the command above: powershell -ExecutionPolicy Bypass -File try_windows.ps1. This allows execution for this one time only.

Error message when loading the model (version, "trust_remote_code", unknown architecture)

Brand-new models often need the latest software version. With Ollama: update Ollama. With Python: pip install -U transformers in the activated environment. The Model Card usually lists the exact version.

Tokenstrom generates the scripts and notebook automatically. Please take a quick look before running them – they're plain, readable text. Mind the model's license: apache-2.0.

Ask the AI assistant

Questions about this article, installation or background? Our assistant knows this page and runs on our own machine, not in someone else's cloud.

Connecting …

The Assistant is an AI (Gemma 4) and can make mistakes – please check important details against the source. Questions are used only to generate an answer and are deleted after one hour. Please don't enter any personal data.

Comments

What do you think? Already tried it? Write it here, no sign-up needed.

  1. Loading comments …

Comments are public. Links aren't allowed, and we delete abusive posts. You can delete your own comment at any time in this browser. Learn more in the Privacy Policy.