Downloads · 30 days
267
100% of all-time downloads
thealper2/codet5-base-code-repair
codet5-base-code-repair is a text generation model from thealper2. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as bsd-3-clause.
Salesforce/codet5-base fine-tuned on the CodeXGLUE code-refinement small split for automated program repair: given a buggy Java method, the model generates the fixed version.
Downloads · 30 days
267
100% of all-time downloads
All-time downloads
267
Public
Parameters
223M
892 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors892 MB · 99%
From the Hugging Face model README
Salesforce/codet5-base fine-tuned on the
CodeXGLUE code-refinement
small split for automated program repair: given a buggy Java method, the model generates the
fixed version.
Inputs and outputs follow the dataset's abstracted Java style, where identifiers are normalised to
tokens such as METHOD_1, VAR_1, TYPE_1 and STRING_1.
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_id = "MODEL_ID" # <- repo id
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
buggy = (
"public int METHOD_1 ( int VAR_1 ) { if ( VAR_1 = 0 ) { return 1 ; } "
"return ( VAR_1 * ( METHOD_1 ( ( VAR_1 - 1 ) ) ) ) ; }"
)
inputs = tokenizer(buggy, max_length=256, truncation=True, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256, num_beams=4, early_stopping=True)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
No task prefix is needed — the buggy snippet is fed in as-is. Beam search with num_beams=4 is the
decoding setting used for all numbers reported below, and it is already stored in the repo's
generation_config.json.
Full splits (5,835 examples each), beam search with 4 beams:
| Split | Exact Match | BLEU | Loss |
|---|---|---|---|
| Validation | 21.29% | 80.27 | 0.1272 |
| Test | 22.43% | 80.13 | 0.1257 |
Breakdown of the test-set predictions:
| Outcome | Share |
|---|---|
| Exact fix | 22.43% |
| Partial fix (changed, closer but not exact) | 13.49% |
| Input copied unchanged | 3.38% |
| Incorrect | 64.08% |
The high BLEU next to the modest exact-match rate is expected for this task: the fixed method is usually a near-copy of the buggy one, so most generated tokens are correct even when the actual bug is not fixed. Exact match is the metric that matters here; BLEU mostly measures how well the model preserves the surrounding code.
Validation exact match by epoch (1,000-example in-training subset):
| Epoch | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| EM | 10.5 | 15.2 | 17.5 | 19.5 | 19.8 | 20.6 | 20.9 | 20.6 | 21.2 | 21.0 |
The epoch-9 checkpoint scored best and is the one published here.
| Base model | Salesforce/codet5-base (~223M params) |
| Dataset | google/code_x_glue_cc_code_refinement, config small |
| Train / validation / test | 46,680 / 5,835 / 5,835 |
| Epochs | 10 (best checkpoint by exact match kept) |
| Learning rate | 5e-5, linear decay, 5% warmup |
| Batch size | 16 × 2 gradient accumulation (effective 32) |
| Weight decay | 0.01 |
| Max grad norm | 1.0 |
| Max source / target length | 256 / 256 tokens |
| Precision | bf16 |
| Seed | 42 |
| Training time | ~1h25m on a single GPU |
No example in any split was truncated at 256 tokens (longest source: 132 tokens), and the dataset contains no identical buggy/fixed pairs.
Released under BSD-3-Clause, following the Salesforce/codet5-base base model. The training data,
CodeXGLUE code-refinement, is distributed under the Computational Use of Data Agreement (C-UDA).