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
Safetensors
Model size
0.8B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for palette-lab/songgot-x-0.8b

Quantized
(260)
this model

Dataset used to train palette-lab/songgot-x-0.8b