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
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for SalihHub/Kumru-2B-Sagopa-Lora

Adapter
(6)
this model