|
Download README.md from Thox-ai/ThoxEdge-RustCoder-0.5B: direct link, hf CLI and curl.
- Browser
- Download file 4.83 kB
-
https://huggingface.co/Thox-ai/ThoxEdge-RustCoder-0.5B/resolve/main/README.md
- Command line
-
hf download hf://Thox-ai/ThoxEdge-RustCoder-0.5B/README.md
-
curl -L -o README.md https://huggingface.co/Thox-ai/ThoxEdge-RustCoder-0.5B/resolve/main/README.md
4.83 kB
| base_model: Qwen/Qwen2.5-Coder-0.5B-Instruct | |
| license: apache-2.0 | |
| pipeline_tag: text-generation | |
| datasets: | |
| - Fortytwo-Network/Strandset-Rust-v1 | |
| language: | |
| - en | |
| tags: | |
| - thox | |
| - rust | |
| - code | |
| - trl | |
| - sft | |
| # ThoxEdge-RustCoder-0.5B | |
| A Rust-leaning fine-tune of `Qwen/Qwen2.5-Coder-0.5B-Instruct`, trained by THOX.ai on | |
| the Apache-2.0 `Fortytwo-Network/Strandset-Rust-v1` corpus. | |
| **Both the base and this model are Apache-2.0.** Nothing here is derived from, | |
| initialised from, or distilled out of any Gemma-licensed Rust model β see | |
| [the lane doc](https://github.com/ttracx/thoxllm-factory/blob/main/docs/THOX_RUST_CODER.md) | |
| for why that mattered. | |
| ## What it is, and what it is not | |
| It is a 0.5B model. It is **not** a strong Rust coder, and no number below should be | |
| read as claiming otherwise. It exists to serve cheap Rust completion in ThoxRoute's | |
| lowest tier and to establish whether the recipe moves the needle at all before the | |
| same recipe is spent on a 1.5B. | |
| **It does not fit THOX's 512 MB devices.** The GGUF ladder for this architecture spans | |
| only 260 MB β Q2_K still costs 415 MB β because `vocab_size` 151,936 against | |
| `hidden_size` 896 puts 27.6% of params in an embedding whose row length is not | |
| divisible by the 256-wide K-quant super-block, so it never quantizes down. This is a | |
| hosted / desktop model. | |
| ## Evaluation | |
| MultiPL-E `humaneval-rs`, 156 problems, **executed**: each generation is assembled | |
| into a program, compiled with `rustc`, and its asserts run. Greedy decoding, so the | |
| delta is not sampling noise. | |
| Both models were scored **in the same job**, so the comparison cannot drift between | |
| runs. | |
| | model | completion mode | chat mode | | |
| |---|---|---| | |
| | `Qwen/Qwen2.5-Coder-0.5B-Instruct` (base) | 21.15% (33/156) | 25.64% (40/156) | | |
| | **`Thox-ai/ThoxEdge-RustCoder-0.5B`** | **25.64%** (40/156) | **28.21%** (44/156) | | |
| | delta | **+4.49 pp** | **+2.57 pp** | | |
| The fine-tune improves on its base in both prompting modes, and the best available | |
| configuration moves from 25.64% (base, chat) to **28.21%** (tuned, chat) β a net | |
| **+2.57 pp**, or four more HumanEval-Rust problems solved. | |
| **Noise floor: about Β±1 problem (Β±0.64 pp).** An earlier run of the identical base on | |
| different hardware scored 20.51% in completion mode against 21.15% here, despite greedy | |
| decoding β GPU reductions are not bit-identical across flavors. The +4.49 pp | |
| (7 problems) and +2.57 pp (4 problems) deltas both clear that, but anything under about | |
| 1.5 pp from this harness should be treated as a tie. | |
| Assembly is deliberately generous β a body-only answer and a whole-function answer are | |
| both attempted, and the problem passes if either works. **These numbers are therefore | |
| not comparable to published MultiPL-E leaderboards.** The protocol is identical for | |
| both models, so the *delta* between the rows is the measurement. | |
| ## Training | |
| | | | | |
| |---|---| | |
| | Method | LoRA r=32, Ξ±=64, attention + MLP, merged into the base | | |
| | Corpus | Strandset-Rust-v1, filtered to the six code-*producing* categories (74,606 of 191,008 rows) | | |
| | Steps | 1200 at batch 16, max_length 1024 | | |
| | LR | 2e-4, cosine, 30 warmup | | |
| | Hardware | 1Γ L40S | | |
| The ~117k rows dropped emit English *about* Rust β docstrings, naming, summaries, | |
| review. Training them would spend the step budget on describing code rather than | |
| writing it. | |
| ## Prompting it | |
| Ask for a complete function body in plain terms β for example *"Write the complete body | |
| of the Rust function below."* | |
| **Do not** prompt it with *"Complete the Rust code. Output only the missing code."* | |
| That phrasing was the `code_completion` instruction across 14,527 training rows whose | |
| targets are short fill-in-the-middle fragments, so the model will answer it with a | |
| fragment β sometimes a bare identifier. Measured: that exact wording scored **2.56%** | |
| where the recommended wording scores 28.21%. The training instruction has since been | |
| reworded to name both sides of the gap, but *this* checkpoint predates that fix and | |
| retains the sensitivity. | |
| ## Known limitations in this build | |
| - Trained with a renderer that placed the `rationale` / `bug_description` output fields | |
| **inside** the ```rust fence, affecting ~53% of rows across the refactoring, | |
| optimization and bug-detection categories. Fixed in `tools/train_thox_rustcoder.py` | |
| after this run. It did **not** cause any measured regression β that was the prompt | |
| collision above β but a rerun should still carry the fix. | |
| - It is a 0.5B. 28.21% pass@1 means it fails roughly seven of every ten | |
| HumanEval-Rust problems. | |
| ## Attribution | |
| Training data: [`Fortytwo-Network/Strandset-Rust-v1`](https://huggingface.co/datasets/Fortytwo-Network/Strandset-Rust-v1), | |
| Apache-2.0 β synthetic Rust generated from idioms mined across 2,300+ crates.io crates, | |
| consensus-filtered and 94.3% rustc-verified. | |