Token Nedir ve Nasıl Oluşur?
Büyük dil modelleri (LLM) ham metni doğrudan okuyamaz; önce tokenizasyon adı verilen bir ön işleme adımından geçirmesi gerekir. Bu süreçte model, girilen metni sabit bir vocabulary'yle eşleşen en uygun parçacıklara —tokenlara— böler ve her tokena benzersiz bir tam sayı kimliği atar.
Bu dönüşümü somutlaştırmak için şu örneği düşünelim: 'Yapay zeka geleceği şekillendiriyor' cümlesi tokenizasyon sonrasında [32451, 29240, 17823, 44102, 9821] gibi bir sayı dizisine dönüşebilir. Model bu sayı dizisi üzerinde hesaplama yapar; üretilen çıktı sayıları yeniden metin karakterlerine çevrilir.
BPE (Byte Pair Encoding): GPT serisi modellerin kullandığı bu algoritma, eğitim verisi üzerinde en sık birlikte geçen karakter çiftlerini yinelemeli olarak birleştirerek vocabulary oluşturur. 'playing' kelimesi 'play' + 'ing' şeklinde iki tokena bölünebilir. Bu yöntem 'bilinmeyen token' sorununu minimize eder.
WordPiece: BERT'in kullandığı bu algoritma benzer mantıkla çalışırken seçim kriterinde maksimum olasılığı kullanır.
SentencePiece: Google'ın geliştirdiği, dil bağımsız çalışan ve boşluk dahil ham karakterlerden token üreten yöntemdir.
Token, Maliyet ve Bağlam Penceresi
Bağlam Penceresi
Bir modelin aynı anda işleyebildiği maksimum token sayısı. GPT-4o: 128K | Claude 3.5: 200K | Gemini 1.5 Pro: 1M token.
API Maliyeti
Giriş ve çıkış token sayısına göre faturalandırma. GPT-4o: girdi 5 USD/1M token, çıktı 15 USD/1M token (2024).
Türkçe Token Verimliliği
Türkçe eklemeli dil yapısı nedeniyle aynı anlam için İngilizce'ye kıyasla daha fazla token harcanır; bu API maliyetini artırır.
Dikkat Karmaşıklığı
Transformer'da her token diğerleriyle dikkat skoru hesaplar (O(n²)). Uzun bağlamlarda Flash Attention gibi çözümler gerekir.
Tokenizasyonu Etkileyen Faktörler
- check_circle Vocabulary boyutu: Büyük vocabulary (örn. Llama 3: 128K) daha az token kullanımı sağlar ancak embedding matrisini büyütür; küçük vocabulary (GPT-2: 50K) tersi etkiyi yaratır.
- check_circle Dil yapısı: Eklemeli Türkçe, Fince ve Japonca gibi dillerde aynı anlam İngilizce'ye kıyasla daha fazla token harcar; bu API maliyetini ve bağlam verimliliğini etkiler.
- check_circle Kod ve özel karakterler: Programlama dilleri genellikle sözcük sınırlarını farklı tanımlar; '{', '()', '__init__' gibi öğeler tokenizasyonda beklenmedik ayrışmalara yol açabilir.
- check_circle Sayılar ve tarihler: 4 haneli sayılar bile modele göre 1-4 arasında değişen token sayısıyla temsil edilebilir; bu matematiksel görevlerde tutarsızlıklara neden olabilir.
language Dillere Göre Token Verimliliği
- check_circle İngilizce: Ortalama 1 token ≈ 0.75 kelime. GPT-4o'da 1 sayfa metin ≈ 500-700 token. En verimli dil — BPE/tiktoken İngilizce için optimize edilmiştir.
- check_circle Türkçe: Eklemeli yapısı nedeniyle aynı anlamı taşıyan Türkçe metin genellikle İngilizce eşdeğerinden %30-60 daha fazla token tüketir. 'okuyabileceklerinden' gibi tek kelime birden fazla token olabilir.
- check_circle Çince/Japonca: Her karakter genellikle 1-2 token. İngilizce'ye kıyasla karakter başına daha fazla token harcanır ama kelime başına daha verimli olabilir.
- check_circle Kod: Python/JavaScript kodu yüksek token verimliliğine sahiptir. Girintiler ve tekrarlayan anahtar kelimeler token sayısını artırabilir.
- check_circle Sayılar: Her rakam genellikle ayrı token sayılır ('12345' → 5 token olabilir). Matematiksel metinler beklenenden fazla token tüketebilir.
attach_money Token Maliyetini Optimize Etme
- check_circle Sistem promptunu kısa tut: Her API çağrısında sistem promptu yeniden gönderilir. Gereksiz bilgileri çıkarmak kümülatif maliyeti önemli ölçüde düşürür.
- check_circle Prompt caching: Anthropic Claude ve OpenAI'da sık kullanılan bağlam önbelleğe alınabilir. Önbellek hit'i normal fiyatın %10'una mal olur.
- check_circle Çıktı uzunluğunu sınırla: max_tokens parametresiyle gereksiz uzun çıktıları önle. Kısa çıktılar hem maliyet hem gecikme açısından avantajlıdır.
- check_circle Batch API: Büyük hacimli işlemler için OpenAI ve Anthropic Batch API kullanımı %50 indirim sunar; sonuçlar 24 saat içinde iletilir.
- check_circle Daha küçük model: GPT-4o Mini veya Claude Haiku, küçük görevlerde 10-20× daha ucuzdur; kalite farkı uygulamaya göre değişir.
Sık Sorulan Sorular
- check_circle Token ile kelime arasındaki fark nedir? Kelime dilsel bir anlam birimidir; token ise bir modelin işlem birimidir. 'Tokenizasyon' bir kelime olabilir ancak model bunu 'Token' + 'izasyon' gibi iki tokena bölebilir. Konuşma dilinde token çoğu zaman kelime anlamında kullanılır ama teknik açıdan farklıdır.
- check_circle Bir metnin kaç token olduğunu nasıl öğrenirim? OpenAI'nin resmi Tokenizer aracı (platform.openai.com/tokenizer) girilen metni anlık tokenizasyon yaparak görselleştirir. Hızlı tahmin için: İngilizce metin × 1.3 ≈ token sayısı; Türkçe metin × 1.5-2 arası bir çarpan kullanılabilir.
- check_circle Token limiti aşılırsa ne olur? Model bağlam penceresinin ötesindeki metni göremez ve sanki verilmemiş gibi davranır. Bu 'bağlam kırpması' (context truncation) olarak bilinir; uzun sohbetlerde eski mesajların kaybolmasına neden olabilir.
- check_circle Token sayısını azaltmak mümkün mü? Evet. Gereksiz dolgu cümlelerinden kaçınmak, bağlamı özetlemek ve RAG mimarilerinde yalnızca ilgili parçaları seçmek token kullanımını ve API maliyetini önemli ölçüde azaltır.