license: apache-2.0 language:
tr base_model: unsloth/Llama-3.1-8B tags:
llama-3.1
turkish-law
unsloth
qlora
text-generation
tr datasets:
sinanelms/output_kanun_tokensli.json
Llama 3.1 8B - Türk Hukuk Uzmanı Modeli Bu model, unsloth/Llama-3.1-8B temel modelinin, Türkçe hukuk metinlerini içeren sinanelms/output_kanun_tokensli.json veri seti üzerinde QLoRA yöntemiyle fine-tune edilmiş versiyonudur. Model, Türk hukukuyla ilgili sorulara bir yargıç veya uzman avukat perspektifinden, detaylı ve doğru cevaplar vermek üzere eğitilmiştir.
Eğitim, Unsloth kütüphanesi kullanılarak Google Colab ortamında bir NVIDIA A100-SXM4-80GB GPU üzerinde gerçekleştirilmiştir.
Model Açıklaması Temel Model: unsloth/Llama-3.1-8B (4-bit quantize edilmiş)
Veri Seti: sinanelms/output_kanun_tokensli.json (353,386 eğitim örneği)
Dil: Türkçe
Uzmanlık Alanı: Türk Hukuku
Amaçlanan Kullanım: Hukuki metin anlama, soru-cevap, özetleme ve hukuki konularda asistanlık.
Nasıl Kullanılır? Modeli kullanmak için transformers, torch ve unsloth kütüphanelerinin kurulu olması gerekmektedir. Aşağıdaki kod parçası, modeli nasıl yükleyeceğinizi ve streaming (akıcı) bir şekilde cevap üreteceğinizi gösterir.
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer import torch
Kendi model reponuzun adını buraya yazın
Örnek: model_path = "Yusuf-c/Llama-3.1-8B-Turkish-Law-v1"
model_path = "kullanici-adiniz/repo-adiniz"
tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.bfloat16, device_map="auto", )
streamer = TextStreamer(tokenizer, skip_prompt=True)
Llama 3.1 formatına uygun prompt
messages = [ { "role": "system", "content": "Sen Türk hukuku konusunda uzmanlaşmış bir yapay zeka asistanısın. Sen bir yargıçsın, sorulan sorulara doğru ve detaylı bilgiler veriyorsun." }, { "role": "user", "content": "Türk Borçlar Kanunu'na göre bir sözleşme nasıl kurulur?" } ]
prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True )
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
Akıcı (streaming) şekilde cevap üretimi
with torch.no_grad(): _ = model.generate( **inputs, max_new_tokens=512, temperature=0.7, top_p=0.9, top_k=50, do_sample=True, pad_token_id=tokenizer.eos_token_id, streamer=streamer, )
Prompt Formatı Model, Llama 3.1'in chat formatı ile eğitilmiştir. En iyi sonuçları almak için aşağıdaki sistem mesajını kullanmanız önerilir:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
Sen Türk hukuku konusunda uzmanlaşmış bir yapay zeka asistanısın. Sen bir yargıçsın, sorulan sorulara doğru ve detaylı bilgiler veriyorsun.<|eot_id|><|start_header_id|>user<|end_header_id|>
{KULLANICI_SORUSU}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
Eğitim Detayları Eğitim, bellek verimliliği ve hız için Unsloth kütüphanesi ile optimize edilmiştir.
Eğitim Hiperparametreleri Parametre
Değer
base_model
unsloth/Llama-3.1-8B
quantization
4-bit
lora_r
32
lora_alpha
64
lora_dropout
0.0
optimizer
adamw_8bit
learning_rate
1e-4
lr_scheduler_type
cosine
per_device_train_batch_size
1
gradient_accumulation_steps
32
effective_batch_size
32
num_train_epochs
1
max_seq_length
1024
Eğitim Sonuçları Metrik
Değer
GPU
NVIDIA A100-SXM4-80GB
Eğitim Süresi
606.5 dakika (10.1 saat)
Toplam Adım
2,416
Final Train Loss
0.9524
Validation Loss
0.8216 (Adım 2208)
Veri Seti Boyutu
353,386 (Eğitim) / 7,212 (Doğrulama)
Kaynak Gösterme Bu modeli veya çalışmayı kullanırsanız, lütfen aşağıdaki şekilde atıfta bulunun:
@misc{turkish_law_llama3_1_8b_2024, title={Llama 3.1 8B - Turkish Legal Expert}, author={Your Name}, year={2024}, publisher={Hugging Face}, journal={Hugging Face repository}, howpublished={\url{https://huggingface.co/your-username/your-repo-name}} }