cazim's picture
Upload folder using huggingface_hub
446570a verified
---
language:
- en
license: apache-2.0
library_name: transformers
tags:
- code
- python
- lora
- fine-tuning
- qwen
datasets:
- Naholav/CodeGen-Deep-5K
- Naholav/CodeGen-Diverse-5K
base_model: Qwen/Qwen2.5-Coder-1.5B-Instruct
pipeline_tag: text-generation
---
# cazim/homework-qwen-coder-deep-lora
This model is a LoRA fine-tuned version of [Qwen/Qwen2.5-Coder-1.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct) for competitive code generation.
## Model Description
- **Base Model:** Qwen/Qwen2.5-Coder-1.5B-Instruct
- **Fine-tuning Method:** LoRA (Low-Rank Adaptation)
- **Dataset:** Naholav/CodeGen-Deep-5K
- **Task:** Competitive Code Generation
## Training Details
### LoRA Configuration
| Parameter | Value |
|-----------|-------|
| Rank (r) | 32 |
| Alpha | 64 |
| Dropout | 0.1 |
| Target Modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
### Training Configuration
| Parameter | Value |
|-----------|-------|
| Learning Rate | 0.0002 |
| Epochs | 3 |
| Batch Size | 1 |
| Gradient Accumulation | 16 |
| Effective Batch Size | 16 |
| Max Sequence Length | 768 |
| Warmup Ratio | 0.1 |
| Weight Decay | 0.01 |
| LR Scheduler | cosine |
## Usage
### Using the LoRA Adapter
```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, "cazim/homework-qwen-coder-deep-lora")
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-Coder-1.5B-Instruct")
# Generate code
system_prompt = "You are an expert Python programmer. Please read the problem carefully before writing any Python code."
problem = "Write a function to find the factorial of a number."
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": problem},
]
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=512,
temperature=0.1,
top_p=0.95,
do_sample=True,
)
generated_code = tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(generated_code)
```
### Using Merged Model
If this is a merged model, you can use it directly:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained(
"cazim/homework-qwen-coder-deep-lora",
torch_dtype=torch.bfloat16,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("cazim/homework-qwen-coder-deep-lora")
```
## Evaluation Results
Evaluation results will be added after benchmark testing.
## Limitations
- This model is fine-tuned specifically for competitive programming problems
- Best used with the provided system prompt
- May not generalize well to other code generation tasks
## System Prompt
```
You are an expert Python programmer. Please read the problem carefully before writing any Python code.
```
## Citation
If you use this model, please cite:
```bibtex
@misc{cazim_homework_qwen_coder_deep_lora},
title={LoRA Fine-tuned Qwen2.5-Coder for Code Generation},
year={2024},
publisher={HuggingFace},
}
```
## License
This model is released under the Apache 2.0 license.