Instructions to use AtomicChat/Arete-27B-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 AtomicChat/Arete-27B-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 AtomicChat/Arete-27B-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf AtomicChat/Arete-27B-GGUF:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf AtomicChat/Arete-27B-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf AtomicChat/Arete-27B-GGUF:Q4_K_M
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf AtomicChat/Arete-27B-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf AtomicChat/Arete-27B-GGUF:Q4_K_M
Use Docker
docker model run hf.co/AtomicChat/Arete-27B-GGUF:Q4_K_M
- Llama new
- LM Studio
- Jan
- vLLM
How to use AtomicChat/Arete-27B-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "AtomicChat/Arete-27B-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": "AtomicChat/Arete-27B-GGUF", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/AtomicChat/Arete-27B-GGUF:Q4_K_M
- Ollama
How to use AtomicChat/Arete-27B-GGUF with Ollama:
ollama run hf.co/AtomicChat/Arete-27B-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use AtomicChat/Arete-27B-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf AtomicChat/Arete-27B-GGUF:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "AtomicChat/Arete-27B-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use AtomicChat/Arete-27B-GGUF with Docker Model Runner:
docker model run hf.co/AtomicChat/Arete-27B-GGUF:Q4_K_M
- Lemonade
How to use AtomicChat/Arete-27B-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull AtomicChat/Arete-27B-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Arete-27B-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use AtomicChat/Arete-27B-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 AtomicChat/Arete-27B-GGUF:Q4_K_M
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 AtomicChat/Arete-27B-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use AtomicChat/Arete-27B-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf AtomicChat/Arete-27B-GGUF:Q4_K_M
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 "AtomicChat/Arete-27B-GGUF:Q4_K_M" \ --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"
How to Run Arete 27B Locally
Built from Nous Research's original weights with our own importance matrix. The calibration corpora behind our builds are public.
- Built by the team behind Atomic Chat, the app that runs open-weight models locally and offline.
- See our quantization analysis below for measurements and instructions.
Arete-27B is Nous Research's supervised fine-tune of Qwen3.8-27B. Nous trained it on text to change how the model answers politically sensitive questions; their model card has the details and their evaluation. The architecture, tokenizer and vision encoder are Qwen3.8-27B's. One difference matters for running it: Arete ships without the multi token prediction head the base model has. Both models are Apache-2.0; the licence file is in this repo.
Pick a file
Every number below is measured, not estimated. How we measured it is at the bottom, and the raw logs are in the metrics repo so you can check any of it yourself.
KL divergence is how far the quantized model's predictions drift from the
original weights. Lower is better, and zero means identical. top-1 is how
often it picks the same next word the original would have picked.
| File | Size | KL divergence | top-1 |
|---|---|---|---|
Q8_0 |
28.6 GB | 0.00069 | 98.87% |
AD-Q6_K |
24.6 GB | 0.00112 | 98.58% |
AD-Q5_K_M |
19.9 GB | 0.00356 | 97.48% |
AD-Q4_K_M |
16.8 GB | 0.00956 | 95.89% |
AD-IQ4_XS |
16.2 GB | 0.01120 | 95.60% |
AD-IQ3_S |
13.6 GB | 0.03312 | 92.31% |
AD- marks an Atomic Dynamic layout. The name says what the two largest
tensor groups got: AD-<ffn_down>-<ffn_up>, collapsed to one name when both
match. Nothing is named after a type it does not contain.
Which one fits your card
The file has to fit, and so does the context. This model keeps 64 KB of attention cache per token, which is 0.5 GB at 8k context and 2.0 GB at 32k. Budget for both.
| Your card | File | Leaves room for |
|---|---|---|
| 16 GB | AD-IQ3_S |
around 32k context |
| 24 GB | AD-Q5_K_M |
around 64k context |
| 32 GB | Q8_0 |
around 64k context |
| 48 GB and up | Q8_0 |
full context |
If you are choosing between two neighbouring files, take the larger one. The steps between them cost one or two gigabytes and buy noticeably fewer wrong words.
Running it
llama-server -m Arete-27B-AD-Q4_K_M.gguf -ngl 99 -c 8192
The chat template is inside every file, llama.cpp applies it on its own.
Prompt format:
<|im_start|>system
{system}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
<think>
Thinking is on by default. With thinking on, the template also puts a reasoning effort line at the top of the
system message. The effort can be xhigh (the default), medium or low. Any other value, high included, makes
the template stop with an error, so a client that sends reasoning_effort: high gets nothing back. To switch
thinking off or shorten it:
# no thinking
llama-server -m Arete-27B-AD-Q4_K_M.gguf -ngl 99 -c 8192 --chat-template-kwargs '{"enable_thinking": false}'
# shorter thinking
llama-server -m Arete-27B-AD-Q4_K_M.gguf -ngl 99 -c 8192 --chat-template-kwargs '{"reasoning_effort": "low"}'
There is no multi token prediction head in these files, because the released model has none. The
--spec-type draft-mtp option from our Qwen3.8-27B card does not apply here.
Images and video
This model reads images, not only text. That needs one extra file, the vision projector, which is separate from the quant and shared by all of them:
mmproj-Arete-27B-F16.gguffor most peoplemmproj-Arete-27B-BF16.ggufif your setup prefers bfloat16
Download it once alongside whichever quant you picked:
llama-mtmd-cli \
-m Arete-27B-AD-Q4_K_M.gguf \
--mmproj mmproj-Arete-27B-F16.gguf \
--image your-photo.jpg --image-min-tokens 1024 \
-ngl 99 -c 8192 \
-p "What is in this image?"
--image-min-tokens 1024 is not optional in practice. llama.cpp warns that
this family needs at least that many image tokens, or anything that depends on position becomes unreliable.
What we found while building these
The Qwen3.8-27B layout carries over
The fine-tune changed weights, not shapes, so these files use the layout we built for Qwen3.8-27B. The first 12 and last 12 layers, the attention gate and the state output get extra bits. Every tensor row divides by 256, so no type is silently swapped for another. Each file here is about 0.3 GB smaller than our Qwen3.8-27B file with the same name, because there is no prediction head to store.
Same tokenizer in llama.cpp
Arete's tokenizer.json was re-saved with a slightly different pre-tokenizer pattern. After conversion, the GGUF
tokenizer is identical to Qwen3.8-27B's: same vocabulary, merges, special tokens and pre-tokenizer type. The
calibration corpus rendered for Qwen3.8-27B therefore applies unchanged, chat template included.
Q8_0 is not lossless
It is very close, but it is not the original: 0.00069 divergence and 98.87% top-1 agreement. Every number above is
measured against the real BF16 weights, not against Q8_0.
The calibration data
Our importance matrix comes from a corpus we built for this model and
published: AtomicChat/calib-corpora,
recipe qwen3.8-27b. It is 4,967,044 tokens across 3,004 documents:
| Part | Share |
|---|---|
| agentic and tool use | 24.7% |
| code | 17.8% |
| reasoning | 14.8% |
| multilingual | 13.8% |
| long context | 11.9% |
| vocabulary sweep | 9.9% |
| structured data | 4.1% |
| graphics | 3.0% |
Every conversation is rendered through this model's own chat template, so the chat markup appears as the single tokens the model actually sees.
If you build your own importance matrix from this corpus, pass
--parse-specialtollama-imatrix. Without it the chat markup is read as ordinary punctuation.
How we measured
Reference: the original BF16 weights, converted to GGUF and run unquantized. Perplexity on the held-out set is 4.5592 plus or minus 0.02428.
Held-out text: eval_neutral from our calibration dataset, never used for
calibration. 87 chunks at 4096 context.
Metric: per-token KL divergence of each file's predictions against the reference, plus top-1 agreement.
Hardware: 1x H100 PCIe.
The reference logits take 88 GB, so they are not kept in the metrics repo. The manifest of the file we used is
there (kld/base-neutral.manifest.txt). To measure your own build against the same point, rebuild the reference
from the original weights and the held-out text (eval/ in the calibration dataset), then compare:
llama-perplexity -m Arete-27B-BF16.gguf -f eval_neutral.txt \
--kl-divergence-base base-neutral.kld -c 4096 -ngl 99
llama-perplexity -m your-quant.gguf -f eval_neutral.txt \
--kl-divergence-base base-neutral.kld --kl-divergence -c 4096 -ngl 99
Reproducing a file
The importance matrix was collected on the BF16 weights rather than on a quantized copy, in one run:
llama-imatrix -m Arete-27B-BF16.gguf -f calib_train.txt -o imatrix.gguf \
-ngl 99 -c 512 -b 8192 -ub 8192 --parse-special
Then, for AD-Q4_K_M:
llama-quantize \
--imatrix imatrix.gguf \
--tensor-type '^blk\.(0|1|2|3|52|53|54|55|56|57|58|59|60|61|62|63)\.ffn_(down|gate|up)\.weight$=q5_k' \
--tensor-type '^blk\.(4|5|6|7|8|9|10|11)\.ffn_(down|gate|up)\.weight$=q5_k' \
--tensor-type '^blk\.\d+\.ffn_down\.weight$=q4_k' \
--tensor-type '^blk\.\d+\.ffn_gate\.weight$=q4_k' \
--tensor-type '^blk\.\d+\.ffn_up\.weight$=q4_k' \
--tensor-type '^blk\.\d+\.attn_(q|qkv)\.weight$=q4_k' \
--tensor-type '^blk\.\d+\.attn_gate\.weight$=q5_k' \
--tensor-type '^blk\.\d+\.ssm_out\.weight$=q5_k' \
--tensor-type '^output\.weight$=q6_k' \
--tensor-type '^blk\.\d+\.attn_output\.weight$=q6_k' \
--tensor-type '^token_embd\.weight$=iq4_xs' \
--override-kv general.file_type=int:15 \
Arete-27B-BF16.gguf Arete-27B-AD-Q4_K_M.gguf Q8_0
The rules for every other file are in ladder/ in the metrics repo, next to
its quantization log. The first rule that matches a tensor wins.
Model details
Fine-tuned from Qwen/Qwen3.8-27B by Nous Research
(NousResearch/Arete-27B, revision 108f0afb), Apache-2.0.
64 layers (16 full attention, 48 linear attention), hidden size 5120, feed-forward size 17408, vocabulary 248,320, context 262,144. No multi token prediction head.
Needs a recent llama.cpp with qwen35 architecture support. Built and tested with llama.cpp b12205 (a691b2345).
- Downloads last month
- -
3-bit
4-bit
5-bit
6-bit
8-bit



