Ana sayfa › Blog

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

Parametre74,1 milyon
TürEncoder-decoder transformer
Katman10 encoder, 6 decoder
Genişlik512, 8 dikkat başlığı, SwiGLU ileri besleme (1408)
NormalizasyonRMSNorm, QK-norm
KonumRoPE, yalnızca öz-dikkatte (çapraz dikkatte yok)
EmbeddingEncoder, decoder ve çıkış için tek 32 bin matris
TokenizerSentencePiece unigram, 32 bin sözlük, bayt yedeği, rakamlar ayrı
YönKaynak cümlenin başındaki <2tr> / <2en> etiketi
Azami girdiCü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

Eğitim

Sonuçlar

chrF++ / BLEU, her test setinden 500 cümle, beam 4. Yüksek daha iyi. Model kartındaki sayılar:

Test setiTöz-Çevir-1 (74M)OPUS-MT base (~75M)OPUS-MT tc-big (~235M)
FLORES-200 en→tr60,0 / 32,655,5 / 26,059,2 / 30,9
FLORES-200 tr→en59,1 / 35,556,7 / 31,762,1 / 38,0
WMT24++ en→tr53,1 / 24,546,8 / 18,450,8 / 22,4
NTREX-128 en→tr48,3 / 18,746,7 / 16,548,8 / 19,0

Bu tabloyu okurken:

Ö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önGirdiÇıktı
en→trThe 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→trI'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→enSı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→trIt's raining cats and dogs.Kedi ve köpekler yağmur yağıyor.
tr→enAğzından bal damlıyor.She's dripping honey in her mouth.

Bilinen eksikler

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.

  1. İ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_idx girdisiyle) yapılıyor.
  2. 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ı.
  3. 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.
  4. 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.
  5. 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 dene