MEB Öğretmen Tokenizer (Türkçe BPE)
Türkçe eğitim/mevzuat alanında eğitilmiş byte-level BPE tokenizer. Derlem: MEB öğretmen forum konuları — 1.022 konu, 12.446 satır, 544.065 kelime / 3,9 MB.
Eşlik eden veri seti: namruni/meb-ogretmen-soru-cevap
Kullanım
from transformers import AutoTokenizer
tok = AutoTokenizer.from_pretrained("namruni/meb-ogretmen-tokenizer")
tok.tokenize("Mazerete bağlı il dışı atama başvurusu nasıl yapılır?")
veya doğrudan:
from tokenizers import Tokenizer
tok = Tokenizer.from_file("tokenizer.json")
Sonuçlar
Fertility, eğitimde görülmemiş %5'lik dilimde (623 satır) ölçüldü. Düşük fertility = aynı metni daha az token'la temsil etmek = daha iyi.
| Tokenizer | Sözlük | Fertility (token/kelime) | Karakter/token | Kayıpsız |
|---|---|---|---|---|
| bpe-16k (bu repo) | 16.000 | 1,48 | 4,80 | ✓ |
bpe-32k (bpe-32k/ altında) |
32.000 | 1,38 | 5,12 | ✓ |
| Qwen2.5 (referans) | 151.665 | 2,45 | 2,89 | — |
Alan-içi Türkçe metinde Qwen2.5'in genel amaçlı tokenizer'ından ~1,7× daha verimli — 9× küçük sözlükle.
Neden 16k ana sürüm?
32k'nın fertility avantajı yalnızca %6,8, buna karşılık sözlük iki katına çıkıyor. Sözlük bileşimine bakınca eklenen yuvaların nereye gittiği görülüyor:
| Token gövdesi | 16k | 32k |
|---|---|---|
≤5 harf (yapı taşı: ler, lık, öğretmen) |
%44 | %33 |
| 6–9 harf | %40 | %41 |
| ≥10 harf (nadir tam kelime ezberi) | %16 | %26 |
Eklenen bütçenin büyük kısmı gerçekleştirilecektir,
görevlendirileceklere gibi nadir tam kelimelere gidiyor. 544 bin kelimelik
derlemde bu tokenların çoğu 2–3 kez görülmüş; yeni metinde karşılığı yok.
Örnek cümlede iki tokenizer birebir aynı bölümlemeyi üretiyor. Bu yüzden
genelleme gücü daha yüksek olan 16k ana sürüm seçildi; 32k karşılaştırma
için repoda bırakıldı.
Yöntem
- Byte-level BPE (
tokenizerskütüphanesi): hiçbir karakter<unk>olmaz. Derlem windows-1254'ten dönüştürüldüğü için bu bir sigorta. - Küçük harfe çevirme yok. Türkçe'de
i/İveı/Idönüşümü bozulmaya yol açar; yalnızca Unicode NFC normalizasyonu uygulandı. min_frequency=2— tek seferlik tesadüfler token olmasın.- Özel tokenlar:
<unk>,<pad>,<|im_start|>,<|im_end|>,<think>,</think>(ChatML + düşünce bloğu; veri setinin yapısıyla uyumlu). - Eğitim/değerlendirme ayrımı %95/%5; fertility eğitim metninde değil, görülmemiş dilimde ölçüldü.
Soy ağacı
Yöntem, aynı yazarın önceki BPE çalışmasının devamıdır — orada algoritma önce kütüphanesiz elle yazılmış, sonra iki küçük derlemde karşılaştırılmıştı: namruni/bpe-deneyleri-tr · GitHub
Sınırlamalar
Tek alanda (MEB mevzuat/özlük Türkçesi) eğitildi; genel Türkçe metinde verimi daha düşük olabilir. Önceden eğitilmiş bir modelin tokenizer'ı bununla değiştirilemez — embedding matrisi kendi sözlüğüne bağlıdır.