--- base_model: Qwen/Qwen2.5-Coder-7B-Instruct library_name: peft pipeline_tag: text-generation tags: - base_model:adapter:Qwen/Qwen2.5-Coder-7B-Instruct - lora - transformers - coding - code-generation - finetuned --- # 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: ```python 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 weights - `tokenizer.json` / `tokenizer_config.json` / `chat_template.jinja` — tokenizer + chat template