Ana içeriğe geç

Python'da tiktoken Kütüphanesini Kullanarak GPT Maliyetini Tahmin Etme

Python'da tiktoken ile GPT model maliyetlerini yönetin. Tokenization, BPE'yi keşfedin ve OpenAI API giderlerini verimli şekilde tahmin edin.
· 7 dk. oku

Yapay Zeka ile Keşfedin

Python'da OpenAI GPT modelleriyle çalışırken maliyetleri takip etmek kritik öneme sahiptir. İşte bu noktada tiktoken kütüphanesi devreye girer—metni, GPT ve diğer LLM’lerin metni anlamak ve üretmek için kullandığı temel yapı taşları olan token'lara dönüştürerek API çağrıları için ne kadar harcayacağınızı tahmin etmeyi kolaylaştıran bir araçtır.

Burada, tokenization'ın ne olduğunu ve dil modelleri için neden önemli olduğunu inceleyecek, sizi Byte Pair Encoding (BPE) ile tanıştıracak ve ardından tiktoken kütüphanesinin GPT kullanım maliyetlerini etkili bir şekilde tahmin etmenize nasıl yardımcı olabileceğine değineceğiz.

OpenAI tiktoken kütüphanesinin kapak görselinin ekran görüntüsü

Tokenization Nedir

Tokenization, GPT veya diğer dil modellerinin çalışmasında temel bir süreçtir ve bu gelişmiş yapay zekâ sistemlerinin doğal dili anlayıp işleyebileceği bir formata çevirmede ilk adımı oluşturur.

Özünde tokenization, metni token adı verilen daha küçük ve yönetilebilir parçalara bölmeyi içerir. Kullanılan tokenization yöntemine bağlı olarak bu token'lar kelimeler, kelime parçaları veya tek tek karakterler olabilir.

Etkili tokenization kritik öneme sahiptir; çünkü modelin girdi metnini yorumlama, tutarlı ve bağlama uygun yanıtlar üretme ve hesaplama maliyetlerini doğru şekilde tahmin etme yetisini doğrudan etkiler.

Byte Pair Encoding (BPE)

Byte Pair Encoding (BPE), GPT modellerinde ve diğer doğal dil işleme (NLP) uygulamalarında kullanımıyla öne çıkan özel bir tokenization yöntemidir. BPE, karakter düzeyi tokenization'ın ayrıntı düzeyi ile kelime düzeyi tokenization'ın daha geniş kapsamı arasında bir denge kurar.

Metindeki en sık görülen bayt (veya karakter) çiftlerini yinelemeli olarak birleştirip tek ve yeni bir token oluşturur. Bu süreç, önceden belirlenmiş sayıda yineleme tamamlanana veya istenen bir sözlük boyutuna ulaşılana kadar devam eder.

BPE'nin LLM’lerdeki önemi yadsınamaz. BPE, aşırı büyük ve hantal sabit bir sözlüğe ihtiyaç duymadan yaygın kelimeler, nadir kelimeler ve hatta yeni türetilmiş sözcükler de dahil olmak üzere çok geniş bir kelime dağarcığını verimli şekilde işlemesini sağlar.

Bu uyarlanabilirlik, daha az yaygın kelimeleri başka bağlamlarda görülmesi muhtemel alt sözcükler veya karakterlere bölerek elde edilir; böylece model, bilinmeyen terimlerin anlamını bilinen bileşenlerden bir araya getirebilir.

BPE'nin bazı temel özellikleri şunlardır:

  • Tersine çevrilebilir ve bilgi kaybını önler; böylece orijinal metin token'lardan mükemmel şekilde yeniden oluşturulabilir. Örneğin, “exciting” kelimesi [12 34 39 10 23] vektörüne dönüşüyorsa, bu vektör kayıpsız şekilde yeniden “exciting” kelimesine çevrilebilir.
  • BPE, modelin ilk eğitim setine dahil olmasa bile herhangi bir metni işleyebilir; bu da onu son derece çok yönlü kılar.
  • Bu yöntem metni etkili biçimde sıkıştırır; token'lanmış sürüm genellikle orijinal metinden daha kısadır. Ortalama olarak her token, orijinal metnin yaklaşık dört baytını temsil eder.
  • BPE ayrıca modellerin yaygın kelime parçalarını tanımasına ve anlamasına yardımcı olur. Örneğin, İngilizcede "ing" sıklıkla görülür; bu nedenle BPE "exciting" kelimesini "excit" ve "ing" olarak böler. "ing" gibi yaygın alt sözcüklere çeşitli bağlamlarda tekrar tekrar maruz kalmak, modelin dil bilgisini kavrama ve dil kalıplarını genelleme yeteneğini artırır.

tiktoken

tiktoken, OpenAI tarafından geliştirilen hızlı BPE algoritmasıdır. Algoritmanın açık kaynak sürümü Python dahil birçok kütüphanede mevcuttur. GitHub sayfalarına göre tiktoken, benzer bir açık kaynak tokenizer'dan 3-6 kat daha hızlıdır.

tiktoken'in huggingface tokenizer'larıyla karşılaştırmasının ekran görüntüsü.

Kaynak

tiktoken kütüphanesi üç farklı kodlama yöntemini destekler. Kodlamalar, metnin token'lara dönüştürülme yöntemini belirler. Farklı modeller farklı kodlamalar kullanır.

Tiktoken kütüphanesinde desteklenen 3 farklı embedding türü ve ilgili modelleri gösteren ekran görüntüsü

Kaynak

Python'da tiktoken Kütüphanesini Kullanarak GPT Maliyetini Tahmin Etme

tiktoken kütüphanesi metin dizelerini token'lara dönüştürebilir ve kullandığımız model için kodlama adını bildiğimizden, bu kütüphaneyi çağrıyı yapmadan önce API çağrılarının maliyetini tahmin etmek için kullanabiliriz.

Adım 1. tiktoken'ı yükleyin

!pip install openai tiktoken

Adım 2. Bir kodlama yükleyin

tiktoken.get_encoding yöntemi ilgili kodlamayı döndürür

encoding = tiktoken.get_encoding("cl100k_base")
encoding

Çıktı:

>>> <Encoding 'cl100k_base'>

Alternatif olarak, tiktoken.encoding_for_model yöntemini kullanarak model adından da yükleyebilirsiniz.

encoding = tiktoken.encoding_for_model("gpt-4")

Adım 3. Metni token'lara dönüştürün

Artık tek yapmanız gereken, dizeyi encode yöntemine iletmektir.

encoding.encode("This blog shows how to use tiktoken for estimating cost of GPT models")

Çıktı:

>>> [2028, 5117, 5039, 1268, 311, 1005, 73842, 5963, 369, 77472, 2853, 315, 480, 2898, 4211]

Bu dizede kaç token olduğunu öğrenmek için basitçe length yöntemini çağırabilirsiniz. Bu modelin fiyatlandırmasını OpenAI web sitesinde bulabilirsiniz.

Bu örnekte 15 girdi token'ımız var. GPT-4’ün 1M girdi token'ı için 10 $ fiyatı, bu sorgu için maliyetimizin 0,00015 $ olacağı anlamına gelir (10 $ / 1.000.000 * 15).

OpenAI GPT-4 modellerinin fiyatlandırmasının ekran görüntüsü

BPE algoritması tamamen tersine çevrilebilir olduğundan, token'dan metin dizesine geri dönmek için decode yöntemini kullanabilirsiniz.

encoding.decode([2028, 5117, 5039, 1268, 311, 1005, 73842, 5963, 369, 77472, 2853, 315, 480, 2898, 4211])

Çıktı:

>>> ‘This blog shows how to use tiktoken for estimating cost of GPT models’

Sonuç

Python'da GPT modellerini kullanmanın maliyetini yönetmek, tiktoken kütüphanesi sayesinde bir tahmin oyunu olmak zorunda değil. Özellikle Byte Pair Encoding (BPE) yöntemini ve tiktoken'ı anlayarak, GPT API çağrılarınızla ilişkili maliyetleri doğru şekilde tahmin edebilirsiniz. Bu rehber, tokenization'ın temellerini, BPE'nin verimliliğini ve tiktoken'ı kullanarak metni token'lara—ve tekrar geri—çevirmenin basit sürecini, bütçenizi gözeterek adım adım ele aldı.

İster maliyeti optimize ediyor, ister yeni fikirleri test ediyor, ister uygulamalarınızı ölçeklendiriyor olun; bu bilgi ve araca sahip olmak, GPT kullanım maliyetleriniz üzerinde her zaman bilgili ve kontrol sahibi olmanızı sağlar. Unutmayın, hesaplama giderlerini yönetmek, GPT modelleriyle yaptığınız yenilikçi çalışmalar kadar önemlidir. tiktoken ile her token'ın—ve doların—değerini bilerek hareket edebilirsiniz.

Eğer embedding'lere derinlemesine dalmak ve anlamsal arama ile öneri motorları gibi daha gelişmiş yapay zekâ uygulamalarının kilidini açmakla ilgileniyorsanız, DataCamp’in OpenAI API ile Embedding'lere Giriş kursuna göz atın.

Yeni başlıyorsanız ve OpenAI API için uygulamalı, adım adım bir rehber istiyorsanız, Datacamp'teki OpenAI API ile Çalışma kursumuza ve OpenAI API'ye Yeni Başlayanlar için Rehber: Uygulamalı Eğitim ve En İyi Uygulamalar yazımıza göz atın.

Moez Ali

Yazar

Moez Ali

Veri Bilimci, PyCaret'in Kurucusu ve Yaratıcısı

Konular

İlgili