Lin-1 Epsilon Preview
Lin-1 Epsilon Preview is a 0.5B-parameter Rust code model from LindotAI, fine-tuned from Qwen2.5-Coder-0.5B-Instruct. It is small enough to run on a laptop CPU and is meant for quick completions, simple functions and generate-and-test loops. Its bigger sibling is Lin-1 Locus (4B).
Benchmarks
All numbers measured by us with the same harness for every model (Rust ports of the benchmarks; generated code is compiled and run against the tests).
| Model | HumanEval-Rust p@1 / p@10 | MBPP-Rust p@1 / p@10 | Holdout (Rust) | LBPP-Rust |
|---|---|---|---|---|
| Lin-1 Epsilon Preview (0.5B) | 48.4 / 65.2 | 41.3 / 54.2 | 30.3 | 4.1 |
| Temper 2 Ion | 48.1 / 57.6 | 45.5 / 53.8 | 31.0 | 4.5 |
| Temper 1 0.5B | 36.3 / 46.3 | 39.3 / 46.9 | — | — |
| ThoxEdge-RustCoder-0.5B | 28.7 / 44.8 | 33.2 / 43.1 | — | — |
| Qwen2.5-Coder-0.5B-Instruct (base) | 23.8 / — | — | — | — |
| Qwen3.5-0.8B | 10.1 / 22.1 | 14.5 / 25.5 | — | — |
Holdout is our private set of Rust tasks with tests that was never used for training.
Quick start
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "LindotAI/Lin-1-Epsilon"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
messages = [{"role": "user", "content": "Write a Rust function that checks whether a string is a palindrome."}]
inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=512, temperature=0.2, do_sample=True)
print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
GGUF (llama.cpp / Ollama): Lin-1-Epsilon-Q8_0.gguf (~0.5 GB) is included.
llama-cli -m Lin-1-Epsilon-Q8_0.gguf -p "Write a Rust function that reverses a Vec<i32> in place."
Training
Supervised fine-tuning on curated, compile-checked Rust, followed by reinforcement learning (GRPO) with a test-pass reward on Rust tasks, and a weight average of the SFT and RL checkpoints. All training data was decontaminated against the evaluation sets (12-gram overlap filter).
Limitations
- Preview release: a 0.5B model makes more mistakes than larger ones on multi-step logic.
- Focused on Rust. Always compile and test generated code.
License
Apache 2.0, same as the base model.