Evaluation

Base model vs Kila Coder

Same 100 held-out prompts, same settings, before and after training. We publish every number, including the ones that got worse.

MetricBase modelKila Coder
Answers with a code block
higher is better
99 of 100100 of 100
Answers that start with code
higher is better
33 of 100100 of 100
Answers with no code at all
lower is better
1 of 1000 of 100
Words per answer (mean)
lower is better
236.763.9
Words outside code (mean)
lower is better
135.30.1
Answers cut off at the token limit
lower is better
3 of 1000 of 100
Solidity prompts that compile
higher is better
11 of 3015 of 30
Robinhood Chain fact checks passed
higher is better
1 of 2015 of 20
HumanEval pass@1 (greedy)
higher is better
118 of 164120 of 164
HumanEval with the problem's imports added
higher is better
118 of 164120 of 164
Speed in Ollama, 4-bit build
Apple M5, 16 GB
Not measured yetabout 105 tokens/s

Both models ran in full precision (bf16) on an Apple M5 laptop with the Hugging Face transformers library, not in Ollama; the base model with its default system prompt, Kila Coder with its own. Kila Coder here is version 3; earlier versions are listed on the model card. The Solidity row means the code compiles, not that it is correct. Speed was measured once in Ollama with the 4-bit build (two runs of a 370-token answer, 106 tokens per second); other machines are not measured yet.

By category

Split by prompt type

CategoryPromptsStarts with code
Base
Starts with code
Kila Coder
Mean words
Base
Mean words
Kila Coder
General code5028 of 5050 of 50177.270.4
Solidity302 of 3030 of 30356.068.5
Robinhood Chain203 of 2020 of 20206.741.0

Method

How we tested

Prompts100 prompts kept out of training: 50 general coding prompts (30 from held-out OpenCodeInstruct rows, 20 written for this test across 10+ languages), 30 Solidity prompts and 20 Robinhood Chain prompts. We checked that none of them, or anything close to them, is in the training data.
SettingsGreedy decoding, up to 1024 new tokens, one answer per prompt, the model's own default system prompt.
CountingWords are split on spaces. Words outside code exclude fenced code blocks. An answer starts with code when its first characters are a code fence.
SolidityThe longest Solidity block in each answer is compiled with the official compiler (solc-js), using the newest release its pragma allows. OpenZeppelin Contracts 5.6.1 is available for imports. Compiling is not the same as being correct or safe.
Robinhood ChainSimple text checks against facts from the official docs, for example that a mainnet config uses chain ID 4663. They catch wrong facts, not bad code.
HumanEvalAll 164 problems from openai/openai_humaneval (MIT). The first Python block of each answer is run against the official tests with a 10 second limit, offline.
LimitsOne run on one machine with 100 prompts, so small differences mean little. The prompts were drafted with AI help and have not yet been reviewed by a person.