Instructions to use palette-lab/songgot-x-0.8b 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 palette-lab/songgot-x-0.8b 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 palette-lab/songgot-x-0.8b:Q4_K_M # Run inference directly in the terminal: llama cli -hf palette-lab/songgot-x-0.8b:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf palette-lab/songgot-x-0.8b:Q4_K_M # Run inference directly in the terminal: llama cli -hf palette-lab/songgot-x-0.8b: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 palette-lab/songgot-x-0.8b:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf palette-lab/songgot-x-0.8b: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 palette-lab/songgot-x-0.8b:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf palette-lab/songgot-x-0.8b:Q4_K_M
Use Docker
docker model run hf.co/palette-lab/songgot-x-0.8b:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use palette-lab/songgot-x-0.8b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "palette-lab/songgot-x-0.8b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "palette-lab/songgot-x-0.8b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/palette-lab/songgot-x-0.8b:Q4_K_M
- Ollama
How to use palette-lab/songgot-x-0.8b with Ollama:
ollama run hf.co/palette-lab/songgot-x-0.8b:Q4_K_M
- Unsloth Desktop
- Pi
How to use palette-lab/songgot-x-0.8b with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf palette-lab/songgot-x-0.8b: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": "palette-lab/songgot-x-0.8b:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use palette-lab/songgot-x-0.8b with Docker Model Runner:
docker model run hf.co/palette-lab/songgot-x-0.8b:Q4_K_M
- Lemonade
How to use palette-lab/songgot-x-0.8b with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull palette-lab/songgot-x-0.8b:Q4_K_M
Run and chat with the model
lemonade run user.songgot-x-0.8b-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use palette-lab/songgot-x-0.8b with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf palette-lab/songgot-x-0.8b: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 palette-lab/songgot-x-0.8b:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use palette-lab/songgot-x-0.8b with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf palette-lab/songgot-x-0.8b: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 "palette-lab/songgot-x-0.8b: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"
Songgot-X 0.8B
Line B of the Songgot project: built on an open base, not from scratch. Songgot-X is Qwen/Qwen3.5-0.8B (Apache 2.0) post-trained by Palette on the Songgot v10 tool-calling set (263,242 rows, one epoch) with the base model's own chat template and tool-call format. The from-scratch Songgot models live at palette-lab/songgot-12l, songgot-m and songgot-l; this repository exists so that a customer who needs the best call accuracy today can have it, with the lineage stated.
Result (v10 weights, measured 2026-09-15; every model scored with the same lenient parser)
FunctionChat-Bench SingleCall (Kakao, 500 Korean items, 5 tool conditions), exact match on function name and arguments
under the public scorer in github.com/hanishkeloth/songgot (eval/functionchat_exact.py), not the benchmark's GPT-4 judge.
The parser accepts a bare <function=...> block for every model alike.
| model | params | exact | 4_random | 4_close | 8_random | 8_close | all | name only |
|---|---|---|---|---|---|---|---|---|
| Kanana-2-1.3B-Instruct (Kakao) | 1.3B | 77.0 | 76.0 | 71.0 | 73.0 | 69.0 | 73.2 | 97.2 |
| Songgot-X 0.8B v10 (this model) | 0.8B | 74.0 | 68.0 | 65.0 | 66.0 | 64.0 | 67.4 | 93.6 |
| EXAONE-4.0-1.2B (LG) | 1.28B | 73.0 | 65.0 | 53.0 | 66.0 | 58.0 | 63.0 | 85.2 |
| Songgot-X 0.8B v8 (previous weights, 2026-09-13) | 0.8B | 67.0 | 66.0 | 60.0 | 62.0 | 54.0 | 61.8 | 94.8 |
| Qwen3.5-2B + the v8 rows (not released) | 2B | 66.0 | 65.0 | 61.0 | 60.0 | 54.0 | 61.2 | 93.8 |
| Qwen3.5-0.8B (the base, zero-shot) | 0.8B | 51.0 | 48.0 | 41.0 | 52.0 | 34.0 | 45.2 | 73.8 |
| Songgot 12L (from scratch) | 50M | 44.0 | 39.0 | 30.0 | 35.0 | 17.0 | 33.0 | 73.6 |
Kakao authored FunctionChat-Bench, so Kanana's figure may reflect in-distribution training. Standard error at these accuracies is about 2.1 points on 500 items. Kanana-2 is released under the Kanana Open License, which does not allow on-device redistribution; Songgot-X is the best Apache-2.0 model in this table.
v10 against the previous weights, item by item: 70 items fixed, 42 lost, 267 unchanged. Of v10's 163 misses, 131 pick the right tool with a wrong argument value (v8: 165), 19 pick a wrong tool (v8: 25), and 13 decline to call although a matching tool is offered (v8: 1). The name-only score fell 1.2 points for that last reason. The remaining argument misses concentrate on relative datetimes, on copying a text payload after an instruction prefix ("...세줘: 문장"), and on one 19xx year rewritten as 2026; those are the targets of the next round.
Run it offline
GGUF files in this repository: songgot-x-q4_k_m.gguf (505 MB) and songgot-x-q8_0.gguf (774 MB), for llama.cpp,
Ollama, LM Studio and the browser. Songgot Pocket (hanishkeloth.github.io/songgot/app) runs this model inside the
browser on desktop and Android with no server; pick "Songgot-X 0.8B" in the model selector. Palette Desktop,
Palette's native offline app, runs it as a local llama-server sidecar. The prompt format is the Qwen3.5 tool
template exactly as rendered by the tokenizer's chat template with tools=[...] and thinking off.
Measured in Pocket on 2026-09-15 with these weights (Chrome, Apple M5 Max, single thread, Q4_K_M): 2.0 to 2.2 s per request from prompt to parsed call, 742 to 764 prompt tokens, 28 to 41 generated, 13 to 21 tokens per second (the 2026-09-14 figure with the v8 weights was 3.5 s at 12.2 tokens per second on the same machine). The GGUF header is written without the converter's phantom 25th multi-token-prediction block (the defect that made the 2026-09-13 files unloadable). In browser runtimes keep the batch size small (64): the 248,320-entry vocabulary makes the logits buffer vocab x batch x 4 bytes.
Training data (v10)
- 175,000 rows sampled from the Songgot v8 set (palette-lab/songgot-tools-ko): Korean tool-calling pairs written by Palette's own open teacher (Palette-K-Midm) from invented tool schemas and verified by a second pass; no closed model produced any label.
- 31,307 targeted synthetic rows (weight 2) written by the same teacher and checked by deterministic rules, aimed at the four failure classes of the v8 model: copying names verbatim, from/to and sender/receiver roles, Korean number words, two-digit years.
- 10,861 human Korean voice-assistant requests from Amazon MASSIVE 1.1 ko-KR train split (CC BY 4.0), mapped onto the massive-agents function declarations (weight 2). The MASSIVE dev and test splits were not used.
- KoSGD dialogue-state rows.
Single-tool rows receive distractor tools (1, 4 or 8; name-related or random) so the training conditions mirror the benchmark; 30 percent are restyled and 5 percent become negatives. Benchmark tool names and queries are excluded by an assertion at assembly time. Details, the recipe and every negative result are in the Songgot paper (hanishkeloth.github.io/songgot).
Usage
Standard Qwen3.5 chat template with tools=[...]; thinking off. Tool calls come back as
<tool_call><function=NAME><parameter=KEY>VALUE</parameter>...</function></tool_call>; booleans and numbers are JSON-typed.
When no offered tool fits, the model answers in Korean that no tool matches; stop generation at </tool_call> or at the
end of the first line.
Licence and lineage
Apache 2.0, inheriting Qwen3.5-0.8B's Apache 2.0. The base model was trained by Alibaba; Palette trained the post-training stage only. MASSIVE is CC BY 4.0 (Amazon). Answers are generated by an AI model (AI 기본법 labelling).
- Downloads last month
- 310