Töz-Çevir-1 nedir? Sıfırdan eğitilmiş 74 milyon parametreli İngilizce–Türkçe çeviri modeli
14 Ekim 2026 · 6 dk okuma · Töz AI
Töz-Çevir-1, Töz AI'ın ikinci modeli: tek modelle iki yönde İngilizce↔Türkçe çeviri yapan, 74 milyon parametreli, Apache-2.0 lisanslı bir encoder-decoder. Kaggle'ın ücretsiz GPU'larında tek kişi tarafından eğitildi ve bu sitede tarayıcınızda çalışıyor.
Kısaca Töz-Çevir-1
Töz-Çevir-1, İngilizceden Türkçeye ve Türkçeden İngilizceye çeviri yapan tek bir model. Hedef dili siz seçersiniz, kaynak dili model kendisi anlar. Bu yazıdaki model bilgilerinin kaynağı Hugging Face'teki model kartı; tarayıcıya taşıma bölümündeki sayılar ise bizim kendi ölçümlerimiz ve bunu ayrıca belirtiyoruz.
Model, kardeşi Töz-1 gibi sıfırdan eğitildi: başka bir çeviri modelinden damıtma yapılmadı ve ticari olmayan (NC) lisanslı veri kullanılmadı. Aşağıdaki aracı çeviri sayfasında hemen deneyebilirsiniz.
Mimari
| Parametre | 74,1 milyon |
|---|---|
| Tür | Encoder-decoder transformer |
| Katman | 10 encoder, 6 decoder |
| Genişlik | 512, 8 dikkat başlığı, SwiGLU ileri besleme (1408) |
| Normalizasyon | RMSNorm, QK-norm |
| Konum | RoPE, yalnızca öz-dikkatte (çapraz dikkatte yok) |
| Embedding | Encoder, decoder ve çıkış için tek 32 bin matris |
| Tokenizer | SentencePiece unigram, 32 bin sözlük, bayt yedeği, rakamlar ayrı |
| Yön | Kaynak cümlenin başındaki <2tr> / <2en> etiketi |
| Azami girdi | Cümle başına 254 token |
Encoder cümlenin tamamını bir kerede okur. Decoder çeviriyi parça parça (bir sözcük ya da sözcük parçası) yazar; her adımda hem şimdiye kadar yazdığına hem de encoder'ın anladığına bakar. Çıktıda dört en iyi adayı tutan bir beam search kullanılır. Eğitimde her cümle çifti rastgele bir yönde gösterildiği için aynı ağırlıklar iki yönü de yapar.
Eğitim verisi
- OPUS ve HPLT'den yaklaşık 170 milyon ham İngilizce–Türkçe cümle çifti; filtrelemeden sonra 95 milyon
- Filtreler: uzunluk ve oran kuralları, yazı sistemi ve dil kimliği, sayı tutarlılığı, LaBSE benzerliği ve NLLB ile gelen LASER skorları
- Test cümleleri iki taraftan da (normalleştirilmiş) tam eşleşmeyle çıkarıldı; n-gram örtüşme denetimi henüz yok
- Kaynakların çoğunu web'den çıkarılmış metinler ve altyazılar oluşturuyor; temiz insan çevirileri küçük bir pay ama daha sık örneklendi
- Bilerek dışarıda bırakılanlar: TED, QED, Tanzil (ticari olmayan lisanslar) ve WMT haberleri (test verisi olduğu için). Sentetik veri ve başka bir çeviri modelinin çıktısı eklenmedi. Yine de web'den çıkarılmış derlemelerin kendisi bir miktar makine çevirisi içerebilir
Eğitim
- 120 bin adım × yaklaşık 49 bin token ≈ 6 milyar token
- AdamW, tepe öğrenme oranı 7e-4, ısınma ve son %15'te doğrusal düşüş, etiket yumuşatma 0,1
- Kaggle'ın ücretsiz 2 × T4 GPU'sunda fp16 ile yaklaşık 40 saat; birkaç Kaggle oturumuna yayıldı
- Eğitim kodu yayınlanmadı; Hugging Face ve GitHub'daki depolarda yalnızca çıkarım ve ölçüm kodu var
Sonuçlar
chrF++ / BLEU, her test setinden 500 cümle, beam 4. Yüksek daha iyi. Model kartındaki sayılar:
| Test seti | Töz-Çevir-1 (74M) | OPUS-MT base (~75M) | OPUS-MT tc-big (~235M) |
|---|---|---|---|
| FLORES-200 en→tr | 60,0 / 32,6 | 55,5 / 26,0 | 59,2 / 30,9 |
| FLORES-200 tr→en | 59,1 / 35,5 | 56,7 / 31,7 | 62,1 / 38,0 |
| WMT24++ en→tr | 53,1 / 24,5 | 46,8 / 18,4 | 50,8 / 22,4 |
| NTREX-128 en→tr | 48,3 / 18,7 | 46,7 / 16,5 | 48,8 / 19,0 |
Bu tabloyu okurken:
- 500 cümle, her setten sabit bir alt küme (her ⌊N/500⌋'üncü cümle). Tam setler 1012 (FLORES), 960 (WMT24++) ve 1997 (NTREX) cümle; birkaç onda birlik farklar ölçüm gürültüsüdür.
- Skorlar sacrebleu ile, aynı ayarlarla hesaplandı. Rakip modelleri de biz çalıştırdık. "OPUS-MT base", en→tr için
opus-tatoeba-en-tr(eskiopus-mt-en-trartık indirilemiyor), tr→en içinopus-mt-tr-en; "tc-big" iseopus-mt-tc-bigmodelleri. Parametre sayıları dosya boyutundan tahmindir. - WMT24++ ve NTREX metinleri İngilizce yazıldığı için yalnızca en→tr verilmiştir.
- Değerlendirilen kontrol noktası 120.000. adımdaki; 118.675 ile 120.000. adımlar arasında skorlar 0,0–0,4 chrF++ oynadı.
Özet: İngilizce→Türkçe'de benzer boydaki OPUS-MT base'in her sette önünde ve yaklaşık üç kat büyük tc-big ile aynı seviyede. Türkçe→İngilizce tarafında tc-big'in yaklaşık 3 chrF++ puan gerisinde. Ticari çeviri hizmetleriyle karşılaştırma yapmadık.
Gerçek çıktılar
Model kartındaki örnekler, beam 4, hiçbiri elle düzeltilmedi. Son iki satır bilinen bir zayıflığı gösteriyor.
| Yön | Girdi | Çıktı |
|---|---|---|
| en→tr | The central bank raised interest rates by half a point to fight inflation. | Merkez bankası enflasyonla mücadele etmek için faiz oranlarını yarım puan artırdı. |
| en→tr | I'll call you when I get home, and then we can decide where to eat. | Eve geldiğimde seni ararım, sonra da nerede yiyeceğimize karar veririz. |
| tr→en | Sınav haftası yaklaştığı için kütüphane sabahtan akşama kadar doluydu. | The library was full from morning to evening as the exam week was approaching. |
| en→tr | It's raining cats and dogs. | Kedi ve köpekler yağmur yağıyor. |
| tr→en | Ağzından bal damlıyor. | She's dripping honey in her mouth. |
Bilinen eksikler
- Çok kısa girdiler (bir ila üç kelime, selamlaşmalar): çıktı bazen tekrarlanır ya da başa dolgu eklenir ("I love you." → "Seni seviyorum. Seni seviyorum."). Büyük ihtimalle eğitimdeki altyazı satırlarından öğrendiği bir alışkanlık; nedenini kesin doğrulamadık.
- Deyimler çoğu zaman kelimesi kelimesine çevrilir.
- Cümle düzeyinde çalışır: belge bağlamı yok; zamirler, hitap biçimi ve terimler cümleden cümleye kayabilir.
- Resmî, hukuki, tıbbi ve çok teknik metinler denenmedi; çıktı bir insan tarafından kontrol edilmeli. İsimler ve sayılar yanlış çıkabilir.
- Web'den çıkarılmış veri yanlış ya da makine çevirisi çiftler içerebilir; model bu hataları ve önyargıları tekrarlayabilir.
Tarayıcıya nasıl taşıdık?
Töz-Çevir-1 bir transformers modeli değil, küçük bir PyTorch paketi. Bu yüzden Töz-1'in aksine hazır bir tarayıcı aracı onu doğrudan çalıştıramıyor ve çeviriyi tarayıcıya biz taşıdık. Bu bölümdeki sayılar model kartından değil, kendi ölçümlerimizden.
- İki ONNX grafiği. Encoder bir kez çalışır ve decoder'ın çapraz dikkat anahtar/değerlerini de hazır hesaplar. Decoder ise her adımda yalnızca son token'ı işler ve önceki adımların dikkat anahtar/değerlerini bir önbellekte (KV cache) saklar; böylece her adımda cümlenin tamamını yeniden hesaplamıyoruz. Beam search'te hipotezler arasında geçiş yapıldığında önbelleğin yeniden sıralanması da grafiğin içinde (
beam_idxgirdisiyle) yapılıyor. - Tokenizer'ın JavaScript'e taşınması. SentencePiece'in unigram algoritmasını ve normalizasyon tablosunu (
nmt_nfkc) JavaScript'te yeniden yazdık. Doğruluğu şöyle sınadık: Türkçe ve İngilizce Vikipedi cümleleri, emoji, kontrol karakterleri ve garip boşluklar dahil 7.626 metinde JavaScript çıktısı resmî sentencepiece ile birebir aynı çıktı; 4.000 id dizisinin geri çözümü de aynı. - Beam search'ün taşınması. PyTorch'taki algoritmanın aynısı (sıralama, eşitlik kuralları, uzunluk normalizasyonu) JavaScript'te yeniden yazıldı. 32 bit ONNX sürümü, 37 farklı test girdisinde (kısa, uzun, çok cümleli, rakamlı, özel karakterli, boş) PyTorch'la 37/37 birebir aynı çeviriyi verdi. Yayınladığımız 8 bit dosyalarla da JavaScript ve Python uygulamalarımız aynı 37 girdide 37/37 aynı çıktıyı üretiyor. Tek bilinçli fark cümle bölmede: orijinal kod yalnızca büyük harf ya da rakamla başlayan cümleleri ayırır; sayfa ise büyük harfsiz yazılmış sohbet metinlerinde de böler ("bro. l cant" gibi), ama sıra sayılarını ("19. yüzyılda", "XIX. yüzyıl"), kısaltmaları ("vb.", "km.", "Ph.D.") ve ondalıkları bölmez. Gerçek Vikipedi paragraflarında (1.761 Türkçe, 3.507 İngilizce) bu gevşek kural ek olarak yalnızca yaklaşık %0,5 sınır ekliyor.
- 8 bit. 32 bit dosyalar toplam yaklaşık 430 MB; 8 bit ağırlıklarla yaklaşık 109 MB'a iniyor. fp16'yı denemedik: Töz-1'de fp16'nın neden bozulduğunu yazmıştık. 8 bit sürümün kalitesini FLORES-200'ün 500 cümlelik İngilizce→Türkçe alt kümesinde kendimiz ölçtük: chrF++ 59,5, BLEU 31,7 (sıkıştırılmamış sürüm, model kartına göre 60,0 / 32,6). Türkçe→İngilizce yönünü 8 bit için ölçmedik.
- Hız. 2 çekirdekli eski bir Intel Mac'te, Chrome'da, tek iş parçacığıyla 7 cümlelik (474 karakterlik) bir paragraf iki denemede 5,5 ve 4,9 saniyede çevrildi; yani cümle başına kabaca 0,7 saniye. Daha yeni bir bilgisayarda daha hızlı olması beklenir ama bunu ölçmedik.
Yani tarayıcıda çalışan çeviri, model kartındaki 32 bit PyTorch sürümüyle aynı değil: 8 bit sıkıştırma bazı cümlelerde farklı sözcük seçimleri üretir. 37 test girdisinde 8 bit çıktı 32 bit çıktıyla yalnızca 23 girdide birebir aynı (otomatik doğrulamamız bunu her export'ta yazdırır), diğerlerinde sözcük seçimi ya da sırası değişiyor; ortalama karakter benzerliği %94,8. Model kartındaki sayılar bu yüzden tarayıcıdaki çeviri için kesin değil, yaklaşık bir referans.
Gizlilik
Çeviri sayfası giriş gerektirmez ve hesap oluşturmaz. Yazdığınız metin tarayıcınızdan çıkmaz: ağa yalnızca model dosyaları (Hugging Face) ve çalıştırma kütüphanesi (jsDelivr) için gidilir. Ayrıntılar gizlilik sayfasında.
Kendiniz deneyin
Tarayıcıda: Çeviri sayfası. Python'da:
pip install git+https://github.com/Toz-AI/toz-cevir.git
python -m tozcevir --to tr "Could you please send me the report by Friday?"
import tozcevir
t = tozcevir.load() # ağırlıkları Hugging Face'ten indirir
print(t.translate("Bugün hava çok güzel.", to="en"))
Ağırlıklar Apache-2.0 lisanslı; Hugging Face ve GitHub.
Töz-1'i tarayıcınızda deneyin: kurulum yok, sunucu yok.
Töz-1'i deneDiğer yazılar
Töz-1 nedir?
Töz-1'in mimarisi, eğitimi ve sınırları: 4,42 milyar token Türkçe metinle sıfırdan eğitilmiş, tarayıcıda çalışan 195 milyon parametreli bir dil modeli.
4 Ekim 2026Sunucuda mı, tarayıcıda mı?
Küçük bir dil modelini ücretsiz bir bulut sunucusunda ve tarayıcıda çalıştırıp ölçtük: sunucuda yaklaşık 1,1 token/sn, tarayıcıda yaklaşık 13 token/sn.
4 Ekim 2026