Yapay zekâ tokenı ve kelime: maliyetten önce isteği ölçün
Token, belirli bir tokenizer tarafından üretilen birimdir; sabit kelime veya karakter sayısı değildir. Kesin metin sayımı için eşleşen tokenizer ve ayarlar gerekir. Tam API isteğinde ileti yapısını ve araçları da ekleyip sonucu sağlayıcının kullanımıyla karşılaştırın.
Bu rehberde
Kelime sayacı yazı uzunluğunu ölçer, ancak yapay zekâ isteğinin bağlama sığacağını veya maliyetini güvenilir biçimde söylemez. Aynı metin farklı bölünebilir; istek son mesaja yapıştırılan yazıdan fazlasını içerir.
Ham metin, tam istek ve faturalanan kullanım ayrı ölçümlerdir. Yerel örnek ve çalışma tablosu, çalıştırılmamış model için kesin token sayısı uydurmaz.
Kelime, Unicode karakteri ve tokenı ayırın
Bir kelime tek token, birkaç alt parça veya boşluk ve işaret içeren birimler olabilir. Kelime, karakter ve alt kelime yöntemleri farklıdır. Dil, yazım, kod, boşluk ve sözlük bölünmeyi etkiler.
Unicode sayısı başka soruyu yanıtlar. Karakter birden çok kod birimi veya bayt, görünen simge birden çok kod noktası içerebilir. Evrensel token dönüşümü yoktur. Karakter-token oranı yalnız belirtilen örneklem için kaba yaklaşım olabilir.
| Görev türü | Yararlı ölçüm | Sınırı |
|---|---|---|
| Yazı uzunluğunu kontrol | Kelime veya Unicode karakteri | Model tokenını belirlemez |
| Metni belirli tokenizer ile ölçme | O tokenizer ve ayarların token kimlikleri | Sohbet biçimini ve ek yapıyı dışarıda bırakabilir |
| Yapılandırılmış API isteğini tahmin | Sağlayıcının desteklediği sayım veya tam biçim | Son kullanımdan farklı olabilir |
| Faturayı uzlaştırma | Gerçek kullanım alanları ve güncel kurallar | Başka sağlayıcının isteğini tahmin etmez |
Bilinen tokenizer ile yerel örnek sayın
Hugging Face biçiminde doğru yerel tokenizer.json dosyasını yükleyip UTF-8 metni kodlayın. Model kimliği, dosya revizyonu, paket sürümü ve özel token ayarını kaydedin. Örnek tokenizers 0.23.2 kullanır; doldurma ve kesmeyi kapatır, özel token eklemez.
Dosyayı hedef modelin resmî dağıtımından alın. Kod model indirmez, metni sunucuya göndermez ve tam sohbet API biçimini üretmez. Sayı ancak tokenizer ile ayarlar ölçtüğünüz soruya uyuyorsa anlamlıdır.
# Example environment: tokenizers==0.23.2
from pathlib import Path
from importlib.metadata import version
from tokenizers import Tokenizer
# Use the matching tokenizer.json already saved locally.
tokenizer = Tokenizer.from_file("tokenizer.json")
tokenizer.no_padding()
tokenizer.no_truncation()
text = Path("sample.txt").read_text(encoding="utf-8")
encoded = tokenizer.encode(text, add_special_tokens=False)
print("tokenizers version:", version("tokenizers"))
print("raw-text tokens:", len(encoded.ids))
# Record tokenizer identity/revision separately.
# This is not a complete chat-request or billing count.Bağlam planında bütün isteği dahil edin
Sohbette son mesaja sistem talimatı, geçmiş, getirilen pasajlar, araç tanımları ve biçim eklenebilir. Sohbet şablonları roller ve mesaj sınırlarına kontrol tokenları koyar. Yalnız son paragrafı saymak girdiyi eksik gösterir.
Mevcutsa giriş türlerinizi destekleyen resmî istek sayımını kullanın. Araç, görsel ve belgelerin tahmin sınırları veya gerçek kullanım gereksinimleri olabilir. Bilinmeyen çevrimiçi sayaçlara kimlik bilgisi ve hassas metin vermeyin: yerel işlemle sağlayıcı uç noktasının veri akışı farklıdır.
Tekrarlanabilir karşılaştırma tablosu oluşturun
Tipik destek mesajı, kod, tablo ve uygulamanın her dilinde pasaj seçin. Satır sonu, noktalama ve boşluğun denemeler arasında değişmemesi için tam baytları koruyun.
Tokenizer kimliği ve revizyonu, özel token ayarı, ham metin sayısı ve varsa tam istek tahminini kaydedin. Ölçülmeyeni tahmini oranla doldurmayın. Farklı sayılar bu örneklerde ölçülen farktır, dil kalitesi sıralaması değildir.
| Örnek türü | Tokenizer ve revizyon | Ham metin sayısı | Tam istek sayısı veya tahmini |
|---|---|---|---|
| Destek mesajı | Tam kimliği kaydedin | Yerelde ölçün | Desteklenen istek biçimiyle ölçün |
| Kod parçası | Tam kimliği kaydedin | Yerelde ölçün | Desteklenen istek biçimiyle ölçün |
| İkinci dilde pasaj | Tam kimliği kaydedin | Yerelde ölçün | Desteklenen istek biçimiyle ölçün |
Yeni girdi eklemeden çıktı alanı ayırın
Varsayımsal 32,000 birleşik bağlamdan 4,000 çıktı, 2,000 planlama payı ayrılırsa ölçülen giriş için 26,000 kalır. Talimat, geçmiş ve araçlar 8,000 kullanıyorsa getirilen içerik için 18,000 kalır.
Bunlar güncel model özelliği değil, açık varsayımlardır. Bağlam, çıktı, akıl yürütme ve araç kullanımı farklı tanımlanabilir. Güncel sözleşmeyi kontrol edip gerçek miktarları bağlam hesabına girin. Sınıra sığmak her pasajın yararlı olduğu anlamına gelmez.
Hypothetical planning budget:
32,000 combined context
− 4,000 output reserve
− 2,000 planning buffer
= 26,000 input budget
26,000 − 8,000 instructions/history/tools
= 18,000 available for retrieved contentTahmini gerçek kullanım ve maliyetle karşılaştırın
Küçük gerçek denemeden sonra dönen kullanım alanlarını kaydedip aynı isteğin tahminiyle karşılaştırın. Önbellek girdisi, çıktı, akıl yürütme ve diğer belgelenmiş ücret kategorilerini ayırın. Eksik araç tanımı kelime-token oranı değiştirilerek düzelmez.
Maliyet hesabında gerçek token sayısıyla girdiğiniz güncel fiyatları kullanın. Giriş ve çıkışı ayrı, milyon başına fiyat gibi birimleri görünür tutun. Tekrarlanabilir bütçe evrensel kelime dönüşümüne değil ölçülmüş kullanım ve belirtilmiş tarifeye dayanır.
Sık sorulan sorular
Bir token her zaman dört karakter midir?
Hayır. Bazı metin ve tokenizer için kaba yaklaşım olabilir. Dil, kod, noktalama, boşluk ve tasarım sonucu değiştirir.
Yerel sayı neden API kullanımından farklı?
İstek; biçim, talimat, geçmiş, araç ve ham örnekte olmayan türler içerebilir. Tokenizer veya özel token ayarı da farklı olabilir. Tam isteği ve sağlayıcı tanımlarını karşılaştırın.
Sitenin kelime sayacı kesin model tokenı hesaplar mı?
Hayır. Kelime ve Unicode karakteri ölçer. Token için eşleşen tokenizer veya desteklenen sağlayıcı sayımını, ardından bu ölçümlerle maliyet ve bağlam araçlarını kullanın.
Kaynaklar ve tanımlar
- Hugging Face LLM Course: Tokenizers
- Claude Platform: Token counting
- Hugging Face tokenizers 0.23.2: published Python package and API examples
- Hugging Face Transformers: Chat templates
Yöntem kontrol tarihi: