nethunter2023 commited on
Commit
ff59bb3
Β·
verified Β·
1 Parent(s): 083dd6f

Add code-model baselines, confidence intervals, and paired test

Browse files
Files changed (1) hide show
  1. README.md +50 -17
README.md CHANGED
@@ -12,11 +12,9 @@ pipeline_tag: text-generation
12
 
13
  # kernel-coder-1.5b
14
 
15
- A 1.5B code model for writing **C in Linux kernel style**, and Python.
16
-
17
- Given a description and a signature it produces kernel C following the
18
- conventions enforced in kernel review: tab indentation, brace placement,
19
- declarations before statements, `-ERRNO` returns, and `goto` label unwinding.
20
 
21
  ## Usage
22
 
@@ -41,23 +39,58 @@ print(tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True))
41
  Chat template ships with the tokenizer. Greedy decoding; the answer is the last
42
  fenced code block.
43
 
44
- ## Results
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
- Kernel C style, measured with the kernel's own `checkpatch.pl` on 40 held-out
47
- tasks. `reference` is the kernel's own implementation of the same functions.
 
 
48
 
49
- | | base | this model | reference |
50
- |---|---|---|---|
51
- | checkpatch defects / line ↓ | 0.872 | **0.020** | 0.017 |
52
- | checkpatch errors, mean ↓ | 5.58 | **0.00** | 0.00 |
53
- | style score ↑ | 0.211 | **0.968** | 0.977 |
54
 
55
- Python, MBPP test (200 problems):
56
 
57
- | | base | this model |
58
  |---|---|---|
59
- | pass@1 | 0.420 | 0.420 |
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
- The kernel-side gains are stylistic; Python correctness is unchanged from base.
 
 
 
 
 
 
 
 
 
 
 
62
 
63
  Base model: [`Qwen/Qwen2.5-Coder-1.5B-Instruct`](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct)
 
12
 
13
  # kernel-coder-1.5b
14
 
15
+ A 1.5B code model that writes **C in Linux kernel style** β€” tab indentation,
16
+ brace placement, declarations before statements, `-ERRNO` returns, `goto` label
17
+ unwinding β€” while keeping the base model's Python ability.
 
 
18
 
19
  ## Usage
20
 
 
39
  Chat template ships with the tokenizer. Greedy decoding; the answer is the last
40
  fenced code block.
41
 
42
+ ## Results β€” kernel C style
43
+
44
+ **N = 40** held-out kernel-doc tasks, greedy decoding, scored with the kernel's
45
+ own `scripts/checkpatch.pl --no-tree --file --strict`, reported as weighted
46
+ defects per line: `(2*errors + warnings + 0.5*checks) / lines`. All models were
47
+ given the identical prompts and scored by identical code.
48
+
49
+ | | params | defects / line ↓ | 95% CI | checkpatch errors ↓ | idiom ↑ |
50
+ |---|---|---|---|---|---|
51
+ | deepseek-coder-1.3b-instruct | 1.3B | 0.679 | Β±0.196 | 4.43 | 0.738 |
52
+ | Qwen2.5-Coder-3B-Instruct | 3B | 0.750 | Β±0.182 | 4.78 | 0.755 |
53
+ | Qwen2.5-Coder-1.5B-Instruct *(base)* | 1.5B | 0.872 | Β±0.185 | 5.58 | 0.664 |
54
+ | **kernel-coder-1.5b** | **1.5B** | **0.020** | **Β±0.012** | **0.00** | **0.995** |
55
+ | *the kernel's own code* | β€” | *0.017* | β€” | *0.00* | *1.000* |
56
 
57
+ Against `Qwen2.5-Coder-3B-Instruct` β€” twice the parameters β€” the paired
58
+ difference is **βˆ’0.73 defects/line**, 95% CI [βˆ’0.91, βˆ’0.55], t = βˆ’7.87, lower on
59
+ **33 of 40** tasks. No general-purpose code model tested comes close, and this
60
+ model sits within noise of the kernel's own source.
61
 
62
+ ## Results β€” Python
 
 
 
 
63
 
64
+ MBPP `test`, 200 problems, greedy, executing the dataset's assertions.
65
 
66
+ | | params | pass@1 |
67
  |---|---|---|
68
+ | deepseek-coder-1.3b-instruct | 1.3B | 0.250 |
69
+ | **kernel-coder-1.5b** | 1.5B | **0.420** |
70
+ | Qwen2.5-Coder-1.5B-Instruct *(base)* | 1.5B | 0.420 |
71
+ | Qwen2.5-Coder-3B-Instruct | 3B | 0.535 |
72
+
73
+ Python is unchanged from base β€” the kernel specialisation cost nothing, and
74
+ gained nothing, here. A 3B model is still better at general Python.
75
+
76
+ If you re-run MBPP, strip the trailing `print(...)` / `assert` / `__main__`
77
+ statements the model appends after the function before executing. They run at
78
+ import time and abort otherwise-correct solutions; leaving them in costs roughly
79
+ 3 points.
80
+
81
+ ## Limitations
82
 
83
+ - **The kernel gains are stylistic and structural, not functional.** Kernel code
84
+ cannot be executed in a sandbox, so nothing here measures semantic
85
+ correctness. A well-formatted stub and a working implementation score alike.
86
+ Review output before use.
87
+ - **A large share of the checkpatch improvement is indentation.** The base model
88
+ indents kernel C with spaces; this one uses tabs, and checkpatch flags every
89
+ space-indented line.
90
+ - **Roughly half of kernel completions** leave part of the body as placeholder
91
+ comments rather than a full implementation β€” a rate unchanged from base.
92
+ - **N = 40** on the kernel evaluation. The margin over the baselines is large
93
+ relative to that, but finer distinctions would need a bigger set.
94
+ - Training methodology is not published.
95
 
96
  Base model: [`Qwen/Qwen2.5-Coder-1.5B-Instruct`](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct)