Tokenization (NLP) (TR)
Tokenizasyon, büyük dil modelleri (LLM) bağlamında, bir metin dizisini token adı verilen daha küçük, yönetilebilir birimlere ayırma işleminden oluşan temel bir ön işleme sürecidir. Bu token'lar daha sonra modelin işleyebildiği sayısal tanımlayıcılara dönüştürülür. Tokenizasyon, modelin performansını, verimliliğini, hakkaniyetini ve dil anlama kalitesini doğrudan etkilediği için kritik öneme sahip ilk adımdır.
Temel Kavramlar
Token
Token, bir dil modelinin işlediği ayrık metin birimidir. Seçilen tokenizasyon yöntemine bağlı olarak bir token şunları temsil edebilir:
- Kelimenin tamamını (örneğin, "kedi").
- Kelimenin bir parçasını veya alt kelimeyi (örneğin, "yap-", "-ama-", "-dım").
- Tek bir karakteri (örneğin, "a", "b", "c").
- Bir byte'ı (byte-level tokenizasyon durumunda).
Her benzersiz token'a tokenizer sözlüğünden belirli bir indeks numarası atanır.
Tokenizer Sözlüğü
Sözlük (veya vocabulary), modelin tanıyabildiği tüm olası token'ların tam kümesidir. Sözlük boyutu önemli bir hiperparametredir:
- Büyük bir sözlük, daha fazla kelimenin bütünüyle temsil edilmesine olanak tanır; bu da anlamayı geliştirir ve dizi uzunluklarını kısaltır, ancak model boyutunu ve eğitim karmaşıklığını artırır.
- Küçük bir sözlük daha kompakttır, ancak nadir veya karmaşık kelimelerin daha fazla alt kelimeye bölünmesini gerektirir; bu durum dizileri uzatabilir ve anlam yakalamayı zorlaştırabilir.
Sözlük boyutu modeller arasında büyük farklılıklar gösterir: GPT-2'deki yaklaşık 50.000 token'dan GPT-4 (100.277) ve LLaMA-3 (128.000) gibi modern modellerdeki 100.000'in üzerine kadar çıkmaktadır.
Temel Tokenizasyon Yöntemleri
Tokenizasyonun üç temel ayrıntı düzeyi bulunmaktadır.
1. Kelime Düzeyinde Tokenizasyon (Word-level)
- İlke: Metin, ayırıcılara (boşluklar, noktalama işaretleri) göre ayrı kelimelere bölünür.
- Avantajlar: Sezgisel olarak anlaşılırdır; token dizileri daha kısadır, bu da hesaplama yükünü azaltır.
- Dezavantajlar:
- Bilinmeyen kelime sorunu (Out-of-Vocabulary, OOV): Model, eğitim sözlüğünde bulunmayan kelimeleri, yazım hatalarını ve yeni kelimeleri işleyemez.
- Büyük sözlük boyutu: Tüm benzersiz kelimelerin saklanması gerekir; bu durum zengin morfolojiye sahip diller için özellikle sorunludur.
2. Karakter Düzeyinde Tokenizasyon (Character-level)
- İlke: Metin, tek tek karakterlere bölünür.
- Avantajlar:
- OOV sorunu yoktur: Herhangi bir kelime karakter dizisi olarak temsil edilebilir.
- Küçük sözlük: Alfabe ve özel karakterlerin boyutuyla sınırlıdır.
- Dezavantajlar:
- Uzun diziler: Metin, çok uzun token dizilerine dönüştürülür; bu da hesaplama maliyetini önemli ölçüde artırır.
- Anlam kaybı: Model, bütün kelimeler yerine tek tek karakterler üzerinde çalıştığından anlamı yakalamak daha güçtür.
3. Alt Kelime Tokenizasyonu (Subword Tokenization)
Bu, önceki yöntemlerin avantajlarını bir araya getiren, günümüzde en popüler olan ara bir yaklaşımdır.
- İlke: Sık kullanılan kelimeler bütün token olarak kalır; nadir veya bilinmeyen kelimeler ise daha küçük, anlamlı parçalara (alt kelimeler) bölünür.
- Avantajlar:
- OOV kelimelerini ve morfolojik varyasyonları etkin biçimde işler.
- Kontrollü sözlük boyutu.
- Kelimelerin morfolojik yapısını yakalar.
- Temel algoritmalar:
- Byte Pair Encoding (BPE): Karakter kümesiyle başlayan ve en sık karşılaşılan çiftleri yinelemeli olarak yeni token'larda birleştiren bir algoritmadır. GPT modellerinde kullanılır. GPT-2 ve RoBERTa'da kullanılan Byte-level BPE, kelimeleri byte dizileri olarak ele alır ve OOV sorununu tamamen çözer.
- WordPiece: BPE'ye benzer bir algoritmadır; ancak çiftleri birleştirmek için eğitim verilerinin olabilirliğini en üst düzeye çıkaranları seçer. BERT modellerinde kullanılır.
- Unigram LM: BPE/WordPiece'in aksine, bu yöntem büyük bir alt kelime kümesiyle başlar ve corpus'un genel olasılığını en az etkileyen token'ları silerek kümesini giderek küçültür. Bu sayede tek bir kelime için birden fazla olası tokenizasyon oluşturulabilir (alt kelime düzenlileştirmesi).
- SentencePiece araç takımı: Google'ın BPE ve Unigram LM'yi uygulayan ve metni sürekli bir karakter akışı olarak işleyen kütüphanesidir; bu özellik onu sözcük ayırıcısı bulunmayan diller (örneğin Çince) için evrensel kılar. LLaMA ve T5 modellerinde kullanılır.
Çok Modlu LLM'lerde Tokenizasyon
Yalnızca metinle değil, farklı veri türleriyle de çalışan çok modlu modellerde tokenizasyon diğer veri türlerine de uygulanır:
- Görsel tokenizasyon: Görüntüler, küçük parçalara (örneğin 16x16 piksel) bölünür; bu parçalar daha sonra metin token'larına benzer biçimde vektör-token'lara dönüştürülür.
- Ses tokenizasyonu: Sürekli ses sinyalleri, kısa ses parçalarını temsil eden ayrık token'lardan oluşan bir diziye dönüştürülür.
- Birleşik yaklaşım (TEAL): Her modalitedeki verinin önce ilgili tokenizer ile tokenize edildiği, ardından embedding'lerinin ortak bir uzayda işlendiği bir kavramdır.
Sorunlar ve Sınırlamalar
Tokenizasyon, önemine karşın LLM'lerin çalışmasındaki birçok sorunun kaynağıdır:
- Tutarsızlık ve hassasiyet: Giriş verilerindeki küçük değişiklikler (yazım hatası, büyük/küçük harf, sondaki boşluk) tokenizasyonu köklü biçimde değiştirebilir ve modelin davranışını öngörülemez hale getirebilir.
- Çok dilli sorunlar: Birçok dil için ortak bir sözlük, düşük kaynaklı veya morfolojik açıdan zengin diller için çoğunlukla verimsiz kalmakta ve aşırı uzun token dizilerine yol açmaktadır.
- Akıl yürütme üzerindeki etki: Sayıların (örneğin "25.000" → "25", ".", "000") veya sembollerin mantık dışı biçimde bölünmesi, aritmetik ve sembolik görevlerin yerine getirilmesini güçleştirir.
- Glitch Token'lar (Glitch Tokens): Eğitim verilerindeki anormal veya nadir token'lar (örneğin Reddit kullanıcı adları), modelin öngörülemeyen veya zararlı davranışlar sergilemesine neden olabilir.
Gelişen Alan ve Gelecekteki Yönelimler
Tokenizasyon alanındaki araştırmalar aşağıdaki yönlerde aktif olarak sürmektedir:
- Tokenizer'sız modeller: Açık tokenizasyon aşamasını ve buna bağlı sorunları tamamen ortadan kaldırmak amacıyla doğrudan byte veya karakter düzeyinde çalışan modellerin (CANINE, ByT5) geliştirilmesi.
- Uyarlanabilir ve öğrenilebilir tokenizasyon: Dile, alana veya hatta belirli bir giriş metnine dinamik olarak uyum sağlayabilen ya da temel modelle birlikte eğitilen tokenizer'ların oluşturulması.
- Bilişsel odaklı yaklaşımlar: İnsan dilini işleme konusundaki bilişsel bilimden ilham alan yöntemlerin (örneğin "En Az Çaba İlkesi") geliştirilmesi ve daha anlamsal açıdan anlamlı tokenizasyonların oluşturulması.
Kaynakça
- Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
- Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
- Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
- Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
- Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
- Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
- Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
- Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
- Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
- Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
- Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
- Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.
Notlar
- Hugging Face'in LLM kursunda tokenizasyona genel bakış
- Mistral AI'dan tokenizasyon belgeleri