Downloads · 30 days
0
srhskrkc/odysseia-llama-lora
odysseia-llama-lora is a machine learning model from srhskrkc. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
- Developed by: srhskrkc - License: apache-2.0 - Finetuned from model : unsloth/Llama-3.2-1B-Instruct-bnb-4bit
Downloads · 30 days
0
Access
Public
Updated Aug 2, 2026
Repo size
62.3 MB
Likes
0
Public
Click a slice to open those files.
.safetensors45.1 MB · 72%
From the Hugging Face model README
This llama model was trained 2x faster with Unsloth
<details> <summary><b>Hafta 2.1 Ödev: Fine-Tune Edilen Modelin Benchmark Testine Sokulması</b></summary>Modelin genel mantık yürütme ve Türkçe anlama kapasitesini ölçmek için Ali Bayram Hocanın Türkçe MMLU veri setinin 3.100 soruluk (yaklaşık %50'lik) kısmı üzerinde test yapılmıştır.
| Model | Test Edilen Soru | Başarı Skoru |
|---|---|---|
unsloth/Llama-3.2-1B-Instruct-bnb-4bit (Base Model) | 3,100 | %27.87 |
srhskrkc/odysseia-llama-lora (Fine-Tuned Model) | 3,100 | %27.94 |
Sonuç Değerlendirmesi: Yapılan LoRA fine-tuning işlemi (Odysseia verisi ile) modelde Catastrophic Forgetting (Yıkıcı Unutma) yaratmamış; aksine modelin genel çoktan seçmeli soru çözme başarısını koruyup ufak bir artış sağlamıştır.
<details> <summary><b>⚡︎ ⌲ Kullanım (Inference) Kodu</b></summary> Bu LoRA adaptörünü kendi projelerinizde veya testlerinizde base model üzerine yükleyerek şu şekilde kullanabilirsiniz:from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
# 1. Base modeli ve tokenizer'ı yükleyin
base_model_id = "unsloth/Llama-3.2-1B-Instruct-bnb-4bit"
tokenizer = AutoTokenizer.from_pretrained(base_model_id)
base_model = AutoModelForCausalLM.from_pretrained(
base_model_id,
torch_dtype=torch.float16,
device_map="auto"
)
# 2. LoRA adaptörünü base model üzerine entegre edin
model = PeftModel.from_pretrained(base_model, "srhskrkc/odysseia-llama-lora")
# 3. Test promptu oluşturun
prompt = "Girdiğiniz metin veya soru buraya yazılır..."
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=128)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
</details>
<details>
<summary><b>▤ Tıklayın: MMLU Değerlendirme (Evaluation) Kodu</b></summary>
Modelin başarı skorlarını (3.100 soru üzerinden) hesaplarken kullanılan MMLU benchmark test kodunun temel yapısı:
from unsloth import FastLanguageModel
import pandas as pd
import torch
mmlu_veri = pd.read_parquet("hf://datasets/alibayram/yapay_zeka_turkce_mmlu_model_cevaplari/data/train-00000-of-00001.parquet")
test_verisi = mmlu_veri.head(3100) # İlk 3.100 soru
model_id = "srhskrkc/odysseia-llama-lora"
model, tokenizer = FastLanguageModel.from_pretrained(model_name = model_id, max_seq_length = 2048, load_in_4bit = True)
FastLanguageModel.for_inference(model)
harfler = ['A', 'B', 'C', 'D', 'E']
dogru_cevap_sayisi = 0
for i in range(len(test_verisi)):
soru_metni = test_verisi.iloc[i]['soru'] + "\n"
secenekler = test_verisi.iloc[i]['secenekler']
dogru_harf = harfler[test_verisi.iloc[i]['cevap']]
for j in range(len(secenekler)):
soru_metni += harfler[j] + ": " + secenekler[j] + "\n"
prompt = "Sana soru ve seçenekleri veriyorum. Sadece hangi seçeneğin sorunun doğru cevabı olduğunu yaz.\nSoru: " + soru_metni + "Cevap:"
inputs = tokenizer([prompt], return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=5, pad_token_id=tokenizer.eos_token_id)
cevap_metni = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]
verilen_cevap = cevap_metni.split("Cevap:")[-1].strip().upper()
if len(verilen_cevap) > 0 and verilen_cevap[0] == dogru_harf:
dogru_cevap_sayisi += 1
print(f"Başarı Oranı: %{(dogru_cevap_sayisi / len(test_verisi)) * 100:.2f}")
</details>
Model, kaynak optimizasyonu sağlamak adına Unsloth kütüphanesi ve LoRA (Low-Rank Adaptation) tekniği kullanılarak eğitilmiştir:
| Parametre | Değer |
|---|---|
| Max Sequence Length | 2048 |
| LoRA R (Rank) | 16 |
| LoRA Alpha | 32 |
| Learning Rate | 2e-4 |
| Optimizer | AdamW 8-bit |
| Quantization | 4-bit (BitsAndBytes NF4) |
Bu LoRA adaptörü, klasik MMLU veya hazır veri setleri yerine, tamamen özgün olarak derlenen Odysseia Destanı Türkçe veri seti ile eğitilmiştir.
Proje kapsamında geliştirilen srhskrkc/odysseia-llama-lora modeli, Homeros'un Odysseia destanındaki bağlamsal ilişkileri ölçmek amacıyla özel olarak hazırlanan 100 soruluk Odysseia Benchmark Veri Seti üzerinde teste tabi tutulmuştur.
Ödev yönergesi gereği, modelin başarısını kıyaslayabilmek adına aynı test (Zero-Shot formatında) 4 farklı açık kaynaklı temel model üzerinde daha uygulanmış ve sonuçlar aşağıda listelenmiştir.
| Model Adı | Parametre / Tür | Doğru Sayısı | Başarı Oranı |
|---|---|---|---|
| Llama-3.2-3B-Instruct | 3B (Temel Model) | 64 | %64.00 |
| srhskrkc/odysseia-llama-lora | Özel Fine-Tune | 53 | %53.00 |
| Mistral-7B-Instruct-v0.3 | 7B (Temel Model) | 27 | %27.00 |
| Gemma-3-1B-IT | 1B (Temel Model) | 20 | %20.00 |
| Qwen2.5-1.5B-Instruct | 1.5B (Temel Model) | 10 | %10.00 |
Sonuç Analizi:
4 seçenekli (rastgele başarı ihtimali %25 olan) bu benchmark setinde test edilen temel modeller (Gemma, Mistral, Qwen) %10 ile %27 arasında sonuç vermiştir. Hedef alana özel olarak fine-tune edilen srhskrkc/odysseia-llama-lora modeli ise %53 başarı oranına ulaşmıştır.
Benchmark veri setindeki 100 sorunun 10'u ödev yönergesi gereği tamamen manuel olarak, 90'ı ise LLM desteğiyle (sentetik olarak) üretilmiştir. Sentetik veriler üretildikten sonra doğrudan kabul edilmemiş, aşağıdaki insan doğrulama (human-in-the-loop) süreçlerinden geçirilerek kalite kontrolü sağlanmıştır:
Uygulanan ince ayar (fine-tuning) sonucunda modelin Odysseia Benchmark testinde %53 başarıya ulaşırken, Genel Türkçe MMLU testindeki başarısının taban modele kıyasla neredeyse aynı kalması (%27.87'den %27.94'e) bir dezavantaj değil, planlanan bir başarıdır: