SAVRN
Search Contact SAVRN

Open-weight model · Text generation

quartz-micro-preview

by Vertex AGI VertexAGI/quartz-micro-preview

quartz-micro-preview is an open-weight model for text generation from Vertex AGI, released under Apache License 2.0. It has 1.1B parameters and a 2,048-token context. At 16-bit it needs about 2.6 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

The instruction-tuned release of Quartz Micro Preview Base — the same ~1B-parameter mixture-of-experts model, trained completely from scratch on a single consumer GPU, now given a full-parameter supervised fine-tune so it follows instructions instead of just…

Parameters1.1B
Context2,048
Weights4.3 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads

Runs On

What it takes to serve quartz-micro-preview (1.1B parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 2.1 GB 2.6 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 1.1 GB 1.3 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.5 GB 0.6 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Sep 19, 2026.

quartz-micro-preview on every accelerator the SAVRN Index prices, at every precision

Model Card

By Vertex AGI, published under apache-2.0, revision c40b906a3349.

The instruction-tuned release of Quartz Micro Preview Base — the same ~1B-parameter mixture-of-experts model, trained completely from scratch on a single consumer GPU, now given a full-parameter supervised fine-tune so it follows instructions instead of just completing text. This is a preview, not a finished product. It is small on every axis by design, and its evaluation below is reported honestly, including where it still falls short — that's this project's standing practice, not a disclaimer added after the fact. - Full-parameter SFT, not LoRA — the base model has zero instruction-following behavior, so a light adapter touch isn't the right tool; every parameter was updated.…

Read Vertex AGI's full model card

The instruction-tuned release of Quartz Micro Preview Base — the same ~1B-parameter mixture-of-experts model, trained completely from scratch on a single consumer GPU, now given a full-parameter supervised fine-tune so it follows instructions instead of just completing text.

This is a preview, not a finished product. It is small on every axis by design, and its evaluation below is reported honestly, including where it still falls short — that's this project's standing practice, not a disclaimer added after the fact.

What changed vs. the base checkpoint

  • Full-parameter SFT, not LoRA — the base model has zero instruction-following behavior, so a light adapter touch isn't the right tool; every parameter was updated.
  • Dataset: databricks-dolly-15k, human-written (not distilled from another company's model), formatted as ### Instruction:\n...\n\n### Response:\n (with an added ### Context:\n block for context-grounded examples), tokenized with the pretrain's own custom 32K byte-level BPE tokenizer. 14,051 of 15,011 examples kept after filtering to the model's 2,048-token context.
  • Only the response tokens are supervised (prompt tokens masked to label=-100); optimizer is 8-bit AdamW (bitsandbytes) with full gradient checkpointing, matching the pretrain's own training stack.
  • This is the second SFT attempt (v2): the first pass underperformed, so this run used a higher learning rate and a fresh optimizer state rather than continuing from the first run's optimizer. It completed 1,317 steps on a single GTX 1660 Ti (6GB VRAM).

Architecture

Unchanged from the base checkpoint — DeepSeek-style fine-grained mixture-of-experts:

Total parameters 1,031.0M (~1.03B)
Active parameters / token 394.0M
Hidden size 1,024
Layers 20 (first 2 dense, rest MoE)
Attention 16 query heads / 4 KV heads (GQA), head dim 64
Context length 2,048 tokens
Routed experts 24 (6 active per token)
Shared experts 2 (always active)
Expert FFN size 640 (fine-grained segmentation)
Router top-6 of 24, 0.01-weighted load-balancing loss
Vocabulary 32,000 tokens
Tied embeddings yes

Held-out evaluation: base vs. this SFT checkpoint

Ten hand-authored prompts, not sampled from dolly-15k or any training data, spanning open QA, closed/context QA, summarization, brainstorming, classification, extraction, general QA, instruction-following, and creative writing. Full transcript below is unedited.

Honest summary: a modest, mixed improvement — not a clean win.

The clearest gain is grounded, context-based QA. The weakest spot is still strict instruction-following (format, length). Both checkpoints remain largely incoherent past the first sentence or two, which tracks with the model's size — that's not something this SFT pass was expected to fix.

Win — closed QA (uses given context correctly):

Prompt: Context: The Golden Gate Bridge is 2,737 meters long and was completed in 1937.\nQuestion: How long is the Golden Gate Bridge?

Base: ignores the context entirely, wanders into an unrelated story about "the Banana" process and the Coast Guard.

SFT: "The Golden Gate Bridge is 2,737 meters long and has an area of approximately 2.4 million square miles." — correctly extracts and restates the fact (the second clause is invented, but the requested answer is right).

Partial win — brainstorming (attempts the requested list format):

Prompt: List three ideas for reducing food waste in a household kitchen.

Base: no list structure, generic unrelated advice about water and diet.

SFT: "1. Make sure you have all food waste in your kitchen. \n2.f leaf food and water should be discharged from local resources. \n3. Focus on local food waste..." — correctly produces a numbered list (the content is still weak/garbled).

Partial win — topical relevance:

Prompt: Why do cats purr?

Base: drifts immediately into an unrelated riff on "the human body," never mentions cats again.

SFT: "Finding the right balance between breast and chest health is hard... So my recommendation is to keep your cat's skin healthy and strong..." — stays anchored to "cat" throughout, base does not.

No win — strict instruction-following:

Prompt: Write a short two-sentence greeting for a birthday card.

Base: an unrelated bulleted list of vague social advice.

SFT: "The free meeting is open for all people... The national party has the following 82 seats: The Democratic Party..." — completely unrelated to the prompt, and no better than base here.

No win — classification:

Prompt: Classify the following as either a fruit or a vegetable: broccoli

Base: never answers the classification, rambles about diet generally.

SFT: "broccoli, broccoli, cabbage,iant cucumber, cucumber, ormanus... This fruit is most closely associated with pears and cucumber." — also fails to answer, with garbled sub-word artifacts not seen in the base output.

No GGUF build

Every other release on the Vertex AGI Hugging Face org ships GGUF alongside the native weights. This one doesn't, and that's deliberate rather than an oversight.

llama.cpp's closest matching architecture (deepseek, the original DeepSeekMoE design) shares this model's leading-dense-layers + fine-grained routed-experts + always-on shared-experts shape almost exactly — except it skips renormalizing the selected top-6 expert weights after routing, while this model's trained behavior does renormalize them. Measured on real prompts, the top-6 experts this model picks only carry ~61% of the total softmax mass on average (26–99% depending on the token) before that renormalization — so a GGUF built on that architecture would run the routed-expert pathway at a token-varying fraction of its trained strength, not the same computation this checkpoint actually does. Rather than ship a file that loads and runs but isn't faithful to the model, we're leaving GGUF out until llama.cpp has a matching architecture (or we write one).

Files

  • model.safetensors — model weights, fp32 (optimizer state dropped)
  • configuration_quartz.py, modeling_quartz.pytransformers-compatible PretrainedConfig/PreTrainedModel wrapper (QuartzMoEConfig, QuartzForCausalLM), wired up via auto_map in config.json
  • model.py, config.py — the original plain-PyTorch model class and architecture config, used by load_model.py
  • config.json — architecture config in HF's expected format
  • tokenizer.json, tokenizer_config.json, special_tokens_map.json — a standard transformers fast tokenizer
  • tokenizer/vocab.json, tokenizer/merges.txt — the custom tokenizer's raw vocab/merges, used by load_model.py's plain-PyTorch path. Only compatible with this model's weights.
  • load_model.py — minimal working example using the plain-PyTorch path

Usage

Via transformers (recommended):

pip install transformers torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "VertexAGI/quartz-micro-preview", trust_remote_code=True
)
tok = AutoTokenizer.from_pretrained("VertexAGI/quartz-micro-preview")

prompt = "### Instruction:\nWhy do cats purr?\n\n### Response:\n"
ids = tok(prompt, return_tensors="pt")
out = model.generate(**ids, max_new_tokens=80, do_sample=True, temperature=0.7)
print(tok.decode(out[0], skip_special_tokens=True))

trust_remote_code=True is required — this is a bespoke architecture (DeepSeek-style fine-grained MoE), not one of transformers' built-in model types. No KV-cache support yet, so generate() recomputes attention over the full sequence each step.

Plain PyTorch (no transformers dependency):

pip install torch safetensors tokenizers
python load_model.py

Limitations

Same size-driven limitations as the base checkpoint (factual unreliability, weak general knowledge, no safety fine-tuning), plus SFT-specific ones documented honestly above: strict format/length instructions (e.g. "write exactly two sentences") are not reliably followed, and generation occasionally produces garbled sub-word artifacts the base checkpoint doesn't. Treat this as a proof-of-concept instruction tune on a genuinely tiny model, not a general-purpose assistant.


Built by Vertex AGI. Every model we ship — weights, not just claims.

Configuration

Architecture
QuartzForCausalLM
Context length (tokens)
2,048
Layers
20
Hidden size
1,024
Attention heads
16
Key/value heads
4
Head dimension
64
Vocabulary size
32,000
Experts active per token
6
RoPE base
10000
Model type
quartz_moe

Identity and Version

Repository
VertexAGI/quartz-micro-preview
Publisher
Vertex AGI
Task
Text generation
Modality
Text
Library
transformers
Parameters
1.1B parameters
Languages
en
Revision
c40b906a3349b9ccb9c89ab01ee2c96cdee242ac
First published
2026-09-19
Last updated
2026-09-19

Files and Weights

14 files, 4.3 GB in total. The weights are 1 file totalling 4.3 GB in safetensors.

Weights1 file · 4.3 GB
Configuration7 files · 27.0 KB
Tokenizer4 files · 3.0 MB
Documentation1 file · 9.4 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights4.3 GB 12bea05545e5
config.jsonConfiguration756 B
config.pyConfiguration975 B
configuration_quartz.pyConfiguration2.3 KB
load_model.pyConfiguration1.9 KB
model.pyConfiguration10.7 KB
modeling_quartz.pyConfiguration10.2 KB
special_tokens_map.jsonConfiguration99 B
README.mdDocumentation9.4 KB
.gitattributesRepository1.5 KB
tokenizer.jsonTokenizer2.2 MB
tokenizer/merges.txtTokenizer281.9 KB
tokenizer/vocab.jsonTokenizer496.1 KB
tokenizer_config.jsonTokenizer1.0 KB

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
4.3 GB
Download from Vertex AGI

Released by Vertex AGI through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published4.3 GB
16-bit2.1 GB
8-bit1.1 GB
4-bit0.5 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About quartz-micro-preview

How much GPU memory does quartz-micro-preview need?

About 2.6 GB at 16-bit and 0.6 GB at 4-bit: the weights (1.1B parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run quartz-micro-preview on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use quartz-micro-preview commercially?

Yes. quartz-micro-preview is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is quartz-micro-preview's context length?

2,048 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Text generation

OpenELM-1_1B-Instruct

Apple

Sachin Mehta, Mohammad Hossein Sekhavat, Qingqing Cao, Maxwell Horton, Yanzi Jin, Chenfan Sun, Iman Mirzadeh, Mahyar Najibi, Dmitry Belenko, Peter Zatloukal, Mohammad Rastegari We introduce OpenELM, a family of Open Efficient Language Models. OpenELM uses a layer-wise scaling strategy to efficiently allocate parameters within each layer of the transformer model, leading to enhanced accuracy. We pretrained OpenELM models using the CoreNet library. We release both pretrained and instruction tuned models with 270M, 450M, 1.1B and 3B parameters. We release the complete framework, encompassing data preparation, training, fine-tuning, and evaluation procedures, alongside multiple pre-trained…

Open weights apple-amlr 1.1B parameters transformers

Model · Text generation

TinyLlama-1.1B-Chat-v1.0

TinyLlama

https://github.com/jzhang38/TinyLlama The TinyLlama project aims to pretrain a 1.1B Llama model on 3 trillion tokens. With some proper optimization, we can achieve this within a span of "just" 90 days using 16 A100-40G GPUs. The training has started on 2023-09-01. We adopted exactly the same architecture and tokenizer as Llama 2. This means TinyLlama can be plugged and played in many open-source projects built upon Llama. Besides, TinyLlama is compact with only 1.1B parameters. This compactness allows it to cater to a multitude of applications demanding a restricted computation and memory footprint. This is the chat model finetuned on top of…

Open weights apache-2.0 1.1B parameters 2,048 tokens transformers