Instructions to use QinEmPeRoR93/nassila-sanad-9b 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 QinEmPeRoR93/nassila-sanad-9b 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 QinEmPeRoR93/nassila-sanad-9b:Q4_K_M # Run inference directly in the terminal: llama cli -hf QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf QinEmPeRoR93/nassila-sanad-9b:Q4_K_M # Run inference directly in the terminal: llama cli -hf QinEmPeRoR93/nassila-sanad-9b: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 QinEmPeRoR93/nassila-sanad-9b:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf QinEmPeRoR93/nassila-sanad-9b: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 QinEmPeRoR93/nassila-sanad-9b:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
Use Docker
docker model run hf.co/QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use QinEmPeRoR93/nassila-sanad-9b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "QinEmPeRoR93/nassila-sanad-9b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "QinEmPeRoR93/nassila-sanad-9b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
- Ollama
How to use QinEmPeRoR93/nassila-sanad-9b with Ollama:
ollama run hf.co/QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
- Unsloth Studio
How to use QinEmPeRoR93/nassila-sanad-9b 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 QinEmPeRoR93/nassila-sanad-9b 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 QinEmPeRoR93/nassila-sanad-9b to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for QinEmPeRoR93/nassila-sanad-9b to start chatting
- Pi
How to use QinEmPeRoR93/nassila-sanad-9b with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf QinEmPeRoR93/nassila-sanad-9b:Q4_K_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": "QinEmPeRoR93/nassila-sanad-9b:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use QinEmPeRoR93/nassila-sanad-9b with Docker Model Runner:
docker model run hf.co/QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
- Lemonade
How to use QinEmPeRoR93/nassila-sanad-9b with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
Run and chat with the model
lemonade run user.nassila-sanad-9b-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use QinEmPeRoR93/nassila-sanad-9b with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf QinEmPeRoR93/nassila-sanad-9b: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 QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use QinEmPeRoR93/nassila-sanad-9b with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf QinEmPeRoR93/nassila-sanad-9b: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 "QinEmPeRoR93/nassila-sanad-9b: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"
Nassila Sanad 9B
Full-text claim grounding · FT-6 · sole Sanad tier
English full-text only · ship verdicts come from the verifier, not the model
What this is
Local GGUF for Sanad in Nassila: given a manuscript passage and source excerpts, the model returns structured JSON (claims, verdicts, verbatim quotes). The app’s deterministic verifier always owns the final ship decision.
| Checkpoint | FT-6 · QLoRA on l3_grounding_train_v119.jsonl |
| Focus | Atomic / multi-claim splits (FT-5 gold was nearly always 1 claim/row) |
| Status | Active sole tier — replaces FT-5 (v117) |
| Language | English train + eval only (Arabic L3 not claimed yet) |
Retired abstract-era siblings (legacy only):
12b ·
e4b
Download
Start here: nassila-sanad-9b-q4_k_m.gguf — best default for LM Studio / Nassila.
Two families, same FT-6 trunk:
| Family | Use when | Naming |
|---|---|---|
| Default | LM Studio, broad compatibility | nassila-sanad-9b-q*.gguf |
| MTP | llama-server speculative decode (--spec-type draft-mtp) |
nassila-sanad-9b-mtp-q*.gguf |
Default files were converted with llama.cpp --no-mtp (no phantom MTP block). MTP files keep the real Qwen3.5 draft head — prefer a recent llama.cpp; LM Studio may not load them.
Default (no MTP)
| Quant | File | ~Size | Fits in |
|---|---|---|---|
| Q2_K | …-q2_k.gguf |
3.6 GB | 4 GB VRAM / 8 GB RAM |
| Q3_K_M | …-q3_k_m.gguf |
4.3 GB | 6 GB VRAM / 8 GB RAM |
| Q4_K_M | …-q4_k_m.gguf |
5.2 GB | 8 GB VRAM / 12 GB RAM |
| Q5_K_M | …-q5_k_m.gguf |
6.0 GB | 8 GB VRAM / 16 GB RAM |
| Q6_K | …-q6_k.gguf |
6.9 GB | 10 GB+ VRAM |
| Q8_0 | …-q8_0.gguf |
8.9 GB | 12 GB+ VRAM |
MTP (speculative)
| Quant | File | ~Size |
|---|---|---|
| Q2_K | …-mtp-q2_k.gguf |
3.9 GB |
| Q3_K_M | …-mtp-q3_k_m.gguf |
4.7 GB |
| Q4_K_M | …-mtp-q4_k_m.gguf |
5.8 GB |
| Q5_K_M | …-mtp-q5_k_m.gguf |
6.6 GB |
| Q6_K | …-mtp-q6_k.gguf |
7.6 GB |
| Q8_0 | …-mtp-q8_0.gguf |
9.8 GB |
Tip: Nassila / LM Studio → default Q4_K_M.
llama-server+ MTP → mtp-Q4_K_M or mtp-Q6_K.
Quick start
Nassila (recommended)
1.8.0+ · Settings → Passage grounding → runner (LM Studio / Ollama / vLLM / Custom) → model nassila-sanad-9b.
Qwen3.5 thinks by default. Nassila handles that via no-thinking template guidance, max_tokens: 2048, and in-app stripQwenThinkingTraces.
One-liner (llama-server)
llama-server \
-m nassila-sanad-9b-q4_k_m.gguf \
--host 127.0.0.1 --port 1234 \
--ctx-size 8192 --n-gpu-layers 99 \
--jinja \
--chat-template-file qwen3.5-no-thinking.jinja
Chat template — qwen3.5-no-thinking.jinja (required for clean JSON)
Without this, the model emits a thinking trace first and the JSON often truncates.
{% set enable_thinking = false %}
{%- for message in messages %}
{%- if message['role'] == 'system' %}
{{- '<|im_start|>system\n' + message['content'] + '<|im_end|>\n' }}
{%- elif message['role'] == 'user' %}
{{- '<|im_start|>user\n' + message['content'] + '<|im_end|>\n' }}
{%- elif message['role'] == 'assistant' %}
{{- '<|im_start|>assistant\n' + message['content'] + '<|im_end|>\n' }}
{%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}
{{- '<|im_start|>assistant\n' }}
{%- endif %}
Also documented in the Nassila Sanad setup guide (llama.cpp tab).
Ollama
Needs Ollama 0.5+ and a public Hub repo:
ollama pull huggingface.co/QinEmPeRoR93/nassila-sanad-9b:Q4_K_M
If output truncates, add a Modelfile TEMPLATE that disables thinking, or use the llama-server path above.
MTP serve (llama-server)
llama-server \
-m nassila-sanad-9b-mtp-q4_k_m.gguf \
--host 127.0.0.1 --port 1234 \
--ctx-size 8192 --n-gpu-layers 99 \
--spec-type draft-mtp \
--jinja \
--chat-template-file qwen3.5-no-thinking.jinja
Output shape
Single JSON object, e.g.:
{
"claims": [
{
"claim": "...",
"verdict": "supported",
"sourceQuotes": ["..."],
"rationale": ["..."],
"hasNumericClaim": false
}
],
"overallVerdict": "support",
"overallRationale": ["..."]
}
Eval (FT-6 · seeds 42 / 43 / 44)
Means across three seeds. Soft vs written ≥0.99 bars noted where relevant.
| Holdout | Verdict / overall | Parse | Quote | false_supported | Notes |
|---|---|---|---|---|---|
| v2 (250 rows) | 0.958 | 0.960 | 0.988 | 0.000 | false_supported ↓ vs FT-5’s 0.046 |
| Compound (93 multi-claim) | 0.903 | 0.996 | 0.970 | 0.104 | Split / exact 0.982 · omit 0.009 · bundle 0.018 |
v2 detail — per-verdict accuracy
| Metric | Mean |
|---|---|
| Verdict accuracy | 0.958 |
| JSON parse rate | 0.960 |
| Quote validity | 0.988 |
| false_supported | 0.000 |
| Supported | 0.956 |
| Contradicted | 0.985 |
| Not-in-source | 1.000 |
| Weak | 0.800 |
| Insufficient evidence | 0.933 |
Soft vs ≥0.99: parse 0.96, quote 0.988.
Compound detail — multi-claim structure gates
| Metric | Mean |
|---|---|
| Multi-claim split rate | 0.982 |
| Exact atomic claim count | 0.982 |
| Bundled claim rate | 0.018 |
| Omitted claim rate | 0.009 |
| Overall verdict accuracy | 0.903 |
| JSON parse rate | 0.996 |
| Quote validity | 0.970 |
| false_supported | 0.104 |
Structure gates (split / exact / omit / bundle / overall ≥ 0.90) pass. Treat compound false_supported and quote as soft — validate on private manuscripts.
Related artifacts
| Artifact | Link |
|---|---|
| Desktop app | Nassila |
Limitations
- Advisory grounding only — ship verdicts always come from the deterministic verifier.
- v2 parse / quote sit slightly under the written ≥0.99 bars; compound
false_supported~0.10. - Requires thinking off (
enable_thinking=falseor Nassila 1.8.0+ handling). - Not bundled in the Nassila installer.
- English-only train/eval; Arabic L3 is unvalidated.
Base model & license
- Base:
Qwen/Qwen3.5-9B - Fine-tune weights: Apache-2.0
- Base model subject to the Qwen license
Sanad grounds · Nassila verifies
- Downloads last month
- 584
2-bit
3-bit
4-bit
5-bit
6-bit
8-bit