Skip to content

Commit 8757b77

Browse files
New release
1 parent 75addf5 commit 8757b77

68 files changed

Lines changed: 7652 additions & 433 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,11 @@ __pycache__/
22
*.py[cod]
33
*.egg-info/
44
.pytest_cache/
5+
.tmp.driveupload/
6+
.tmp.drivedownload/
7+
.hf_cache/
8+
datasets/
9+
results/
10+
wandb/
11+
runs/
12+
checkpoint-*/

CHANGELOG.md

Lines changed: 55 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,73 @@
1-
# 📋 Changelog
1+
# Changelog
22

3-
All notable changes to this project will be documented in this file.
3+
All notable changes to this project are documented here.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
66

7-
---
7+
## [Unreleased]
88

9-
## [1.1.0] - 2026-05-07
9+
### Added
10+
11+
- Stable example identity metadata in prediction artifacts, including example IDs, pair IDs, snippet IDs, and snippet hashes.
12+
- Calibration and error-profile metrics: specificity, negative predictive value, false-positive/false-negative rates, Brier score, log loss, and expected calibration error.
13+
- Pair-ID alignment in `scripts/compare_predictions.py`, with baseline/candidate metric summaries in comparison reports.
14+
- Cross-split pair/snippet overlap diagnostics for dataset audits.
15+
- `scripts/inspect_dataset.py` for reviewer-facing dataset validation before training.
16+
- `scripts/download_datasets.py` for automatic retrieval of public CodeXGLUE BCB and POJ-104 sources into normalized local folders.
17+
- `run_everything.bat` for Windows end-to-end automation: dependency install, dataset download, diagnostics, benchmark runs, summaries, and comparisons.
18+
- `run_everything.sh` for Bash end-to-end automation with the same phases and environment-variable controls as the Windows batch script.
19+
- `scripts/normalize_local_datasets.py` for converting local GCJ and Karnalim files into the normalized `data.jsonl`/split-file contract.
20+
21+
### Changed
22+
23+
- Result aggregation now includes calibration and error-profile columns for reviewer-facing tables.
24+
- Problem-directory pair generation now defaults to problem-level splitting to reduce train/test source-code leakage.
25+
- The full benchmark runner now honors `PYTHON_BIN` and `STRICT_DATA=1`.
26+
27+
## [1.1.0] - 2026-05-22
1028

1129
### Added
12-
- `small_code_models/` shared Python library (data, metrics, trainer modules).
13-
- `pyproject.toml` for proper Python packaging (`pip install -e .`).
14-
- `notebooks/quick_start.ipynb` — Google Colab-ready interactive demo.
15-
- `scripts/run_all_benchmarks.sh` — single-command full reproduction.
16-
- `docs/RESULTS.md` — detailed results tables and analysis notes.
17-
- CI workflow via GitHub Actions (`.github/workflows/ci.yml`).
18-
- Unit tests in `tests/`.
19-
- CLI arguments (`--data_dir`, `--output_dir`) to all evaluation scripts.
30+
31+
- Auditable run artifacts: `metrics.json`, `predictions.jsonl`, and `run_manifest.json`.
32+
- Bootstrap confidence intervals for accuracy, balanced accuracy, precision, recall, F1, MCC, ROC-AUC, and PR-AUC.
33+
- Paired statistical helpers for candidate-minus-baseline bootstrap differences and McNemar tests.
34+
- Dataset diagnostics with split row counts, skipped-row reasons, label balance, deterministic sampling, and SHA-256 hashes.
35+
- Reproducibility metadata for Python, package versions, CUDA devices, Git branch/commit, and dirty worktree state.
36+
- `scripts/summarize_results.py` for aggregating completed run folders into CSV and Markdown.
37+
- `scripts/compare_predictions.py` for paired bootstrap and McNemar comparisons over saved predictions.
38+
- Model/benchmark registries covering CodeT5 Small, CodeT5+ 220M, CodeGPT, CodeBERTa, CoTexT, CodeNet, SemanticCloneBench, GPTCloneBench, and CLCDSA.
39+
- `scripts/run_clone_experiment.py` for running any registered model/benchmark pair.
40+
- `scripts/prepare_pair_dataset.py` and pair-building utilities for CodeNet/CLCDSA-style problem directories.
41+
- Benchmark controls for `--seed`, `--max_length`, `--strict_data`, `--no_artifacts`, and `--bootstrap_resamples`.
2042

2143
### Changed
22-
- All evaluation scripts refactored to import shared utilities from `small_code_models/`, removing ~100 lines of duplication per script.
23-
- README.md significantly expanded with results tables, repository structure diagram, Quick Start, Related Work, and more badges.
44+
45+
- Expanded `compute_metrics` beyond accuracy/F1/precision/recall to include confusion counts, support, balanced accuracy, MCC, ROC-AUC, and PR-AUC.
46+
- Updated the shared trainer to write research artifacts after test-set prediction.
47+
- Updated benchmark scripts and the full benchmark runner to pass reproducibility controls consistently.
48+
- Raised the package metadata to Python 3.10+, matching the syntax and CI baseline already used by the project.
49+
- Refreshed the README with an artifact contract and journal replication checklist.
2450

2551
## [1.0.0] - 2025
2652

27-
### 🎉 Initial Release
53+
### Added
2854

29-
- Unified evaluation framework for **6 small-scale code models** (<220M parameters):
30-
- CodeBERT (125M, Encoder-only)
31-
- GraphCodeBERT (125M, Encoder-only with Data Flow)
32-
- PLBART (140M, Encoder-Decoder)
33-
- PolyCoder (160M, Decoder-only)
34-
- UniXCoder (~200M, Unified Enc-Dec)
35-
- Salesforce T5 (220M, Encoder-Decoder)
36-
- Benchmark scripts for **5 datasets**:
55+
- Unified evaluation framework for six small-scale code models under 220M parameters:
56+
- CodeBERT
57+
- GraphCodeBERT
58+
- PLBART
59+
- PolyCoder
60+
- UniXCoder
61+
- CodeT5
62+
- Benchmark scripts for five datasets:
3763
- BigCloneBench
3864
- Google Code Jam (GCJ)
3965
- Karnalim
4066
- POJ104
4167
- PoolC
42-
- Each script is self-contained: load dataset → fine-tune model → evaluate and report F1 / Precision / Recall.
43-
- Companion paper published on arXiv: [arXiv:2506.10995](https://arxiv.org/abs/2506.10995).
68+
- Shared `small_code_models/` package with data, metrics, and trainer modules.
69+
- `pyproject.toml` for editable installs.
70+
- `notebooks/quick_start.ipynb` for an interactive demo.
71+
- `scripts/run_all_benchmarks.sh` for full reproduction.
72+
- `docs/RESULTS.md` with result tables and analysis notes.
73+
- GitHub Actions CI and unit tests.

0 commit comments

Comments
 (0)