Instructions to use AtomicChat/Qwen3.8-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/Qwen3.8-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/Qwen3.8-27B-GGUF:IQ1_M # Run inference directly in the terminal: llama cli -hf AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf AtomicChat/Qwen3.8-27B-GGUF:IQ1_M # Run inference directly in the terminal: llama cli -hf AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
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 AtomicChat/Qwen3.8-27B-GGUF:IQ1_M # Run inference directly in the terminal: ./llama-cli -hf AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
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 AtomicChat/Qwen3.8-27B-GGUF:IQ1_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
Use Docker
docker model run hf.co/AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
- LM Studio
- Jan
- vLLM
How to use AtomicChat/Qwen3.8-27B-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "AtomicChat/Qwen3.8-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/Qwen3.8-27B-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
- Ollama
How to use AtomicChat/Qwen3.8-27B-GGUF with Ollama:
ollama run hf.co/AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
- Unsloth Studio
How to use AtomicChat/Qwen3.8-27B-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 AtomicChat/Qwen3.8-27B-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 AtomicChat/Qwen3.8-27B-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for AtomicChat/Qwen3.8-27B-GGUF to start chatting
- Pi
How to use AtomicChat/Qwen3.8-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/Qwen3.8-27B-GGUF:IQ1_M
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": "AtomicChat/Qwen3.8-27B-GGUF:IQ1_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- OpenClaw new
How to use AtomicChat/Qwen3.8-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/Qwen3.8-27B-GGUF:IQ1_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/Qwen3.8-27B-GGUF:IQ1_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"
- Docker Model Runner
How to use AtomicChat/Qwen3.8-27B-GGUF with Docker Model Runner:
docker model run hf.co/AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
- Lemonade
How to use AtomicChat/Qwen3.8-27B-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull AtomicChat/Qwen3.8-27B-GGUF:IQ1_M
Run and chat with the model
lemonade run user.Qwen3.8-27B-GGUF-IQ1_M
List all available models
lemonade list
- Hermes Agent
How to use AtomicChat/Qwen3.8-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/Qwen3.8-27B-GGUF:IQ1_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/Qwen3.8-27B-GGUF:IQ1_M
Run Hermes
hermes
- Atomic Chat
- How to Run Qwen3.8 27B Locally
- Pick a file
- Which one fits your card
- Running it
- How these compare to other builds
- What we found while building these
- Where the bits go matters more than how many there are
- The ends of the network are worth more than the middle
- This model is a hybrid, and two small groups carry a lot
- The embedding table is cheaper than it looks
Q8_0is not lossless- The prediction head collects no calibration data
- Every tensor row divides by 256
- The calibration data
- How we measured
- Reproducing a file
- Also in this repo
- Model details
- Pick a file
How to Run Qwen3.8 27B Locally
Built from Qwen's original weights with our own importance matrix. The calibration corpora behind our builds are public.
- See our quantization analysis below for measurements and instructions.
- You can now run Qwen3.8 in Atomic Chat with toggles for thinking.
Every quantization of this model we could find, ours and everyone else's, measured against the original weights on the same held-out text. The dashed line is the best file available at each size from anyone but us.
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.9 GB | 0.00064 | 98.92% |
AD-Q6_K |
25.0 GB | 0.00107 | 98.67% |
AD-Q6_K-Q5_K |
23.1 GB | 0.00252 | 97.94% |
AD-Q5_K |
20.2 GB | 0.00419 | 97.34% |
AD-Q5_K-Q4_K |
18.6 GB | 0.00730 | 96.43% |
AD-Q4_K |
17.1 GB | 0.01126 | 95.59% |
AD-IQ4_XS |
16.5 GB | 0.01248 | 95.39% |
AD-IQ4_XS-IQ3_S |
14.4 GB | 0.02660 | 93.15% |
AD-IQ3_S |
13.8 GB | 0.03247 | 92.41% |
AD-IQ3_S-IQ3_XXS |
13.0 GB | 0.04337 | 91.33% |
AD-IQ3_XXS |
12.1 GB | 0.06972 | 89.13% |
AD-IQ2_S |
11.1 GB | 0.09832 | 87.18% |
AD-IQ2_S-IQ2_XS |
10.2 GB | 0.13807 | 84.77% |
AD-IQ2_XS |
9.9 GB | 0.16170 | 83.48% |
AD-IQ2_XXS |
9.0 GB | 0.25663 | 79.44% |
AD-IQ1_M |
8.5 GB | 0.34212 | 76.34% |
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 256 KB of attention cache per token, which is 2 GB at 8k context and 8 GB at 32k. Budget for both.
| Your card | File | Leaves room for |
|---|---|---|
| 12 GB | AD-IQ2_S |
short context only, or move some layers to CPU |
| 16 GB | AD-IQ3_S |
around 8k context |
| 24 GB | AD-Q5_K-Q4_K |
around 16k context |
| 32 GB | AD-Q6_K |
around 24k 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, especially below 14 GB where the curve gets steep.
Running it
llama-server -m Qwen3.8-27B-AD-Q4_K.gguf -ngl 99 -c 8192
Prompt format:
<|im_start|>system
{system}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
<think>
The model ships a multi token prediction head. It is inside every file here and needs no extra download:
llama-cli -m Qwen3.8-27B-AD-Q4_K.gguf --spec-type draft-mtp -ngl 99 -c 8192
How these compare to other builds
Numbers taken against different references cannot be put in the same table, so we did not copy anyone's published figures. We downloaded their files and measured them ourselves, against the same original weights, on the same held-out text. Their logs are in the metrics repo next to ours.
At sizes where the comparison is direct:
| Size | Ours | Best other build at that size |
|---|---|---|
| 20.2 GB | AD-Q5_K 0.00419 |
unsloth UD-Q5_K_XL 0.00437 |
| 25.0 vs 25.9 GB | AD-Q6_K 0.00107 |
unsloth UD-Q6_K_XL 0.00110 at 0.9 GB more |
| 16.5 vs 16.1 GB | AD-IQ4_XS 0.01248 |
Q4_K_S 0.01707 |
| 12.1 vs 11.9 GB | AD-IQ3_XXS 0.06972 |
unsloth UD-IQ3_XXS 0.07330 |
One honest exception. At 17.9 GB unsloth's
UD-Q4_K_XLreaches 0.00955, which is better than our 17.1 GB file and close to our 18.6 GB one. Around 18 GB their build and ours are within a few percent of each other. We are ahead across most of the range, not all of it.
One thing worth seeing on its own. Three publishers ship a file called
Q4_K_M, and they are not the same file:
| Publisher | Size | KL divergence |
|---|---|---|
| lmstudio-community | 16.8 GB | 0.02094 |
| ggml-org | 19.0 GB | 0.01470 |
ours, AD-Q4_K |
17.1 GB | 0.01126 |
Same name, two gigabytes apart, and nearly a factor of two in accuracy. A quant name tells you which recipe was requested, not what you are getting.
What we found while building these
Where the bits go matters more than how many there are
We built ten versions of the same 17 to 19 GB file, changing only which tensors got the extra bits, and measured each one against the original weights.
| Layout | Size | KL divergence |
|---|---|---|
| every layer treated the same | 16.8 GB | 0.01580 |
| 4 layers lifted | 17.1 GB | 0.01449 |
more bits on ffn_down everywhere |
17.8 GB | 0.01189 |
| more bits on attention | 18.2 GB | 0.01010 |
| 16 layers lifted, first and last | 17.8 GB | 0.00981 |
| 32 layers lifted instead | 18.4 GB | 0.00826 |
| 16 lifted, plus the attention gate | 18.4 GB | 0.00821 |
| 16 lifted, plus a richer output head | 18.8 GB | 0.00800 |
| 24 layers lifted | 18.6 GB | 0.00743 |
| 24 lifted, plus attention gate and state output | 18.6 GB | 0.00730 |
Half the divergence disappears at the same file size, purely from moving bits around. Every file in the ladder above uses the last layout.
The ends of the network are worth more than the middle
Lifting the first four and last twelve layers helped more than anything else we tried. Widening that band to 32 layers did not help further, and spending the same bits on the output head helped less. The importance matrix agrees: the highest activation energy in the whole model sits on layers 52 to 62, with a second peak on layer 0.
This model is a hybrid, and two small groups carry a lot
Alongside ordinary attention, Qwen3.8 has an attention gate and a state output path. They are 5.5% of the weights each. Giving both one extra step of precision cost 0.16 GB and removed 11% of the remaining divergence. That was the single best trade we found.
The embedding table is cheaper than it looks
The token embedding table and the output head weigh the same, 4.7% each, and behave nothing alike. The head decides the next word directly and has to stay precise. The embedding table is a lookup whose error stays inside one token, so it can be cut hard. Paying for the head out of the embedding table is a net gain at every size we tested.
Q8_0 is not lossless
It is very close, but it is not the original: 0.00064 divergence and 98.92%
top-1 agreement. We say so because our whole table is measured against the
real BF16 weights rather than against Q8_0, and that changes every number in
it. Anyone measuring against a Q8_0 reference will get smaller numbers than
these for the same files.
The prediction head collects no calibration data
The multi token prediction head is never executed during a normal forward
pass, so the importance matrix has nothing to say about it at any corpus size.
Quantize it low and llama.cpp refuses partway through rather than guess. It is
pinned to q5_k in every file here.
Every tensor row divides by 256
Worth checking before you plan a ladder. K and I quants store weights in
superblocks of 256, and a model whose rows do not divide by that number
silently falls back to a coarser type while keeping the name you asked for. On
this model everything divides cleanly, so the whole range from IQ1_M upward
is genuinely available. That is not true of every recent release.
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% |
Two details that matter more than the mix.
Every conversation is rendered through this model's own chat template, so
<|im_start|>, <think>, <tool_call> and <tool_response> appear as the
single tokens the model actually sees. Text rendered for another model is
excluded from the build rather than reused.
The vocabulary sweep is regenerated for this tokenizer. It covers 246,919 of the 247,133 vocabulary entries that can stand alone, at about two tokens per entry. A sweep built for a different model covers a different vocabulary and does nothing here.
If you build your own importance matrix from this corpus, pass
--parse-specialtollama-imatrix. Without it the chat markup is read as ordinary punctuation, and the agentic and reasoning parts of the corpus calibrate on text the model never sees.
How we measured
Reference: the original BF16 weights, converted to GGUF and run unquantized. Perplexity on the held-out set is 4.5219 plus or minus 0.0238.
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: 4x RTX 5090, CUDA 13.0. The reference needs all four cards because the BF16 file is 51 GB.
The raw logits of the reference are published in the metrics repo, split into parts because of the file size limit. With them you can measure your own build against exactly the same point we did:
cat base-neutral.kld.*.part > base-neutral.kld
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, split across seven workers and merged. Splitting by chunk range gives the same result as one long run, because the statistic is a sum:
llama-imatrix -m Qwen3.8-27B-bf16.gguf -f calib_train.txt -o shard-0.gguf \
-ngl 99 -c 512 -b 4096 -ub 4096 --parse-special --from-chunk 0 --chunks 1400
llama-imatrix -m Qwen3.8-27B-bf16.gguf --in-file shard-0.gguf,shard-1.gguf,... \
-o imatrix.gguf
Then, for AD-Q4_K:
llama-quantize --imatrix imatrix.gguf \
--tensor-type 'blk\.64\.=q5_k' \
--tensor-type 'blk\.([0-3]|5[2-9]|6[0-3])\.ffn_.*=q5_k' \
--tensor-type 'blk\.([4-9]|1[01])\.ffn_.*=q5_k' \
--tensor-type ffn_down=q4_k --tensor-type ffn_gate=q4_k --tensor-type ffn_up=q4_k \
--tensor-type attn_q=q4_k --tensor-type attn_gate=q5_k --tensor-type ssm_out=q5_k \
--tensor-type output=q6_k --tensor-type token_embd=iq4_xs \
Qwen3.8-27B-bf16.gguf Qwen3.8-27B-AD-Q4_K.gguf Q8_0
The rules for every other file are in its quantization log in the metrics repo.
Also in this repo
baseline/ holds the stock Q4_K_M, Q5_K_M and Q6_K mixes, built from the
same importance matrix and measured against the same reference. They are the
control: without them, the claim that a hand-assigned layout beats the standard
recipe at equal size has nothing to stand on. For actual use, take the AD-
file of the same size instead.
Model details
64 layers, hidden size 5120, feed-forward size 17408, vocabulary 248,320, context 262,144, no sliding window. Hybrid attention with an added gate and a state path. One multi token prediction head.
Needs a recent llama.cpp with qwen35 architecture support.
- Downloads last month
- -
1-bit
2-bit
3-bit
4-bit
6-bit
8-bit
Model tree for AtomicChat/Qwen3.8-27B-GGUF
Base model
Qwen/Qwen3.8-27B


