Files
projedanismanai-v2-qwen3-14b/README.md
ModelHub XC ebd274395b 初始化项目,由ModelHub XC社区提供模型
Model: Rudblest/projedanismanai-v2-qwen3-14b
Source: Original Platform
2026-05-29 17:10:16 +08:00

207 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
---
<div align="center">
# 🎯 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)
</div>
---
## 📌 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
)
# <think> taglarını temizle
return re.sub(r"<think>.*?</think>", "", 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 `<think>...</think>` 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ş `<think></think>` 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.