Instructions to use srhskrkc/odysseia-llama-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use srhskrkc/odysseia-llama-lora with Transformers:
# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("srhskrkc/odysseia-llama-lora", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Unsloth Studio
How to use srhskrkc/odysseia-llama-lora with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for srhskrkc/odysseia-llama-lora to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for srhskrkc/odysseia-llama-lora to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for srhskrkc/odysseia-llama-lora to start chatting
Load model with FastModel
pip install unsloth from unsloth import FastModel model, tokenizer = FastModel.from_pretrained( model_name="srhskrkc/odysseia-llama-lora", max_seq_length=2048, )
Uploaded model
- Developed by: srhskrkc
- License: apache-2.0
- Finetuned from model : unsloth/Llama-3.2-1B-Instruct-bnb-4bit
This llama model was trained 2x faster with Unsloth
Hafta 2.1 Ödev: Fine-Tune Edilen Modelin Benchmark Testine Sokulması
⎉ 🇹🇷 Türkçe MMLU Benchmark Karşılaştırması
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.
⚡︎ ⌲ Kullanım (Inference) Kodu
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))
▤ Tıklayın: MMLU Değerlendirme (Evaluation) Kodu
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}")
🎛️ Eğitim Hiperparametreleri
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) |
⚛︎ Veri Seti ve Hazırlık Süreci
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.
- Veri Seti: (https://huggingface.co/datasets/srhskrkc/odysseia-destani-tr)
- Tokenizer: Metinlerin tokenizasyonu için hazır bir model kullanmak yerine, bu projeye özel olarak sıfırdan eğitilmiş BPE (Byte-Pair Encoding) tabanlı (https://huggingface.co/srhskrkc/odysseia-bpe-tokenizer) kullanılmıştır.
Hafta 2.2 Ödev: Özel Benchmark Oluşturma Ödevi
⌖ ⌬ Model Değerlendirmesi ve Benchmark Karşılaştırması
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.
🎚️ Test Sonuçları Tablosu
| 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 Seti: (https://huggingface.co/datasets/srhskrkc/odysseia-benchmark)
🧬 Veri Seti Kalite Kontrol ve İnsan Doğrulama Süreci
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:
- Halüsinasyon (Hallucination) Teyidi: Sentetik olarak üretilen soruların cevapları, Odysseia destanının kaynak metinleriyle manuel olarak çapraz kontrole sokulmuş ve modelin uydurma yapmadığı doğrulanmıştır.
- Çeldirici (Distractor) Kalitesi ve Bias: A, B, C, D seçeneklerindeki çeldirici şıkların mantıklı olması, soruyu çok kolaylaştıracak absürtlükte olmaması ve doğru cevapların dengeli dağılması manuel olarak sağlanmıştır.
- Format Standardizasyonu: Soruların MMLU yapısına uygunluğu ve JSON alanlarının (question, choices, answer) regex ile tam uyumlu çalışacak şekilde temizlenmesi sağlanmıştır.
🌌 Tartışma: Dar Alan Öğrenmesi ve Catastrophic Forgetting
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:
- Bu durum, modelin sadece dar alanda öğrenip genelleme yapamadığı şeklinde değil; aksine Catastrophic Forgetting (Yıkıcı Unutma) probleminin başarıyla engellendiği şeklinde yorumlanmalıdır.
- Model, hedef bağlam olan Odysseia destanı üzerinde uzmanlaşırken, temel dil yeteneklerini ve genel dünya bilgisini (Genel MMLU) bozmamıştır. Uygulanan LoRA konfigürasyonu, temel modelin ağırlıklarını yıkmadan yeni bilgiyi entegre etmede başarılı olmuştur.
Model tree for srhskrkc/odysseia-llama-lora
Base model
meta-llama/Llama-3.2-1B-Instruct