Bu proje, Fırat Üniversitesi 2025-2026 Akademik Teşvik süreçleri (Yönetmelik, Başvuru Rehberi ve Takvim) konusunda uzmanlaşmış, Qwen-2.5-3B tabanlı bir Yapay Zeka asistanı geliştirme çalışmasıdır.
Proje; ham dokümanlardan veri üretimi, verinin temizlenmesi, modelin eğitilmesi (QLoRA) ve son kullanıcı arayüzü (Gradio) aşamalarını kapsayan uçtan uca bir LLM iş akışıdır.
Aşağıdaki şema, verinin dokümandan modele nasıl dönüştüğünü özetler:
graph TD
subgraph Uretim["1. Veri Uretimi"]
A["Dokumanlar (PDF / Word)"] -->|Yukleme| B["Google NotebookLM"]
B -->|Prompting| C["Ham Veri Seti (CSV)"]
end
subgraph OnIsleme["2. On Isleme"]
C -->|Python Script| D["Veri Temizligi ve Donusum"]
D -->|Formatlama| E["Egitim Verisi (Alpaca JSON)"]
end
subgraph Egitim["3. Model Egitimi (Colab)"]
E -->|Upload| F["Google Colab (T4 GPU)"]
F -->|LlamaFactory| G["Qwen-2.5-3B (Base Model)"]
G -->|QLoRA Fine-Tuning| H["LoRA Adapter (Egitilmis Agirliklar)"]
end
subgraph Kullanim["4. Kullanim"]
H -->|Merge/Load| I["Gradio Arayuzu"]
I -->|Soru-Cevap| J(("Son Kullanici"))
end
firat-akademik-tesvik-llm/
│
├── README.md # Proje dokümantasyonu
│
├── docs/ # Kaynak Dokümanlar
│ ├── Akademik_Tesvik_Yonetmeligi_Basvuru_Rehberi.docx
│ ├── Akademik_Tesvik_Odenegi_Yonetmeligi.pdf
│ └── Akademik_Tesvik_Takvimi_2026.pdf
│
├── data/ # Veri Setleri
│ ├── dataset.csv # NotebookLM'den alınan ham CSV
│ ├── dataset_info.json # LlamaFactory veri konfigürasyonu
│ └── atakan_qa.json # Eğitime hazır Alpaca JSON formatı
│
└── notebooks/ # Kodlar / Notebooklar
└── Training_Colab.ipynb # Google Colab Eğitim Notebook'u
- Python 3.10+ (yerelde veri dönüştürme için)
- Google Colab + T4 GPU (eğitim için)
- LlamaFactory (Colab notebook içinde kurulacak şekilde)
docs/ klasöründeki dokümanlar Google NotebookLM'e yüklenir. Aşağıdaki prompt ile dokümanlara dayalı Soru-Cevap (Q&A) verisi üretilir.
📋 NotebookLM Promptu
Aşağıdaki dokümanlardan SADECE içerikte açıkça geçen bilgilere dayanarak Question-Answer veri seti üret.
ÇIKTI FORMATI (CSV):
- Ayırıcı: noktalı virgül ;
- Her alan çift tırnak içinde olmalı.
- Satır sonu sadece kayıt bitince olsun.
- Alan içinde çift tırnak geçerse iki tırnak yap: "".
- Başlık satırı YAZMA.
KOLONLAR: "id";"question";"answer";"source_doc";"source_loc";"tags";"difficulty"
KURALLAR:
1) 1000 adet kayıt üret.
2) question: 8–25 kelime.
3) answer: 40–140 kelime; kısa, net.
4) source_doc: [Başvuru Rehberi] | [Yönetmelik] | [Takvim].
5) source_loc: Madde X, Tablo Y, Tarih aralığı vb.
6) tags: 3–6 anahtar kelime (örn: başvuru|yöksis).
7) difficulty: easy / med / hard.
8) Asla dokümanda olmayan bilgi ekleme.
Çıktı: data/raw_dataset.csv
NotebookLM’den gelen CSV verisi, LlamaFactory’nin kabul ettiği Alpaca formatına (instruction, input, output) dönüştürülür.
python notebooks/01_csv_to_json.pyÇıktı: data/atakan_qa.json
Eğitim işlemi Google Colab üzerinde T4 GPU ile yapılır.
-
Framework: LlamaFactory
-
Yöntem: QLoRA (4-bit Quantization)
-
Model: Qwen/Qwen2.5-3B-Instruct
-
Örnek Parametreler:
learning_rate: 2e-4num_train_epochs: 3lora_rank: 16cutoff_len: 1024
Nasıl Çalıştırılır?
notebooks/Training_Colab.ipynbdosyasını Colab’da aç.data/atakan_qa.json(veya kullandığın dataset) dosyasını yükle / Drive’dan bağla.- Notebook hücrelerini sırayla çalıştır.
- Eğitim çıktısı olarak LoRA adapter klasörü oluşur (
models/qwen2.5-lora-adapter/gibi).
Bu model, 1000 adet Soru-Cevap kaydı ile (Alpaca JSON formatında: data/atakan_qa.json) fine-tune edilmiştir.
Eğitim Konfigürasyonu (Training_Colab.ipynb):
- Base model:
Qwen/Qwen2.5-3B-Instruct - Stage: SFT
- Fine-tuning yöntemi: LoRA / QLoRA
- LoRA target:
all - LoRA rank (r):
16 - LoRA alpha:
32 - LoRA dropout:
0.05 - cutoff_len:
1024 - learning_rate:
2e-4 - num_train_epochs:
3 - max_samples:
10000(üst sınır)
Not: Eğitim verisi
dataset.csvdosyasından üretilerek JSON’a dönüştürülmüştür ve dönüştürme sırasında toplam kayıt sayısı ekrana yazdırılır.
Eğitim tamamlandığında, Training_Colab.ipynb içindeki Gradio hücresi çalıştırılarak chat arayüzü açılır.
Aşağıda örnek Gradio arayüz ekran görüntüsü yer almaktadır:
Örnek Soru:
“Akademik teşvik başvurusu için son tarih nedir?”
- Google NotebookLM: Sentetik Q&A veri üretimi (doküman tabanlı)
- LlamaFactory: Fine-tuning / QLoRA eğitim altyapısı
- Qwen-2.5: Temel LLM (Türkçe performansı iyi)
- QLoRA (bitsandbytes): Düşük bellek ile verimli eğitim
- Gradio: Demo arayüzü
- Pandas: Veri dönüştürme ve temizleme
- Encoding: CSV dosyaları UTF-8 olmalı (TR karakter sorunu varsa CP1254 denenebilir).
- Colab Limitleri: Ücretsiz Colab GPU süreleri sınırlı olabilir; checkpoint/çıktıları Drive’a almak mantıklı.
- Resmi Kaynak: Modelin cevabı yardımcıdır; nihai referans ilgili yönetmelik ve resmi duyurulardır.
Katkılar memnuniyetle karşılanır.
- Bu repoyu fork'layın.
- Yeni bir branch oluşturun:
feature/xxx - Değişiklikleri commit edin.
- Pull Request (PR) açın.
PR açarken mümkünse şunları ekleyin:
- Ne değişti? (kısa özet)
- Neden değişti? (gerekçe)
- Test / doğrulama adımları
Bu proje MIT License ile lisanslanmıştır.
- Lisans metni için:
LICENSEdosyasına bakın. - Kısaca: MIT lisansı, projeyi kullanmanıza, değiştirmenize ve dağıtmanıza izin verir; telif hakkı ve lisans bildiriminin korunmasını şart koşar.
Licensed under the MIT License. See
LICENSEfor details.
Bu projeyi akademik veya rapor amaçlı kullanırsanız aşağıdaki gibi atıf verebilirsiniz:
@software{firat_akademik_tesvik_llm,
author = {Şahin Atakan Emre},
title = {Firat Universitesi Akademik Tesvik Asistani (LLM Fine-Tuning)},
year = {2026},
url = {https://github.com/Atakan-Emre/firat-akademik-tesvik-llm}
}
