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](https://huggingface.co/your-username/your-repo-name)}} }