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.
Sıkça 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.