Kumru
Collection
Designed and implemented a complete LLM lifecycle (Data -> Training -> Inference -> Deployment) to create a specialized Turkish model for EPDK Bylaw.
•
6 items
•
Updated
Bu adaptör, modele EPDK (Enerji Piyasası Düzenleme Kurumu) alanında hem (domain knowledge) hem de sohbet yeteneğini kazandırmak amacıyla vngrs-ai/Kumru-2B-Base modeli üzerine eğitilmiş bir DPO (Direct Preference Optimization) LoRA adaptörü eğitilmiştir.
Eğitim, Gemini API kullanılarak ogulcanakca/epdk_corpus'tan üretilen sentetik, yüksek kaliteli ogulcanakca/epdk_dpo tercih veri seti (prompt, chosen, rejected) kullanılarak yapılmıştır.
Model, 4-bit (QLoRA) ile yüklenmeli ve üzerine bu DPO adaptörü eklenmelidir.
!pip install -q \
"transformers" \
"peft" \
"accelerate" \
"bitsandbytes" \
"trl" \
"datasets"
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
import torch
base_model_name = "vngrs-ai/Kumru-2B-Base"
adapter_name = "ogulcanakca/Kumru-2B-EPDK-DPO"
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
# T4 için torch.float16, P100/Ampere+ için torch.bfloat16
bnb_4bit_compute_dtype=torch.float16
)
model = AutoModelForCausalLM.from_pretrained(
base_model_name,
quantization_config=bnb_config,
device_map="auto",
trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(base_model_name, trust_remote_code=True)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
model = PeftModel.from_pretrained(model, adapter_name)
model.eval()
prompt_soru = "2007 yılına ait Türkiye Ortalama Elektrik Toptan Satış Fiyatının (TORETOSAF) değeri nedir?"
messages = [
{"role": "user", "content": prompt_soru}
]
input_text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(input_text, return_tensors="pt", return_token_type_ids=False).to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=150,
temperature=0.2,
do_sample=True
)
print("\n--- Modelin Cevabı ---")
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
Modelin eğitimi ogulcanakca/epdk_dpo veri setinin train split'i üzerinde 1 epoch ve dev split'i üzerinde her 25 adımda bir değerlendirme yapılarak izlenmiştir.
{
"prompt": "Belirlenen 2007 yılı Türkiye Ortalama Elektrik Toptan Satış Fiyatının (TORETOSAF) değeri nedir?",
"Base Model": "Belirlenen 2007 yılı Türkiye Ortalama Elektrik Toptan Satış Fiyatının (TORETOSAF) değeri nedir? 2007 yılı Türkiye Ortalama Elektrik Toptan Satış Fiyatı 1,11 TL/kWh'dir. 2007 yılı Türkiye Ortalama Elektrik Toptan Satış Fiyatı 1,11 TL/kWh'dir. 2007 yılı Türkiye Ortalama Elektrik Toptan Satış Fiyatı 1,11 TL/kWh'dir. 2007 yılı Türkiye Ortalama Elektrik Toptan Satış Fiyatı 1,11 TL/kWh'dir.",
"Adapter'lı Model": "2007 yılı toptan satış fiyatı 15,80 krş/kWh olan elektrik enerjisinin fiyatı, 2007 yılı toptan satış fiyatı 15,80 krş/kWh’dir. 2007 yılı toptan satış fiyatı 15,80 krş/kWh olan toptan satış fiyatı 15,80 krş/kWh’dir. 2007 yılı toptan satış fiyatı 15,80 kr"
}
vngrs-ai/Kumru-2B-Baseogulcanakca/epdk_dpo (train 24.5k, dev 1.3k)4-bit (NF4)float16max_length: 1024max_prompt_length: 512optim: paged_adamw_8bitgradient_checkpointing: Truelearning_rate: 5e-5 (LR Tipi: cosine)num_train_epochs: 1loss_type: ipobeta: 0.1per_device_train_batch_size: 1gradient_accumulation_steps: 8r (Rank): 16lora_alpha: 32lora_dropout: 0.05target_modules:q_projk_projv_projo_projgate_projup_projdown_proj
Base model
vngrs-ai/Kumru-2B-Base