CoolFace
Modelpublic

Pradnya27/codegpt-lora-code-generation

sourceHugging Facemitupdated 5mo agoView on Hugging Face
0likes5downloads
Model Card

CodeGPT LoRA Fine-tuned for Code Generation

Fine-tuned version of CodeGPT using LoRA (Low-Rank Adaptation) for Python code generation.

๐Ÿ”— Links

  • โ€”Live Demo: https://huggingface.co/spaces/Pradnya27/code-generator
  • โ€”Full Fine-tuned Model: https://huggingface.co/Pradnya27/codegpt-finetuned-code-generation
  • โ€”GitHub: https://github.com/pradnyagundu/codegpt-finetuned-code-generation

Model Details

  • โ€”Base model: microsoft/CodeGPT-small-py (124M parameters)
  • โ€”Method: LoRA (Low-Rank Adaptation)
  • โ€”Trainable parameters: 589,824 (0.36% of total)
  • โ€”Model size: 2.36MB (vs 651MB for full fine-tuning)
  • โ€”Dataset: Rabinovich/Code-Generation-LLM-LoRA (5000 examples)

Training Details

  • โ€”Epochs: 2
  • โ€”Learning rate: 3e-4
  • โ€”Batch size: 8
  • โ€”LoRA rank: 16
  • โ€”LoRA alpha: 32
  • โ€”Hardware: Google Colab T4 GPU
  • โ€”Training time: ~9 minutes

Training Results

StepLoss
1004.28
3003.45
5003.28
7003.24
9003.15
12003.14

Comparison vs Full Fine-tuning

Full Fine-tuneLoRA
Final loss2.313.14
Model size651MB2.36MB
Training time~14 min~9 min
Trainable params124M589K

How to Use

python
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

base_model = AutoModelForCausalLM.from_pretrained("microsoft/CodeGPT-small-py")
model = PeftModel.from_pretrained(base_model, "Pradnya27/codegpt-lora-code-generation")
tokenizer = AutoTokenizer.from_pretrained("microsoft/CodeGPT-small-py")
tokenizer.pad_token = tokenizer.eos_token

prompt = "Generate code: Write a function to check if a number is prime"
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
    outputs = model.generate(inputs["input_ids"], max_new_tokens=150)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Limitations

  • โ€”Trained on competitive programming problems โ€” works best for algorithmic tasks
  • โ€”Small base model (124M params) limits output quality
  • โ€”Full fine-tuning achieves lower loss on this dataset

Future Work

  • โ€”Train on full 34K dataset
  • โ€”Increase LoRA rank to r=32 or r=64
  • โ€”Evaluate on HumanEval benchmark