1. Tokenizing
Tokenizing
Tokenizing, verileri, örneğin metni, daha küçük, yönetilebilir parçalara token denir. Her token, benzersiz bir sayısal tanımlayıcı (ID) ile atanır. Bu, metni makine öğrenimi modelleri tarafından işlenmeye hazırlamak için temel bir adımdır, özellikle doğal dil işleme (NLP) alanında.
Bu ilk aşamanın amacı çok basittir: Girişi mantıklı bir şekilde token'lara (id'lere) ayırmak.
Tokenizing Nasıl Çalışır
Metni Bölme:
Temel Tokenizer: Basit bir tokenizer, metni bireysel kelimelere ve noktalama işaretlerine ayırabilir, boşlukları kaldırır.
Örnek: Metin:
"Merhaba, dünya!"
Tokenlar:["Merhaba", ",", "dünya", "!"]
Bir Kelime Dağarcığı Oluşturma:
Tokenları sayısal ID'lere dönüştürmek için bir kelime dağarcığı oluşturulur. Bu kelime dağarcığı, tüm benzersiz tokenları (kelimeler ve semboller) listeler ve her birine belirli bir ID atar.
Özel Tokenlar: Bu, çeşitli senaryoları ele almak için kelime dağarcığına eklenen özel sembollerdir:
[BOS]
(Dizinin Başlangıcı): Bir metnin başlangıcını belirtir.[EOS]
(Dizinin Sonu): Bir metnin sonunu belirtir.[PAD]
(Doldurma): Bir partideki tüm dizileri aynı uzunlukta yapmak için kullanılır.[UNK]
(Bilinmeyen): Kelime dağarcığında olmayan tokenları temsil eder.Örnek: Eğer
"Merhaba"
ID64
ile atanmışsa,","
455
,"dünya"
78
, ve"!"
467
ise:"Merhaba, dünya!"
→[64, 455, 78, 467]
Bilinmeyen Kelimeleri Ele Alma: Eğer
"Hoşça kal"
gibi bir kelime kelime dağarcığında yoksa,[UNK]
ile değiştirilir."Hoşça kal, dünya!"
→["[UNK]", ",", "dünya", "!"]
→[987, 455, 78, 467]
&#xNAN;(Varsayılarak[UNK]
ID'si987
dir)
Gelişmiş Tokenizing Yöntemleri
Temel tokenizer basit metinler için iyi çalışırken, büyük kelime dağarcıkları ve yeni veya nadir kelimeleri ele almakta sınırlamaları vardır. Gelişmiş tokenizing yöntemleri, metni daha küçük alt birimlere ayırarak veya tokenizasyon sürecini optimize ederek bu sorunları ele alır.
Byte Pair Encoding (BPE):
Amaç: Kelime dağarcığının boyutunu azaltır ve nadir veya bilinmeyen kelimeleri sıkça karşılaşılan byte çiftlerine ayırarak ele alır.
Nasıl Çalışır:
Token olarak bireysel karakterlerle başlar.
En sık çift tokenları tek bir token haline getirerek birleştirir.
Daha fazla sık çift birleştirilemeyecek hale gelene kadar devam eder.
Faydalar:
Tüm kelimelerin mevcut alt kelime tokenları birleştirilerek temsil edilebileceğinden
[UNK]
tokenına ihtiyaç duyulmaz.Daha verimli ve esnek bir kelime dağarcığı.
Örnek:
"oynama"
token olarak["oyna", "ma"]
şeklinde olabilir eğer"oyna"
ve"ma"
sıkça karşılaşılan alt kelimelerse.
WordPiece:
Kullananlar: BERT gibi modeller.
Amaç: BPE'ye benzer, bilinmeyen kelimeleri ele almak ve kelime dağarcığı boyutunu azaltmak için kelimeleri alt kelime birimlerine ayırır.
Nasıl Çalışır:
Bireysel karakterlerden oluşan bir temel kelime dağarcığı ile başlar.
Eğitim verilerinin olasılığını maksimize eden en sık alt kelimeyi iteratif olarak ekler.
Hangi alt kelimelerin birleştirileceğine karar vermek için olasılıksal bir model kullanır.
Faydalar:
Yönetilebilir bir kelime dağarcığı boyutu ile kelimeleri etkili bir şekilde temsil etme arasında denge kurar.
Nadir ve bileşik kelimeleri verimli bir şekilde ele alır.
Örnek:
"mutsuzluk"
token olarak["mut", "suz", "luk"]
veya["mut", "suz", "luk"]
şeklinde olabilir, kelime dağarcığına bağlı olarak.
Unigram Dil Modeli:
Kullananlar: SentencePiece gibi modeller.
Amaç: En olası alt kelime token setini belirlemek için olasılıksal bir model kullanır.
Nasıl Çalışır:
Potansiyel tokenların büyük bir seti ile başlar.
Eğitim verilerinin modelin olasılığını en az artıran tokenları iteratif olarak kaldırır.
Her kelimenin en olası alt kelime birimleri ile temsil edildiği bir kelime dağarcığı oluşturur.
Faydalar:
Esnek ve dili daha doğal bir şekilde modelleyebilir.
Genellikle daha verimli ve kompakt tokenizasyonlar ile sonuçlanır.
Örnek:
"uluslararasılaştırma"
daha küçük, anlamlı alt kelimelere["uluslararası", "laştırma"]
şeklinde token olarak ayrılabilir.
Code Example
Bunu https://github.com/rasbt/LLMs-from-scratch/blob/main/ch02/01_main-chapter-code/ch02.ipynb adresinden bir kod örneği ile daha iyi anlayalım:
Referanslar
Last updated