--- language: - tr license: apache-2.0 base_model: Qwen/Qwen3-14B-Instruct pipeline_tag: text-generation tags: - qwen3 - turkish - teknofest - tubitak - fine-tuned - qlora - unsloth - conversational - instruct library_name: transformers ---
# 🎯 ProjeDanışmanAI v2 ### TEKNOFEST & TÜBİTAK Yarışmacıları için Türkçe Yapay Zeka Danışmanı [![Model](https://img.shields.io/badge/Base%20Model-Qwen3--14B-blue?style=flat-square)](https://huggingface.co/Qwen/Qwen3-14B-Instruct) [![Dil](https://img.shields.io/badge/Dil-Türkçe-red?style=flat-square)](https://huggingface.co/models?language=tr) [![Lisans](https://img.shields.io/badge/Lisans-Apache%202.0-green?style=flat-square)](https://opensource.org/licenses/Apache-2.0) [![Yöntem](https://img.shields.io/badge/Yöntem-QLoRA%204bit-orange?style=flat-square)](https://github.com/unslothai/unsloth)
--- ## 📌 Nedir? **ProjeDanışmanAI v2**, Qwen3-14B modeli üzerine 3.043 Türkçe örnek ile fine-tune edilmiş bir danışman modelidir. TEKNOFEST ve TÜBİTAK yarışmacılarına proje süreçlerinin her aşamasında rehberlik eder. > ⚡ v2, v1'e (Mistral-Nemo-12B) kıyasla daha güçlü bir base model kullanıyor. > Qwen3-14B, Qwen2.5-32B eşdeğeri performans gösterirken 14B VRAM'de çalışır. --- ## ✅ Ne Yapabilir? | Kategori | Açıklama | |---|---| | 📄 **Rapor Yazımı** | KTR / PTR teknik rapor bölümlerini yazar, örnekler sunar | | 💡 **Proje Geliştirme** | Sıfırdan proje fikri oluşturur, yol haritası çıkarır | | 🔍 **Özet & Analiz** | Proje dökümanlarını özetler, güçlü/zayıf yönleri analiz eder | | 🧠 **Strateji** | Jüri odaklı sunum stratejisi, özgünlük bölümü güçlendirme | | 🛠️ **Hata Düzeltme** | Mevcut rapor bölümlerindeki eksikleri tespit eder | | 🚫 **Alan Dışı Red** | TEKNOFEST/TÜBİTAK dışı sorulara kibarca yanıt vermez | --- ## 🏋️ Eğitim Detayları | Parametre | Değer | |---|---| | Base Model | `Qwen/Qwen3-14B-Instruct` | | Yöntem | QLoRA 4-bit + Unsloth | | LoRA Rank | 16 | | LoRA Alpha | 32 | | rsLoRA | ✅ | | Epoch | 2 | | Learning Rate | 1e-4 | | Efektif Batch | 8 (2 × 4 grad. accum.) | | Max Seq Length | 3072 | | Warmup Ratio | %10 | | LR Scheduler | Cosine | | Thinking Mode | Kapalı (`/no_think`) | | En İyi Val Loss | 0.5519 (adım 400) | --- ## 📊 Veri Seti 3.043 Türkçe instruction-output çifti: | Kategori | Örnek | |---|---| | Rapor Yazımı | 761 | | Sıfırdan Proje | 730 | | Genel Özet | 593 | | Strateji | 505 | | Hata Düzeltme | 324 | | Alan Dışı Red | 130 | | **Toplam** | **3.043** | --- ## 🚀 Kullanım ### Ollama ile (GGUF Q4_K_M) ```bash ollama run hf.co/Rudblest/projedanismanai-v2-qwen3-14b:Q4_K_M ``` ### Python — Unsloth ile ```python import re from unsloth import FastLanguageModel model, tokenizer = FastLanguageModel.from_pretrained( model_name = "Rudblest/projedanismanai-v2-qwen3-14b", max_seq_length = 3072, dtype = None, load_in_4bit = True, ) FastLanguageModel.for_inference(model) SYSTEM_PROMPT = ( "/no_think\n" "Sen ProjeDanışmanAI'sın. TEKNOFEST ve TÜBİTAK yarışmacılarına Türkçe olarak " "rehberlik eden bir yapay zeka danışmanısın." ) def chat(soru, max_new_tokens=512): messages = [ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": soru}, ] prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model.generate( **inputs, max_new_tokens=max_new_tokens, temperature=0.7, top_p=0.9, repetition_penalty=1.1, do_sample=True, ) response = tokenizer.decode( outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True ) # taglarını temizle return re.sub(r".*?", "", response, flags=re.DOTALL).strip() print(chat("TEKNOFEST KTR raporunda risk analizi nasıl yazılır?")) ``` ### llama-cpp-python ile ```python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id = "Rudblest/projedanismanai-v2-qwen3-14b", filename = "*Q4_K_M.gguf", n_gpu_layers = -1, n_ctx = 3072, ) response = llm.create_chat_completion(messages=[ {"role": "system", "content": "/no_think\nSen ProjeDanışmanAI'sın..."}, {"role": "user", "content": "TÜBİTAK 2209-A başvurusu nasıl hazırlanır?"}, ]) print(response["choices"][0]["message"]["content"]) ``` --- ## ⚠️ Önemli Not — `/no_think` Qwen3 varsayılan olarak `...` bloklarıyla düşünce zinciri üretir. Bu model **thinking mode kapalı** olarak eğitilmiştir. Her kullanımda system prompt'un başına `/no_think` ekleyin, aksi hâlde boş `` tagları yanıta karışabilir. --- ## 🔄 v1 → v2 Karşılaştırması | | v1 | v2 | |---|---|---| | Base Model | Mistral-Nemo-12B | **Qwen3-14B** | | Türkçe Kalite | Orta | **Yüksek** | | LoRA Rank | 64 | **16** (az veri için optimal) | | Epoch | 5 | **2** (overfitting önlendi) | | Thinking Mode | Yok | **Kapalı (`/no_think`)** | | Val Loss (en iyi) | — | **0.5519** | --- ## 🚫 Sınırlamalar - Yalnızca Türkçe yanıt üretir - TEKNOFEST / TÜBİTAK dışı konularda yardım etmez - Şartname detayları için RAG sistemi önerilir (model şartnameleri ezberlemiş değildir) - Üretilen içerik danışman niteliğindedir, resmi başvuru öncesi kontrol edilmelidir --- ## 👥 Ekip **ProjeDanışmanAI** — Fırat Üniversitesi öğrencileri tarafından geliştirilmektedir. --- ## 📄 Lisans Apache 2.0 — Qwen3 temel modeli lisansına uygun.