How georgeaaron7/codereview-finetuning-proj works
This repository fine-tunes and serves a QLoRA-based code-review model, then evaluates its generated reviews against reference reviews. The main workflow is preparing review examples, formatting them for supervised training, producing an adapter, and generating reviews through inference or the API. Evaluation adds overlap metrics and optional LLM judging. The README describes data preparation, but that module is absent from the supplied tree, so its implementation is represented only at the enclosing src path; relationships are limited to those indicated by the inspected callers and README.
Main entry points: infer.py Review inference · eval.py Evaluation runner · train.py QLoRA trainer · src Data preparation
Components 17
Review data
- Dataset converter
scripts/convert_codereviewer.py - Data preparation
src - Review dataset
Model training
- SFT formatting
src/formatting.py - QLoRA trainer
src/train.py - Qwen base model
- LoRA adapter
Review generation
- Review inference
src/infer.py - Review API
src/serve.py - Prompt formatting
src/formatting.py
Evaluation
- Evaluation runner
src/eval.py - BLEU/ROUGE metrics
src/metrics.py - LLM judge
src/judge.py - Judge model API
- Evaluation results
Other components
- Model developer
- Review requester
Connections 19
- Model developer → Dataset converter: converts dumps
- Dataset converter → Review dataset: writes JSONL
- Review dataset → Data preparation: loads records
- QLoRA trainer → Data preparation: prepares splits
- QLoRA trainer → SFT formatting: formats examples
- QLoRA trainer → Qwen base model: loads weights
- QLoRA trainer → LoRA adapter: saves adapter
- Review requester → Review API: requests review
- Review API → Review inference: generates review
- Review requester → Review inference: provides code
- Review inference → Prompt formatting: builds prompt
- Review inference → Qwen base model: loads weights
- Review inference → LoRA adapter: loads adapter
- Evaluation runner → Data preparation: regenerates split
- Evaluation runner → Review inference: generates predictions
- Evaluation runner → BLEU/ROUGE metrics: computes scores
- Evaluation runner → LLM judge: requests scoring
- LLM judge → Judge model API: sends prompts
- Evaluation runner → Evaluation results: writes results