Qwen2.5-7B-Instruct-Turkish-Legal-DoRA
Türk hukuku alanında ince ayar yapılmış, Qwen/Qwen2.5-7B-Instruct tabanlı bir dil modelidir.
QLoRA (4-bit) + DoRA (Weight Decomposition LoRA) ile eğitilmiştir.
Model Detayları
| Özellik | Değer |
|---|---|
| Base Model | Qwen/Qwen2.5-7B-Instruct |
| Parametre | 7B |
| Fine-tuning Yöntemi | QLoRA (load_in_4bit) + DoRA |
| LoRA Rank | 32 |
| LoRA Alpha | 64 |
| Hedef Modüller | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Eğitim Çerçevesi | Axolotl 0.9.2 |
| Precision | bf16 (Flash Attention 2) |
| Eğitim Süresi | ~12 saat (A100 80GB) |
| Epoch | 3 |
| Son Train Loss | 0.4086 |
| Learning Rate | 3e-5 (cosine scheduler) |
Eğitim Verisi
| Dataset | Tür | Boyut | Oran |
|---|---|---|---|
| sinanelms/output_kanun_tokensli | Türk hukuku soru-cevap | ~360K örnek | %85 |
| AlicanKiraz0/Turkish-SFT-Dataset-v1.0 | Türkçe genel SFT (replay) | ~5.5K örnek | %15 |
Not: %15 genel Türkçe SFT datası, catastrophic forgetting'i önlemek ve modelin muhakeme gücünü korumak amacıyla karıştırılmıştır.
Kullanım
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base_model = "Qwen/Qwen2.5-7B-Instruct"
adapter = "sinanelms/Qwen2.5-7B-Instruct-Turkish-Legal-DoRA"
tokenizer = AutoTokenizer.from_pretrained(base_model)
model = AutoModelForCausalLM.from_pretrained(base_model, load_in_4bit=True)
model = PeftModel.from_pretrained(model, adapter)
messages = [
{"role": "system", "content": "Sen Türk hukuku konusunda uzman bir hukuk asistanısın."},
{"role": "user", "content": "Kira sözleşmesinde kiracının hakları nelerdir?"}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
vLLM ile Kullanım (Merged Model)
from vllm import LLM, SamplingParams
llm = LLM(model="sinanelms/Qwen2.5-7B-Instruct-Turkish-Legal-DoRA")
params = SamplingParams(temperature=0.7, max_tokens=512)
output = llm.generate("Türk Ceza Kanunu'nda hırsızlık suçunun cezası nedir?", params)
print(output[0].outputs[0].text)
Neden DoRA?
DoRA (Weight-Decomposed Low-Rank Adaptation), standart LoRA'ya kıyasla:
- Modelin ön-eğitimden gelen genel muhakeme gücünü daha iyi korur
- Catastrophic forgetting'i azaltır
- Benzer parametre sayısıyla daha iyi domain adaptasyonu sağlar
Eğitim Hiperparametreleri
adapter: lora
use_dora: true
lora_r: 32
lora_alpha: 64
lora_dropout: 0.05
learning_rate: 3.0e-05
lr_scheduler: cosine
warmup_steps: 100
weight_decay: 0.01
optimizer: paged_adamw_8bit
micro_batch_size: 2
gradient_accumulation_steps: 16
num_epochs: 3
sequence_len: 4096
sample_packing: true
bf16: true
flash_attention: true
Kapsam ve Sınırlılıklar
Güçlü olduğu alanlar:
- Türk medeni hukuku, borçlar hukuku, ceza hukuku
- Kanun maddesi açıklama ve yorumlama
- Hukuki soru-cevap
Dikkat edilmesi gerekenler:
- Model yasal tavsiye vermez; yalnızca bilgi amaçlıdır
- Güncel mevzuat değişikliklerini takip etmeyebilir
- Kritik hukuki kararlar için mutlaka bir avukata danışınız
Lisans
Bu model Apache 2.0 lisansı altında dağıtılmaktadır.
Base model Qwen2.5'in lisans koşulları da geçerlidir: Qwen License
Atıf
@misc{qwen25_turkish_legal_dora_2026,
title = {Qwen2.5-7B-Instruct-Turkish-Legal-DoRA},
author = {sinanelms},
year = {2026},
url = {https://huggingface.co/sinanelms/Qwen2.5-7B-Instruct-Turkish-Legal-DoRA},
note = {QLoRA + DoRA fine-tuned Qwen2.5-7B-Instruct for Turkish legal domain}
}
- Downloads last month
- 26