Instructions to use prometheusAIR/Motif-3-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use prometheusAIR/Motif-3-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS # Run inference directly in the terminal: llama cli -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS # Run inference directly in the terminal: llama cli -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS # Run inference directly in the terminal: ./llama-cli -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS # Run inference directly in the terminal: ./build/bin/llama-cli -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS
Use Docker
docker model run hf.co/prometheusAIR/Motif-3-GGUF:IQ2_XXS
- LM Studio
- Jan
- vLLM
How to use prometheusAIR/Motif-3-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "prometheusAIR/Motif-3-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "prometheusAIR/Motif-3-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/prometheusAIR/Motif-3-GGUF:IQ2_XXS
- Ollama
How to use prometheusAIR/Motif-3-GGUF with Ollama:
ollama run hf.co/prometheusAIR/Motif-3-GGUF:IQ2_XXS
- Unsloth Studio
How to use prometheusAIR/Motif-3-GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for prometheusAIR/Motif-3-GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for prometheusAIR/Motif-3-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for prometheusAIR/Motif-3-GGUF to start chatting
- Pi
How to use prometheusAIR/Motif-3-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "prometheusAIR/Motif-3-GGUF:IQ2_XXS" } ] } } }Run Pi
# Start Pi in your project directory: pi
- OpenClaw new
How to use prometheusAIR/Motif-3-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "prometheusAIR/Motif-3-GGUF:IQ2_XXS" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use prometheusAIR/Motif-3-GGUF with Docker Model Runner:
docker model run hf.co/prometheusAIR/Motif-3-GGUF:IQ2_XXS
- Lemonade
How to use prometheusAIR/Motif-3-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull prometheusAIR/Motif-3-GGUF:IQ2_XXS
Run and chat with the model
lemonade run user.Motif-3-GGUF-IQ2_XXS
List all available models
lemonade list
- Hermes Agent
How to use prometheusAIR/Motif-3-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf prometheusAIR/Motif-3-GGUF:IQ2_XXS
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default prometheusAIR/Motif-3-GGUF:IQ2_XXS
Run Hermes
hermes
- Atomic Chat
Motif-3 GGUF (imatrix)
Two GGUF quantisations of Motif-3 (314B total / 13.2B active, MoE, MIT), plus the imatrix they were built with.
Both were quantised from a BF16 GGUF converted here from the original safetensors, using an imatrix computed over a purpose-built calibration corpus. Quality is reported below as KL divergence against the BF16 master.
Requires a patched llama.cpp
The motif3 architecture is not upstream. As of 2026-08-14 you need three
things, and a build missing any of them will not serve these files:
PR #26298 โ model: Add support for Motif 3 Beta. Still open.
PR #26404 โ CUDA: FA support for head size 192/128 with GQA ratios that are not multiples of 8. Still open. Needed for
-fa on, which you want: Motif-3's fused MLA latent KV lands on exactly such a head-size/GQA combination.patches/motif3-runtime.patchfrom this repo, applied on top. Without it loading fails outright with:unknown pre-tokenizer type: 'motif3'
That third patch is 47 lines against src/llama-vocab.cpp and
src/llama-vocab.h, and it is the important one. PR #26298 does not register a
pre-tokenizer for Motif-3, so stock convert_hf_to_gguf.py silently falls back
to pre='gpt-2'. Motif-3's 220k vocabulary contains multi-word tokens, and
its real split regex wraps each word alternative in (?: <word>)* so that a run
of space-separated words becomes a single pre-token. Splitting per word makes
those entries unreachable. Holding the BPE merges fixed and swapping only that
regex, 400k characters of English prose tokenise to 82,231 tokens with the
correct pattern and 94,824 without โ +15.3 %, paid on every prompt and every
generation. Files built the wrong way still load and still generate fluent text,
which is what makes this worth calling out: nothing announces the fault.
patches/motif3-convert.patch is only needed if you want to convert Motif-3
from safetensors yourself rather than use these files. It teaches
conversion/motif3.py to detect that split regex and emit pre='motif3', and
registers ATTN_K_B / ATTN_V_B for the arch โ PR #26298 emits those tensors
for the MLA split but never registers them, so conversion aborts at blk.0.
Files
| directory | size | bpw | notes |
|---|---|---|---|
IQ4_XS/ |
161.4 GiB | 4.40 | recommended; 0.045 mean KLD against the BF16 master |
IQ2_XXS-custom/ |
85.8 GiB | 2.34 | runs on a single 96 GB card at 131K ctx (one MoE layer on CPU); measurably degraded |
imatrix/Motif-3-imatrix.gguf |
736 MiB | โ | build your own quants without repeating the calibration run |
patches/ |
4 KiB | โ | the llama.cpp patches these files need; see above |
Each quant is a 15-shard split; point llama.cpp at the -00001-of-00015 file.
For reference, the shape these were cut from: 53 blocks (2 dense + 51 MoE), 384 routed experts at top-8 plus 1 shared expert, native context 262,144, sliding window 129 on a period-4 pattern.
Quality
KL divergence against the BF16 master, 200 chunks of wikitext-2-raw test at
-c 512 (51,000 scored tokens), identical token sequence for every rung.
| rung | size | bpw | mean KLD | PPL(Q)/PPL(base) | same top-1 | RMS ฮp |
|---|---|---|---|---|---|---|
| Q4_K_M (no imatrix, not published) | 182.0 GiB | 4.97 | 0.04902 ยฑ 0.00044 | 1.0315 | 91.88 % | 6.84 % |
| IQ4_XS | 161.4 GiB | 4.40 | 0.04519 ยฑ 0.00044 | 1.0253 | 92.13 % | 7.11 % |
| IQ2_XXS-custom | 85.8 GiB | 2.34 | 0.46195 ยฑ 0.00350 | 1.5804 | 75.60 % | 24.02 % |
Mean PPL(base) = 4.4576 ยฑ 0.0460; the BF16 master's own final perplexity on
the same 200 chunks is 4.4682.
Read the first row carefully. That Q4_K_M was the host used to compute the imatrix, so it was necessarily built without one. It is in the table as a control, not as a competitor: the fact that IQ4_XS beats it on KLD, on perplexity ratio and on top-1 agreement while being 20.7 GiB smaller measures what the imatrix is worth here โ roughly 0.6 bpw.
IQ2_XXS-custom is 10ร the divergence of IQ4_XS and disagrees with the master on roughly one token in four. That is what 2.34 bpw costs on a 384-expert model. It is offered because it is the only rung that fits a single 96 GB card at useful context, not because it is close to lossless.
Comparisons against quants in other repositories are not meaningful unless they were built from the same tokenizer โ see the last section.
Long-context behaviour
A four-hop retrieval-and-binding probe. Every document hides a chain โ wing โ
vault โ crate count โ crate weight, then divide by a lift capacity and round up
โ spread across a window covering 70 % of the text, so at 52K tokens the first
and last links sit roughly 31K tokens apart. Alongside it sit five distractor
facts giving two other vaults their own crate counts and weights, in the same
sentence form and the same neutral register as the filler. Retrieval alone is
not enough: each number has to stay bound to the right vault across the span.
Numbers are rejection-sampled so that no mis-binding, no rounding down and no
rounding to nearest can land on the right answer by luck. Grading is exact, on a
required FINAL: <n> line. Both quants received byte-identical prompts, checked
per cell via prompt_tokens.
| quant | 3.4K | 13.1K | 52K | total | median end-to-end latency |
|---|---|---|---|---|---|
| IQ4_XS | 9/9 | 9/9 | 26/27 | 44/45 | 42 s / 101 s / 305 s |
| IQ2_XXS-custom | 9/9 | 9/9 | 25/26 | 43/44 | 14 s / 22 s / 67 s |
Latencies are whole-request wall clock โ prefill plus reasoning plus answer โ on
one RTX PRO 6000 (96 GB) with CPU expert offload at -ncmoe 29 for IQ4_XS and
-ncmoe 3 for IQ2_XXS-custom. IQ2 is the faster row mostly because almost none
of it streams over PCIe, not because 2-bit arithmetic is cheaper.
This probe does not separate the two quants. Each produced exactly one failure, both at 52K, both the same failure mode, at 1-in-27 and 1-in-26. That is a null result and it is reported as one. Anyone choosing between these files should use the KL divergence table above, which does separate them decisively; a probe that cannot tell them apart has not earned a vote against a measurement that can.
imatrix
imatrix/Motif-3-imatrix.gguf (736 MiB), a full pass at -c 512 over 2,006
chunks (1,027,072 tokens) of a corpus assembled for this model: targeted 30 %
English prose, 25 % code, 20 % Korean, 15 % tool-calling traces, 10 % maths.
Korean is there at 20 % because Motif-3 is a bilingual EN/KO model, and an
English-only calibration would leave whichever experts specialise in Korean
weighted only by whatever transfers from English.
Every one of the 58,752 expert slots has activations (51 MoE layers ร 384 routed experts ร 3 tensor types); the least-visited expert saw 422 activations, the median 19,420, and no entry is non-finite. On a 384-expert model that coverage is what decides whether a low-bit quant is trustworthy โ a partial calibration leaves some experts quantised from nothing while still producing a file that loads and passes a smoke test โ so it was measured rather than assumed.
sha256 4d8a8163b9a725ae1c6b2ec200976e514c21d66a14b5396a605696aab347a780
Why IQ2_XXS-custom, and why no IQ3
The target here was an RTX PRO 6000 (Blackwell, sm_120). On that architecture
the iq1_s, iq2_s and iq3_s CUDA kernels are broken. The ftype names hide
this: IQ2_M's base type is iq2_s, and every IQ3_* rung routes through
iq3_s. IQ2_XXS, IQ2_XS and IQ4_XS are the only safe rungs, which is why the
ladder here jumps straight from 4.40 to 2.34 bpw.
IQ2_XXS-custom is IQ2_XXS with the parts that a pure IQ2_XXS damages most
lifted, chosen so the result still fits 96 GB:
ffn_down_exps iq2_xs (up from iq2_xxs)
ffn_*_shexp q4_K (shared expert, active on every token)
blk.[01].ffn_* q4_K (the two dense layers)
token_embd q2_K
output q6_K
Running it
Tested with llama-server. The flags that matter:
-ngl 999 -ncmoe <N> -fa on -ctk f16 -ctv f16 --jinja --reasoning-budget 4096
--reasoning-budgetis mandatory. Motif-3 always reasons; without a budget it can spend an entire generation inreasoning_contentand return emptycontent. The budget cannot fire if the caller'smax_tokensis โค the budget โ the request hitsfinish_reason: lengthinside the reasoning block first and you get an empty answer. Either send nomax_tokens, or send one comfortably above the budget.- Expect the reasoning to be long on multi-hop questions over long context.
In the probe above, several 4-hop calls ran past 4,096 reasoning tokens. Note
that raising the budget is not automatically an improvement: one 52K case
re-run at
--reasoning-budget 16384spent 16,506 tokens deliberating and arrived at a worse answer than the same prompt at 4,096. Treat the budget as a cost control, not a quality dial. - Keep the KV cache at f16. Quantised KV is not worth it here.
- Do not pass
--swa-full. 39 of 53 layers use a short sliding window (the config says 128, the GGUF records 129); full attention runs only wherelayer % 4 == 0, i.e. 14 layers.--swa-fullthrows that saving away and the context cost balloons. -ncmoecounts blocks, not MoE layers.blk.0andblk.1are dense, so-ncmoe NmovesN-2MoE layers to the CPU.- No EOG override is needed; the stock template terminates correctly.
Comparing against other Motif-3 GGUFs
Check the other repo's tokenizer.ggml.pre before comparing any perplexity or
KLD number against the table above. If it reads gpt-2, that build tokenised
the same text into a different sequence (see the pre-tokenizer note at the top),
so the two sets of numbers are not measuring the same thing and the smaller one
is not the better quant. This is not hypothetical โ it is the default outcome of
converting Motif-3 without the patch.
License
MIT, inherited from Motif-Technologies/Motif-3.
- Downloads last month
- 1,569
Model tree for prometheusAIR/Motif-3-GGUF
Base model
Motif-Technologies/Motif-3-Base