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

Tokenleri anlama ve sayma

Girdi, çıktı, önbelleğe alınmış ve akıl yürütme tokenlerinin API kullanımını, model sınırlarını ve maliyetleri nasıl etkilediğini öğrenin.

Güncellenme zamanı: 12 days ago

Genel bakış

Tokenler, OpenAI modellerinin metni işlemek için kullandığı birimlerdir. Bir token; bir karakteri, sözcüğün bir bölümünü, sözcüğün tamamını veya bir noktalama işaretini temsil edebilir. Boşluklar da metnin tokenlere nasıl ayrıldığını etkiler.

Token sayısı ile sözcük sayısı aynı değildir. Aynı metin; modele, modelin kodlamasına ve dile bağlı olarak farklı sayıda token üretebilir.

Metnin nasıl tokenlere dönüştüğünü anlayın

Bir modele metin gönderdiğinizde:

  1. Metin tokenlere ayrılır.

  2. Model bu tokenleri işler.

  3. Model çıktı tokenleri oluşturur. Bunlar aldığınız metni ve akıl yürütme modellerinde yanıt metni olarak gösterilmeyen dâhilî akıl yürütme tokenlerini içerebilir.

İngilizce metinler için yaklaşık tahminler kullanın

Bu tahminler İngilizce metnin boyutunu değerlendirmenize yardımcı olabilir:

  • 1 token yaklaşık 4 karakterdir.

  • 1 token yaklaşık bir sözcüğün dörtte üçüdür.

  • 100 token yaklaşık 75 sözcüktür.

Bunlar kesin sayımlar değil, tahminlerdir. Cümle ve paragraf uzunlukları değişir; diğer dillerde karakterler, sözcükler ve tokenler arasındaki ilişkiler farklı olabilir.

Boşlukları ve büyük-küçük harf kullanımını hesaba katın

Bir sözcük; yazımına, büyük-küçük harf kullanımına ve çevresindeki metne bağlı olarak farklı tokenlere ayrılabilir.

Örneğin red, Red ve red aynı metni içermez: son örneğin başında bir boşluk vardır. Bir kodlama bunları farklı biçimlerde temsil edebilir.

Token kimlikleri de kodlamaya bağlıdır. Örnek bir token kimliğinin her model için geçerli olduğunu varsaymayın.

Girdi ve çıktı tokenlerini ayırt edin

KategoriAçıklaması
Girdi tokenleriBir istekte modele sağlanan tokenler. Bunlara prompt tokenleri de denir.
Çıktı tokenleriModel tarafından oluşturulan tokenler. Chat Completions bunları tamamlama tokenleri olarak adlandırır.
Önbelleğe alınmış girdi tokenleriPrompt önbelleğe alma yoluyla yeniden kullanılan girdi tokenleri. Fiyatları, önbelleğe alınmamış girdi tokenlerinden farklı olabilir.
Akıl yürütme tokenleriBir akıl yürütme modelinin görünür yanıtını oluşturmadan önce dâhilî olarak kullandığı tokenler.

Akıl yürütme tokenleri yanıt metni olarak görünmez ancak çıktı kullanımına dâhil edilir ve çıktı tokenleri olarak faturalandırılır.

Bu nedenle kısa bir görünür yanıt, görüntülenen metnin düşündürdüğünden daha fazla token kullanabilir.

İstek göndermeden önce tokenleri sayın

Düz metindeki tokenleri sayın

Metnin tokenlere nasıl ayrıldığını görmek için Tokenizer aracını kullanın.

Düz metni programlı olarak tokenize etmek için tiktoken kullanın. Örneğin tiktoken.encoding_for_model(model) ile hedef modelinize uygun kodlamayı seçin.

Düz metindeki token sayısı, bir API isteğindeki tüm tokenleri içermeyebilir. Mesaj yapısı, araçlar, şemalar, görseller ve dosyalar toplam girdi sayısını etkileyebilir.

Responses girdisinin tamamını sayın

Responses API girdisinin tamamı için girdi tokeni sayma API'sini kullanın.

Mesajlar, görseller, dosyalar, araçlar ve konuşmalar dâhil olmak üzere Responses girdi biçimlerini kabul eder. Sayım; mesaj rolleri ve sınırları gibi istek yapısında kullanılan biçimlendirme tokenlerini de içerir.

Girdi sayısı, modelin kaç çıktı tokeni oluşturacağını öngörmez.

Gerçek token kullanımını kontrol edin

Bir isteğin ardından kullanım bilgilerini inceleyin. Alan adları uç noktaya göre değişir:

  • Chat Completions; prompt_tokens, completion_tokens ve total_tokens değerlerini bildirir.

  • Responses; input_tokens, output_tokens ve total_tokens değerlerini bildirir.

Zaman içindeki etkinliği Kullanım Panosu'ndan da inceleyebilirsiniz. Akış kullanımı da dâhil olmak üzere talimatlar için bkz. API kullanımını ve maliyetlerini inceleme.

Model sınırlarını aşmayın

Bağlam kapasitesi ve maksimum çıktısı için modelinizin belgelerine bakın. Bu sınırlar modeller arasında farklılık gösterebilir.

Bağlam kapasitesi, modelin bir istekte işleyebileceği tokenleri sınırlar. Modellerin ayrıca bir çıktı sınırı vardır. Akıl yürütme modellerinde görünür yanıtın yanı sıra akıl yürütme tokenleri için de yer ayırın.

Girdiniz çok büyükse şunları yapabilirsiniz:

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

  • Gereksiz veya tekrarlanan bağlamı kaldırın.

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

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

Uç noktanızın ve modelinizin desteklediği çıktı tokeni ayarını kullanın. Chat Completions max_completion_tokens, Responses ise max_output_tokens kullanır.

Bu istek boyutu sınırları; API hız sınırlarından ve aylık kullanım ya da harcama sınırlarından ayrıdır. Kullandığınız modelin model belgelerini inceleyin.

Token fiyatlandırmasını anlayın

Token tabanlı API fiyatlandırmasında ücret, modele ve token kategorisine bağlıdır. Girdi, önbelleğe alınmış girdi ve çıktı tokenlerinin fiyatları farklı olabilir. Diğer API özelliklerinde farklı faturalandırma birimleri kullanılabilir.

Güncel ücretler için API fiyatlandırma sayfasına bakın.

Modelleri karşılaştırırken görevinizi tamamlamak için gereken toplam token sayısını ve maliyeti göz önünde bulundurun. Milyon token başına daha düşük fiyat, toplam maliyetin mutlaka daha düşük olacağı anlamına gelmez: Modeller aynı metni farklı biçimde tokenize edebilir ve farklı miktarlarda çıktı veya akıl yürütme üretebilir.

Yalnızca görünür yanıt uzunluğunu karşılaştırmak yerine temsili görevleri test edin.

Birden fazla tamamlamayı hesaba katın

Bir uç nokta ve model birden fazla tamamlama oluşturmayı destekliyorsa bu ek tamamlamalar da token kullanır.

Chat Completions'da n değerini 1'in üzerine ayarlamak birden fazla seçenek oluşturur. Bu seçeneklerin tamamında oluşturulan tokenler için ücret ödersiniz.

Eski Completions API'sinde best_of, tümü döndürülmeyen adaylar oluşturabilir. Örneğin best_of = 3, adaylar genelinde en fazla 3 × max_tokens tamamlama tokeni oluşturabilir.

Bu parametreler uç noktaya özeldir. n veya best_of parametresinin başka bir API ya da model tarafından desteklendiğini varsaymayın.

Bu makale yararlı oldu mu?