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ıç⚔️ 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:
- tiktoken o200k_base (GPT-4o, GPT-5)
- Claude tokenizer (claude-sonnet-4-6, claude-haiku-4-5)
- Gemini tokenizer (gemini-2.5-pro, flash)
- Llama 3 tokenizer (Llama 3.3 70B, Llama 4)
- Mistral tokenizer (Mistral Large 2, Codestral)
- DeepSeek tokenizer (DeepSeek V3, V3.5)
python
# tokenizer_compare.pyimport tiktokenfrom anthropic import Anthropicfrom 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)
| Tokenizer | Token | char/tok | Maliyet (Sonnet 4.6 input) |
|---|---|---|---|
| GPT-4o | 37 | 3.00 | — |
| Claude | 34 | 3.26 | $0.000102 |
| Gemini | 42 | 2.64 | — |
| Llama 3 | 40 | 2.78 | — |
| Mistral | 44 | 2.52 | — |
| DeepSeek | 38 | 2.92 | — |
Metin B — "Vektör veritabanlarında HNSW..."#
(206 karakter, 22 kelime)
| Tokenizer | Token | char/tok |
|---|---|---|
| GPT-4o | 65 | 3.17 |
| Claude | 58 | 3.55 |
| Gemini | 72 | 2.86 |
| Llama 3 | 74 | 2.78 |
| Mistral | 80 | 2.58 |
| DeepSeek | 63 | 3.27 |
Metin C — Edebi#
(115 karakter, 14 kelime)
| Tokenizer | Token | char/tok |
|---|---|---|
| GPT-4o | 44 | 2.61 |
| Claude | 40 | 2.88 |
| Gemini | 48 | 2.40 |
| Llama 3 | 51 | 2.25 |
| Mistral | 54 | 2.13 |
| DeepSeek | 45 | 2.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.
| Model | Input fiyatı ($/M) | Bu metin için maliyet |
|---|---|---|
| GPT-5 | $10 | 65 tok × 0.00065** |
| GPT-5-mini | $0.40 | 65 tok × 0.000026** |
| Sonnet 4.6 | $3 | 58 tok × 0.000174** |
| Haiku 4.5 | $1 | 58 tok × 0.000058** |
| Opus 4.7 | $15 | 58 tok × 0.00087** |
| Gemini 2.5 Pro | $1.25 | 72 tok × 0.00009** |
| Gemini 2.5 Flash | $0.075 | 72 tok × 0.0000054** |
| Llama 3.3 70B (Groq) | $0.59 | 74 tok × 0.0000437** |
| DeepSeek V3.5 | $0.27 | 63 tok × 0.000017** |
En ucuz: Gemini 2.5 Flash (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)
| Tokenizer | TR Token | EN Token | Türkçe Penalty |
|---|---|---|---|
| GPT-4o | 65 | 37 | +76% |
| Claude | 58 | 35 | +66% |
| Gemini | 72 | 42 | +71% |
| Llama 3 | 74 | 40 | +85% |
| Mistral | 80 | 44 | +82% |
| DeepSeek | 63 | 38 | +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#
tiktokenencoding.decode_single_token_bytes()python
import tiktokenenc = 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
Modül 0: Neden Maliyet, Neden Şimdi?
AI Maliyet Patlaması: 2022'den 2026'ya Token Fiyatları Neden %96 Düştü Ama Faturalar Neden 40 Kat Arttı?
Öğrenmeye BaşlaModül 0: Neden Maliyet, Neden Şimdi?
Birim Ekonomisi Sözlüğü: COGS, Gross Margin, $/User, Contribution Margin — Mühendisin Bilmesi Gereken 9 Finansal Kavram
Öğrenmeye BaşlaModül 0: Neden Maliyet, Neden Şimdi?