Vertex AGI
Back to blog

October 8, 2026 · 5 min read

Introducing Quartz Micro Preview V2

Quartz Micro Preview V2 is out: a 100-million-parameter language model trained from scratch on one GTX 1660 Ti, in two versions — a base model and an instruction-tuned chat model — each shipped as plain Hugging Face safetensors, MLX, and GGUF. It is a small research model. It writes fluent, on-topic text and often gets facts wrong, and this post is mostly about measuring how often.


What it is

V1 was a ~1B-parameter mixture-of-experts model with custom code. V2 goes the other way: a dense, Llama-architecture decoder with 100.09M parameters (12 layers, hidden size 768, 12 attention heads with 4 KV heads, SwiGLU, RoPE, a 32K byte-level BPE vocabulary, 1,024-token context). Because it is a stock architecture, it loads with plain transformers, mlx_lm, and llama.cpp — no trust_remote_code.

How it does, honestly

We wrote 20 prompts by hand (not taken from the training data) plus one follow-up question, and ran them greedily with a repetition penalty of 1.1. All 20 got a non-empty answer, 17 of 20 ended cleanly with an end-of-text token, and the answers were not degenerate loops on average (distinct-4-gram ratio 0.79). On simple keyword fact checks it got 5 of 15. That is a deliberately easy test, and a model this size is expected to miss a lot of it.

It gets "What is the capital of France?" right. It gets "What is 17 plus 25?" wrong (it answers "18 + 1 = 20"), says Romeo and Juliet was written by a "Roman poet Juliet", and can't list the planets in order. Longer answers drift into confident nonsense — its answer to "Why do cats purr?" talks about cortisol and body temperature. Every prompt and reply, the wrong ones included, is in the model repo.

One thing worth saying plainly: our release gate failed the first time. With a 160-token reply budget only 7 of 20 answers ended cleanly (the gate needs 14), because the tuned model's answers are long-form. We raised the budget to 400 tokens, re-ran, and got 17 of 20 — that re-run is what's published, and we kept the failed attempt rather than hiding it.

Every format, checked

We compared each shipped format against the original training code on held-out text. Quantizing to 8 bits costs almost nothing; 4-bit MLX costs the most.

FormatPerplexity (chat model)Difference
transformers fp32 (original)27.844—
MLX fp1627.8420.007%
MLX 8-bit27.8570.045%
MLX 4-bit28.4572.2%
GGUF f1627.8440.000%
GGUF Q8_027.8500.020%
GGUF Q4_K_M27.8880.157%

We also re-ran the 21 prompts through the MLX and GGUF files themselves. Fact checks stayed at 5–6 of 15 in every format; the 4-bit MLX build is the one where noticeably fewer answers end cleanly. The raw numbers are in the repo as eval_results.json and eval_formats.json.

Try it, and where to get it

The chat Space now has a model switcher: V2 by default, and the original V1 one dropdown away. Only the instruction-tuned models are offered there. Fixed, hand-written answers (clearly labelled) cover questions about the model's own abilities, because a model this small can't describe itself reliably.

What it isn't

It has had no safety tuning or refusal training, it is weak at maths, reasoning and code, it can repeat itself, and it only knows English. Please don't use it for anything medical, legal, financial, or safety-critical. Apache-2.0 for the weights and code; the training data carries its own terms (Wikipedia and Stack Exchange are share-alike).