Jerry-lin23's picture
Update README.md
0169e28 verified
---
license: mit
base_model: deepseek-ai/deepseek-coder-6.7b-base
tags:
- code
- leetcode
- python
- fine-tuned
- lora
- qlora
datasets:
- LongQ/leetcode_python
language:
- en
pipeline_tag: text-generation
---
# DeepSeek-Coder-6.7B LeetCode Fine-Tuned
A fine-tuned version of [DeepSeek-Coder-6.7B-Base](https://huggingface.co/deepseek-ai/deepseek-coder-6.7b-base) specialized for solving LeetCode-style algorithmic problems in Python.
## Model Details
| Attribute | Value |
|-----------|-------|
| **Base Model** | deepseek-ai/deepseek-coder-6.7b-base |
| **Fine-tuning Method** | QLoRA (4-bit quantization + LoRA) |
| **Training Data** | [LongQ/leetcode_python](https://huggingface.co/datasets/LongQ/leetcode_python) (2,369 problems) |
| **Epochs** | 3 |
| **Hardware** | NVIDIA T4 (16GB VRAM) |
| **Training Time** | ~5 hours |
## Performance
Evaluated on 100 LeetCode problems with automated code execution:
| Metric | Base Model | Fine-Tuned | Improvement |
|--------|------------|------------|-------------|
| **Overall Accuracy** | 24% | 34% | +42% |
| **Easy Problems** | 30.3% | 52% | +72% |
| **Medium Problems** | 32.4% | 27.8% | -14% |
| **Hard Problems** | 9.1% | 28.6% | +214% |
### Key Findings
- **Significant gains on Easy and Hard problems** — model learned both fundamental patterns and complex algorithms
- **Slight regression on Medium** — possible overfitting to extremes of difficulty distribution
- **Domain-specific data matters** — initial training on general coding data degraded performance
## Intended Use
- Solving algorithmic coding challenges
- LeetCode practice and learning
- Code generation for competitive programming
- Educational tool for understanding algorithmic solutions
## Limitations
- Optimized specifically for LeetCode-style problems, may not generalize to other coding tasks
- Python-only (not trained on other languages)
- May produce syntactically correct but logically incorrect solutions
- Struggles with problems requiring complex data structure implementations (LinkedList, Trees)
## How to Use
### With Hugging Face Transformers
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained(
"Jerry-lin23/deepseek-leetcode-fp16",
torch_dtype=torch.float16,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("Jerry-lin23/deepseek-leetcode-fp16")
prompt = """### Problem:
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
### Starter Code:
```python
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
```
### Solution:
```python
"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200, temperature=0.2)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```
### With Ollama (Local Deployment)
1. Convert to GGUF format
2. Create a Modelfile:
```
FROM ./deepseek-leetcode-q8.gguf
PARAMETER temperature 0.2
PARAMETER top_p 0.95
```
3. Import: `ollama create deepseek-leetcode -f Modelfile`
4. Run: `ollama run deepseek-leetcode`
## Training Details
### LoRA Configuration
```python
LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
```
### Training Arguments
```python
SFTConfig(
num_train_epochs=3,
per_device_train_batch_size=1,
gradient_accumulation_steps=8,
learning_rate=2e-4,
warmup_ratio=0.03,
fp16=True,
gradient_checkpointing=True,
max_seq_length=2048,
dataset_text_field="text"
)
```
## Citation
```bibtex
@misc{deepseek-leetcode-finetuned,
author = {Jerry Lin},
title = {DeepSeek-Coder-6.7B LeetCode Fine-Tuned},
year = {2024},
publisher = {Hugging Face},
url = {https://huggingface.co/Jerry-lin23/deepseek-leetcode-fp16}
}
```
## Links
- 📊 [Benchmark Repository](https://github.com/jerrylin-23/DeepSeek-LeetCode-Oriented-Training)
- 🤗 [Base Model](https://huggingface.co/deepseek-ai/deepseek-coder-6.7b-base)
- 📚 [Training Dataset](https://huggingface.co/datasets/LongQ/leetcode_python)