CoolFace
Modelpublic

boraoxkan/codereview-ai

sourceHugging Facemitupdated 9mo agoView on Hugging Face
0likes8downloads
Model Card

<div align="center">

CodeReview AI

Automated Code Review with Fine-tuned LLMs

![GitHub](https://github.com/boraoxkan/CodeReview) ![License](https://opensource.org/licenses/MIT) ![Base Model](https://huggingface.co/Qwen/Qwen2.5-Coder-7B-Instruct)

</div>


Overview

A fine-tuned code review model that automatically detects bugs, security vulnerabilities, and code quality issues across multiple programming languages.

Key Features

  • Multi-Language: Python, JavaScript, Java, C++, Go, Rust, TypeScript, C#, SQL
  • Security Focus: Detects OWASP Top 10 vulnerabilities
  • Quality Scoring: 0-100 score with explanations
  • Auto-Fix: Provides corrected code snippets
  • Efficient: 4-bit quantization, runs on 8GB VRAM

Model Details

PropertyValue
Base ModelQwen2.5-Coder-7B-Instruct
Parameters7B
Fine-tuningLoRA (r=16, alpha=16)
Quantization4-bit NF4
Context Length2048 tokens
FrameworkUnsloth + TRL

Detected Issues

<table> <tr> <td>

Security

  • SQL Injection
  • Cross-Site Scripting (XSS)
  • Command Injection
  • Hardcoded Credentials
  • Path Traversal
  • Insecure Deserialization

</td> <td>

Code Quality

  • Memory Leaks
  • Race Conditions
  • Null Pointer Dereference
  • Off-by-One Errors
  • Resource Leaks
  • Infinite Loops

</td> </tr> </table>


Quick Start

python
from unsloth import FastLanguageModel

# Load model
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="boraoxkan/codereview-ai",
    max_seq_length=2048,
    load_in_4bit=True,
)
FastLanguageModel.for_inference(model)

# Analyze code
prompt = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

### Instruction:
Analyze this Python code for defects.

### Input:
def get_user(username):
    query = "SELECT * FROM users WHERE username = '" + username + "'"
    cursor.execute(query)
    return cursor.fetchone()

### Response:
"""

inputs = tokenizer([prompt], return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.1)
result = tokenizer.decode(outputs[0])

Example Output

Input Code (SQL Injection vulnerability):

python
def get_user(username):
    query = "SELECT * FROM users WHERE username = '" + username + "'"
    cursor.execute(query)

Model Output:

json
{
  "code_quality_score": 20,
  "critical_issues": [
    "SQL Injection vulnerability due to direct string concatenation"
  ],
  "suggestions": [
    "Use parameterized queries to prevent SQL injection",
    "Handle database connections properly"
  ],
  "fixed_code": "def get_user(username):\n    query = \"SELECT * FROM users WHERE username = ?\"\n    cursor.execute(query, (username,))"
}

Score Guidelines

ScoreLevelDescription
0-30CriticalSevere security vulnerabilities
31-50PoorSignificant issues present
51-70FairSome improvements needed
71-85GoodMinor issues only
86-100ExcellentClean, secure code

Training

ParameterValue
Dataset~500 synthetic samples
Steps120
Batch Size1 (effective: 4)
Learning Rate2e-4
OptimizerAdamW 8-bit
PrecisionBF16
HardwareRTX 3070 (8GB)
Time~40 minutes

LoRA Config

python
r = 16
lora_alpha = 16
lora_dropout = 0
target_modules = [
    "q_proj", "k_proj", "v_proj", "o_proj",
    "gate_proj", "up_proj", "down_proj"
]

Limitations

  • Context limited to 2048 tokens
  • Optimized for single-function analysis
  • May produce false positives for complex patterns
  • Training data is synthetically generated

Links

ResourceLink
GitHub Repositoryboraoxkan/CodeReview
Base ModelQwen2.5-Coder-7B
Unslothunslothai/unsloth

Citation

bibtex
@software{codereview_ai_2025,
  title = {CodeReview AI: Automated Code Analysis with Fine-tuned LLMs},
  author = {Bora Ozkan},
  year = {2025},
  url = {https://huggingface.co/boraoxkan/codereview-ai}
}

License

MIT License - See LICENSE for details.


<div align="center"> <b>Built with Unsloth & Qwen2.5-Coder</b><br> <sub>Making code reviews smarter, one bug at a time.</sub> </div>