Uyum · 64.93M · Türkçe
Türkçe için sıfırdan eğitilmiş bir dil modeli. Hazır bir model ince ayarlanmadı — tokenizer, mimari, eğitim döngüsü ve değerlendirme seti baştan yazıldı.
A Turkish language model trained from scratch — no pretrained checkpoint involved. Tokenizer, architecture, training loop and evaluation suite were all written for this project. Full source, measurements and reproduction steps: github.com/0x61A/uyum
| parametre / parameters | 64,93M — 10 katman × 10 baş × 640 boyut, blok 512 |
| tokenizer | BPE 24.004; rakamlar tek tek bölünür (347 → 3,4,7) |
| taban eğitim / pretraining | 1,088 milyar simge · 95.000 adım · Kaggle T4 |
| ince ayar / SFT | 26.501 örnek · 6 epoch · replay 0,15 |
| ağırlık / weights | sft.pt, float16, 161 MB |
Kurulum
pip install torch tokenizers==0.23.1
hf download 00x61/uyum-v3 --local-dir uyum-v3 && cd uyum-v3
transformers gerekmez — model bu depodaki model.py ile yüklenir.
import torch
from model import Ayar, GPT
from bpe import BPE
from suzgec import temizle
d = torch.load("sft.pt", map_location="cpu", weights_only=False)
m = GPT(Ayar(**d["ayar"]))
m.load_state_dict({k: v.float() for k, v in d["model"].items()})
m.eval()
tok = BPE.load("bpe.json"); S = tok.stoi
def sor(q, n=80):
ids = [S["<bos>"], S["<kullanici>"]] + tok.encode(q) + [S["<eos>"], S["<asistan>"]]
o = m.uret(torch.tensor([ids]), n, sicaklik=0.7, top_p=0.9,
dur=S["<eos>"], tekrar=1.1)[0].tolist()
return temizle(tok.decode(o[len(ids):]).split("<eos>")[0].strip())
print(sor("347 + 128 kaç eder?")) # Cevap: 475
print(sor("selam")) # Merhaba, selam olsun.
İstem kalıbı zorunlu: <bos><kullanici>{soru}<eos><asistan>. Ham metin verilirse model
sohbet gibi cevap vermez — bu bir hata değil, ölçülmüş bir davranıştır (aşağıya bakın).
Ölçülen yetenekler
| ölçüt | sonuç | şans |
|---|---|---|
| aritmetik (1–5 basamak) | %56,0 | %0 |
| Python — çalışan kod | %33,3 | %0 |
| olgusal bilgi — eğitimde görülmemiş | %29,9 | %4,4 |
| olgusal bilgi — eğitimde görülmüş | %73,9 | %4,4 |
| ünlü uyumu — uydurma kelime, a/i | %75 / %78 | %50 / %25 |
Ölçüm setleri ve kod: v3/degerlendir.py,
v3/tani.py.
Her ölçüt, eğitilmemiş model üzerinde taban seviyesi ölçülerek doğrulanmıştır.
Öğrenme mi, ezber mi — ölçüldü
Aynı model, aynı metodoloji; tek değişken sorunun eğitimde geçip geçmemesi:
| yetenek | görülmüş | görülmemiş | rejim |
|---|---|---|---|
| ünlü uyumu | — | %78–88 | kural — test uydurma kelimeyle, ezberlenecek şey yok |
| aritmetik | %20,0 | %29,1 | algoritma — görülmemişte daha iyi |
| olgusal bilgi (taban model) | %16,3 | %4,7 | ezber — genelleme sıfır |
Taban modelde bilgi farkı: z = +5,11, p < 0,00001. İnce ayardan sonra görülmemiş bilgi %4,7 → %29,9 yükseldi; ezber üstünlüğü sürüyor (2,5×).
Sınırlar — okumadan kullanmayın
Olgusal bilgisi yoktur. 64,93M parametre bir ansiklopedi tutamaz. Tarih, yer, kişi sorularının cevaplarına güvenilmez.
Özel isimlerde belirgin bir başarısızlık kalıbı var: BPE tanımadığı ismi tanıdık parçalara bölüyor, model parçalardan uyduruyor.
"Ankara neresidir" -> "Anirim, bir yerde hava sıcak olursa..."
ankara -> an + kara
Akıl yürütme yapamaz; çok adımlı soruları çözemez. Üretilen metin doğrulanmadan kullanılmamalıdır. Araştırma ve eğitim amaçlıdır; tıbbi, hukuki veya finansal kullanım için uygun değildir.
Güvenlik
PII sondasında 60 üretimde 4 telefon biçimli dizi çıktı; hiçbiri eğitim korpusunda
bulunamadı — ezber değil rastgele rakam. suzgec.py yine de savunma katmanı olarak
çıkışta telefon/e-posta/kimlik/IBAN biçimli dizileri maskeler; aritmetik cevaplarını
bozmadığı öz testle doğrulanmıştır.
Veri ve lisans
FineWeb-2 tur_Latn (ODC-BY) · Türkçe Wikipedia (CC-BY-SA) · Qwen3 ile üretilmiş
sentetik veri (Apache 2.0) · şablonla üretilmiş, makineyle doğrulanmış aritmetik ve kod.
Öğretmen modeli yalnız eğitim verisi üretti; Uyum çalışma anında hiçbir dış modele veya servise bağlı değildir. Model ağırlıkları ve kod: Apache 2.0.
Atıf
@software{kart2026uyum,
author = {Kart, Ahmet Şerif},
title = {Uyum: a Turkish language model trained from scratch},
year = {2026},
url = {https://github.com/0x61A/uyum}
}
Geliştiren: Ahmet Şerif Kart · github.com/0x61A