metadata
base_model: vngrs-ai/Kumru-2B-Base
model_name: Kumru-2B-EPDK-DPO
language:
- tr
license: apache-2.0
tags:
- base_model:adapter:vngrs-ai/Kumru-2B-Base
- transformers
- trl
- peft
- dpo
- preference-learning
- kumru
- epdk
- qlora
- lora
- causal-lm
datasets:
- ogulcanakca/epdk_dpo
pipeline_tag: text-generation
library_name: peft
Model Card for Kumru-2B-EPDK-DPO
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))
WandB
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"
}
Eğitim Parametreleri (Kaggle P100)
DPOConfig
- GPU: 1x Tesla T4 (16GB)
- Model:
vngrs-ai/Kumru-2B-Base - Veri Seti:
ogulcanakca/epdk_dpo(train24.5k,dev1.3k) - Quantization:
4-bit (NF4) - Compute Precision:
float16 max_length:1024max_prompt_length:512optim:paged_adamw_8bitgradient_checkpointing:Truelearning_rate:5e-5(LR Tipi:cosine)num_train_epochs:1loss_type:ipobeta:0.1- Batch Size:
per_device_train_batch_size:1gradient_accumulation_steps:8- (Effective Batch Size: 8)
LoraConfig
r(Rank):16lora_alpha:32lora_dropout:0.05target_modules:q_projk_projv_projo_projgate_projup_projdown_proj