| | --- |
| | license: apache-2.0 |
| | base_model: Qwen/Qwen2.5-Coder-1.5B-Instruct |
| | tags: |
| | - lora |
| | - code-generation |
| | - fine-tuning |
| | - competitive-programming |
| | datasets: |
| | - Naholav/CodeGen-Deep-5K |
| | language: |
| | - en |
| | pipeline_tag: text-generation |
| | --- |
| | |
| | # Deep Instruction - LoRA Fine-tuned Qwen2.5-Coder-1.5B |
| |
|
| | This is the best performing checkpoint from the **deep_instruction** training configuration. |
| | |
| | ## Model Details |
| | |
| | | Property | Value | |
| | |----------|-------| |
| | | Base Model | Qwen/Qwen2.5-Coder-1.5B-Instruct | |
| | | Training Dataset | [Naholav/CodeGen-Deep-5K](https://huggingface.co/datasets/Naholav/CodeGen-Deep-5K) | |
| | | Training Method | LoRA (Low-Rank Adaptation) | |
| | | Checkpoint | step-800, epoch-3 | |
| | | Pass@1 (AtCoder Easy) | **26.83%** (11/41 problems) | |
| | |
| | ## Training Configuration |
| | |
| | - **Prompt Style:** Instruction (direct code generation without reasoning) |
| | - **System Prompt:** "You are an expert programmer. Write clean, efficient code." |
| | - **LoRA Rank:** 32 |
| | - **LoRA Alpha:** 64 |
| | - **LoRA Dropout:** 0.05 |
| | - **Learning Rate:** 5e-5 |
| | |
| | |
| | **Note:** All 4 models were trained with identical hyperparameters for fair comparison. Better configurations may be discovered through hyperparameter search methods (e.g., grid search, random search). |
| | |
| | ## All Models Performance Comparison |
| | |
| | Evaluated on LiveCodeBench AtCoder Easy problems (41 questions): |
| | |
| | | Model | Pass@1 | Improvement | |
| | |-------|--------|-------------| |
| | | Base Model (Qwen2.5-Coder-1.5B) | 24.39% | - | |
| | | **[deep-instruction](https://huggingface.co/Naholav/deep-instruction) (this model)** | **26.83%** | **+10%** | |
| | | [diverse-think](https://huggingface.co/Naholav/diverse-think) | 29.27% | +20% | |
| | | [deep-think](https://huggingface.co/Naholav/deep-think) | 31.71% | +30% | |
| | | [diverse-instruction](https://huggingface.co/Naholav/diverse-instruction) | 31.71% | +30% | |
| | |
| | ## Usage |
| | |
| | ```python |
| | from transformers import AutoModelForCausalLM, AutoTokenizer |
| | from peft import PeftModel |
| | import torch |
| | |
| | # Load base model |
| | base_model = AutoModelForCausalLM.from_pretrained( |
| | "Qwen/Qwen2.5-Coder-1.5B-Instruct", |
| | torch_dtype=torch.bfloat16, |
| | device_map="auto" |
| | ) |
| | |
| | # Load LoRA adapter |
| | model = PeftModel.from_pretrained(base_model, "Naholav/deep-instruction") |
| | |
| | # Load tokenizer |
| | tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-Coder-1.5B-Instruct") |
| | |
| | # Generate with instruction prompt |
| | messages = [ |
| | {"role": "system", "content": "You are an expert programmer. Write clean, efficient code."}, |
| | {"role": "user", "content": "Your problem here..."} |
| | ] |
| | |
| | prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) |
| | inputs = tokenizer(prompt, return_tensors="pt").to(model.device) |
| | outputs = model.generate(**inputs, max_new_tokens=2048) |
| | print(tokenizer.decode(outputs[0], skip_special_tokens=True)) |
| | ``` |
| | |
| | ## Resources |
| | |
| | - **GitHub Repository:** [https://github.com/naholav/CodeGen](https://github.com/naholav/CodeGen) |
| | - **Training Dataset:** [Naholav/CodeGen-Deep-5K](https://huggingface.co/datasets/Naholav/CodeGen-Deep-5K) |
| | |
| | ## Citation |
| | |
| | If you use this model, please cite: |
| | |
| | ``` |
| | @misc{naholav2024codegen, |
| | author = {naholav}, |
| | title = {CodeGen: LoRA Fine-tuning for Competitive Programming}, |
| | year = {2025}, |
| | publisher = {HuggingFace}, |
| | url = {https://huggingface.co/Naholav/deep-instruction} |
| | } |
| | ``` |
| | |