GGUF
Turkish
English
turkish
personal-assistant
qwen
llama.cpp
unsloth
natural-language
conversational
Instructions to use AlienTurk/Turkish-Asistant-gguf with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use AlienTurk/Turkish-Asistant-gguf with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf AlienTurk/Turkish-Asistant-gguf:Q4_K_M # Run inference directly in the terminal: llama cli -hf AlienTurk/Turkish-Asistant-gguf:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf AlienTurk/Turkish-Asistant-gguf:Q4_K_M # Run inference directly in the terminal: llama cli -hf AlienTurk/Turkish-Asistant-gguf:Q4_K_M
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf AlienTurk/Turkish-Asistant-gguf:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf AlienTurk/Turkish-Asistant-gguf:Q4_K_M
Use Docker
docker model run hf.co/AlienTurk/Turkish-Asistant-gguf:Q4_K_M
- Llama new
- LM Studio
- Jan
- Ollama
How to use AlienTurk/Turkish-Asistant-gguf with Ollama:
ollama run hf.co/AlienTurk/Turkish-Asistant-gguf:Q4_K_M
- Unsloth Desktop
- Docker Model Runner
How to use AlienTurk/Turkish-Asistant-gguf with Docker Model Runner:
docker model run hf.co/AlienTurk/Turkish-Asistant-gguf:Q4_K_M
- Lemonade
How to use AlienTurk/Turkish-Asistant-gguf with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull AlienTurk/Turkish-Asistant-gguf:Q4_K_M
Run and chat with the model
lemonade run user.Turkish-Asistant-gguf-Q4_K_M
List all available models
lemonade list
- Atomic Chat
Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -13,42 +13,49 @@ tags:
|
|
| 13 |
base_model: Qwen/Qwen2.5-3B-Instruct
|
| 14 |
---
|
| 15 |
|
| 16 |
-
# Mira Turkish Assistant
|
| 17 |
|
| 18 |
-
Türkçe kişisel asistan görevleri için fine-tune edilmiş Qwen2.5-3B-Instruct modeli — **
|
| 19 |
|
| 20 |
-
**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
## Model Detayları
|
| 23 |
|
| 24 |
- **Base model:** [Qwen/Qwen2.5-3B-Instruct](https://huggingface.co/Qwen/Qwen2.5-3B-Instruct)
|
| 25 |
- **Fine-tune yöntemi:** QLoRA (r=16, alpha=32, target_modules: q,k,v,o,gate,up,down)
|
| 26 |
-
- **Veri seti:**
|
| 27 |
-
- **Eğitim:**
|
| 28 |
- **Framework:** Unsloth + Transformers + TRL (Google Colab L4 GPU)
|
| 29 |
- **Quantization:** Q4_K_M (~1.8 GB)
|
| 30 |
- **Context window:** 2048 token (eğitim) / Android 768, iOS 2048 (runtime)
|
| 31 |
|
| 32 |
-
### Intent Dağılımı (
|
| 33 |
| Intent | Adet | Yüzde |
|
| 34 |
|--------|------|-------|
|
| 35 |
-
| CHAT |
|
| 36 |
-
| SET_REMINDER |
|
| 37 |
-
|
|
| 38 |
-
|
|
| 39 |
-
|
|
| 40 |
-
|
|
|
|
|
| 41 |
|
| 42 |
## Kullanım
|
| 43 |
|
| 44 |
### llama.cpp ile (komut satırı)
|
| 45 |
|
| 46 |
```bash
|
| 47 |
-
llama.cpp/main -m qwen2.5-3b-it-tr-asistant-
|
| 48 |
-c 2048 \
|
| 49 |
-n 512 \
|
| 50 |
--threads 3 \
|
| 51 |
-
-p "<|im_start|>system\nSen
|
| 52 |
```
|
| 53 |
|
| 54 |
### llama-cpp-python ile
|
|
@@ -57,18 +64,19 @@ llama.cpp/main -m qwen2.5-3b-it-tr-asistant-v4.Q4_K_M.gguf \
|
|
| 57 |
from llama_cpp import Llama
|
| 58 |
|
| 59 |
llm = Llama(
|
| 60 |
-
model_path="qwen2.5-3b-it-tr-asistant-
|
| 61 |
n_threads=3,
|
| 62 |
n_ctx=2048,
|
| 63 |
)
|
| 64 |
|
| 65 |
-
SYSTEM_PROMPT = """Sen
|
| 66 |
-
|
|
|
|
| 67 |
|
| 68 |
output = llm.create_chat_completion(
|
| 69 |
messages=[
|
| 70 |
{"role": "system", "content": SYSTEM_PROMPT},
|
| 71 |
-
{"role": "user", "content": "
|
| 72 |
],
|
| 73 |
max_tokens=256,
|
| 74 |
stop=["<|im_end|>"],
|
|
@@ -83,10 +91,10 @@ Model şu intent'lere sınıflandırma yapar ve JSON çıktısı üretir:
|
|
| 83 |
```json
|
| 84 |
{
|
| 85 |
"intent": "SET_REMINDER",
|
| 86 |
-
"task_title": "
|
| 87 |
-
"datetime": "2026-06-
|
| 88 |
"navigate_to": null,
|
| 89 |
-
"reply": "Tabii
|
| 90 |
}
|
| 91 |
```
|
| 92 |
|
|
@@ -103,31 +111,28 @@ Model şu intent'lere sınıflandırma yapar ve JSON çıktısı üretir:
|
|
| 103 |
**Kapsam dışı istekler** (model bunlara `CHAT` yanıtı verir):
|
| 104 |
yemek siparişi, web arama, hava durumu, müzik, e-posta, çeviri, taksi, telefon, SMS, haber, alışveriş (kendi market listesi hariç), banka, sosyal medya, video, borsa, kripto, matematik, tarif, kamera, şarkı sözü, bilet, döviz, şaka, akıllı ev, hikaye yazma.
|
| 105 |
|
| 106 |
-
**STT gürbüzlüğü:** Eğitim verisinde SMS kısaltmaları (`yrn`, `sbh`, `aksm`), Türkçe karakter düşmeleri (`hastane`→`hastne`, `yarın`→`yrn`), sesli harf kayıpları (`dişçi`→`diş`), devrik cümle, birleşik kelime (`kanka`, `hocm`), aşırı kısaltma (`slm`, `tmm`) için
|
| 107 |
|
| 108 |
-
**Negation tespiti:** "Vazgeçtim", "istemiyorum", "yapma", "iptal", "gerek yok", "bırak" gibi
|
| 109 |
|
| 110 |
-
**Context:** 2048 token (eğitim). Multi-turn diyalogda
|
| 111 |
|
| 112 |
-
## Eğitim Veri Seti (
|
| 113 |
|
| 114 |
| Kısım | Açıklama | Adet |
|
| 115 |
|-------|----------|------|
|
| 116 |
-
| 1 |
|
| 117 |
-
| 2 |
|
| 118 |
-
| 3 |
|
| 119 |
-
| 4 |
|
| 120 |
-
| 5 |
|
| 121 |
-
| 6 |
|
| 122 |
-
|
|
| 123 |
-
|
|
| 124 |
-
|
|
| 125 |
-
|
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
| 15 | Ağır STT / Typo / Kısaltma → SET_REMINDER | 600 |
|
| 129 |
-
| 16 | Çok Turlu Negasyon + Empati (300 diyalog, 6 path × 50) | 300 |
|
| 130 |
-
| 17 | Intent Güçlendirme (ADD_TASK, NAVIGATE, LIST_TASKS) | 200 |
|
| 131 |
|
| 132 |
## Donanım Doğrulamaları (Mobile)
|
| 133 |
|
|
@@ -138,6 +143,17 @@ yemek siparişi, web arama, hava durumu, müzik, e-posta, çeviri, taksi, telefo
|
|
| 138 |
|
| 139 |
Vulkan backend Dimensity 8100 Android 14'te `ggml_backend_alloc_ctx_tensors_from_buft` SIGSEGV hatası veriyor (driver coopmat bug). OpenCL llama-cpp-dart 0.6.15'te implemente edilmiyor. NPU (APU 580) için llama.cpp backend'i yok.
|
| 140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
## Lisans
|
| 142 |
|
| 143 |
Apache 2.0 (Qwen2.5 base modeliyle uyumlu).
|
|
@@ -145,9 +161,9 @@ Apache 2.0 (Qwen2.5 base modeliyle uyumlu).
|
|
| 145 |
## Atıf
|
| 146 |
|
| 147 |
```
|
| 148 |
-
@misc{mira-turkish-assistant-2026,
|
| 149 |
author = {Algoritma Turk},
|
| 150 |
-
title = {Mira Turkish Assistant: Qwen2.5-3B Fine-tuned for Turkish Personal Assistant Tasks},
|
| 151 |
year = {2026},
|
| 152 |
publisher = {Hugging Face},
|
| 153 |
url = {https://huggingface.co/AlienTurk/Turkish-Asistant-gguf}
|
|
|
|
| 13 |
base_model: Qwen/Qwen2.5-3B-Instruct
|
| 14 |
---
|
| 15 |
|
| 16 |
+
# Mira Turkish Assistant v5_hybrid (Qwen2.5-3B-IT-TR)
|
| 17 |
|
| 18 |
+
Türkçe kişisel asistan görevleri için fine-tune edilmiş Qwen2.5-3B-Instruct modeli — **v5_hybrid**.
|
| 19 |
|
| 20 |
+
**v5_hybrid farkı (v4 üzerine):**
|
| 21 |
+
- **Dataset:** 1584 → 662 unique dialog (-%58 boyut, ama +7 domain kapsamı, jenerik system prompt, balanced intent dağılımı)
|
| 22 |
+
- **Domain kapsamı:** 1 (sağlık) → 7 (sağlık, iş, finans, eğitim, seyahat, sosyal, ev)
|
| 23 |
+
- **System prompt:** 800+ char → 470 char, 6 özel şablon kaldırıldı, jenerik
|
| 24 |
+
- **Persona:** "Ersin Bey" hardcoded kaldırıldı (runtime'dan inject v6'ya kaldı)
|
| 25 |
+
- **Eğitim:** 1 epoch → 2 epoch, max_steps cap kaldırıldı, EarlyStopping (patience=2, threshold=0.005), LR=1.5e-4 → 5e-5 (Merlin önerisi), cosine_with_restarts scheduler
|
| 26 |
+
- **Hedef:** v3/v4'teki "saçmalama" sorunlarını gidermek, doğal sohbet + asistan görevleri dengesini sağlamak, 7 domain'de native doğru sonuç
|
| 27 |
|
| 28 |
## Model Detayları
|
| 29 |
|
| 30 |
- **Base model:** [Qwen/Qwen2.5-3B-Instruct](https://huggingface.co/Qwen/Qwen2.5-3B-Instruct)
|
| 31 |
- **Fine-tune yöntemi:** QLoRA (r=16, alpha=32, target_modules: q,k,v,o,gate,up,down)
|
| 32 |
+
- **Veri seti:** 662 unique diyalog serisi (Türkçe, SFT, ChatML format, 7 domain, dengeli intent dağılımı)
|
| 33 |
+
- **Eğitim:** 2 epoch, validation split %8, early stopping (patience=2, threshold=0.005), max_steps=-1, weight_decay=0.01, LR=5e-5, cosine_with_restarts scheduler
|
| 34 |
- **Framework:** Unsloth + Transformers + TRL (Google Colab L4 GPU)
|
| 35 |
- **Quantization:** Q4_K_M (~1.8 GB)
|
| 36 |
- **Context window:** 2048 token (eğitim) / Android 768, iOS 2048 (runtime)
|
| 37 |
|
| 38 |
+
### Intent Dağılımı (662 dialog)
|
| 39 |
| Intent | Adet | Yüzde |
|
| 40 |
|--------|------|-------|
|
| 41 |
+
| CHAT | ~120 | %18 |
|
| 42 |
+
| SET_REMINDER (tek-tur + çok-turlu) | ~360 | %54 |
|
| 43 |
+
| ADD_TASK | 41 | %6 |
|
| 44 |
+
| LIST_TASKS + NAVIGATE | 31 | %5 |
|
| 45 |
+
| Negasyon / Düzeltme | 42 | %6 |
|
| 46 |
+
| Genel sohbet + Karma | 78 | %12 |
|
| 47 |
+
| Typo / STT dayanıklılık | 40 | %6 |
|
| 48 |
|
| 49 |
## Kullanım
|
| 50 |
|
| 51 |
### llama.cpp ile (komut satırı)
|
| 52 |
|
| 53 |
```bash
|
| 54 |
+
llama.cpp/main -m qwen2.5-3b-it-tr-asistant-v5.Q4_K_M.gguf \
|
| 55 |
-c 2048 \
|
| 56 |
-n 512 \
|
| 57 |
--threads 3 \
|
| 58 |
+
-p "<|im_start|>system\nSen Türkçe kişisel asistansın.<|im_end|>\n<|im_start|>user\nYarın saat 14'te fatura ödemeyi unutma.<|im_end|>\n<|im_start|>assistant\n"
|
| 59 |
```
|
| 60 |
|
| 61 |
### llama-cpp-python ile
|
|
|
|
| 64 |
from llama_cpp import Llama
|
| 65 |
|
| 66 |
llm = Llama(
|
| 67 |
+
model_path="qwen2.5-3b-it-tr-asistant-v5.Q4_K_M.gguf",
|
| 68 |
n_threads=3,
|
| 69 |
n_ctx=2048,
|
| 70 |
)
|
| 71 |
|
| 72 |
+
SYSTEM_PROMPT = """Sen Türkçe kişisel asistansın. BUGÜN: {today}.
|
| 73 |
+
Sadece JSON: {"intent":"CHAT|ADD_TASK|LIST_TASKS|SET_REMINDER|NAVIGATE","task_title":"…|null","datetime":"ISO8601|null","navigate_to":"…|null","reply":"Türkçe yanıt"}.
|
| 74 |
+
Normal sohbette doğal cevap ver. Görev/hatırlatıcı istendiğinde action alanını doldur. JSON dışında bir şey yazma."""
|
| 75 |
|
| 76 |
output = llm.create_chat_completion(
|
| 77 |
messages=[
|
| 78 |
{"role": "system", "content": SYSTEM_PROMPT},
|
| 79 |
+
{"role": "user", "content": "Yarın saat 14'te fatura ödemeyi unutma."},
|
| 80 |
],
|
| 81 |
max_tokens=256,
|
| 82 |
stop=["<|im_end|>"],
|
|
|
|
| 91 |
```json
|
| 92 |
{
|
| 93 |
"intent": "SET_REMINDER",
|
| 94 |
+
"task_title": "Fatura ödemek",
|
| 95 |
+
"datetime": "2026-06-07T11:00:00.000Z",
|
| 96 |
"navigate_to": null,
|
| 97 |
+
"reply": "Tabii, yarın saat 14:00 için fatura ödeme hatırlatıcısı oluşturdum."
|
| 98 |
}
|
| 99 |
```
|
| 100 |
|
|
|
|
| 111 |
**Kapsam dışı istekler** (model bunlara `CHAT` yanıtı verir):
|
| 112 |
yemek siparişi, web arama, hava durumu, müzik, e-posta, çeviri, taksi, telefon, SMS, haber, alışveriş (kendi market listesi hariç), banka, sosyal medya, video, borsa, kripto, matematik, tarif, kamera, şarkı sözü, bilet, döviz, şaka, akıllı ev, hikaye yazma.
|
| 113 |
|
| 114 |
+
**STT gürbüzlüğü:** Eğitim verisinde SMS kısaltmaları (`yrn`, `sbh`, `aksm`), Türkçe karakter düşmeleri (`hastane`→`hastne`, `yarın`→`yrn`), sesli harf kayıpları (`dişçi`→`diş`), devrik cümle, birleşik kelime (`kanka`, `hocm`), aşırı kısaltma (`slm`, `tmm`) için 40 örnek vardır (KISIM 10).
|
| 115 |
|
| 116 |
+
**Negation tespiti:** "Vazgeçtim", "istemiyorum", "yapma", "iptal", "gerek yok", "bırak" gibi 30+ diyalogla (KISIM 6) eğitildi; model bunları kalıcı olarak CHAT'e yönlendirir ve yeni SET_REMINDER üretmez.
|
| 117 |
|
| 118 |
+
**Context:** 2048 token (eğitim). Multi-turn diyalogda 5+ tur geçince eski bağlam düşebilir — KISIM 9 (karma 5-8 turlu diyaloglar) bu duruma karşı eğitildi. Runtime tarafında RAG injection ile aktif görev listesi prompt'a enjekte edilir.
|
| 119 |
|
| 120 |
+
## Eğitim Veri Seti (662 dialog)
|
| 121 |
|
| 122 |
| Kısım | Açıklama | Adet |
|
| 123 |
|-------|----------|------|
|
| 124 |
+
| 1 | Persona & Selam (jenerik) | 70 |
|
| 125 |
+
| 2 | Tek-tur SET_REMINDER (7 domain × time × title) | 220 |
|
| 126 |
+
| 3 | Çok-turlu SET_REMINDER ("ne zaman?" → yanıt → kur) | 140 |
|
| 127 |
+
| 4 | ADD_TASK | 41 |
|
| 128 |
+
| 5 | LIST_TASKS + NAVIGATE | 31 |
|
| 129 |
+
| 6 | Negasyon / İptal (domain'ler arası) | 30 |
|
| 130 |
+
| 7 | Düzeltme / Güncelleme (saat veya başlık değişikliği) | 12 |
|
| 131 |
+
| 8 | Genel sohbet (hava, motivasyon, günlük, teknoloji, kitap, film, yemek) | 54 |
|
| 132 |
+
| 9 | Karma uzun diyaloglar (5-8 turlu, domain'ler arası) | 24 |
|
| 133 |
+
| 10 | Typo / STT dayanıklılık (tüm domain'lerde ağır bozulma) | 40 |
|
| 134 |
+
|
| 135 |
+
**Domain dağılımı (7 domain):** sağlık, iş/kariyer, finans/fatura, eğitim, seyahat/ulaşım, sosyal/kişisel, ev/günlük yaşam. Her domain'den 60-120 örnek cross-product kombinasyonuyla (template × time × title) unique olarak üretildi.
|
|
|
|
|
|
|
|
|
|
| 136 |
|
| 137 |
## Donanım Doğrulamaları (Mobile)
|
| 138 |
|
|
|
|
| 143 |
|
| 144 |
Vulkan backend Dimensity 8100 Android 14'te `ggml_backend_alloc_ctx_tensors_from_buft` SIGSEGV hatası veriyor (driver coopmat bug). OpenCL llama-cpp-dart 0.6.15'te implemente edilmiyor. NPU (APU 580) için llama.cpp backend'i yok.
|
| 145 |
|
| 146 |
+
## v5_hybrid Tasarım Kararları
|
| 147 |
+
|
| 148 |
+
1. **Jenerik system prompt:** "Ersin Bey" hardcoded persona kaldırıldı. Kullanıcı adı runtime'dan inject edilecek (v6 feature).
|
| 149 |
+
2. **7 domain kapsamı:** Sağlık + İş + Finans + Eğitim + Seyahat + Sosyal + Ev — `itertools.product(template, time, title)` ile true cross-product unique örnekler.
|
| 150 |
+
3. **3B model + küçük dataset trade-off:** 662 örnek × 2 epoch, early stopping patience=2, LR=5e-5 (Merlin önerisi — 1.5e-4 yerine).
|
| 151 |
+
4. **No MAX_STEPS cap:** claude_v5 başarısı, dataset küçük ama yeterli (170 step bekleniyor, erken durma ile 80-120 step).
|
| 152 |
+
5. **cosine_with_restarts scheduler:** Düz iniş + restart, lokal minimum'a düşmemek için.
|
| 153 |
+
6. **Eval steps=25:** 170 step / 25 = 6-7 eval noktası, yeterli validasyon sinyali.
|
| 154 |
+
7. **System prompt 470 char:** "asla 'bana' demeyin" kuralı korundu, "size yardımcı olabilirim" tonu sabit.
|
| 155 |
+
8. **No hardcoded "Merhaba" sabit:** chat() helper'ı 4 farklı jenerik selam verir (kullanıcı çeşitliliği için).
|
| 156 |
+
|
| 157 |
## Lisans
|
| 158 |
|
| 159 |
Apache 2.0 (Qwen2.5 base modeliyle uyumlu).
|
|
|
|
| 161 |
## Atıf
|
| 162 |
|
| 163 |
```
|
| 164 |
+
@misc{mira-turkish-assistant-v5-hybrid-2026,
|
| 165 |
author = {Algoritma Turk},
|
| 166 |
+
title = {Mira Turkish Assistant v5_hybrid: Qwen2.5-3B Fine-tuned for 7-Domain Turkish Personal Assistant Tasks},
|
| 167 |
year = {2026},
|
| 168 |
publisher = {Hugging Face},
|
| 169 |
url = {https://huggingface.co/AlienTurk/Turkish-Asistant-gguf}
|