Instructions to use AtomicChat/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf AtomicChat/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf AtomicChat/Ling-3.1-flash-Uncensored-GGUF:Q4_K_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/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf AtomicChat/Ling-3.1-flash-Uncensored-GGUF:Q4_K_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/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf AtomicChat/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M
Use Docker
docker model run hf.co/AtomicChat/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use AtomicChat/Ling-3.1-flash-Uncensored-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "AtomicChat/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/AtomicChat/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M
- Ollama
How to use AtomicChat/Ling-3.1-flash-Uncensored-GGUF with Ollama:
ollama run hf.co/AtomicChat/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use AtomicChat/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use AtomicChat/Ling-3.1-flash-Uncensored-GGUF with Docker Model Runner:
docker model run hf.co/AtomicChat/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M
- Lemonade
How to use AtomicChat/Ling-3.1-flash-Uncensored-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull AtomicChat/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Ling-3.1-flash-Uncensored-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use AtomicChat/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use AtomicChat/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-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/Ling-3.1-flash-Uncensored-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 Ling 3.1 flash Without Refusals Locally
inclusionAI's refusal behaviour projected out of the released weights, baked into GGUF builds and measured against the original.
- On held-out JailbreakBench prompts refusals fall from 96.3% to 0%, and with thinking on from 10 of 10 to none. MMLU stays where it was: 85.0% before, 85.8% after (inside the noise). Tool calls and long context are unaffected; no empty or looping replies.
- The refusal sits in the attention outputs as much as in the experts: editing only the experts and the shared expert left most English refusals in place, so the edit covers every matrix that writes into the residual stream.
- Same layout and importance matrix as our Ling 3.1 flash quants; each file is the size of the original build with the same name.
The builds
| Build | On disk | Mean KLD | Same top-1 |
|---|---|---|---|
AD-Q4_K_M |
354.4 GB | 0.0154 | 96.22% |
AD-IQ2_M |
218.1 GB | 0.0623 | 92.56% |
AD-Q5_K_M |
400.2 GB | 0.0125 | 96.62% |
KLD and top-1 are against the original, unmodified BF16 model on our
held-out neutral text (144 chunks of 4096 tokens), so they hold the edit and the
quantization together. For scale, our plain AD-Q4_K_M of the original model is
0.0111 and 96.86%: the edit itself adds about 0.004.
Running it
hf download AtomicChat/Ling-3.1-flash-Uncensored-GGUF --include "AD-Q4_K_M/*" --local-dir .
llama-server -m AD-Q4_K_M/Ling-3.1-flash-Uncensored-AD-Q4_K_M-00001-of-00009.gguf -ngl 99 -c 32768 --jinja
The chat template is inside every file. Thinking is on by default; put
detailed thinking off in the system prompt to turn it off. Memory: the file
plus about 0.5 GB per conversation and 10 KB per token of context.
How it was made
- Direction. Difference of means of the residual stream at the last prompt token, thinking off, chat template applied: 544 harmful against 544 harmless prompts, on the released weights. The component along the harmless mean is removed. One direction, measured at the input of block 43 of 72.
- Edit.
W' = W - 1.25 r rᵀWon all 213 matrices that write into the residual stream: the attention output of every block (63 linear, 9 latent), the down projections of the 4 dense blocks, of the shared expert and of all 512 experts in the 68 MoE blocks, and the token embeddings. The router and the multi-token-prediction head are untouched. - Choice. The row, the set of edited matrices and the scale were picked in a screen of variants on validation prompts (writer sets, rows, scales, one direction per block, English-only directions), with edits of the same shape along a random direction as the control.
- Bake. The same edit applied to the BF16 weights in f32 and rounded once, then quantized with the importance matrix and layout of our original quants.
What changed, and what did not
Original against this edit on the released weights (Q8_0 with the edit as an adapter). The refusal sets are held-out prompts never used to pick anything; MMLU, the same 500 questions throughout.
| Original | This edit | Random direction, same size | |
|---|---|---|---|
| JailbreakBench harmful behaviours (81), refused | 96.3% | 0.0% | 95.1% |
| XSTest safe prompts (250), refused | 2.8% | 0.4% | 2.8% |
| With thinking (10 prompts, 3072 tokens), refused | 10 of 10 | 0 of 10 | - |
| Thinking left unclosed at 3072 tokens | 0 of 10 | 0 of 10 | - |
| Empty or looping replies | 0 | 0 | 0 |
| MMLU, 500 questions | 85.0% | 85.8% (McNemar p = 0.48) | 85.0% |
| Tool calls (20) | 20/20 valid | 20/20 valid | - |
| Needle at 30k tokens (3 depths) | 3/3 | 3/3 | - |
The baked files themselves, on the same JailbreakBench and XSTest prompts:
AD-Q4_K_M refused 0.0% and 0.0%, AD-IQ2_M 2.5% and 0.0%.
Validation prompts (104 harmful, 104 harmless), replies of up to 64 tokens, the check of the recipe on the released weights: 98.1% → 2.9% refused, none of the harmless prompts, a random direction 97.1%.
Refusal is counted by the opening of the reply, so it is indicative, not a judge.
Limitations
- MMLU on 500 questions and thinking on 10 prompts: enough to see a large change, not a small one.
- The refusal count reads the opening of each reply; a soft refusal phrased as an answer would be missed.
- Refusals are measured on English prompts.
Responsible use
This model has its learned refusal behaviour removed, so it will answer requests the original declines. Nothing about it makes the output safe, correct or lawful, and any deployment needs its own access controls and policy enforcement.
License and credits
MIT, as the original. Base model Ling 3.1 flash by inclusionAI. Direction, edit, quantization and evaluation by AtomicChat. The method follows Arditi et al., Refusal in Language Models Is Mediated by a Single Direction (2024).
- Downloads last month
- 90
2-bit
4-bit
5-bit
Model tree for AtomicChat/Ling-3.1-flash-Uncensored-GGUF
Base model
inclusionAI/Ling-3.1-flash

