🔤 Turkish Byte-Level BPE Tokenizer

Türkçe metinler üzerinde sıfırdan eğitilmiş küçük ölçekli bir Byte-Level BPE (Byte Pair Encoding) Tokenizer.


📌 Tokenizer Hakkında

Bu tokenizer, Byte-Level BPE algoritmasının Türkçe metinler üzerinde uygulanmasını deneyimlemek ve küçük ölçekli LLM çalışmalarında kullanılmak amacıyla hazırlanmıştır.

Byte-Level yaklaşımı sayesinde tokenizer, yalnızca eğitim vocabulary'sinde bulunan karakterlerle sınırlı kalmadan metni byte düzeyinde temsil edebilir.

BPE algoritması ise eğitim corpusunda sık tekrar eden token çiftlerini birleştirerek daha kompakt bir vocabulary oluşturur.


⚙️ Tokenizer Yapılandırması

Özellik Değer
Tokenizer algoritması Byte-Level BPE
Dil Türkçe
Vocabulary Size 512
Minimum Frequency 2
Pre-tokenizer ByteLevel
Decoder ByteLevel
Transformers uyumluluğu Evet
AutoTokenizer desteği Evet

🔑 Özel Tokenlar

Tokenizer aşağıdaki özel tokenları kullanmaktadır:

Token Amaç
<unk> Bilinmeyen token
<pad> Padding
<bos> Sequence başlangıcı
<eos> Sequence sonu

🔄 Tokenization Pipeline

flowchart LR

    A["📝 Türkçe Metin"]
    B["🔡 Byte-Level Encoding"]
    C["✂️ Pre-Tokenization"]
    D["🔗 BPE Merge İşlemleri"]
    E["📚 Token Vocabulary"]
    F["🔢 Token IDs"]

    A --> B
    B --> C
    C --> D
    D --> E
    E --> F

🚀 Kullanım

Tokenizer Hugging Face Hub üzerinden doğrudan yüklenebilir:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(
    "sedayzc/turkish-bpe-tokenizer"
)

Bir metni tokenize etmek için:

text = "Bu bilmecenin anlamını çözmek günler sürdü"

token_ids = tokenizer.encode(
    text
)

tokens = tokenizer.convert_ids_to_tokens(
    token_ids
)

decoded = tokenizer.decode(
    token_ids
)

print("Tokens:", tokens)
print("Token IDs:", token_ids)
print("Decoded:", decoded)

📊 Örnek Tokenization

Girdi

Bu bilmecenin anlamını çözmek günler sürdü

Örnek tokenlar

[
    'B',
    'u',
    'Ġb',
    'i',
    'lm',
    'e',
    'c',
    'en',
    'in',
    ...
]

Decode

Bu bilmecenin anlamını çözmek günler sürdü

Byte-Level BPE tokenlarında görülebilen Ġ benzeri semboller tokenizer'ın byte-level iç temsilinden kaynaklanmaktadır.

Bunlar gerçek metne eklenen karakterler değildir.

Decode işlemi sonucunda orijinal metin yeniden elde edilir.


📦 Repo İçeriği

Tokenizer temel olarak aşağıdaki dosyalardan oluşmaktadır:

tokenizer.json
tokenizer_config.json
special_tokens_map.json

tokenizer.json

Tokenizer vocabulary'sini, BPE merge yapılarını ve tokenizer pipeline'ını içerir.

tokenizer_config.json

Tokenizer'ın Hugging Face Transformers tarafından yüklenmesi için gerekli yapılandırmayı içerir.

special_tokens_map.json

<unk>, <pad>, <bos> ve <eos> özel tokenlarının eşlemesini içerir.


⚠️ Sınırlamalar

Bu tokenizer:

  • Küçük ölçekli bir eğitim corpusuyla eğitilmiştir.
  • Vocabulary size değeri yalnızca 512 olarak belirlenmiştir.
  • Büyük üretim modellerinde kullanılan tokenizer'larla aynı kapsam ve token verimliliğine sahip değildir.

🔗 İlgili Proje

Tokenizer'ın eğitim ve deney kodları aşağıdaki GitHub reposunda yer almaktadır:

GitHub


👩‍💻 Oluşturan

Seda Nur Yazıcı

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support