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?

Güncellenme zamanı: 8 days ago

Tokenlar nedir?

Tokenlar, OpenAI modellerinin işlediği metnin yapı taşlarıdır. Dile ve bağlama bağlı olarak tek bir karakter kadar kısa veya tam bir kelime kadar uzun olabilirler. Boşluklar, noktalama işaretleri ve kısmi kelimelerin tümü token sayılarına katkıda bulunur. API, yanıt üretmeden önce metninizi dahili olarak bu şekilde bölümlere ayırır.

İngilizce için faydalı pratik kurallar:

  • 1 token ≈ 4 karakter

  • 1 token ≈ bir kelimenin ¾’ü

  • 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 modeliniz için tam sayıyı almak üzere Tokenizer aracını veya tiktoken.encoding_for_model(model) kullanın.

Örnekler

Yaklaşık token sayılarıyla birlikte bazı gerçek dünya metin örnekleri:

  • Wayne Gretzky’nin “Atmadığınız şutların %100’ünü kaçırırsınız” 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 tokenlara bölünür.

  2. Model bu tokenları işler.

  3. Yanıt, bir token dizisi olarak üretilir ve ardından tekrar metne dönüştürülür.

Token kullanımı birkaç kategoride izlenir:

  • Girdi tokenları – isteğinizdeki tokenlar.

  • Çıktı tokenları – yanıtta üretilen tokenlar.

  • Önbelleğe alınmış tokenlar – konuşma geçmişinde yeniden kullanılan tokenlar (genellikle indirimli ücretlendirilir).

  • Akıl yürütme tokenları – bazı gelişmiş modellerde, nihai çıktı üretilmeden önce dahili olarak ek “düşünme adımları” dahil edilir.

Bu sayılar API yanıtınızın meta verilerinde görünür ve faturalandırma ile kullanım takibi için kullanılır.

Tokenizasyonu daha ayrıntılı keşfetmek için token sayısını hesaplamanıza ve metnin tokenlara nasıl bölündüğünü görmenize olanak tanıyan etkileşimli Tokenizer aracımızı kullanabilirsiniz.

Alternatif olarak, metni programatik olarak tokenize etmek isterseniz OpenAI modelleri için özel olarak kullanılan hızlı bir BPE tokenizer olan Tiktoken’ı kullanın.

Token Sınırları

Her model için maksimum birleşik token sınırı (girdi + çıktı) vardır. Mevcut yüksek kapasiteli modeller, bağlamda yüz binlerce tokena kadar destek sunar; ancak pratik sınırlar model sürümüne ve kullanım katmanınıza bağlı olarak değişebilir.

Sınırı aşarsanız şunları yapabilirsiniz:

  • Komutları kısaltın veya yeniden ifade edin.

  • Büyük metinleri daha küçük parçalara bölün.

  • Girdileri göndermeden önce özetleyin veya ön işleme tabi tutun.

Token Fiyatlandırması

API kullanımı token başına fiyatlandırılır; fiyat modele ve tokenların girdi, çıktı ya da önbelleğe alınmış olmasına göre değişir. Güncel ücretler için OpenAI’nin fiyatlandırma sayfasına bakın. Bazı akıl yürütme modelleri dahili olarak daha fazla token kullanabilir, ancak tamamlanan görev başına gereken token sayısını azaltarak verimliliği artırmayı hedefler.

Tokenları keşfetme

API, kelimeleri derlem verilerindeki bağlamlarına göre ele alır. Modeller komutu alır, girdiyi bir token listesine dönüştürür, komutu işler ve tahmin edilen tokenları yanıtta gördüğümüz kelimelere geri dönüştürür.

Bize aynı görünen iki kelime, metin içinde nasıl yapılandırıldıklarına bağlı olarak farklı tokenlara dönüştürülebilir. API’nin, metindeki bağlamına göre ‘red’ kelimesi için token değerlerini nasıl ürettiğini düşünün:

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” tokenı sonunda bir boşluk içerir (Not: bunlar gösterim amacıyla verilen örnek token ID’leridir).

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” tokenı (başında boşluk olan ve büyük harfle başlayan), küçük harfli ‘ red’ için kullanılan “2266” tokenından 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’ bir cümlenin başında kullanıldığında, üretilen token başında boşluk içermez. “7738” tokenı, kelimenin önceki iki örneğinden farklıdır.

Gözlemler:

Bir token ne kadar olası/sık ise, ona atanan token numarası o kadar düşüktür:

  • Nokta için üretilen token, 3 cümlenin tamamında aynıdır (“13”). Bunun nedeni, bağlamsal olarak noktanın derlem verilerinin genelinde oldukça benzer şekilde kullanılmasıdır.

  • ‘red’ için üretilen token, cümledeki konumuna bağlı olarak değişir:

    • Cümlenin ortasında küçük harf: ‘ red’ - (token: “2266”)

    • Cümlenin ortasında büyük harf: ‘ Red’ - (token: “2297”)

    • Cümlenin başında büyük harf: ‘Red’ - (token: “7738”)

Bu makale yararlı oldu mu?