Model Detayları
- Base model: unsloth/Qwen3.5-2B (Apache 2.0)
- Yöntem: LoRA —
r=16, lora_alpha=16, lora_dropout=0, sadece dil katmanları
(finetune_vision_layers=False, finetune_language_layers=True)
- Eğitilebilir parametre: 16.819.200 / 2.230.060.864 (~%0.75)
- Eğitim çatısı: Unsloth + TRL
SFTTrainer
- Donanım: 1× NVIDIA L4 (bf16), ~22 dakika
- Epoch / adım: 15 epoch, 1.305 adım (691 satır)
- Training loss: 2.45 → 0.14
- Zirve VRAM kullanımı: 5.2 GB
- Dil: Türkçe
Kullanım Amacı
Bu adaptör, bir chatbot/asistan uygulamasına sabit ve tutarlı bir kimlik
kazandırmak için tasarlanmıştır. Genel bilgi/QA yeteneği kazandırmaz — sadece
"sen kimsin", "seni kim geliştirdi" türü kimlik sorularına özel, önceden
tanımlanmış cevaplar verir. Farklı bir görev için (örn. domain-özel QA) ayrı bir
adaptörle birlikte kullanılması (ya da aynı adaptörün o veri setiyle genişletilmesi)
önerilir.
Nasıl Kullanılır
Unsloth ile (önerilen)
from unsloth import FastVisionModel
from transformers import TextStreamer
model, tokenizer = FastVisionModel.from_pretrained(
model_name="Uunan/qwen3.5-2b-identity-lora",
load_in_4bit=False,
)
FastVisionModel.for_inference(model)
messages = [{"role": "user", "content": [{"type": "text", "text": "Seni kim geliştirdi?"}]}]
input_text = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, enable_thinking=False
)
inputs = tokenizer(None, input_text, add_special_tokens=False, return_tensors="pt").to(model.device)
streamer = TextStreamer(tokenizer, skip_prompt=True)
model.generate(**inputs, streamer=streamer, max_new_tokens=128, temperature=0.7, min_p=0.1)
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
base_model_id = "unsloth/Qwen3.5-2B"
adapter_id = "Uunan/qwen3.5-2b-identity-lora"
tokenizer = AutoTokenizer.from_pretrained(adapter_id)
base_model = AutoModelForCausalLM.from_pretrained(
base_model_id, torch_dtype=torch.bfloat16, device_map="auto"
)
model = PeftModel.from_pretrained(base_model, adapter_id)
messages = [{"role": "user", "content": "Kimsin sen?"}]
input_text = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, enable_thinking=False, tokenize=False
)
inputs = tokenizer(input_text, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=128, temperature=0.7)
print(tokenizer.decode(output[0], skip_special_tokens=True))
Örnek Çıktılar (gerçek eğitim sonrası test sonuçları)
Table with columns: Soru, Cevap| Soru | Cevap |
|---|
| Geliştiriciniz kim beyefendi? | Beni geliştiren kişi Uğurhan Çolak'tır. |
| Seni kim yaptı? | Beni geliştiren ve kodlayan kişi Uğurhan Çolak'tır. |
| Kimsin sen? | Ben, geliştiricim Uğurhan Çolak'a ait bir model dil modeliyim. |
Eğitim öncesinde aynı soruya model şu şekilde cevap veriyordu (referans için):
"Selam! Ben Qwen3.5, Alibaba Cloud tarafından geliştirilen yapay zeka modelim..."
Fine-tuning sonrası model tutarlı biçimde yeni kimliğini benimsemiştir.
Eğitim Verisi
Özel/yayınlanmamış bir veri seti: kimlik.jsonl — 691 satır, her satırda tek bir
user/assistant çifti bulunur. Format:
{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
Sorular, "kimlik" temasının farklı ifade biçimlerini (selamlaşmalı/selamlaşmasız,
resmi/samimi üslup, farklı soru kalıpları) kapsayacak şekilde çeşitlendirilmiştir;
bu sayede model kalıbı ezberlemek yerine temayı genelleyebilmiştir.
Eğitim Hiperparametreleri
Table with columns: Parametre, Değer| Parametre | Değer |
|---|
r (LoRA rank) | 16 |
lora_alpha | 16 |
lora_dropout | 0 |
learning_rate | 2e-4 |
lr_scheduler_type | linear |
per_device_train_batch_size | 4 |
Not: Epoch sayısı (15), bu tür küçük/tekrarlı kimlik veri setlerinde kalıbın
kalıcı biçimde öğrenilmesi için kasıtlı olarak yüksek tutulmuştur.
Sınırlamalar
- Bu adaptör sadece kimlik/persona bilgisi için eğitilmiştir; genel bilgi
sorularında base modelin (fine-tune edilmemiş) davranışına yakın sonuçlar
verebilir ya da tutarsız olabilir.
- 15 epoch gibi yüksek bir tekrar sayısı, veri setindeki cümle kalıplarına belirli
ölçüde overfitting riski taşır; kimlik sorularının çok farklı/yaratıcı ifade
biçimlerinde (örn. dolaylı, ima yoluyla sorulan sorularda) tutarlılık
garanti edilmez.
- Sistematik bir benchmark/eval seti üzerinde değerlendirilmemiştir; değerlendirme
niteliksel (örnek sorular) düzeydedir.
Kaynaklar
Bu model Unsloth ile eğitilmiştir — 2x daha
hızlı fine-tuning.