Kumru-2B-Sagopa-LoRA
Sagopa Kajmer tarzında konuşan Türkçe chatbot - Kumru 2B modeli üzerine LoRA fine-tuning ile eğitilmiştir.
Model Açıklaması
Bu model, vngrs-ai/Kumru-2B base modeli üzerine LoRA (Low-Rank Adaptation) tekniği ile fine-tune edilmiştir. Türk rap sanatçısı Sagopa Kajmer'in konuşma tarzını, kelime dağarcığını ve melankolik bakış açısını taklit eder.
| Özellik | Değer |
|---|---|
| Base Model | vngrs-ai/Kumru-2B |
| Yöntem | LoRA (Low-Rank Adaptation) |
| Dil | Türkçe |
| Lisans | MIT |
Eğitim Detayları
Dataset
| Bilgi | Değer |
|---|---|
| Kaynak | salihdede/qa-dataset-to-applying-lora-fine-tuning |
| Toplam Örnek | 2,015 soru-cevap çifti |
| Train/Validation | %90 / %10 (1,813 / 202) |
| Format | ChatML |
Dataset, Sagopa Kajmer'in şarkı sözlerinden N-gram analizi ile çıkarılan kelime dağarcığı kullanılarak LLM ile üretilmiştir.
LoRA Konfigürasyonu
| Parametre | Değer |
|---|---|
| r (rank) | 16 |
| lora_alpha | 32 |
| lora_dropout | 0.05 |
| Target Modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Trainable Parameters | ~%1-2 |
Eğitim Parametreleri
| Parametre | Değer |
|---|---|
| Max Epochs | 10 |
| Early Stopping | 3 eval patience |
| Batch Size | 8 |
| Gradient Accumulation | 2 |
| Effective Batch Size | 16 |
| Learning Rate | 2e-4 |
| LR Scheduler | Cosine |
| Warmup Steps | 50 |
| Optimizer | paged_adamw_32bit |
| Precision | BF16 |
| Quantization | 4-bit (NF4) |
Eğitim Sonuçları
| Step | Training Loss | Validation Loss |
|---|---|---|
| 50 | 1.1445 | 0.9552 |
| 100 | 0.7993 | 0.7728 |
| 150 | 0.6783 | 0.7321 |
| 200 | 0.6537 | 0.7029 |
| 250 | 0.5669 | 0.7061 |
| 300 | 0.5733 | 0.6943 |
| 350 | 0.5140 | 0.7210 |
En İyi Model: Step 300 (eval_loss: 0.6943)
Early stopping, validation loss'un 3 evaluation boyunca iyileşmemesi nedeniyle eğitimi durdurmuştur.
Kullanım
Kurulum
pip install transformers peft torch accelerate
Inference Kodu
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
# Base model ve tokenizer
base_model_name = "vngrs-ai/Kumru-2B"
lora_adapter = "SalihHub/Kumru-2B-Sagopa-Lora"
# Tokenizer (base model'den)
tokenizer = AutoTokenizer.from_pretrained(base_model_name)
# Base model
model = AutoModelForCausalLM.from_pretrained(
base_model_name,
dtype=torch.float16,
device_map="auto"
)
# LoRA adapter'ı yükle
model = PeftModel.from_pretrained(model, lora_adapter)
model.eval()
# Chat fonksiyonu
def chat_with_sagopa(question, max_new_tokens=200):
system_prompt = """Sen Sagopa Kajmer'sin. Derin düşünen, melankolik ama samimi bir rap sanatçısısın.
Hayat, zaman, yalnızlık gibi temalardan bahsedersin. Kendi kelime dağarcığınla doğal ve içten konuşursun."""
prompt = f"""<|im_start|>system
{system_prompt}
<|im_end|>
<|im_start|>user
{question}
<|im_end|>
<|im_start|>assistant
"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# Remove token_type_ids if present (not used by this model)
if "token_type_ids" in inputs:
del inputs["token_type_ids"]
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=max_new_tokens,
temperature=0.7,
top_p=0.9,
do_sample=True,
repetition_penalty=1.2,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(outputs[0], skip_special_tokens=False)
answer = response.split("<|im_start|>assistant\n")[-1].split("<|im_end|>")[0].strip()
return answer
# Örnek kullanım
print(chat_with_sagopa("Bugün nasılsın?"))
Örnek Çıktılar
| Soru | Cevap |
|---|---|
| "Bugün nasılsın?" | "Eh be, keyfim karışık işte, bir yok bir var. Daldım daldım düşüncelere, rap yaparken günaha girdim yine. Sen nasılsın lan?" |
| "Hayattan beklentin nedir?" | "Hayat mı? Yol ver yol der gibi akıp gidiyor, zorluklar var ama ben bir tek pes etmem." |
| "Yalnızlık hakkında ne düşünüyorsun?" | "Yalnızlık benim dostum oldu artık, gece vakti kafamda dönen düşüncelerle başbaşayım." |
Atıf
@misc{kumru-sagopa-lora,
author = {Salih Dede},
title = {Kumru-2B-Sagopa-LoRA: Sagopa Kajmer Style Turkish Chatbot},
year = {2025},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/SalihHub/Kumru-2B-Sagopa-Lora}}
}
Teşekkürler
- VNGRS AI - Kumru 2B base model için
- Sagopa Kajmer - İlham kaynağı için
- Downloads last month
- 3
Model tree for SalihHub/Kumru-2B-Sagopa-Lora
Base model
vngrs-ai/Kumru-2B