rishini/qwen2.5-coder-7b-programming-lora
011
Qwen2.5-Coder-7B-Programming-LoRA
A LoRA adapter fine-tuned on top of Qwen/Qwen2.5-Coder-7B-Instruct to produce clean, correct, efficient programming solutions with brief explanations.
Model Details
- Base model: Qwen/Qwen2.5-Coder-7B-Instruct
- Method: LoRA (rank 64, alpha 128, use_rslora=True)
- Trainable params: 161,480,704 (~2.08% of total)
- Data: 6,006 quality-filtered examples from
iamtarun/python_code_instructions_18k_alpaca+ curated expert-written seeds - Training: 3 epochs, effective batch size 32, max context 2048, completion-only label masking, cosine LR 2e-4, bf16 + 4-bit NF4 base, gradient checkpointing
- Final train loss: 0.326
Usage
Load with PEFT:
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
import torch
base = "Qwen/Qwen2.5-Coder-7B-Instruct"
adapter = "rishini/qwen2.5-coder-7b-programming-lora"
bnb = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)
model = AutoModelForCausalLM.from_pretrained(
base, quantization_config=bnb, device_map="auto", torch_dtype=torch.bfloat16
)
model = PeftModel.from_pretrained(model, adapter)
tokenizer = AutoTokenizer.from_pretrained(base, trust_remote_code=True, use_fast=True)
prompt = "Write a Python function to check if a string is a valid palindrome ignoring case and non-alphanumeric characters."
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=512, temperature=0.2)
print(tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))Evaluation
Held-out prompts (not in the training set) answered correctly, including: longest common prefix, min-heap from scratch, topological sort, palindromic substrings (DP), and sliding-window longest substring.
Files
adapter_config.json/adapter_model.safetensors— LoRA weightstokenizer.json/tokenizer_config.json/chat_template.jinja— tokenizer + chat template
