| ---
|
| license: apache-2.0
|
| datasets:
|
| - jtatman/python-code-dataset-500k
|
| metrics:
|
| - bleu
|
| - rouge
|
| - perplexity
|
| - chrf
|
| - codebertscore
|
| base_model:
|
| - codellama/CodeLlama-7b-Python-hf
|
| pipeline_tag: text-generation
|
| tags:
|
| - code
|
| - python
|
| - codellama
|
| - lora
|
| - peft
|
| - sft
|
| - programming
|
| ---
|
|
|
| # CodeLlama-7b-Python-hf-ft
|
|
|
| This repository contains a **LoRA fine-tuned adapter** for **[CodeLlama-7b-Python-hf](https://huggingface.co/codellama/CodeLlama-7b-Python-hf)**, trained to improve **Python instruction-following and code generation**.
|
|
|
| **Note:**
|
| This is a **PEFT LoRA adapter**, not a fully merged standalone model. You must load it on top of the base model.
|
|
|
| ---
|
|
|
| ## Model Details
|
|
|
| - **Base model**: [codellama/CodeLlama-7b-Python-hf](https://huggingface.co/codellama/CodeLlama-7b-Python-hf)
|
| - **Fine-tuned for**: Python instruction-following and code generation
|
| - **Fine-tuning method**: SFT + LoRA (PEFT)
|
| - **Framework**: Transformers + PEFT + TRL
|
|
|
| ---
|
|
|
| ## Dataset Used
|
|
|
| This adapter was fine-tuned on:
|
|
|
| 1. [jtatman/python-code-dataset-500k](https://huggingface.co/datasets/jtatman/python-code-dataset-500k)
|
| - Large-scale Python instruction → solution pairs
|
| - Parquet format (~500k+ examples)
|
|
|
| ---
|
|
|
| ## Training Configuration
|
|
|
| ### LoRA Configuration
|
| - **r:** 32
|
| - **lora_alpha:** 16
|
| - **Target modules:**
|
| `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj`
|
|
|
| ### SFT Configuration
|
| - **Epochs:** 1
|
| - **Learning rate:** 2e-4
|
| - **Scheduler:** cosine
|
| - **Warmup ratio:** 0.03
|
| - **Weight decay:** 0.0
|
| - **Train batch size:** 4
|
| - **Eval batch size:** 4
|
| - **Gradient accumulation steps:** 16
|
| - **Precision:** bf16
|
| - **Attention:** flash_attention_2
|
| - **Packing:** enabled
|
| - **Gradient checkpointing:** enabled
|
| - **Logging:** every 50 steps + per epoch
|
| - **Saving:** per epoch (`save_total_limit=2`)
|
|
|
| ---
|
|
|
| ## Evaluation Results
|
|
|
| The model was evaluated using both language-modeling metrics and generation-quality metrics.
|
|
|
| ### 📉 Perplexity / Loss
|
| - **Base model loss:** `1.3214`
|
| - **Base model perplexity:** `3.7486`
|
|
|
| - **Fine-tuned (LoRA) val/test loss:** `0.7126`
|
| - **Fine-tuned (LoRA) val/test perplexity:** `2.0394`
|
|
|
| ### 📊 Generation Quality Metrics (Test)
|
| - **Exact Match:** `0.0033`
|
| - **Normalized Exact Match:** `0.0033`
|
|
|
| - **BLEU:** `18.43`
|
| - **chrF:** `34.06`
|
| - **ROUGE-L (F1):** `0.2417`
|
|
|
| ### 🧠 CodeBERTScore (Mean)
|
| - **Precision:** `0.7187`
|
| - **Recall:** `0.7724`
|
| - **F1:** `0.7421`
|
| - **F3:** `0.7657`
|
|
|
| ### 🧾 Training Summary (from logs)
|
| - **Train loss:** `~0.6903`
|
| - **Eval loss:** `~0.6877`
|
|
|
| ---
|
|
|
| ## Example Usage
|
|
|
| ```python
|
| import torch
|
| from transformers import AutoModelForCausalLM, AutoTokenizer
|
| from peft import PeftModel
|
|
|
| # Base + adapter
|
| base_id = "codellama/CodeLlama-7b-Python-hf"
|
| adapter_id = "Tanneru/CodeLlama-7b-Python-hf-ft"
|
|
|
| # Load tokenizer (repo includes tokenizer files)
|
| tokenizer = AutoTokenizer.from_pretrained(adapter_id)
|
|
|
| # Load base model
|
| base_model = AutoModelForCausalLM.from_pretrained(
|
| base_id,
|
| device_map="auto",
|
| torch_dtype=torch.bfloat16 if torch.cuda.is_available() else torch.float32,
|
| )
|
|
|
| # Load LoRA adapter
|
| model = PeftModel.from_pretrained(base_model, adapter_id)
|
| model.eval()
|
|
|
| prompt = "Write a Python function that checks if a number is prime."
|
| inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
|
|
|
| with torch.inference_mode():
|
| out = model.generate(**inputs, max_new_tokens=256)
|
|
|
| print(tokenizer.decode(out[0], skip_special_tokens=True))
|
|
|
| ```
|
|
|
| ## Citation
|
|
|
| If you use this model in your research or project, please cite it:
|
|
|
| ```bibtex
|
|
|
| @misc{tanneru2025codellamapythonft,
|
| title = {CodeLlama-7b-Python-hf-ft},
|
| author = {Tanneru},
|
| year = {2025},
|
| publisher = {Hugging Face},
|
| howpublished = {\url{https://huggingface.co/Tanneru/CodeLlama-7b-Python-hf-ft}}
|
| }
|
|
|
| ``` |