Songgot (솑곳)

A Korean-first tiny agentic model for tool calling on the device, trained from scratch by Hanish Keloth (Palette). Apache 2.0.

Try it on the device: https://hanishkeloth.github.io/songgot/app/ (runs in the browser, works offline after the first load).

Numbers

Kakao FunctionChat-Bench SingleCall (500 Korean items, 5 tool conditions), exact match on function name and arguments, scorer in the repo. Comparators run with identical tools and queries in their own documented formats.

model params exact 4_random 4_close 8_random 8_close all name only
Songgot-M (2 epochs, v5 set) 126M 32.0 13.0 8.0 7.0 0.0 12.0 53.0
Songgot (6B tokens, 2 epochs, v7 set) 50M 40.0 33.0 22.0 30.0 13.0 27.6 69.4
Songgot-nano (1 epoch) 39M 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Needle 2 45M 0.0 0.0 0.0 0.0 0.0 0.0 0.0
FunctionGemma-270M 270M 3.0 5.0 1.0 1.0 1.0 2.2 36.2
Qwen3-0.6B 600M 48.0 49.0 45.0 37.0 37.0 43.2 70.8
Qwen3.5-0.8B 800M 51.0 48.0 41.0 52.0 34.0 45.2 73.6

Tokens per Hangul syllable on the same 100 queries: Songgot 0.90, Gemma 3 0.98, Qwen3 1.15, Needle 2 3.47.

Tokens per Hangul syllable

Call accuracy by condition

Pretraining loss

Status (2026-09-11 00:31)

Weights in this repo are Songgot, 6B tokens, 2 epochs, v7 set: 12 layers, about 50M parameters, pretrained on 8xH100 (Modal) on 6B tokens, post-trained on the v7 set (v6 plus a second teacher-synthesised round with confusable sibling tools), post-trained on the v2 tool-calling set. Call accuracy on FunctionChat-Bench SingleCall 27.6 percent (name only 69.4). GGUF exports (f16, Q8_0, Q4_K_M) are in this repo.

Format

<|system|>
[{"name": "set_alarm", "description": "μ•ŒλžŒμ„ μ„€μ •ν•©λ‹ˆλ‹€.", "parameters": {...}}]
<|user|>
내일 μ•„μΉ¨ 7μ‹œμ— μ•ŒλžŒ 맞좰쀘
<|call|>
{"name":"set_alarm","arguments":{"time":"07:00"}}<|end|>

Tokenizer: SentencePiece BPE, 32k, byte fallback (tokenizer.model). Use sentencepiece directly; the special tokens live inside the vocabulary.

Data and provenance

fineweb-edu sample-10BT (ODC-By), Korean Wikipedia 20231101.ko (CC BY-SA 3.0; this model card carries the attribution and share-alike notice for that text), glaive-function-calling-v2 (Apache 2.0), template-generated Korean tool calls (Apache 2.0, in the repo). No closed-model outputs. FunctionChat-Bench was never used for training.

Limits

Single-call tool selection and argument extraction only. No multi-turn, no tool results, no free chat. Small models are finicky with rare tools and paraphrased values; validate every call in application code.

Downloads last month
-
Safetensors
Model size
50.2M params
Tensor type
BF16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Datasets used to train palette-lab/songgot-12l

Space using palette-lab/songgot-12l 1