File size: 4,729 Bytes
992d00e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d4b2e53
334583a
d4b2e53
992d00e
 
d4b2e53
334583a
d4b2e53
334583a
d4b2e53
334583a
d4b2e53
 
 
 
 
 
 
 
 
 
 
334583a
d4b2e53
334583a
d4b2e53
 
 
 
 
 
 
 
 
 
 
334583a
d4b2e53
334583a
d4b2e53
 
334583a
992d00e
d4b2e53
334583a
d4b2e53
334583a
d4b2e53
334583a
d4b2e53
 
 
334583a
d4b2e53
 
2ad10e9
 
 
 
 
 
 
334583a
d4b2e53
334583a
2ad10e9
 
992d00e
 
2ad10e9
992d00e
 
 
2ad10e9
 
 
 
d33937e
992d00e
 
 
 
 
 
 
 
 
 
 
 
d4b2e53
 
334583a
992d00e
 
 
 
334583a
d4b2e53
334583a
d4b2e53
334583a
d4b2e53
 
 
 
 
334583a
d4b2e53
334583a
d4b2e53
334583a
d4b2e53
334583a
 
d4b2e53
334583a
d4b2e53
 
 
 
 
 
992d00e
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
---
license: cc-by-4.0
language:
- tr
- en
datasets:
- berhaan/Turkish-CodeAlpaca-20k
base_model: vngrs-ai/Kumru-2B-Base
pipeline_tag: text-generation
tags:
- kumru
- mistral
- code-generation
- turkish
- qlora
library_name: transformers
---

# 🦜 Kumru-2B-CodeAlpaca (Turkish Code Generation Model)

## Model Summary
**Kumru-2B-CodeAlpaca**, Türkçe kod üretimi görevleri için fine-tune edilmiş bir dil modelidir.
Model, **vngrs-ai/Kumru-2B-Base** tabanlı olup **Turkish-CodeAlpaca-20k** veri kümesiyle
**QLoRA** yöntemi (4-bit LoRA adaptasyonu) kullanılarak eğitilmiştir.

Model, Türkçe komutlardan Python, SQL, HTML, PHP ve C gibi dillere kod üretebilir.

---

## 🧠 Model Details
| Özellik | Değer |
|----------|--------|
| **Base Model** | [vngrs-ai/Kumru-2B-Base](https://huggingface.co/vngrs-ai/Kumru-2B-Base) |
| **Fine-tune Dataset** | [berhaan/Turkish-CodeAlpaca-20k](https://huggingface.co/datasets/berhaan/Turkish-CodeAlpaca-20k) |
| **Parameters** | ≈ 2B |
| **Method** | QLoRA (4-bit, NF4 quantization) |
| **Framework** | 🤗 Transformers + TRL + PEFT |
| **Language** | Turkish (primary), English (secondary code syntax) |
| **License** | CC-BY-4.0 |
| **Author** | [@berhaan](https://huggingface.co/berhaan) |

---

## ⚙️ Training Configuration
| Parametre | Değer |
|------------|--------|
| **Hardware** | NVIDIA A100 40GB |
| **Batch Size** | 8 × 2 (gradient accumulation) |
| **Sequence Length** | 512 |
| **Learning Rate** | 2e-4 |
| **Epochs** | 3 |
| **Optimizer** | paged_adamw_8bit |
| **Precision** | bfloat16 |
| **LoRA Config** | r=16, α=32, dropout=0.05 |

---

## 📊 Evaluation Results
(expected +30–50%)

> Fine-tuned model, Türkçe kodlama görevlerinde taban modele göre belirgin gelişme göstermiştir.
> Özellikle Python ve SQL örneklerinde daha kısa ve doğru fonksiyonlar üretmektedir.

---

## 💻 Usage Example

```python
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "berhaan/kumru-2b-codealpaca"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id, 
    torch_dtype=torch.bfloat16, 
    device_map="auto"
)

prompt = "Girilen sayının asal olup olmadığını kontrol eden bir Python fonksiyonu yaz. Yalnızca kodu döndür."

inputs = tokenizer(prompt, return_tensors="pt", return_token_type_ids=False).to(model.device)

outputs = model.generate(
    **inputs, 
    max_new_tokens=128, 
    repetition_penalty=1.15,
    no_repeat_ngram_size=5,
    do_sample=False, # Tutarlı (asal sayı) çıktısı almak için
    eos_token_id=tokenizer.eos_token_id,
    pad_token_id=tokenizer.pad_token_id
)
output_text = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print("--- ÜRETİLEN KOD ---")
print(output_text.strip())
```
"""

--- ÜRETİLEN KOD ---
# Asal sayı kontrolü
def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True
"""
## ⚖️ Limitations & Biases
Kumru-2B-CodeAlpaca, Türkçe kod üretiminde oldukça başarılı olsa da aşağıdaki sınırlamalara dikkat edilmelidir:

- **Dil Uyumu:** Model, yalnızca Türkçe açıklama ve talimatlar üzerinde eğitildiği için İngilizce promptlarda performansı düşebilir.
- **Kod Tutarlılığı:** Uzun veya çok adımlı algoritmalarda bazen gereksiz tekrarlar veya fazladan çıktılar üretebilir.
- **Çıktı Güvenliği:** Üretilen kodlar doğrudan çalıştırılmadan önce mutlaka gözden geçirilmelidir; çünkü mantıksal veya sözdizimsel hatalar oluşabilir.
- **Yaratıcılık – Doğruluk Dengesi:** `temperature` parametresi yükseltildiğinde yaratıcı ama hatalı kodlar üretebilir.

Model, profesyonel geliştiriciler için yardımcı araç olarak kullanılmalı, doğrudan üretim ortamlarında denetimsiz kullanılmamalıdır.

---

## 🌱 Environmental Impact
| Özellik | Değer |
|----------|--------|
| **GPU** | NVIDIA A100 (40 GB) |
| **Training Süresi** | ~1.5 saat |

Eğitim süreci sırasında enerji verimliliği için karma hassasiyet (bfloat16) ve 4-bit quantization kullanılmıştır.

---

## 📚 Citation

**APA:**
> Berhan A. (2025). *Kumru-2B-CodeAlpaca: A Turkish Instruction-Tuned Code Generation Model*. Hugging Face. https://huggingface.co/berhaan/kumru-2b-codealpaca

**BibTeX:**
```bibtex
@misc{berhaan2025kumru2bcodealpaca,
  author = {Berhan, A.},
  title = {Kumru-2B-CodeAlpaca: A Turkish Instruction-Tuned Code Generation Model},
  year = {2025},
  howpublished = {\url{[https://huggingface.co/berhaan/kumru-2b-codealpaca](https://huggingface.co/berhaan/kumru-2b-codealpaca)}},
}