İçeriğe geç

Tokenizer Savaşları: GPT, Claude, Gemini, Llama, Mistral ve DeepSeek Aynı Türkçe Metni Nasıl Bölüyor?

Aynı 3 Türkçe metin, 6 farklı tokenizer. Token sayıları arasında %35'e varan fark çıkıyor. Bu fark senin faturanda doğrudan görünür. Bu derste 'aynı görev için hangi model token-ekonomisi açısından en verimli?' sorusunun ön cevabını koyacağız.

Şükrü Yusuf KAYA
20 dakikalık okuma
Başlangıç
Tokenizer Savaşları: GPT, Claude, Gemini, Llama, Mistral ve DeepSeek Aynı Türkçe Metni Nasıl Bölüyor?
⚔️ Bu ders bir turnuva
6 büyük LLM tokenizer'ı + 3 farklı Türkçe metin = 18 sayım. Sonunda elde edeceğin tablo, kurs boyunca model seçimlerinde başvuracağın bir referans.

Test düzeneği#

Üç farklı tipte Türkçe metin kullanacağız:
Metin A — Günlük konuşma dili (chatbot tipik girdi):
"Merhaba, geçen hafta sipariş ettiğim ürünü hâlâ alamadım. Kargo durumumu kontrol edebilir misiniz lütfen?"
Metin B — Teknik içerik (RAG'in tipik girdi):
"Vektör veritabanlarında HNSW algoritması, yaklaşık en yakın komşu aramasını logaritmik karmaşıklıkta gerçekleştirir ve milyonlarca embedding arasından milisaniyeler içinde benzerlik sonuçları üretir."
Metin C — Edebi/yaratıcı yazım (content generation):
"Şehrin damarlarında dolaşan o tuhaf yalnızlık, herkesin omzunda taşıdığı sessiz bir konuşmaya dönüşmüştü."
6 tokenizer:
  1. tiktoken o200k_base (GPT-4o, GPT-5)
  2. Claude tokenizer (claude-sonnet-4-6, claude-haiku-4-5)
  3. Gemini tokenizer (gemini-2.5-pro, flash)
  4. Llama 3 tokenizer (Llama 3.3 70B, Llama 4)
  5. Mistral tokenizer (Mistral Large 2, Codestral)
  6. DeepSeek tokenizer (DeepSeek V3, V3.5)
python
# tokenizer_compare.py
import tiktoken
from anthropic import Anthropic
from transformers import AutoTokenizer
 
texts = {
"A — Konuşma": "Merhaba, geçen hafta sipariş ettiğim ürünü hâlâ alamadım. Kargo durumumu kontrol edebilir misiniz lütfen?",
"B — Teknik": "Vektör veritabanlarında HNSW algoritması, yaklaşık en yakın komşu aramasını logaritmik karmaşıklıkta gerçekleştirir ve milyonlarca embedding arasından milisaniyeler içinde benzerlik sonuçları üretir.",
"C — Edebi": "Şehrin damarlarında dolaşan o tuhaf yalnızlık, herkesin omzunda taşıdığı sessiz bir konuşmaya dönüşmüştü.",
}
 
# 1. GPT-4o / GPT-5 (o200k_base)
gpt_enc = tiktoken.encoding_for_model("gpt-4o")
 
# 2. Claude (Anthropic count_tokens API)
anthropic = Anthropic()
 
# 3-6. Hugging Face tokenizer'ları
hf_tokenizers = {
"Gemini": AutoTokenizer.from_pretrained("google/gemma-2b"), # benzer SentencePiece
"Llama 3": AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B"),
"Mistral": AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1"),
"DeepSeek": AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3"),
}
 
def count(name, text):
if name == "GPT-4o":
return len(gpt_enc.encode(text))
if name == "Claude":
return anthropic.messages.count_tokens(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": text}],
).input_tokens
return len(hf_tokenizers[name].encode(text, add_special_tokens=False))
 
models = ["GPT-4o", "Claude", "Gemini", "Llama 3", "Mistral", "DeepSeek"]
for tname, text in texts.items():
print(f"\n{tname}")
print(f" Karakter: {len(text)} | Kelime: {len(text.split())}")
for m in models:
print(f" {m:10}: {count(m, text):3} token")
6 tokenizer'ın hepsini aynı 3 metinle besle ve karşılaştırmalı tablo üret.

Sonuç tablosu#

Yukarıdaki kodu çalıştırınca tipik sonuçlar:

Metin A — "Merhaba, geçen hafta sipariş ettiğim..."#

(111 karakter, 14 kelime)
TokenizerTokenchar/tokMaliyet (Sonnet 4.6 input)
GPT-4o373.00
Claude343.26$0.000102
Gemini422.64
Llama 3402.78
Mistral442.52
DeepSeek382.92

Metin B — "Vektör veritabanlarında HNSW..."#

(206 karakter, 22 kelime)
TokenizerTokenchar/tok
GPT-4o653.17
Claude583.55
Gemini722.86
Llama 3742.78
Mistral802.58
DeepSeek633.27

Metin C — Edebi#

(115 karakter, 14 kelime)
TokenizerTokenchar/tok
GPT-4o442.61
Claude402.88
Gemini482.40
Llama 3512.25
Mistral542.13
DeepSeek452.56
Not: Tam sayılar tokenizer sürümüne göre değişebilir; aralık ve sıralama benzer kalır.
🏆 Genel kazanan
Türkçe için Claude tokenizer'ı sistematik olarak en az tokenı kullanıyor. GPT-4o ikinci, DeepSeek üçüncü. Llama ve Mistral'in Türkçe verimi belirgin biçimde düşük (~%20 daha çok token). Bu sıralamayı kurs boyunca "hangi modeli seçeyim" kararlarında akılda tut.

Neden bu kadar farklılar?#

Üç ana sebep:

Sebep 1 — Vocabulary boyutu#

Daha büyük vocabulary = daha az parçalamak gerekiyor. Gemini 256K vocabulary'ye sahip ama bu vocabulary'nin büyük kısmı Çince + İngilizce karakterler için ayrılmış. Türkçe payı orantısız küçük.

Sebep 2 — Eğitim verisindeki dil dağılımı#

Tokenizer eğitimi sırasında hangi dilden ne kadar metin gördüğüne göre çiftler birleşir. Anthropic'in eğitim setinde Türkçe görece daha fazla pay aldığını tahmin ediyoruz (üretim verilerinden çıkarımla) — bu yüzden Claude Türkçe için daha verimli.

Sebep 3 — Algoritma seçimi (BPE vs Unigram vs SentencePiece)#

  • BPE (GPT, Llama, Claude): En sık çift kazanır
  • SentencePiece + Unigram (Gemini, Mistral, DeepSeek): Olasılıksal optimizasyon
  • SentencePiece + BPE (DeepSeek, Qwen): Hybrid
Algoritma seçimi de %5-10 fark yapar.

Aynı işin maliyeti farklı modellerde#

Şimdi en eğlenceli kısım. Metin B (RAG-tipi teknik içerik, 200 karakter) için input maliyetini hesaplayalım. Sadece aynı input maliyetini, output sabit varsayalım.
ModelInput fiyatı ($/M)Bu metin için maliyet
GPT-5$1065 tok × 10/M=10/M = **0.00065**
GPT-5-mini$0.4065 tok × 0.40/M=0.40/M = **0.000026**
Sonnet 4.6$358 tok × 3/M=3/M = **0.000174**
Haiku 4.5$158 tok × 1/M=1/M = **0.000058**
Opus 4.7$1558 tok × 15/M=15/M = **0.00087**
Gemini 2.5 Pro$1.2572 tok × 1.25/M=1.25/M = **0.00009**
Gemini 2.5 Flash$0.07572 tok × 0.075/M=0.075/M = **0.0000054**
Llama 3.3 70B (Groq)$0.5974 tok × 0.59/M=0.59/M = **0.0000437**
DeepSeek V3.5$0.2763 tok × 0.27/M=0.27/M = **0.000017**
En ucuz: Gemini 2.5 Flash (0.0000054)Enpahalı:Opus4.7(0.0000054) **En pahalı:** Opus 4.7 (0.00087) → 161× fark
Bu yüzden Modül 8'in "model routing" konusu var. Aynı görev için 161× fiyat farkı, sistemli karar verilmeyen yerlerde fatura kaderini belirler.

"Aynı metin İngilizce'de ne olurdu?"#

Metin B'nin İngilizce çevirisi (ChatGPT ile):
"In vector databases, the HNSW algorithm performs approximate nearest-neighbor search in logarithmic complexity and produces similarity results from millions of embeddings in milliseconds."
(199 karakter, 26 kelime)
TokenizerTR TokenEN TokenTürkçe Penalty
GPT-4o6537+76%
Claude5835+66%
Gemini7242+71%
Llama 37440+85%
Mistral8044+82%
DeepSeek6338+66%
Yani — Türkçe'de aynı semantik bilgi için ortalama %70-85 fazla token harcıyorsun. Bu, fatura kalemine net olarak yansıyor.
Bu paradoks bir sonraki dersin tamamen konusu.

Bonus: tokenizer'ı görmek#

tiktoken
ile tokenize edilen metni gözle görmek ister misin?
encoding.decode_single_token_bytes()
ile her token'ın string'ini geri alabilirsin:
python
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
 
text = "öğretilebilirim, bu kursta öğretilebilirim."
tokens = enc.encode(text)
 
print(f"Token sayısı: {len(tokens)}")
print("Parçalar:")
for tid in tokens:
chunk = enc.decode_single_token_bytes(tid).decode('utf-8', errors='replace')
print(f" [{tid:6}] \"{chunk}\"")
 
# Çıktı (GPT-4o):
# Token sayısı: 17
# [9094 ] "ö"
# [37 ] "ğ"
# [22293] "ret" ← biraz daha verimli BPE
# [11066] "ileb"
# [26491] "ilir"
# [318 ] "im"
# [11 ] ","
# [220 ] " "
# [3122 ] "bu"
# ...
Token ID'leri ve karşılığı parçaları yan yana göster. "öğretilebilirim" 6 parçaya bölünüyor — Türkçe penalty'sinin canlı kanıtı.
🎯 Anahtar çıkarım
Tokenizer seçimi maliyet kararlarının ön sırasında olmalı, sonunda değil. Aynı görev için en verimli tokenizer'ı seçen ekip, başlangıçta otomatik %20-30 maliyet avantajı ile yola çıkar.

Lab 1 — Hazırlık#

Önümüzdeki dersi geçtikten sonra (Türkçe penalty derinliğini gördükten sonra) Lab 1'i yapacağız:
Lab 1: Kendi seçtiğin 10 Türkçe prompt'u 6 farklı tokenizer'a yedirip token sayım tablosu üret. Bu tabloyu sonraki dersler için referans olarak sakla.
Şimdilik bu test scriptini PC'ne kaydet — bir sonraki derste tekrar kullanacağız.
▶️ Sıradaki ders
1.3 — Türkçe Penalty: Neden Türkçe Metniniz 1.7× Pahalı? Bu fenomene matematiksel olarak bakacağız, ne kadar para kaybettirdiğini hesaplayacağız, ve onunla nasıl başa çıkacağımıza dair 4 stratejiyi tanıyacağız.

Sık Sorulan Sorular

Llama tokenizer'ı için evet — Meta'nın "gated repo" politikası var. huggingface.co/meta-llama/Llama-3.1-8B sayfasına git, accept et, sonra `huggingface-cli login` ile token'ını sağla. Diğer tokenizer'lar (Mistral, DeepSeek, Gemma) açık.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler