Downloads · 30 days
16
21% of all-time downloads
badtheorylabs/btl-2-coder
btl-2-coder is a text generation model from badtheorylabs. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as apache-2.0.
BTL-2 Coder 7B is a LoRA adapter for unsloth/Qwen2.5-Coder-7B-Instruct, trained for structured code-review findings.
Downloads · 30 days
16
21% of all-time downloads
All-time downloads
77
Public
Repo size
657 MB
Likes
4
Public
Click a slice to open those files.
.safetensors646 MB · 98%
From the Hugging Face model README
BTL-2 Coder 7B is a LoRA adapter for unsloth/Qwen2.5-Coder-7B-Instruct, trained for structured code-review findings.
Code and evaluation scripts are available at:
https://github.com/Badtheorylabs/btl-2-coder
This adapter is intended for local-first code review. It is trained to produce structured findings with:
The main supported issue classes are SQL injection, path traversal, authorization bypass, missing error handling, boundary/off-by-one logic, and related security/correctness findings.
The adapter is optimized for review output rather than broad chat behavior.
unsloth/Qwen2.5-Coder-7B-Instruct4,000 API-generated review traces + 1,000 template traces4,500 train examples + 500 eval examples24096Only redacted, opt-in traces should be used for future training.
Use strict schema prompting:
Return only a JSON array. No markdown and no wrapper object.
Each finding must include: severity, file, line, title, evidence, recommendation, confidence.
severity must be exactly one of: critical, high, medium, low.
Never put a category in severity.
confidence must be a number from 0 to 1, never a string label.
Every finding must include concrete evidence and a non-empty recommendation.
Example output:
[
{
"severity": "critical",
"file": "src/users.ts",
"line": 42,
"title": "SQL injection through string-built query",
"evidence": "The user id is concatenated directly into the SQL string.",
"recommendation": "Use a parameterized query.",
"confidence": 0.96
}
]
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = "unsloth/Qwen2.5-Coder-7B-Instruct"
adapter = "badtheorylabs/btl-2-coder"
tokenizer = AutoTokenizer.from_pretrained(adapter)
model = AutoModelForCausalLM.from_pretrained(base, device_map="auto")
model = PeftModel.from_pretrained(model, adapter)
Measured on an NVIDIA H200 with 4-bit adapter inference.
| Eval | JSON parse | Schema valid | Numeric confidence | Category hit | File hit | Precision | Recall | Weighted severity recall |
|---|---|---|---|---|---|---|---|---|
| Heldout 100 strict | 1.000 | 0.952 | 1.000 | 0.783 | 0.840 | n/a | n/a | n/a |
| Heldout 30 strict v2 | 1.000 | 0.975 | 1.000 | 0.867 | 0.867 | n/a | n/a | n/a |
| Seeded 15 strict | 1.000 | 1.000 | 1.000 | 0.933 | 1.000 | 0.933 | 0.933 | 0.956 |
Notes:
n/a because the heldout set is broader and does not use one normalized ground-truth finding per example.This repository contains a PEFT/LoRA adapter:
adapter_model.safetensorsadapter_config.jsontokenizer.jsontokenizer_config.jsonchat_template.jinjatraining_args.binSHA256SUMS