
Mellum2.1 - a JetBrains Collection
JetBrains/Mellum2.1-12B-A2.5B-Thinking-GGUF
A small moe!

JetBrains/Mellum2.1-12B-A2.5B-Thinking-GGUF
A small moe!
I’ve been pushing TinyStories-style models downward in size, and this is the smallest one so far:
MacroStories — 19,969 parameters, 81 KB FP32
https://huggingface.co/raincandy-u/MacroStories
For scale:
→ ~50× smaller than the 1M TinyStories model
→ ~3,000× smaller than AlexNet
→ 32-dim hidden state
→ 378-token vocabulary
→ one decoder block, recurrently applied 4 times with shared weights
It’s obviously not a general-purpose LM, but within its constrained story distribution it can maintain a 100–300 word narrative with a goal, problem, relevant actions, and resolution.
It also runs extremely fast on CPU and needs no GPU.
I’m mostly interested in how far the lower bound for coherent narrative generation can be pushed.
Would be curious to see how people manage to break it.☺️
I guess, this is a real LowEnd station, so I thought I share this here:
Overview of all models with speed test.
This is a pretty old I PC I'm testing out just for fun and honestly, it's somehow fine. I'm running some of the smaller models and they give me between 20 and 30tps. Prefill is between 200 and 600 tps with longer inputs up to 1200.
Of course, the capabilities are far from typical Qwen 27B, butI think it's pretty good for a system with 10-15 year old components.
Using claude I did a simple PI-Benchmark:
Results without thinking (✅ pass with time; ❌ fail; ⏱ hit the 6-min limit; benchmark and tables created by Claude):
| Task | Qwen3.5-2B | Granite 4.1 3B | Ministral 3 3B | MiniCPM5-2B | Qwen3.5-4B | NeoHorse-1-4B |
|---|---|---|---|---|---|---|
| fizzbuzz | ✅ 217 s | ✅ 50 s | ✅ 29 s | ✅ 108 s | ✅ 40 s | ✅ 42 s |
| binsearch-bug | ✅ 22 s | ✅ 22 s | ✅ 32 s | ✅ 146 s | ✅ 57 s | ✅ 112 s |
| roman | ⏱ | ❌ | ✅ 27 s | ⏱ | ✅ 52 s | ❌ |
| duration | ⏱ | ❌ | ❌ | ❌ | ❌ | ✅ 264 s |
| wordfreq-cli | ⏱ | ✅ 47 s | ❌ | ✅ 32 s | ✅ 23 s | ✅ 110 s |
| inventory | ⏱ | ❌ | ✅ 41 s | ✅ 38 s | ✅ 50 s | ✅ 51 s |
| csv-two-bugs | ⏱ | ❌ | ✅ 51 s | ✅ 31 s | ✅ 66 s | ✅ 159 s |
| spiral | ✅ 21 s | ✅ 60 s | ✅ 21 s | ✅ 13 s | ✅ 21 s | ⏱ |
| Score | 3/8 | 4/8 | 6/8 | 6/8 | 7/8 | 6/8 |
| Total time | ~34 min | 6 min | 5 min | 15 min | 10 min | 24 min |
Results with thinking:
| Task | MiniCPM5-2B | Qwen3.5-4B | NeoHorse-1-4B | Ministral 3 3B Reasoning |
|---|---|---|---|---|
| fizzbuzz | ✅ 28 s | ✅ 55 s | ✅ 43 s | ❌ |
| binsearch-bug | ✅ 38 s | ⏱ | ❌ | ✅ 29 s |
| roman | ⏱ | ✅ 227 s | ❌ | ❌ |
| duration | ✅ 153 s | ❌ | ❌ | ❌ |
| wordfreq-cli | ✅ 85 s | ✅ 69 s | ✅ 175 s | ✅ 35 s |
| inventory | ✅ 65 s | ✅ 73 s | ✅ 164 s | ❌ |
| csv-two-bugs | ⏱ | ✅ 58 s | ❌ | ❌ |
| spiral | ✅ 85 s | ✅ 41 s | ✅ 56 s | ❌ |
| Score | 6/8 | 6/8 | 4/8 | 2/8 |
| Total time | 19 min | 19 min | 25 min | 7 min |
Setup: GTX 1060 3 GB, AMD E2-2000 (2 cores, no AVX), 2×4 GB DDR3-800, llama.cpp (CUDA). All layers on the GPU (-ngl 99, batch 256, q8_0 KV cache); any CPU offload is unusable on this CPU.
The 8 tasks (each starts in an empty folder with a unit-test file; the agent may read, write and run tests until they pass; 6 min limit; tests are restored before grading):
| # | Task | What the agent has to do |
|---|---|---|
| 1 | fizzbuzz | Write fizzbuzz(n) from a one-sentence spec |
| 2 | binsearch-bug | Find and fix an off-by-one bug in an existing binary search |
| 3 | roman | Write to_roman / from_roman for 1–3999 incl. error handling (round-trip tested for all 3999 numbers) |
| 4 | duration | Write a parser for "1h30m", "2h5s" … with strict validation (wrong order, duplicates, u |
| 5 | wordfreq-cli | Write a command-line tool that prints the top N words of a file (case-insensitive, ties alphabetical) |
| 6 | inventory | Extend an existing 3-file package: remove() with 3 error cases + total_value() using |
| 7 | csv-two-bugs | Fix a CSV summary function that has two separate bugs (skips a data row, truncates floats) |
| 8 | spiral | Write spiral_order(matrix) incl. edge cases (single column, empty) |
| Model | Quant | Size | Gen tok/s | Prefill tok/s (>500 tok) | Context |
|---|---|---|---|---|---|
| Qwen3.5-2B | UD-Q5_K_XL | 1.5 GB | 36.5 | 1210 | 128k |
| MiniCPM5-2B | Q6_K | 2.1 GB | 34.4 | 876 | 16k |
| Granite 4.1 3B | Q4_K_M | 2.1 GB | 33.7 | 615 | 8k |
| Ministral 3 3B | UD-Q4_K_XL | 2.2 GB | 29.4 | 622 | 8k |
| Qwen3-4B-2507 | Q4_K_M | 2.5 GB | 28.8 | 509 | 4k |
| Qwen3.5-4B | IQ4_XS | 2.5 GB | 26.7 | 549 | 16k |
| Gemma 4 E2B | Q3_K_M | 2.5 GB | 23.3 | 746 | 64k |
| NeoHorse-1-4B | i1-IQ3_M | 2.2 GB | 23.3 | 508 | 16k |
Takeaways:
Hey all, I always see a lot of talk around coding harnesses but don’t see a lot regarding ‘personal assistants’ outside of Hermes or OpenClaw for the most part. While you can always arguably just use a stripped down harness for this purpose, I’m curious if anyone knows of/uses a lightweight Hermes-esque harness that performs well for local models? I’ve been using 9B models and they sometimes can get stuck/looping as of late.
I’ve noticed that Hermes/OpenClaw have gotten fairly heavy and it’s made me reconsider swapping my harness in my local system. I use Hermes in my system as a personal assistant of sorts, managing various homelab services, chrons, tasks, quick research, automation (STT stuff), etc.
I have a lightweight, custom harness I’ve been working on by myself for the last 6 months or so that aims to accomplish this, but it would be nice if I wasn’t reinventing the wheel. A more lightweight option would mean potentially supporting even smaller models, which would always be nice
Follow-up to my last thread.
Unfortunately GitHub closed many PRs after cleanup of repo's commit history. Niko's reply here for all PRs including this PR. So now we need to wait for new PR from closed PR's creator. Meanwhile I reminded Niko about this PR. His reply below.
So please just reply him there with your message, let him know that this has huge demand from many of us. I really want Strata to support many models(Qwen3.6-35B-A3B, Gemma-4-26B-A4B, Nemotron-3.5-Lightning-30B-A3B, Laguna-XS-2.1, North-Mini-Code-1.0, Kat-Coder-V2.5-Dev, etc.,) as much as possible, even experimental fine for me.
EDIT : I see new PR for same. Lets see
I have i7-14700F processor and 16GB DDR5 RAM, I only have a 4060Ti 8GB and wanted to have more Vram.
I thought about a home server at the start but it's genuinely too complex.
I decided I should buy a 4060 16GB in the end. Could I run Qwen3.8-27B-GSQ-RCO-Q3_S decently? Do you have any Better solution rather than new GPU? Should I buy a different GPU that can fit my PC (I know nothing about PC building)?
I have been trying a bunch of harness models and frameworks for the last month, and I realize most agent frameworks want you to rebuild your runtime around their harness.
We went the other way with AURA Harness: a thin membrane around loops you already run, plain Python, Ollama, LangGraph, whatever. You keep the body/runtime, while AURA records and optionally gates what crosses the boundary. Shouldn't this be what harness is about??
Local-first by default:
agent_ref + session IDs, no cloud identity requiredintegrations/ollama/llama_loop.py, stdlib HTTP against Ollama (llama3.2:1b is our dev default)What you get on close: JSONL spine, audit report, hash chain, aura verify chain for CI.
Loose coat = audit-only logging. Tight coat = rules/gates at egress when you wire tool paths.
Open source (Python): github.com/ARPAHLS/aura
Happy to answer setup questions, especially Ollama related + “wrap my script, don’t replace it.”
Contributors more than just welcome, bunch of good first issues open <3
Disclosure since this is my own project: I built Hillock specifically because I was tired of local RAG setups requiring massive amounts of VRAM. Most tutorials expect you to run Chroma alongside an 8B model just to parse text chunks. On an entry level GPU or a laptop with 6GB to 8GB of memory, that leaves almost zero room for your actual model to generate tokens.
Instead of storing messy text chunks, it acts like an index at the back of a book. It uses small classification models under 300MB to extract subject predicate object facts in about five seconds without using an LLM. Everything goes into SQLite, and it checks queries using hyperdimensional vector math before calling your local model. If your notes do not actually have the answer, the mathematical gate stops the model before it can guess or hallucinate.
Total memory footprint stays under 1.2 GB of VRAM, and the entire pipeline runs fine on pure CPU. We just shipped bit packed SIMD math so the CPU gating checks take under 0.01 milliseconds, added true streaming responses, and resolved Windows socket delays. It is also available on PyPI now via pip install hillock. Tested it on budget 6GB cards, Apple Silicon laptops, and pure CPU setups alongside local Ollama models.
Code is open source on GitHub: https://github.com/roandejager/Hillock
Docs are up at https://hillock.mintlify.site/ and we have a text only Discord at https://discord.com/invite/BGUPNBcVdp