Instructions to use iapp/OpenThai-SystemOne-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 iapp/OpenThai-SystemOne-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 iapp/OpenThai-SystemOne-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf iapp/OpenThai-SystemOne-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 iapp/OpenThai-SystemOne-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf iapp/OpenThai-SystemOne-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 iapp/OpenThai-SystemOne-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf iapp/OpenThai-SystemOne-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 iapp/OpenThai-SystemOne-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf iapp/OpenThai-SystemOne-GGUF:Q4_K_M
Use Docker
docker model run hf.co/iapp/OpenThai-SystemOne-GGUF:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use iapp/OpenThai-SystemOne-GGUF with Ollama:
ollama run hf.co/iapp/OpenThai-SystemOne-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use iapp/OpenThai-SystemOne-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf iapp/OpenThai-SystemOne-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": "iapp/OpenThai-SystemOne-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use iapp/OpenThai-SystemOne-GGUF with Docker Model Runner:
docker model run hf.co/iapp/OpenThai-SystemOne-GGUF:Q4_K_M
- Lemonade
How to use iapp/OpenThai-SystemOne-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull iapp/OpenThai-SystemOne-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.OpenThai-SystemOne-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use iapp/OpenThai-SystemOne-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 iapp/OpenThai-SystemOne-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 iapp/OpenThai-SystemOne-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use iapp/OpenThai-SystemOne-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf iapp/OpenThai-SystemOne-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 "iapp/OpenThai-SystemOne-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"
OpenThai-SystemOne — GGUF
OpenThai-SystemOne is an open Thai + English System One decision model: one forward
pass answers typed questions (choice over up to 255 options, ordinal score, yes/no noul) about a text / JSON state with
calibrated probabilities, no text generation. It is a Qwen3.5-0.8B text tower (Thai continued pre-training) plus a 256-slot
decision head. This repo is a quantization of v0.3 (commit f3709948).
What is quantized: the tower (all Linear layers and the token embeddings, at the GGUF file's level). The 256-slot decision head and the per-type temperatures stay in fp32 (head.safetensors). Quantization therefore only perturbs the hidden state the head reads.
llama.cpp runs the tower and returns its final hidden states (embedding=True, pooling_type=NONE); the included Python client
applies the decision head on top, so answers are identical in shape to the PyTorch model.
Files
| file | size | accuracy (macro, public / Thai, bf16 original = 74.3 / 80.1) |
|---|---|---|
OpenThai-SystemOne-v0.3-F16.gguf |
1517 MB | public / Thai macro 74.2 / 80.2 |
OpenThai-SystemOne-v0.3-BF16.gguf |
1517 MB | same tower weights as F16, stored as bf16 (not scored separately) |
OpenThai-SystemOne-v0.3-Q8_0.gguf |
812 MB | public / Thai macro 74.1 / 80.0 |
OpenThai-SystemOne-v0.3-Q6_K.gguf |
630 MB | public / Thai macro 74.1 / 80.0 |
OpenThai-SystemOne-v0.3-Q5_K_M.gguf |
578 MB | public / Thai macro 74.1 / 80.1 |
OpenThai-SystemOne-v0.3-Q4_K_M.gguf |
529 MB | public / Thai macro 73.6 / 79.7 |
OpenThai-SystemOne-v0.3-Q4_0.gguf |
501 MB | public / Thai macro 73.8 / 79.5 |
head.safetensors, head_config.json, tokenizer |
1 MB + 20 MB | decision head (fp32) + the tokenizer with the `< |
openthai_systemone/ |
– | the client code (gguf.py = llama.cpp backend) |
Usage
pip install llama-cpp-python torch transformers safetensors pydantic # CMAKE_ARGS="-DGGML_CUDA=on" or "-DGGML_METAL=on" for GPU
huggingface-cli download iapp/OpenThai-SystemOne-GGUF --local-dir openthai-gguf \
--include "*Q4_K_M.gguf" "head*" "tokenizer*" "openthai_systemone/*"
import sys; sys.path.insert(0, "openthai-gguf")
from openthai_systemone.gguf import GGUFSystemOneClient
c = GGUFSystemOneClient("openthai-gguf/OpenThai-SystemOne-v0.3-Q4_K_M.gguf") # n_gpu_layers=-1 by default
r = c.system_one("ร้านนี้อาหารอร่อยมาก แต่รอนานเกือบชั่วโมง พนักงานไม่สนใจลูกค้าเลย", {
"sentiment": {"type": "choice", "instructions": "ความรู้สึกของข้อความ", "criteria": {"บวก": None, "ลบ": None, "กลาง": None}},
"urgent": {"type": "noul", "instructions": "ต้องรีบแก้ไขหรือไม่"},
"stars": {"type": "score", "instructions": "ให้ดาว", "criteria": ["1", "2", "3", "4", "5"]}})
print(r.answers["sentiment"].choice, r.answers["sentiment"].probabilities)
The GGUF alone in llama-cli / llama-server is only the tower: its LM head is the tied input embedding, not the decision head,
so generated text is meaningless. Use the client (or read hidden states with --embeddings --pooling none and apply
head.safetensors yourself: softmax((h @ W.T + b) / exp(log_temperature[qtype])) over the first k slots + slot 255).
Measured on an H100 (llama-cpp-python 0.3.35, CUDA): ~35 ms per 3-question Thai decision for every level.
Accuracy of Q4_K_M vs the bf16 original (same records, single option order, first 800 per set)
| subset | bf16 original | this | Δ |
|---|---|---|---|
| public 13-subset bench | |||
| aegis2 (noul) | 83.2 | 83.2 | +0.0 |
| boolq (noul) | 79.7 | 78.7 | -1.0 |
| civil_comments (noul) | 79.0 | 79.3 | +0.3 |
| helpsteer2 (score) | 41.6 | 42.0 | +0.4 |
| massive-de-DE (choice) | 88.3 | 86.6 | -1.7 |
| massive-en-US (choice) | 88.3 | 88.0 | -0.3 |
| multinli (choice) | 89.0 | 87.0 | -2.0 |
| paws (noul) | 94.0 | 93.6 | -0.4 |
| pubmedqa (choice) | 64.0 | 63.2 | -0.8 |
| squad2 (noul) | 89.3 | 86.6 | -2.7 |
| summeval-consistency (score) | 75.0 | 75.0 | +0.0 |
| summeval-relevance (score) | 21.7 | 21.7 | +0.0 |
| vitaminc-dev (choice) | 72.5 | 72.1 | -0.3 |
| macro, public 13-subset bench | 74.3 | 73.6 | -0.7 |
| Thai held-out / eval sets | |||
| banking77 (choice) | 59.1 | 59.2 | +0.1 |
| contrastive_th (choice) | 80.7 | 80.4 | -0.3 |
| contrastive_th (noul) | 83.5 | 83.1 | -0.4 |
| contrastive_th (score) | 78.6 | 78.6 | +0.0 |
| massive_th (choice) | 90.6 | 90.1 | -0.5 |
| prachathai (choice) | 98.3 | 98.1 | -0.2 |
| prachathai (noul) | 93.4 | 93.4 | -0.1 |
| sib200_th (choice) | 77.9 | 76.5 | -1.5 |
| wisesight (choice) | 48.9 | 49.6 | +0.8 |
| wongnai (score) | 64.5 | 63.9 | -0.6 |
| xlam_tools (choice) | 99.4 | 99.4 | +0.0 |
| xnli_th (choice) | 79.8 | 77.9 | -1.9 |
| xnli_th (noul) | 86.8 | 85.5 | -1.2 |
| macro, Thai held-out / eval sets | 80.1 | 79.7 | -0.5 |
Notes
- Scores are single-option-order accuracy on the first 800 records of each set (
scripts/06_eval.py --limit 800), the same records for the original and the quantization.scoresubsets report exact level accuracy. - Base model, data, training and the full benchmark tables: iapp/OpenThai-SystemOne.
- License Apache-2.0 (same as the base). Built by iApp Technology / OpenThaiGPT.
- Downloads last month
- 65
4-bit
5-bit
6-bit
8-bit
16-bit