ufakzeka-1: Sıfırdan Eğitilmiş 151M Parametreli Bir Türkçe Dil Modelinin Yapımı ve Değerlendirmesi

ufak AI’ın ilk modeli: açık lisanslı veriyle sıfırdan ön eğitim, sohbet için ince ayar, aynı düzenekte kıyaslama, ölçülmüş sınırlar ve 300 doların altında toplam maliyet.

Teknik rapor (PDF)Model (Hugging Face)GitHub reposuModeli deneyin

  • 151Mparametre
  • 13,5 milyarön eğitim tokenı
  • 286 $toplam maliyet
  • 5.190 / 5.508tarama testi geçen sohbet

Özet

Bu yazıda, ufak AI tarafından sıfırdan eğitilen 151M parametreli Türkçe dil modeli ufakzeka-1’in nasıl geliştirildiği ve nasıl değerlendirildiği anlatılmaktadır. Model, tamamı ticari kullanıma izin veren lisanslı kaynaklardan derlenen 13,5 milyar tokenlık bir derlem üzerinde üç aşamada ön eğitimden geçirilmiş, ardından 154.506 sohbetten oluşan bir veri kümesiyle sohbet için ince ayarlanmıştır. Temel model ve sohbet modeli; Kanarya-750M, turkish-gpt2-large ve Qwen2.5-0.5B ile birlikte yedi Türkçe görevde aynı ölçüm düzeneğiyle değerlendirilmiştir. Sohbet davranışı ise dokuz kabul testi, 5.508 sohbet üzerinde kural tabanlı bir tarama ve değerlendirici bir modelle yapılan ölçümlerle sınanmıştır. Modelin yapamadıkları ölçülmüş ve sayılarıyla birlikte model kartına yazılmıştır. Toplam maliyet 286 dolardır. Ağırlıklar, eğitim verisi ve yöntemi, değerlendirme düzeneği ve harcama defteri Apache-2.0 lisansıyla açıktır.

1. Giriş

Türkçe için yayımlanan açık ağırlıklı dil modelleri çoğunlukla çok dilli bir modelin Türkçe veriyle ince ayarlanmasıyla elde edilmektedir. Tokenizer’dan eğitim verisine kadar her bileşeni Türkçe için sıfırdan kurulan küçük modeller ise azdır; bunların neyi yapıp neyi yapamadığı da çoğu zaman tek bir ölçüm düzeneğiyle raporlanmamaktadır.

ufakzeka-1, bu boşluğu kapatmaya yönelik bir ilk adımdır. Amaç en iyi Türkçe modeli üretmek değil; veri süzme, tokenizer eğitimi, ön eğitim, ince ayar, değerlendirme ve yayın adımlarından oluşan işlem hattının uçtan uca çalıştığını göstermek ve her adımı ölçülmüş hâliyle yayımlamaktır. Yazının 2. bölümünde model, 3. bölümünde veri ve eğitim, 4. bölümünde değerlendirme, 5. bölümünde ölçülen sınırlar, 6. bölümünde maliyet anlatılmakta; 7. bölümde ise sonraki model için çıkarılan dersler verilmektedir. Ayrıntılar model kartında ve teknik raporda yer almaktadır; model chat.ufakzeka.com adresinde denenebilir.

2. Model

ufakzeka-1 standart Qwen3 mimarisini kullanmaktadır: 24 katman, 768 gizli boyut (hidden size), 12 dikkat başı (attention head) ve 4 anahtar-değer başı ile gruplanmış sorgu dikkati (grouped-query attention, GQA), 2.048 genişliğinde SwiGLU ileri beslemeli katman (feed-forward), tabanı 100.000 olan döner konumsal gömme (rotary position embedding, RoPE), sorgu-anahtar normalizasyonu (QK-norm) ve girdi ile çıktı gömme (embedding) katmanlarının paylaşılması (tied embeddings). Gömme katmanı hariç 151M, gömme katmanıyla birlikte 182M parametresi vardır. Bağlam penceresi (context window) 4.096 tokendır. Mimari standart olduğu için model, transformers kütüphanesine ek kod gerektirmeden yüklenmektedir.

Tokenizer, Türkçe metin üzerinde eğitilmiş 40.960 girdili bayt düzeyinde bir BPE’dir (byte-level byte pair encoding); rakamlar tek tek ayrılmaktadır. Türkçe metinde sözcük başına ortalama 1,77 token üretmektedir. Ön tokenizer (pre-tokenizer) olarak Qwen2 deseni, İngilizce kısaltma kuralı çıkarılarak kullanılmıştır; bu kural “Ankara’da” gibi kesme işaretli sözcükleri eğitimde görüldüğünden farklı bölmektedir. llama.cpp o sırada bu deseni tanımadığı için GGUF dosyalarına yönelik, 15 satır değiştiren bir yama hazırlanmış ve dosyalarla birlikte yayımlanmıştır; yama uygulanmamış bir llama.cpp dosyayı açmamaktadır. Deseni llama.cpp’nin tanıdığı Qwen2 kuralıyla değiştirmek dosyanın her yerde açılmasını sağlardı; ancak o kural kesme işaretinden sonra d, t, s, m ve v ile başlayan her eki bölmekte (Ankara’da → ’d + a), kesme işaretinin yoğun olduğu kısa bir Türkçe örnekte (yaklaşık 3.500 karakter) perplexity’yi 15,4’ten 19,0’a çıkarmıştır. Bu nedenle tam kural korunmuştur. Yama 18 Eylül 2026’da llama.cpp projesine alınmıştır; o tarihten sonra derlenen sürümler dosyaları yamasız açmaktadır.

İki model yayımlanmaktadır: temel model ufakzeka-1-base ve sohbet için ince ayarlanmış ufakzeka-1. Sohbet modelinin f16 (367 MB) ve q8_0 (196 MB) GGUF dosyaları, transformers ile birebir aynı tokenizasyonu vermekte ve sekiz soruluk açgözlü çözümleme (greedy decoding) testinde aynı cevapları üretmektedir; ortalama logit farkı f16 için 0,002 nat, q8_0 için 0,03 nat ölçülmüştür. 4 bitlik dosya yayımlanmamıştır: aynı modelin daha önceki bir kontrol noktasında (checkpoint) 4 bit kuantizasyon (quantization) perplexity’yi yüzde 5 kötüleştirmiş ve açgözlü çözümleme cevaplarını değiştirmiştir.

3. Veri ve Eğitim

3.1 Ön eğitim verisi

Ön eğitim verisinin tamamı, ticari kullanıma izin veren lisanslı kaynaklardan derlenmiştir: Türkçe Vikipedi (FineWiki), süzülmüş web metni (FineWeb2-HQ, mogan), eğitim amaçlı PDF koleksiyonu (FinePDFs-edu), TÜBİTAK BİLGEM ve COSMOS sentetik veri kümeleri ve küçük bir oranda İngilizce matematik (FineMath). Lisans koşulları belirsiz olan veri kümeleri, kalitesi ne olursa olsun dışarıda bırakılmıştır. Kaynak listesi, lisanslar ve dışarıda bırakılan kümeler model kartında verilmektedir.

3.2 Ön eğitim

Ön eğitim, toplam 13,5 milyar token üzerinde üç aşamada yürütülmüştür:

  1. Ana aşama, 6,5 milyar token. Matris parametreleri için Muon, gömmeler için AdamW optimizasyon algoritması (optimizer); ısınma-sabit-düşüş (warmup-stable-decay, WSD) öğrenme oranı çizelgesi; 2.048 tokenlık bağlam. Karışım yüzde 25 seçilmiş metin (Vikipedi, belgeler, sentetik), yüzde 71 web ve yüzde 4 İngilizce matematikten oluşmaktadır; eğitimin son yüzde 15’lik bölümünde, öğrenme oranı düşürülürken seçilmiş metin ağırlıklı bir karışımla eğitime devam edilmiştir (tavlama, annealing).
  2. Devam eğitimi, 5,5 milyar token. Hyperball kısıtlı Muon; soru-cevap biçimine dönüştürülmüş bir veri katmanı ve bilgi ağırlıklı verilerle bir tavlama aşaması.
  3. Son tavlama aşaması, 1,5 milyar token. Logit üst sınırı (soft cap) kaldırılmış, bağlam 4.096 tokena çıkarılmıştır; verinin yüzde 25’i Ağustos 2026 tarihli Türkçe Vikipedi dökümünden ve 2026 yazına ait CommonCrawl kesitlerinden alınmıştır.

3.3 İnce ayar

Sohbet modeli, üçüncü aşamanın temel modeli üzerine denetimli ince ayarla (supervised fine-tuning, SFT) eğitilmiştir: 154.506 sohbet (39.105 paketlenmiş dizi), üç epoch, 0,001 öğrenme oranı, 0,1 ağırlık sönümü (weight decay), gömme katmanında 0,1 oranında dropout. Kayıp (loss) asistan tokenları üzerinden hesaplanmış, istem (prompt) tokenlarına 0,2 ağırlık verilmiştir. Dil bilgisinin unutulmasını azaltmak için eğitim tokenlarının yüzde 15’i ön eğitim verisinden alınan tam belgelerden oluşmaktadır. Asistan sözcüklerine göre karışım şöyledir: üretilmiş hikâye ve diyaloglar yüzde 22; açık Türkçe talimat kümeleri (Turkish-SFT-Dataset-v1.0, diyalog-dataset, Turkce-Atlas-Instruct, Aya, everyday-conversations-tur, WikiRAG-TR) yüzde 27; olgu bilgisi ve Vikipedi soru-cevapları yüzde 13; uzun oturumlar yüzde 8; TinyStories tarzı kısa hikâyeler yüzde 8; aritmetik, düzeltme, yüzde hesabı, güvenlik, kaçınma, kimlik ve hafıza için şablonla üretilmiş kümeler yaklaşık yüzde 12; geri kalanı ısınma sohbetleri, şiirler ve sınır durumlarıdır. Üretilmiş kümeler çeşitli büyük dil modelleriyle yazılmış, kurallarla süzülmüş ve kullanılmadan önce bir değerlendirici modelden geçirilmiştir.

Tercih optimizasyonu (direct preference optimization, DPO) üç farklı biçimde denenmiş, üçünde de bu boyutta sohbet kalitesini düşürdüğü görülmüştür; bu yüzden yayımlanan sohbet modeli, denetimli ince ayar kontrol noktasıdır.

4. Değerlendirme

4.1 Kıyaslama görevleri

Kendi modellerimiz ve karşılaştırma modelleri, lm-evaluation-harness 0.4.12 ile sıfır atışlı log-olabilirlik (zero-shot log-likelihood) yöntemiyle, her model için aynı ayarlarla ölçülmüştür. HellaSwag ve ARC için uzunluğa göre normalize edilmiş doğruluk (length-normalised accuracy), diğer görevler için ham doğruluk verilmektedir. TurBLiMP puanı 16 alt kümenin, TurkishMMLU puanı 9 alanın ortalamasıdır.

Model Parametre HellaSwag ARC-c ARC-e XCOPA Belebele TurBLiMP TurkishMMLU
Kanarya-750M 750M 37,8 26,5 41,4 61,2 23,4 95,3 16,2
turkish-gpt2-large 774M 35,3 25,4 40,4 60,6 22,4 98,2 19,0
Qwen2.5-0.5B 494M 29,2 23,6 28,6 54,6 29,9 70,0 18,2
ufakzeka-1-base 151M 35,3 27,6 39,1 60,0 27,6 92,4 19,2
ufakzeka-1 151M 33,2 27,6 38,8 59,8 27,4 90,1 23,3
Rastgele tahmin 25 25 25 50 25 50 20

Sonuçlar olduğu gibi okunmalıdır. Türkçe eğitilmiş modellerin rastgele tahminin belirgin biçimde üstüne çıktığı görevler HellaSwag, ARC-e, XCOPA ve TurBLiMP’tir; Qwen2.5-0.5B ise yalnızca TurBLiMP’te belirgin biçimde üstündedir. ARC-c, Belebele ve TurkishMMLU’da her model rastgele tahminin birkaç puan yakınındadır. ARC-e ve XCOPA’da ufakzeka-1, kendisinin beş katı büyüklüğündeki iki Türkçe modelin üç puandan az gerisinde; dil bilgisini ölçen TurBLiMP’te ise 5 ile 8 puan gerisindedir. Belebele dışındaki her Türkçe görevde Qwen2.5-0.5B’nin önündedir. İnce ayar, temel modele kıyasla HellaSwag ve TurBLiMP’te yaklaşık iki puan kaybettirmiş, TurkishMMLU’da dört puan kazandırmıştır.

4.2 Kabul testleri

Kıyaslama (benchmark) puanları sohbet davranışını ölçmemektedir. Bunun için her sürümün geçmesi beklenen dokuz kabul testi (release gate) tanımlanmıştır. Test çıktıları 0,3 sıcaklıkta (temperature), önerilen örnekleme (sampling) ayarlarıyla üretilmiştir. Test soruları eğitim verisinde yer almamaktadır; bu ayrım, her veri kümesi oluşturulmadan önce çalıştırdığımız bir denetim betiğiyle doğrulanmaktadır.

Kabul testi (başarı sayılan davranış) Başarılı / deneme
Uzun bir hikâyeden sonra kullanıcının adı doğru hatırlanır, hikâyedeki adla karıştırılmaz 162 / 200
Doğru aritmetik cevap, “emin misin” baskısına rağmen korunur 72 / 90
Yanlış aritmetik cevap, kullanıcı söylediğinde düzeltilir 65 / 90
Sıfırlı basamaklardan onluk bozarak çıkarma doğru yapılır 30 / 30
Adı verilen kimyasal, biyolojik ve yangın çıkarıcı maddelerle ilgili istek reddedilir (eğitimde görülmemiş ifadelerle) 64 / 64
Tehlikeli gibi görünen ama zararsız soru reddedilmez, cevaplanır 18 / 18
Kullanıcı yanlış bir sayı söylese de doğru cevap korunur 16 / 36
Bilinemeyecek bir soru, ısrar edildiğinde yeniden reddedilir 13 / 24
Yüzde ve indirim hesapları doğru yapılır 40 / 40

Bunlara ek olarak 22 kategoride (kimlik, aritmetik, bilgi, sağduyu, bilinemeyecek sorular, yetenek sınırları, öneri, hikâye, şiir, selamlaşma, şaka, güvenlik, aşırı ret, ad ve olgu hafızası, bilmece, açıklayıcı soru, uzun oturum) 5.508 sohbet üzerinde kural tabanlı bir tarama (rule-checked sweep) yapılmış; her sohbet iki kez örneklenmiş ve 5.190’ı testi geçmiştir. En zayıf kategori, 1.000 sohbetin 807’sinin geçtiği aritmetiktir. Sabit bir değerlendirici modelin (LLM-as-a-judge) kullanıldığı ölçümde (sıcaklık 0), yardımseverlik (helpfulness) puanı 79,2, kaçınma oranı (deflection rate) yüzde 4,2 bulunmuştur; bu puanlar, 40 çok turlu sohbetin değerlendiricinin puanladığı 39’undaki 118 tur üzerinden hesaplanmıştır. İnsanların gerçekten sorduğu türden sorularda (tarif, öneri, sağlık, atasözü, devam soruları) gündelik yeterlilik puanı, üç farklı üretim tohumuyla (seed) alınan ve her biri 59 ile 61 tur içeren üç ölçümün ortalamasıyla 84,5’tir. Sohbet kutusuna yazıldığı gibi küçük harfle, yazım hatalarıyla ve tek sözcüklük devam sorularıyla girilen 50 turluk elle yapılan testte 27 tur iyi, 9 tur zayıf, 14 tur kötü bulunmuştur. Bu değerlendirmeyi bağımsız bir insan değerlendirici değil, geliştirme boyunca kullanılan yapay zekâ asistanı yapmıştır; dolayısıyla bu dağılım bir insan yargısı değil, yol gösterici bir ölçüdür. Kötü bulunan her tur, 5. bölümdeki sınırlardan birine karşılık gelmektedir.

4.3 Rastgele tohuma bağlı değişkenlik

Aynı veriyle, üç farklı rastgele tohumla eğitilen modeller; o aşamada 50 sohbetten oluşan kimlik testinde 3, 9 ve 18 hata, değerlendirici modelle yapılan ölçümde yüzde 4,2, 8,8 ve 9,1 kaçınma oranı vermiştir. Yukarıdaki bütün sayılar, yayımlanan kontrol noktasına aittir. Bu boyutta iki model arasındaki bir puanlık fark anlamlı sayılmamalıdır.

5. Sınırlar

ufakzeka-1 bir araştırma modelidir, asistan değildir. Aşağıdaki sınırların her biri ölçülmüş ve sayılarıyla birlikte model kartına yazılmıştır.

  • Bilmediği bilgileri uydurmaktadır. Ankara–İstanbul mesafesi sorulduğunda bilmediğini söylemek yerine bir sayı vermektedir. Yalnızca öğretildiği konularda cevap vermekten kaçınmaktadır: saat, tarih, hava durumu, haberler, fiyatlar, kişisel bilgiler ve gelecek. Bu konularda ısrar edildiğinde reddini 24 denemenin yalnızca 13’ünde sürdürmekte, kalanında bir cevap uydurmaktadır.
  • Kod yazamamaktadır. Python kodu istendiğinde düzyazı üretmektedir.
  • Aritmetiği tek soruda, adımlarını yazarak doğru yapmaktadır. Aynı hesap ikinci turda “emin misin” diye sorulduğunda işlemi doğru tekrarlayıp sonuç satırına yanlış sayı yazabilmektedir (90 denemenin 72’sinde cevabını korumuştur). Kullanıcının söylediği yanlış bir sayı, 36 denemenin 20’sinde modeli doğru cevaptan uzaklaştırmıştır.
  • Uzun bir hikâyeden sonra kimin kim olduğunu karıştırabilmektedir. 200 sohbet üzerinde yapılan testte 38 kez kullanıcının adı hikâyeye karışmış ya da eski bir ad kullanılmaya devam edilmiştir.
  • Eğitim verisindeki bir örneği kelimesi kelimesine tekrarlayabilmektedir. Deniz hakkında dört dizelik bir şiir istendiğinde 0 sıcaklıkta her seferinde, 0,3 sıcaklıkta yaklaşık her iki denemenin birinde aynı şiiri, yazım hatası dahil, vermektedir. Bilmece istendiğinde 12 denemede yalnızca dört ya da beş farklı bilmece söylemektedir. Bu, küçük ve tekrarlı bir ince ayar kümesinin doğrudan sonucudur.
  • 2026 yazından sonrasını bilmemektedir. Yemek tariflerindeki ölçüler güvenilir değildir.

6. Maliyet

Toplam maliyet 286 dolardır. Toplam ve API tutarı faturalardan alınmıştır: veri üretimi ve değerlendirici model için API 37 dolar. Ön eğitim için GPU 66 dolar, üç eğitim koşusunun 16,6 H100 saatinin liste fiyatıyla hesaplanmıştır; ince ayar ve değerlendirme için GPU ve Colab 183 dolar, geri kalan tutardır. Ön eğitim ağustosta, ince ayar ve bütün ölçümler eylülde yapılmıştır. Ayrıntılı harcama defteri repoda yer almaktadır. Bu sayı, ölçeklenebilirlik iddiası olarak değil, karşılaştırma yapılabilsin diye verilmektedir.

7. Sonuç ve Gelecek Çalışmalar

ufakzeka-1, Türkçe için sıfırdan kurulmuş bir işlem hattının uçtan uca çalıştığını göstermektedir. Elde edilen model, kendisinin beş katı büyüklüğündeki Türkçe modellerin ARC-e ve XCOPA’da üç puandan az, dil bilgisinde ise 5 ile 8 puan gerisinde kalmakta; bilgi uydurma, ikinci turda aritmetiği bozma ve eğitim örneklerini ezberleme gibi bu boyuta özgü sınırları açıkça taşımaktadır.

Sonraki model için yön bellidir: ezberin kaynağı olan ince ayar verisi çeşitlendirilecek, verinin değiştiremediği sınırların boyuttan kaynaklanıp kaynaklanmadığını sınamak için model büyütülecek, sonuç yine aynı kabul testlerinden geçirilip aynı biçimde yayımlanacaktır. Boyut ve veri miktarı, ayrılabilen kaynağa göre belirlenecektir.

Erişim

Model, temel model, GGUF dosyaları ve model kartı Hugging Face’te; eğitim ve değerlendirme kodu, harcama defteri ve teknik rapor GitHub reposunda yer almaktadır. Soru ve düzeltmeler için: hello@ufakai.com.