Tiktoken ile Başlarken
Tiktoken’ı kullanmaya başlamak için Python ortamımıza kurmamız gerekiyor (Tiktoken diğer programlama dilleri için de mevcuttur). Bunu aşağıdaki komutla yapabiliriz:
pip install tiktoken
Tiktoken’ın açık kaynaklı Python sürümünün koduna şu GitHub deposundan bakabilirsiniz.
Kütüphaneyi içe aktarmak için şunu çalıştırırız:
import tiktoken
Kodlama (Encoding) Modelleri
Tiktoken’daki kodlama modelleri, metni token’lara ayırma kurallarını belirler. Bu modeller, metnin nasıl bölünüp kodlanacağını tanımladıkları için kritik öneme sahiptir; bu da dil işleme görevlerinin verimliliğini ve doğruluğunu etkiler. Farklı OpenAI modelleri farklı kodlamalar kullanır.
Tiktoken, farklı kullanım durumları için optimize edilmiş üç kodlama modeli sunar:
- o200k_base: En yeni GPT-4o-Mini modeli için kodlama.
- cl100k_base: GPT-4 ve GPT-3.5-Turbo gibi daha yeni OpenAI modelleri için kodlama modeli.
- p50k_base: Codex modelleri için kodlama; bu modeller kod uygulamalarında kullanılır.
- r50k_base: GPT-3’ün farklı sürümleri için eski bir kodlama.
Bu modellerin tümü OpenAI’nin API’si ile kullanılabilir. API’nin burada listelediğimden çok daha fazla modele erişim verdiğine dikkat edin. Neyse ki Tiktoken kütüphanesi, hangi modelle hangi kodlamanın kullanılacağını kontrol etmek için kolay bir yol sağlar.
Örneğin, text-embedding-3-small modelinin hangi kodlama modelini kullandığını bilmem gerekirse, aşağıdaki komutu çalıştırarak çıktıda yanıtı alabilirim:
print(tiktoken.encoding_for_model('text-embedding-3-small'))
Çıktı olarak <Encoding 'cl100k_base'> alırız. Tiktoken ile doğrudan çalışmaya geçmeden önce, OpenAI’nin farklı dizelerin nasıl token’lara ayrıldığını görebileceğiniz bir tokenizasyon web uygulaması olduğunu belirtmek isterim—buradan erişebilirsiniz. OpenAI dışındaki modelleri de destekleyen üçüncü taraf bir çevrimiçi tokenizer olan Tiktokenizer da vardır.
Metni Token’lara Kodlama
Tiktoken ile metni token’lara kodlamak için önce bir kodlama (encoding) nesnesi elde etmeniz gerekir. Bunu başlatmanın iki yolu vardır. İlk olarak, tokenizer’ın adıyla yapabilirsiniz:
encoding = tiktoken.get_encoding("[name of the tokenizer]")
Ya da, belirli bir model için kodlayıcıyı almak üzere daha önce bahsedilen encoding_for_model fonksiyonunu çalıştırabilirsiniz:
encoding = tiktoken.encoding_for_model("[name of the model]")
Artık bir dizgiyi kodlamak için encoding nesnemizin encode metodunu çalıştırabiliriz. Örneğin, “I love DataCamp” dizgesini şu şekilde kodlayabiliriz—burada cl100k_base kodlayıcısını kullanıyorum:
print(encoding.encode("I love DataCamp"))
Çıktı olarak [40, 3021, 2956, 34955] alırız.
Token’ları Metne Çözme (Decoding)
Token’ları tekrar metne çözmek için, encoding nesnesi üzerinde .decode() metodunu kullanabiliriz.
Şu token’ları çözelim: [40, 4048, 264, 2763, 505, 2956, 34955]:
print(encoding.decode([40, 4048, 264, 2763, 505, 2956, 34955]))
Token’lar “I learn a lot from DataCamp.” metnine çözülür.
Pratik Kullanım Alanları ve İpuçları
Kodlama ve çözmenin dışında, aklıma gelen iki başka kullanım alanı var.
Maliyet tahmini ve yönetimi
OpenAI API’sine bir istek göndermeden önce token sayısını bilmek, maliyetleri etkin şekilde yönetmenize yardımcı olabilir. OpenAI’nin ücretlendirmesi işlenen token sayısına dayandığından, metninizi önceden token’lara ayırmanız API kullanım maliyetinizi tahmin etmenizi sağlar. Tiktoken ile metninizdeki token’ları şu şekilde sayabilirsiniz:
tokens = encoding.encode(text)
print(len(tokens))
Dizinin uzunluğunu kontrol ederek kaç token elde ettiğimizi basitçe görürüz. Token sayısını önceden bilerek, metni kısaltmaya mı yoksa bütçe dahilinde kalmak için kullanımınızı ayarlamaya mı karar verebilirsiniz.
Bu yaklaşımla ilgili daha fazla bilgiyi şu öğreticide okuyabilirsiniz: Python’da tiktoken Kütüphanesini Kullanarak GPT Maliyetini Tahmin Etme.
Girdi uzunluğu doğrulama
API üzerinden OpenAI modellerini kullanırken, girdiler ve çıktılar için azami token sayısıyla sınırlanırsınız. Bu limitlerin aşılması hatalara veya kırpılmış çıktılara yol açabilir. Tiktoken’ı kullanarak girdi uzunluğunu doğrulayabilir ve token sınırlarına uyduğundan emin olabilirsiniz.
Sonuç
Tiktoken, OpenAI’nin dil modellerine uyarlanmış hız ve verimlilik sunan açık kaynaklı bir tokenizasyon kütüphanesidir.
Tiktoken ile metni nasıl kodlayıp çözeceğinizi ve çeşitli kodlama modellerini anlamak, büyük dil modelleri ile çalışmalarınızı önemli ölçüde geliştirebilir.


Tokenizasyon, NLP görevleriyle çalışırken temel bir iştir. Metni sözcükler, alt sözcükler veya karakterler olabilen daha küçük birimlere, yani token’lara bölmeyi içerir.
Verimli tokenizasyon, dil modellerinin performansı için kritik öneme sahiptir ve metin üretimi, çeviri ve özetleme gibi çeşitli NLP görevlerinde temel bir adımdır.
Tiktoken, OpenAI tarafından geliştirilen hızlı ve verimli bir tokenizasyon kütüphanesidir. Metni token’lara ve tam tersine dönüştürmek için sağlam bir çözüm sunar. Hızı ve verimliliği, büyük veri kümeleri ve karmaşık modellerle çalışan geliştiriciler ve veri bilimciler için mükemmel bir seçenektir.
Bu rehber, Tiktoken kullanmayı planlayan ve örneklerle pratik bir kılavuza ihtiyaç duyan geliştiriciler, veri bilimciler ve herkes için hazırlandı.