Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes-lora

AlicanKiraz0/Kizagan-E4B-Turkish-Reasoning-Model için Türkçe function calling LoRA adaptörü. Yalnızca adaptör ağırlıklarını içerir; çalıştırmak için temel modele ihtiyaç duyar.

Amaç: Türkçe agentic sistemlerde ve otomasyon workflow'larında araç çağırma motoru olarak kullanılmak üzere eğitilmiştir. LangChain, LangGraph, CrewAI gibi ajan çatılarının çoğu İngilizce tool-calling modellerine dayanır; bu adaptör aynı yetenekleri Türkçe için yerel ve açık olarak sunar. Türkçe kullanıcı niyetini, bir ajan döngüsünün yürütebileceği yapılandırılmış araç çağrılarına dönüştürür.

Birleştirilmiş (tam, doğrudan kullanılabilir) sürüm için: Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes


Genel Bakış

Temel model AlicanKiraz0/Kizagan-E4B-Turkish-Reasoning-Model
Mimari gemma4 (Gemma 3n tabanlı), ~4B parametre
Adaptör tipi LoRA (PEFT)
Eğitim Unsloth + TRL, 16-bit base (4-bit kapalı)
Dil Türkçe
Bağlam uzunluğu 5632 token

Bu adaptör yalnızca LoRA ağırlıklarını barındırır. Tam modeli indirmeden, temel modelin üzerine yüklenir. Disk/bant genişliği tasarrufu için tercih edilebilir.


Ne Yapar?

Türkçe doğal dildeki istekleri yapılandırılmış <tool_call> JSON çağrılarına dönüştürür. Temel modelin Türkçe yeteneklerini korurken function calling davranışı ekler.

Kullanıcı: İstanbul'da hava durumu nasıl?

Model:
<tool_call>
{"name": "get_weather", "arguments": {"city": "Istanbul"}}
</tool_call>

Agentic Kullanım Senaryoları

Model bir ajan döngüsünün karar/eylem katmanı olarak konumlanır:

  • Türkçe asistanlar / chatbot'lar: Kullanıcı Türkçe konuşur, model arka plandaki API'leri çağırır.
  • Otomasyon workflow'ları: n8n benzeri akışlarda veya ajan çatılarında Türkçe komutları yapılandırılmış eylemlere çevirme.
  • Çok-adımlı ajanlar: Ardışık tool çağrıları gerektiren görevler (veri çek → işle → raporla).
  • RAG + tool hibrit sistemler: Bilgi getirme ile eylem yürütmeyi birleştiren Türkçe ajanlar.

Tipik döngü: Türkçe istek → tool_call → tool çalışır → sonuç döner → Türkçe yanıt.


Eğitim Verisi

Kaynak Oran
Tuguberk/turkish-hermes-function-calling %85 (~11.5k)
Turkish-LLM-v10 genel sohbet %15

Function calling verisi NousResearch/hermes-function-calling-v1'in Türkçe çevirisidir; JSON şemaları ve argümanlar İngilizce korunmuş, yalnızca doğal dil çevrilmiştir.


Benchmark Sonuçları

25 tool-call örneği, greedy decoding:

Metrik Sonuç
<tool_call> bloğu üretimi %84.0
JSON geçerliliği %84.0
Fonksiyon adı eşleşmesi %84.0
İçeriğe sızma %0.0
Eval loss / Perplexity 0.713 / 2.04

Güçlü Yönler

  • Tutarlı tool çağrısı: çağırdığında geçerli JSON + doğru fonksiyon adı (%84 hizalanma).
  • Sıfır sızma: tool çağrısı düz metne karışmıyor.
  • Multi-tool desteği — çok-adımlı agentic görevler için.
  • Eksik parametre durumunda uydurmak yerine soruyor.
  • Temel modelin genel Türkçe yeteneği korunmuş.

Zayıf Yönler

  • Over-triggering: Küçük bir test setinde (5 soru) 1 gereksiz çağrı gözlendi. Örneklem küçük olduğundan kesin oran için daha geniş değerlendirme gerekir. Sistem promptu ile sınırlandırılması önerilir.
  • Çeviri kaynaklı veri → bazı senaryolar kültürel olarak yapay olabilir.
  • ~4B parametre: çok karmaşık araç zincirlerinde sınırlı olabilir.
  • Yalnızca Türkçe değerlendirildi.

Kullanım

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base_id    = "AlicanKiraz0/Kizagan-E4B-Turkish-Reasoning-Model"
adapter_id = "Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes-lora"

base = AutoModelForCausalLM.from_pretrained(base_id, torch_dtype=torch.bfloat16, device_map="auto")
model = PeftModel.from_pretrained(base, adapter_id)
tokenizer = AutoTokenizer.from_pretrained(adapter_id)  # chat template adaptör reposunda

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Verilen şehrin güncel hava durumunu getirir.",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string", "description": "Şehir adı"}},
            "required": ["city"]
        }
    }
}]
messages = [{"role": "user", "content": "İstanbul'da hava nasıl?"}]

inputs = tokenizer.apply_chat_template(
    messages, tools=tools,
    add_generation_prompt=True, return_tensors="pt", return_dict=True
).to(model.device)

out = model.generate(**inputs, max_new_tokens=256, do_sample=False)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=False))

Önemli: Chat Template

Model özel turn token'ları kullanır: <|turn> (açılış), <turn|> (kapanış). Tool desteği için tools= parametresini apply_chat_template'e geçin. Tokenizer bu adaptör reposunda doğru chat template ile birlikte gelir.


Atıf

@misc{kizagan_tr_fc_lora_2026,
  author = {Tuğberk},
  title  = {Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes-lora},
  year   = {2026},
  publisher = {HuggingFace},
  url = {https://huggingface.co/Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes-lora}
}

Lisans

Temel model Gemma lisansına tabidir; bu adaptör de aynı lisans altındadır. Bkz. Gemma Terms of Use.

Downloads last month
1
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes-lora