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

AlicanKiraz0/Kizagan-E4B-Turkish-Reasoning-Model modelinin Türkçe function calling (araç kullanımı) yeteneği kazandırılmış sürümü. 16-bit merged (tam) modeldir; doğrudan yüklenip kullanılabilir.

Amaç: Bu model, Türkçe agentic sistemlerde ve otomasyon workflow'larında araç çağırma (function calling) motoru olarak kullanılmak üzere eğitilmiştir. Özellikle çok-turlu, konuşma içi (conversational) function calling senaryoları için optimize edilmiştir: kullanıcıyla diyalog hâlinde araç çağırma, araç sonuçlarını yorumlama ve Türkçe yanıt üretme. LangChain, LangGraph, CrewAI gibi ajan çatılarının çoğu İngilizce tool-calling modellerine dayanır; bu model aynı yetenekleri Türkçe kullanıcı girdileri için yerel ve açık bir şekilde sunmayı hedefler.

Kapsam notu (önemli): Model, Hermes-tarzı çok-turlu/konuşma içi function calling görevlerinde güçlüdür ve temel modeli belirgin biçimde geçer (aşağıdaki sızıntısız değerlendirmeye bakınız). Buna karşılık tek-turlu, çok teknik, dağılım-dışı (out-of-distribution) görevlerde genelleme sınırlıdır. Modelin tasarım amacı, "her tür FC görevinde en iyi" olmak değil, Türkçe agentic/konuşma senaryolarında sağlam bir araç-çağırma katmanı sağlamaktır. Detaylar "Ne İçin Uygun / Ne İçin Değil" bölümünde.

LoRA adaptör sürümü için: Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes-lora


Genel Bakış

Temel model AlicanKiraz0/Kizagan-E4B-Turkish-Reasoning-Model
Mimari gemma4 (Gemma 3n tabanlı), ~4B parametre
Eğitim yöntemi LoRA (16-bit, full-precision base), Unsloth + TRL
Dil Türkçe
Bağlam uzunluğu 5632 token (eğitim)
Format 16-bit merged safetensors

Ne Yapar?

Bu model, Türkçe doğal dildeki kullanıcı isteklerini yapılandırılmış araç çağrılarına (<tool_call> JSON) dönüştürür. Temel modelin Türkçe akıl yürütme ve genel bilgi yeteneklerini büyük ölçüde korurken, üzerine function calling davranışı ekler.

Örnek:

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

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

Dikkat: model, kullanıcının Türkçe ifadesini (İstanbul) araç şemasının beklediği değere (Istanbul) eşler. Argümanlar İngilizce şemaya uygun üretilir; bu, gerçek API'lerle uyumluluk için bilinçli bir tasarımdır.


Agentic Kullanım Senaryoları

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

  • Türkçe asistanlar ve chatbot'lar: Kullanıcı Türkçe konuşur, model arka plandaki API'leri (hava, takvim, sipariş, arama) çağırır.
  • Otomasyon workflow'ları: n8n, Zapier benzeri akışlarda veya özel ajan çatılarında Türkçe komutları yapılandırılmış eylemlere dönüştürme.
  • Çok-adımlı ajanlar: Birden fazla tool'un ardışık çağrıldığı görevler (örn. veriyi çek → işle → raporla). Model multi-tool çağrı zincirleri üretebilir.
  • RAG + tool hibrit sistemler: Bilgi getirme ile eylem yürütmeyi birleştiren Türkçe ajanlar.

Tipik döngü: Türkçe kullanıcı isteği → model tool_call üretir → sistem tool'u çalıştırır → sonuç modele döner → model Türkçe yanıt verir. Model bu döngünün hem tool çağrısı hem de sonuç yorumlama adımlarında çalışacak şekilde eğitilmiştir.


Eğitim Verisi

Kaynak Oran Açıklama
Tuguberk/turkish-hermes-function-calling %85 Türkçe function calling diyalogları (~11.5k)
Turkish-LLM-v10 genel sohbet %15 Genel Türkçe instruction, yeteneği korumak için

Function calling verisi NousResearch/hermes-function-calling-v1'in Türkçe çevirisidir; tool çağrısı JSON'ları, fonksiyon adları ve argümanlar İngilizce şemada korunmuş, yalnızca doğal dil kısımları çevrilmiştir. Veri ağırlıklı olarak çok-turlu ve konuşma içi diyaloglardan oluşur (multi-turn diyaloglar ve araç-sonucu yorumlama turları). Bu, modelin güçlü ve zayıf yönlerini doğrudan belirler (aşağıya bakınız).

Veri seti seed=42 ile %95/%5 train/test olarak bölünmüştür; aşağıdaki "sızıntısız" değerlendirme bu held-out %5'lik test bölümü üzerinde yapılmıştır.


Değerlendirme

Model üç ayrı eksende değerlendirildi: (1) hedef dağılımda (Hermes-tarzı) function calling, sızıntısız held-out üzerinde; (2) catastrophic forgetting (genel yeteneğin korunması); (3) dağılım-dışı genelleme. Sonuçlar hem güçlü hem zayıf yönleri dürüstçe ortaya koyar.

1. Function Calling — Hedef Dağılım (sızıntısız held-out)

Eğitimde kullanılmamış held-out test bölümü (seed=42 split'inin %5'lik test tarafı, 137 Hermes-tarzı FC örneği) üzerinde, greedy decoding ile. Bu örnekler model tarafından eğitim sırasında hiç görülmedi; skorların ezber (memorization) değil gerçek genelleme olduğu bu şekilde doğrulanmıştır.

Metrik Bu model Temel model* Δ
<tool_call> üretimi %96.4 %91.4 +5.0
Fonksiyon adı doğruluğu %96.4 %85.7 +10.7
Argüman anahtarı eşleşmesi %94.9 %82.9 +12.0
Çağrı sayısı doğruluğu %84.7 %85.7 −1.0

Yorum: Model, hedef dağılımında temel modeli her ana metrikte (özellikle argüman doğruluğunda +12.0) belirgin biçimde geçer. Held-out skorunun in-distribution değerlerle aynı kalması (hatta hafif yüksek olması), modelin Hermes-tarzı FC'yi gerçekten öğrendiğini, ezberlemediğini kanıtlar. Tek küçük geri kalış çağrı sayısı tutarlılığındadır (aşağıda "Sınırlamalar").

2. Catastrophic Forgetting Analizi

Function calling fine-tune'unun temel modelin genel yeteneklerini bozup bozmadığı, malhajar17/lm-evaluation-harness_turkish fork'u ile ölçüldü (5-shot, tam test setleri).

Test Bu model Temel model Δ Sonuç
mmlu_tr_v0.2 (acc) %33.66 (±0.40) %33.18 +0.48 Korundu — fark stderr içinde
gsm8k_tr-v0.2 (strict, exact_match) %20.35 (±1.11) %35.94 −15.59 Belirgin düşüş

Yorum: Genel bilgi ve kavrama (MMLU, çoktan seçmeli) temel modelle aynı seviyede korunmuştur — eğitim karışımındaki %15 genel-sohbet tamponu işe yaramıştır. Buna karşılık serbest-formda çok-adımlı matematik muhakemesi (GSM8K, üretim tabanlı) düşmüştür. Bunun nedeni, function calling eğitiminin modelin üretim tarzını yapılandırılmış araç çağrısına yöneltmesi; serbest zincirleme-düşünme (chain-of-thought) üretiminden uzaklaşmasıdır. Bir FC modeli için bu beklenen bir takastır: matematik görevleri için modelin bir hesaplama aracı (calculator tool) çağırması önerilir.

Teknik not: GSM8K'da flexible-extract skoru (%8.12) strict-match skorundan (%20.35) düşüktür. Bu tersine durum, modelin cevap formatını değiştirdiğini ve flexible regex'in yeni biçimi yakalayamadığını gösterir; modelin gerçek aritmetik yeteneği rapor edilen değerden bir miktar yüksek olabilir.

3. Dağılım-Dışı (Out-of-Distribution) Genelleme

Eğitimde hiç kullanılmayan, farklı kaynak ve farklı tarzdaki atasoglu/turkish-function-calling-20k (188 örnek) üzerinde semantik eşleşme ile.

Metrik Bu model Temel model Δ
Fonksiyon adı doğruluğu %66.5 %89.9 −23.4
<tool_call> üretimi %67.6 %89.9 −22.3
Argüman anahtarı eşleşmesi %59.6 %76.6 −17.0
Çağrı sayısı doğruluğu %46.8 %60.1 −13.3

Yorum (dürüst zayıflık): Bu dağılım-dışı, teknik ve tek-turlu görev setinde model temel modelin gerisinde kalır. Kök neden iki yönlüdür:

  1. Dağılım darlığı: Model yalnızca tek kaynaklı (Hermes-çevirisi), ağırlıkla çok-turlu/konuşma içi veriyle eğitildi. atasoglu'nun tek-turlu, çok teknik (Python-utility tarzı: compute_log_probability, escape_string_for_command_line vb.) tool'larına genelleme yapamadı.
  2. Aşırı temkinli davranış: Model, eğitim verisindeki "eksik parametre → kullanıcıya sor" davranışını aşırı genelledi. Sonuç olarak, gerekli parametreler kullanıcı mesajında açıkça verilmiş olsa bile bazen tool çağırmak yerine kullanıcıya soru sorar veya açıklama üretir. Bu, atasoglu'daki düşük <tool_call> üretim oranının (%67.6) ana sebebidir. Temel model bu davranışı öğrenmediği için doğrudan tool çağırır.

Temel modelin bu sette yüksek görünmesi, onun "daha iyi bir FC modeli" olmasından değil, function calling için hiçbir davranış öğrenmemiş olmasından ve bu modelin tool-injection template'i ile gemma4 tabanının zero-shot format taklidi yapmasından kaynaklanır. Nitekim aynı temel model, Hermes-tarzı görevlerde (yukarıdaki Tablo 1) bu modelin gerisinde kalır.


Ne İçin Uygun / Ne İçin Değil

Uygun:

  • Türkçe çok-turlu, konuşma içi (conversational) function calling — asistanlar, chatbot'lar.
  • Araç sonuçlarını yorumlayıp Türkçe yanıt üreten agentic döngüler.
  • Hava/takvim/sipariş/arama gibi tipik API entegrasyonlu Türkçe ajanlar.
  • Multi-tool zincirleri içeren çok-adımlı, diyalog tabanlı görevler.

Sınırlı / uygun değil:

  • Tek-turlu, çok teknik veya niş tool setleri (örn. düşük seviyeli yazılım/sistem utility fonksiyonları) — bu dağılımda zayıf.
  • Parametrelerin tek mesajda yoğun verildiği ve diyalogsuz, doğrudan çağrı beklenen senaryolar — model fazla temkinli davranıp soru sorabilir (aşağıdaki sistem promptu önerisine bakınız).
  • Serbest-formda matematik/aritmetik muhakeme — bunun yerine calculator tool çağırın.
  • İngilizce function calling — test edilmedi.

Güçlü Yönler

  • Hedef dağılımda yüksek doğruluk: Sızıntısız held-out'ta %96.4 fonksiyon adı, %94.9 argüman doğruluğu — temel modelin belirgin üzerinde.
  • Gerçek genelleme (ezber değil): Held-out skoru in-distribution ile aynı; ezber kanıtı yok.
  • Multi-tool desteği: Tek istekte birden fazla ardışık/paralel tool çağrısı üretebiliyor.
  • Korunan genel yetenek: MMLU temel modelle eşit (forgetting yok); Türkçe sohbet ve kod açıklama bozulmamış.
  • Sıfır içerik sızması: Tool çağrısı düz metne karışmıyor.
  • Türkçe→şema eşleme: Türkçe niyeti İngilizce API şemasına doğru çeviriyor.

Zayıf Yönler / Sınırlamalar

  • Dağılım-dışı genelleme zayıf: Tek-turlu, teknik FC setlerinde (atasoglu) temel modelin gerisinde (%66.5 vs %89.9). Tek kaynaklı/tek tarzlı eğitim verisinin doğal sonucu.
  • Aşırı temkinli "soru sorma" davranışı: Parametreler açıkça verilmiş olsa bile model bazen tool çağırmak yerine bilgi/onay ister. Bu davranış, eğitim verisindeki eksik-parametre örneklerinin aşırı genellemesinden kaynaklanır ve yalnızca sistem promptu ile kısmen azaltılabilir (kalıcı çözüm için bkz. "Geliştirme Yönü").
  • Çağrı sayısı tutarlılığı: Doğru tool'u seçmede güçlü ama kaç tool çağıracağını kestirmede daha zayıf (held-out %84.7; dağılım-dışında daha düşük). Bazen eksik, bazen fazladan tool üretebilir.
  • Matematik muhakemesi düşmüş: GSM8K'da temel modelin altında; aritmetik için calculator tool kullanın.
  • Çeviri kaynaklı veri: Bazı senaryolar kültürel olarak yapay olabilir.
  • Türkçe-merkezli: İngilizce tool çağrısı test edilmedi.
  • ~4B parametre: Küçük model; çok karmaşık çok-adımlı muhakeme zincirlerinde sınırlı olabilir.

Önerilen Sistem Promptu (temkinli davranışı azaltmak için)

Kullanıcının isteğini yerine getirmek için gereken tüm bilgiler
mevcutsa, soru sormadan doğrudan uygun fonksiyonu çağır. Sadece
gerçekten eksik parametre varsa açıklama iste.

Bu prompt, modelin doğru fonksiyonu tanıma davranışını iyileştirir ancak "soru sorma" eğilimini tamamen ortadan kaldırmaz; davranış ağırlık seviyesinde gömülüdür.

Geliştirme Yönü (gelecek sürümler için)

Dağılım-dışı zayıflık ve aşırı-temkin, gelecekte şu yollarla giderilebilir: (1) eğitim verisine çok kaynaklı, tek-turlu ve teknik FC örnekleri eklemek; (2) "tüm parametreler verilmiş → doğrudan çağır" örneklerini baskın kılıp "önce sor" örneklerini gerçekten eksik-parametre durumlarına sınırlamak.


Kullanım

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes"
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_id)

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Verilen sehrin guncel hava durumunu getirir.",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string", "description": "Sehir adi"}},
            "required": ["city"]
        }
    }
}]
messages = [{"role": "user", "content": "Istanbul'da hava nasil?"}]

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

Bu model özel turn token'ları kullanır: <|turn> (açılış) ve <turn|> (kapanış) — standart Gemma <start_of_turn> değil. Tool desteği için tools= parametresini apply_chat_template'e geçmelisiniz; chat template tool tanımlarını otomatik enjekte eder. Model kartındaki tokenizer_config.json doğru chat template'i içerir.


Değerlendirme Metodolojisi (özet)

  • Held-out FC: Eğitim split'inin (seed=42, %95/%5) test tarafından, yalnızca <tool_call> içeren Hermes-tarzı örnekler; ilk model turuna kadar prompt verilip greedy üretim; semantik eşleşme (fonksiyon adı + argüman anahtarları).
  • Forgetting: malhajar17 Türkçe lm-eval fork'u, mmlu_tr_v0.2 ve gsm8k_tr-v0.2, 5-shot, tam set. Temel model referans skorları AlicanKiraz0 model kartından.
  • OOD: atasoglu/turkish-function-calling-20k'dan rastgele 200 örnek (188 değerlendirilebilir), semantik eşleşme.
  • Karşılaştırma adilliği: Temel model, bu modelin tool-injection chat template'i ile aynı görevlerde test edildi; böylece fark yalnızca fine-tune katkısını yansıtır.

Atıf

@misc{kizagan_tr_fc_2026,
  author = {Tugberk},
  title  = {Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes},
  year   = {2026},
  publisher = {HuggingFace},
  url = {https://huggingface.co/Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes}
}

Lisans

Temel model Gemma lisansına tabidir; bu türev de aynı lisans altındadır. Bkz. Gemma Terms of Use.

Downloads last month
686
Safetensors
Model size
8B params
Tensor type
BF16
·
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

Datasets used to train Tuguberk/Kizagan-E4B-Turkish-Agent-FunctionCalling-Hermes