OpenAI
Bu sayfanın çevirisi otomatik olarak yapılmıştır. Orijinal İngilizce makaleyi görüntüleyin.

Tokenlar nedir ve nasıl sayılır?

Understand how OpenAI models count tokens and how token usage affects limits and API pricing.

Güncellenme zamanı: 2 days ago

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:

  1. Metin, tokenlere ayrılır.

  2. Model bu tokenleri işler.

  3. 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:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

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).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

“ 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.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

“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”)

Bu makale yararlı oldu mu?