Tokenler nedir?
Tokenler, OpenAI modellerinin işlediği metinlerin yapı taşlarıdır. Dile ve bağlama göre tek bir karakter kadar kısa veya tam bir kelime kadar uzun olabilirler. Boşluklar, noktalama işaretleri ve kelime parçaları token sayısına dâhildir. API, yanıt oluşturmadan önce metninizi kendi içinde bu şekilde parçalara ayırır.
İngilizce için yararlı yaklaşık değerler:
1 token ≈ 4 karakter
1 token ≈ ¾ kelime
100 token ≈ 75 kelime
1–2 cümle ≈ 30 token
1 paragraf ≈ 100 token
~1.500 kelime ≈ 2.048 token
Tokenizasyon, modele ve kodlamaya göre değişir. Hedef modelinizin kesin token sayısını öğrenmek için Tokenizer aracını veya tiktoken.encoding_for_model(model) işlevini kullanın.
Örnekler
Yaklaşık token sayılarıyla birlikte gerçek metinlerden bazı örnekler:
Wayne Gretzky’nin “Atmadığın şutların %100’ünü kaçırırsın” sözü = 11 token
OpenAI Tüzüğü = 476 token
ABD Bağımsızlık Bildirgesi = 1.695 token
Token sayıları nasıl hesaplanır?
API’ye metin gönderdiğinizde:
Metin, tokenlere ayrılır.
Model bu tokenleri işler.
Yanıt bir token dizisi olarak oluşturulur, ardından tekrar metne dönüştürülür.
Token kullanımı birkaç kategoride izlenir:
Girdi tokenleri – isteğinizdeki tokenler.
Çıktı tokenleri – yanıtta oluşturulan tokenler.
Önbelleğe alınmış tokenler – konuşma geçmişinden yeniden kullanılan tokenler (genellikle indirimli ücretlendirilir).
Akıl yürütme tokenleri – bazı gelişmiş modellerde, nihai çıktı oluşturulmadan önce sistem içinde ek “düşünme adımları” uygulanır.
Bu sayılar API yanıtınızın meta verilerinde görünür ve faturalandırma ile kullanım takibinde kullanılır.
Tokenizasyonu daha ayrıntılı incelemek için token sayısını hesaplamanızı ve metnin tokenlere nasıl ayrıldığını görmenizi sağlayan etkileşimli Tokenizer aracımızı kullanabilirsiniz.
Alternatif olarak, metni programlama yoluyla tokenize etmek istiyorsanız OpenAI modellerine özel olarak kullanılan hızlı bir BPE tokenizer’ı olan Tiktoken’ı kullanın.
Token Sınırları
Her model için birleşik bir maksimum token sınırı (girdi + çıktı) vardır. Günümüzde yüksek kapasiteli modeller bağlam içinde yüz binlerce tokeni destekler ancak pratik sınırlar model sürümüne ve kullanım katmanınıza göre değişebilir.
Sınırı aşarsanız şunları yapabilirsiniz:
Promptları kısaltın veya yeniden ifade edin.
Uzun metinleri daha küçük parçalara bölün.
Göndermeden önce girdileri özetleyin veya ön işleme tabi tutun.
Token Fiyatlandırması
API kullanımı token başına fiyatlandırılır; ücret modele ve tokenlerin girdi, çıktı ya da önbelleğe alınmış olmasına göre değişir. Güncel ücretler için OpenAI’ın fiyatlandırma sayfasına bakın. Bazı akıl yürütme modelleri sistem içinde daha fazla token kullanabilir ancak tamamlanan görev başına gereken token sayısını azaltarak verimliliği artırmayı hedefler.
Tokenler, yapay zekâ modelleri veya sağlayıcıları arasında standart değildir. Farklı modeller aynı metni farklı sayıda token kullanarak işleyebilir veya oluşturabilir. Bu nedenle milyon token başına duyurulan daha düşük fiyat, toplam maliyetin mutlaka daha düşük olacağı anlamına gelmez.
Yanıtın görünen uzunluğu da tek başına yeterli bir ölçüt değildir. Bazı modeller yanıt oluşturmadan önce sistem içinde akıl yürütme tokenleri kullanır. Bu nedenle görünür yanıtın daha uzun olması, modelin toplamda mutlaka daha fazla token kullandığı anlamına gelmez.
Modelleri karşılaştırırken gereken toplam token sayısını ve başarılı sonuç başına maliyeti göz önünde bulundurun. Karşılaştırmalı testler yararlı bir başlangıç noktası sunabilir ancak modellerin gerçek maliyetini ve performansını anlamanın en iyi yolu, onları kendi kullanım senaryolarınızda test etmektir.
Tokenleri keşfetme
API, kelimeleri derlem verilerindeki bağlamlarına göre ele alır. Modeller promptu alır, girdiyi bir token listesine dönüştürür, promptu işler ve tahmin edilen tokenleri yanıtta gördüğümüz kelimelere geri dönüştürür.
Bize aynı görünen iki kelime, metin içindeki yapılarına bağlı olarak farklı tokenlerle oluşturulabilir. API’nin “red” kelimesi için metindeki bağlama göre nasıl token değerleri oluşturduğuna bakalım:
Yukarıdaki ilk örnekte “ red” için kullanılan “2266” tokeni bir boşluk içerir (Bunlar yalnızca gösterim amacıyla kullanılan örnek token kimlikleridir).
“ Red” için kullanılan “2296” tokeni (başında boşluk vardır ve büyük harfle başlar), küçük harfli “ red” için kullanılan “2266” tokeninden farklıdır.
“Red” cümle başında kullanıldığında oluşturulan tokenin başında boşluk bulunmaz. “7738” tokeni, kelimenin önceki iki örneğinden farklıdır.
Gözlemler:
Bir token ne kadar olası veya sık kullanılıyorsa kendisine atanan token numarası o kadar düşük olur:
Nokta için oluşturulan token, üç cümlede de aynıdır (“13”). Bunun nedeni, noktanın bağlamsal olarak tüm derlem verilerinde oldukça benzer biçimde kullanılmasıdır.
“red” için oluşturulan token, kelimenin cümledeki konumuna göre değişir:
Cümlenin ortasında küçük harfle: “ red” - (token: “2266”)
Cümlenin ortasında büyük harfle: “ Red” - (token: “2297”)
Cümlenin başında büyük harfle: “Red” - (token: “7738”)
