Eight small LoRA adapters (GGUF, f16, ~10 MB each) that turn Qwen2.5-Coder-7B-Instruct into a same-language code modernizer: given a legacy file and an objective, it rewrites the code in modern idioms of the same language. They are the "modernize" pack of Rebirth AI, an offline agent that only keeps a rewrite if the project's own tests pass in a Docker sandbox.
Languages: JavaScript/TypeScript, Python, Go, Java, C#, Rust, C++, Swift.
The normal way is the installer, which downloads these files, checks their sha256 and registers them in Ollama:
git clone https://github.com/hugobelebinda/rebirth-ai && cd rebirth-ai
bash scripts/bootstrap.sh --pack modernize
By hand, for one language: download its file, then create the model with this Modelfile (the one the installer writes). The adapters expect the raw prompt format below, not a chat template.
FROM qwen2.5-coder:7b-instruct
ADAPTER ./rebirth-go-7b-v1.lora.f16.gguf
TEMPLATE """{{ .Prompt }}"""
PARAMETER temperature 0
PARAMETER num_ctx 4096
PARAMETER stop "
### Objective"
PARAMETER stop "
### Legacy"
PARAMETER stop "
### Modern"
PARAMETER stop "
###"
PARAMETER stop "
```"
ollama create rebirth-go:7b -f Modelfile.
Prompt: ### Objective\n<what to change>\n### Legacy\n<code>\n### Modern\n.
| File | Language | sha256 |
|---|---|---|
rebirth-js-ts-7b-v1.lora.f16.gguf |
JS/TS | 76e05a5f… |
rebirth-python-7b-v1.lora.f16.gguf |
Python | 20c567b1… |
rebirth-go-7b-v1.lora.f16.gguf |
Go | 5f932146… |
rebirth-java-7b-v1.lora.f16.gguf |
Java | 604723a6… |
rebirth-csharp-7b-v1.lora.f16.gguf |
C# | cf657b28… |
rebirth-rust-7b-v1.lora.f16.gguf |
Rust | 61deb5a2… |
rebirth-cpp-7b-v1.lora.f16.gguf |
C++ | ca80b439… |
rebirth-swift-7b-v1.lora.f16.gguf |
Swift | 33c9a6a3… |
Full hashes: configs/models.json in the GitHub repo.
docs/DATASET.md.Frozen held-out sets of real commits (not used in training), served exactly as shipped (Q4_K_M base + this adapter in Ollama). Soft-exact = the output matches the human commit after normalizing whitespace; it undercounts, since other valid rewrites score as misses.
| Language | Base 7B | This adapter | Rows |
|---|---|---|---|
| JS/TS | 0 | 9 | 100 |
| Python | 6 | 18 | 100 |
| Go | 5 | 13 | 100 |
| Java | 10 | 20 | 100 |
| C# | 2 | 11 | 100 |
| Rust | 5 | 7 | 56 |
| C++ | 8 | 16 | 93 |
| Swift | 6 | 13 | 100 |
| All | 42 | 107 | 749 |
A Qwen2.5-Coder-14B with the same kind of adapters only tied these 7B adapters (Go 15 vs 14, Python 19 vs 20 per 100), so the 7B is the shipped model for this job.
On real projects. The test used 14 files from 10 small public libraries (JavaScript, Python, Go), judged by each library's own tests:
rebirth-xlang-14b-gguf).Adapters: Apache-2.0 (same as the base model). Training data: permissively licensed repositories from CommitPack / CommitPackFT (BigCode). Base model: Qwen2.5-Coder-7B-Instruct, Apache-2.0.
Qwen/Qwen2.5-Coder-7B-Instruct