Token, bir dil modelinin gerçekte üzerinde çalıştığı en küçük metin parçasıdır. GPT, Claude veya Llama gibi bir modele bir istem gönderdiğinizde, metniniz önce bir dizi token'a ayrılır — genellikle tüm kelimeler, yaygın alt-kelimeler veya tek karakterler — ve her token daha sonra modelin işleyebileceği bir sayıya dönüştürülür. Model, çıktıyı da aynı şekilde üretir; durmaya karar verene kadar bir seferde bir token tahmin ederek yayınlar.
Token'lar nasıl çalışır
Token'lar, metninizle model arasında duran ayrı bir program olan bir tokenizer (tokenleyici) tarafından üretilir. En yaygın şemalar byte-pair encoding (BPE) ve WordPiece'tir; bu yöntemler tek karakterlerden başlar ve en sık kullanılan bitişik çiftleri tekrar tekrar daha uzun birimlere birleştirir. Sonuç, kısa yaygın kelimeleri yeniden kullanılabilir alt-kelime parçalarıyla dengeleyen sabit bir sözlüktür — genellikle 30.000 ila 200.000 giriş içerir. the gibi sık kullanılan bir kelime genellikle tek bir token olur; unbelievableness gibi nadir veya uydurma bir kelime ise birkaç parçaya ayrılır: un, believ, able, ness.
İngilizce ortalama olarak token başına yaklaşık dört karakter içerdiğinden, kabaca bir kural olarak 100 token ≈ 75 İngilizce kelime denilebilir; ancak bu, tokenleyiciye ve dile göre değişir. Fiyatlandırma, bağlam sınırları ve üretim hızının tümü kelime veya karakter yerine token ile ölçülür. 200.000 token'lık bağlam penceresine sahip bir model, tek bir istemde yaklaşık olarak uzun bir romanın ve birkaç araştırma makalesinin karşılığını tutabilir.
Neden önemlidir
Token'lar, her kullanıcının önemsediği üç şeyi belirler: maliyet, kapasite ve davranış. API sağlayıcıları milyon token başına ücret alır; bu nedenle verimsiz tokenize edilen bir istem, olması gerekenden daha fazla maliyet oluşturur. Bağlam pencereleri — bir modelin aynı anda dikkate alabileceği maksimum metin miktarı — token olarak sayılır; bu yüzden çok uzun belgeler modele beslenmeden önce parçalara ayrılmalıdır. Davranış da etkilenir: bir kelimeyi farklı şekilde bölen bir tokenleyici, modelin o kelime hakkında nasıl akıl yürüttüğünü değiştirebilir; bazı diller de İngilizce'den çok daha fazla parçaya ayrılarak tokenize edilir; bu da İngilizce dışındaki kullanıcılar için maliyetleri artırır ve etkin bağlamı kısaltır.
Temel token kavramları
- Tokenizasyon: metni token'lara ayıran algoritma; genellikle BPE, WordPiece veya Unigram kullanılır.
- Sözlük: modelin bildiği sabit token listesi; her giriş için benzersiz bir tam sayı kimliği bulunur.
- Özel token'lar:
<BOS>,<EOS>ve doldurma işaretleri gibi, içerik yerine sınırları ve yapıyı bildiren ayrılmış semboller. - Bağlam penceresi: bir modelin tek bir istekte işleyebileceği maksimum token sayısı; hem girdiyi hem de üretilen çıktıyı kapsar.
- Token sınırları: sağlayıcılar tarafından bir isteğin içerebileceği token sayısına getirilen sert üst sınırlar; genellikle girdi ve çıktı sınırları olarak ayrılır.
Byte-pair encoding hakkında daha ayrıntılı bir inceleme için Andrej Karpathy'nin minbpe anlatımı pratik bir başlangıç noktasıdır; orijinal Neural Machine Translation of Rare Words with Subword Units makalesi ise çoğu modern tokenleyicinin hâlâ üzerine inşa edildiği yaklaşımı tanıtmıştır.