--- 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`](https://huggingface.co/datasets/ogulcanakca/epdk_corpus)'tan üretilen sentetik, yüksek kaliteli [`ogulcanakca/epdk_dpo`](https://huggingface.co/datasets/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. ```python !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. [WandB report](https://api.wandb.ai/links/ogulcanakca-none/z06caml6) ----- ```json { "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` (`train` 24.5k, `dev` 1.3k) * **Quantization:** `4-bit (NF4)` * **Compute Precision:** `float16` * **`max_length`:** `1024` * **`max_prompt_length`:** `512` * **`optim`:** `paged_adamw_8bit` * **`gradient_checkpointing`:** `True` * **`learning_rate`:** `5e-5` (LR Tipi: `cosine`) * **`num_train_epochs`:** `1` * **`loss_type`:** `ipo` * **`beta`:** `0.1` * **Batch Size:** * `per_device_train_batch_size`: `1` * `gradient_accumulation_steps`: `8` * **(Effective Batch Size: 8)** ### LoraConfig * **`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` ```