You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

AkilliAyna-Qwen3B

TUBITAK 2209-A kapsaminda Firat Universitesi'nde gelistirilen Yapay Zeka Destekli Akilli Ayna projesine ozel fine-tune edilmis Turkce dil modelidir.

Model Bilgileri

Ozellik Deger
Base Model Qwen/Qwen2.5-3B-Instruct
Fine-tuning Yontemi QLoRA (4-bit NF4)
Egitim Ornegi 3,350 Turkce ornek
Egitilen Parametre 14.9M / 3.1B (yuzde 0.48)
Final Loss ~0.13
Egitim Suresi ~1.5-2 saat (NVIDIA RTX 4060 Laptop 8GB)
Dil Turkce
Lisans Apache 2.0

Ne Yapar?

Bu model, sesli asistan olarak kullanilmak uzere egitilmistir. Kullanicinin SQLite veritabanindan gelen gorev listesini analiz ederek Turkce sesli sorgulara dogal yanit uretir.

Desteklenen komutlar:

  • Bugun / yarin / bu hafta ne var?
  • Sabah / ogleden sonra / aksam planlarim nedir?
  • En yogun / en az yogun gun hangisi?
  • Bos saatlerim hangileri?
  • Gorev ekle yarin saat 10 toplanti
  • Hatirla aksam ilac al

Hallusinasyon Engelleme

Model, gorev listesi bos oldugunda hic devreye girmez. Uygulama katmaninda has_no_tasks() kontrolu yapilir ve dogrudan "planin bulunmuyor" yaniti dondurulur. Bu sayede model tamamen bos context uzerinde calistirilmaz.

Egitim Verisi

3,350 Turkce ornek asagidaki kategorileri icermektedir:

  • Gorev sorgulama (bugun, yarin, haftalik, sabah/aksam/ogleden sonra)
  • Zaman dilimi analizi (en yogun gun, en az yogun gun, bos saatler)
  • Sesle gorev ekleme (gorev ekle, hatirla, not al, listeye ekle)
  • Genel sohbet (merhaba, tesekkurler vb.)

Veri hazirlama sureci:

  • Orijinal 3,000 ornek revize edildi ("March" -> "Mart" donusumu, 1521 yerde)
  • Yanlis output'lar duzeltildi (en yogun/en az yogun gun sorulari)
  • Flutter'in gonderdigi {"tasks": [...]} formatina uygun hale getirildi
  • 300 sesle gorev ekleme ornegi eklendi
  • 50 genel sohbet ornegi eklendi

Fine-tuning Parametreleri

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.float16,
    bnb_4bit_use_double_quant=True,
)

lora_config = LoraConfig(
    r=8,
    lora_alpha=16,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
                    "gate_proj", "up_proj", "down_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM",
)

training_args = TrainingArguments(
    num_train_epochs=3,
    per_device_train_batch_size=2,
    gradient_accumulation_steps=8,
    learning_rate=2e-4,
    fp16=True,
    optim="paged_adamw_8bit",
    lr_scheduler_type="cosine",
    warmup_steps=10,
)

Kullanim

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_id = "Rudblest/AkilliAyna-Qwen3B"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.float16,
    device_map="auto",
)
model.eval()

def sorgula(soru: str, gorev_listesi: str) -> str:
    system = (
        "Sen Turkce konusan akilli ayna asistanisin. "
        "Asagidaki GOREV LISTESINDE yazan bilgileri kullanarak cevap ver. "
        "Gorev listesinde olmayan hicbir seyi soyleme, uydurma, tahmin etme."
    )
    prompt = (
        f"<|im_start|>system\n{system}<|im_end|>\n"
        f"<|im_start|>user\n{soru}\n\nGOREV LISTESI:\n{gorev_listesi}<|im_end|>\n"
        f"<|im_start|>assistant\n"
    )
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_new_tokens=150,
            temperature=0.1,
            do_sample=True,
            repetition_penalty=1.2,
            pad_token_id=tokenizer.eos_token_id,
        )
    return tokenizer.decode(
        outputs[0][inputs["input_ids"].shape[1]:],
        skip_special_tokens=True
    ).strip()

# Ornek kullanim
gorevler = """- 09:00 sabah toplantisi
- 12:30 ogle yemegi randevusu
- 15:00 proje sunumu"""

yanit = sorgula("Bugun programim ne?", gorevler)
print(yanit)
# Cikti: "Bugun sabah 09:00'de toplantın var,
#          12:30'da ogle yemegi randevusu ve
#          15:00'de proje sunumun var."

HuggingFace Inference API

Bu model HuggingFace Dedicated Endpoint uzerinde servis edilmektedir. Flutter uygulamasi bu endpoint'e baglanarak sesli sorgulari isler.

import requests

API_URL = "https://YOUR_ENDPOINT.us-east-1.aws.endpoints.huggingface.cloud"
headers = {"Authorization": "Bearer hf_YOUR_TOKEN"}

def hf_sorgula(soru, gorev_listesi):
    prompt = build_prompt(soru, gorev_listesi)
    response = requests.post(API_URL, headers=headers, json={
        "inputs": prompt,
        "parameters": {
            "max_new_tokens": 150,
            "temperature": 0.1,
            "repetition_penalty": 1.2,
            "return_full_text": False,
        }
    })
    return response.json()[0]["generated_text"]

Sistem Mimarisi

Bluetooth Mikrofon
        |
Flutter Android App
        |
  speech_to_text (tr_TR)
        |
HuggingFace Dedicated Endpoint
        |
  AkilliAyna-Qwen3B
        |
  flutter_tts (tr-TR)
        |
Bluetooth Hoparlor

Sinirlamalar

  • Yalnizca Turkce dil destegi
  • Gorev listesi disindaki bilgileri bilmez (tasarim geregi)
  • Uzun baglamsal konusmalarda (10+ tur) performans dustigunec duser
  • Tarih/saat hesaplamalari uygulama katmaninda yapilmaktadir

Proje Hakkinda

Alinti

@misc{akilliayna2026,
  title={AkilliAyna-Qwen3B: Fine-tuned Turkish Voice Assistant for Smart Mirror},
  author={Parcal, Berkay and Kazan, Esra and Kaya, Sevval},
  year={2026},
  institution={Firat University},
  note={TUBITAK 2209-A Research Project},
  url={https://huggingface.co/Rudblest/AkilliAyna-Qwen3B}
}
Downloads last month
-
Safetensors
Model size
3B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Rudblest/AkilliAyna-Qwen3B

Base model

Qwen/Qwen2.5-3B
Adapter
(1116)
this model