Tokenization
Tokenleştirme, metni, görüntüleri veya sesi modelin gömmelere dönüştürdüğü token'lara böler. BPE'yi ve diğer alt sözcük yöntemlerini, görüntü parçalarını ve token maliyetlerini ele alır.
Belirteçleştirme, ham girdiyi modelin okuduğu ayrık birimler olan belirteçler dizisine dönüştüren ve her belirtece sabit bir sözlükten tam sayı kimliği atayan adımdır. Bir metin belirteçleyici, "The bus stopped." cümlesini dört kimliğe dönüştürür ve model her kimlik için karşılık gelen bir gömme vektörünü bulur; böylece belirteçleyici, bir büyük dil modelinin (LLM) neyi tek bir birim olarak ele alacağını belirler. Belirteçler ayrıca modelin bağlam penceresi, çıkarım gecikmesi (metin üretimi sırasında) ve API fiyatlandırması için ölçü birimi olarak kullanılır. Aynı yaklaşım metnin ötesine de uzanır: bir Görüntü Transformer (ViT) modeli, görüntüyü yamalara ayırarak belirteçleştirir; konuşma modelleri de sesi kısa çerçevelere ayırarak belirteçleştirir.
Alt Sözcük Belirteçleştirme Nasıl Çalışır#
İlk doğal dil işleme (NLP) yöntemleri metni boşluk ve noktalama işaretlerinden bölerek nadir ve yeni sözcükleri söz varlığının dışında bırakırken karakter düzeyinde belirteçleştirme dizileri çok uzatıyordu. Modern transformer'lar, sık kullanılan sözcükleri bütün hâlde tutup nadir sözcükleri yeniden kullanılabilir parçalara ayıran alt sözcük belirteçleyicileri kullanır. Sennrich ve çalışma arkadaşlarının 2015'te makine çevirisine uyarladığı bayt çifti kodlaması (BPE), söz varlığını bir eğitim derleminden öğrenir: tek tek karakterlerden veya baytlardan başlar, ardından söz varlığı hedef boyuta ulaşana kadar en sık görülen bitişik çiftleri tekrar tekrar birleştirerek yeni bir belirteç oluşturur. Yeni metni kodlarken öğrenilen birleştirmeler sırayla yeniden uygulanır.
GPT-2 döneminden beri kullanılan bayt düzeyinde BPE, 256 olası bayt değerinden başlar; böylece herhangi bir dize, emoji veya kaynak dosya bilinmeyen belirteç olmadan kodlanabilir. Diğer algoritmalar parçalarını farklı şekilde seçer. BERT tarafından kullanılan WordPiece, eğitim verisinin olabilirliğini en fazla artıran çifti birleştirir. Google'ın SentencePiece kütüphanesindeki Unigram yöntemi ise büyük bir aday söz varlığından başlayıp bunu budar; boşluğu sıradan bir simge olarak ele alır ve böylece boşluk kullanmadan yazılan diller için de tek bir belirteçleyici kullanılabilir. Söz varlıkları zaman içinde büyümüştür: BERT 30.522, GPT-2 ve GPT-3 50.257, Llama 3 128.256 belirteç kullanır; OpenAI'nin o200k_base söz varlığı ise yaklaşık 200.000 belirteç içerir. OpenAI'nin tiktoken kütüphanesi, bu söz varlıklarının en eskisiyle en yenisini karşılaştırır:
import tiktoken
# Byte-level BPE vocabularies from GPT-2 (2019) and GPT-4o (2024)
for name in ["gpt2", "o200k_base"]:
encoding = tiktoken.get_encoding(name)
print(f"{name}: {encoding.n_vocab:,} tokens in the vocabulary")
for text in ["Ultralytics YOLO26 detects buses.", "バスが止まった。"]:
ids = encoding.encode(text)
# Decode each ID on its own to see where the tokenizer split the text
pieces = [encoding.decode([i]) for i in ids]
print(f" {len(ids)} tokens: {pieces}")GPT-2'nin söz varlığı, İngilizce cümle için 11 belirteç kullanır; "Ultralytics" sözcüğünü Ult, ral, y ve tics olarak bölerken o200k_base 9 belirteç kullanır. Japonca "the bus stopped" cümlesi için GPT-2 9 belirteç kullanır ve 止 karakterini, her biri tek başına çözüldüğünde değiştirme karakteri � olarak çözülen iki bayt düzeyinde belirtece böler; o200k_base ise 7 belirteç kullanır.
Belirteçleştirme ve İlgili Terimler#
- Belirteç: Sözcük, alt sözcük, bayt, görüntü parçası veya ses karesi gibi belirteçleştirmenin ürettiği birim.
- Gömmeler: Bir modelin her belirteç kimliği için bulduğu ve belirteçleyicinin önceden sabitlediği söz varlığı üzerinde ağın geri kalanıyla birlikte eğitilen vektörler.
- Klasik NLP'de sözcük bölümleme: spaCy ve NLTK gibi kütüphaneler, ayrıştırma ve etiketleme için metni sözcüklere ve noktalama işaretlerine böler; bu işlemin ardından dilbilimsel çözümleme için genellikle kök bulma veya sözcük kökü indirgeme uygulanır.
- Veri güvenliğinde tokenleştirme: Ödeme ve veri koruma alanlarında tokenleştirme, kart numarası gibi hassas bir değeri, korumalı bir kasada saklanan rastgele bir ikame değerle değiştirir.
Token Sayıları Neden Önemlidir#
İngilizce metinlerde OpenAI'nin tokenleştiricileri token başına ortalama yaklaşık dört karakter işler; ancak diğer diller ve kod çok daha fazlasını gerektirebilir. Petrov ve ark. (2023), aynı metnin farklı dillere çevrildiğinde tokenleştirilmiş uzunluğunun 15 kata kadar değişebildiğini buldu; bu da API maliyetlerini artırıp bu diller için kullanılabilir bağlamı daraltıyor. Token sınırları, bir modelin neleri görebileceğini de belirler. "strawberry" sözcüğünü birkaç çok harfli token olarak okuyan bir LLM, harflerini doğrudan göremez; o200k_base ise "3.14159" sayısını 3, ., 141 ve 59 olarak böler; bu da basamak düzeyinde aritmetiği zorlaştırır. Meta'nın Byte Latent Transformer modeli gibi tokenleştirici kullanmayan tasarımlar, ham baytları sonraki baytın ne kadar tahmin edilebilir olduğuna bağlı boyuttaki parçalara ayırarak sabit bir sözlükten kaçınır.
Görüntüleri, Sesi ve Videoyu Tokenleştirme#
Bir ViT, görüntüyü sabit boyutlu parçalara böler; dolayısıyla 16×16 piksellik parçalarla 224×224 boyutundaki bir görüntü, her biri öz dikkat öncesinde düzleştirilip doğrusal olarak bir gömmeye yansıtılan 196 parça tokenine dönüşür. Görsel-dil modelleri (VLM'ler), metin tokenlerinin yanı sıra parça gömmelerini de bir LLM'ye aktarır; bu nedenle daha yüksek görüntü çözünürlüğü, istek başına daha fazla token anlamına gelir. Görüntü oluşturucular bunun yerine genellikle ayrık görsel tokenler kullanır: Bir vektör niceleme kod kitabı, her parçayı en yakın kod vektörünün kimliğiyle değiştirir. Bu, görsel otoregresif modellerin metin gibi görüntüleri de token token oluşturmasını sağlar; token birleştirme ise benzer tokenleri bir araya getirerek uzun görüntü ve video dizilerindeki token sayısını azaltır.
Görsel modeller metni de tokenleştirir. YOLOE-26, set_classes aracılığıyla sınıf adları aldığında Ultralytics her adı CLIP'in bayt düzeyindeki BPE tokenleştiricisinden geçirir ve 77 tokene doldurur veya kısaltır. Ardından Apple'ın MobileCLIP2 metin kodlayıcısı sonucu, algılama başlığının görüntü bölgeleriyle eşleştirdiği gömmeye dönüştürür. Konuşma tanımada OpenAI'nin Whisper modeli, her 30 saniyelik ses penceresini log-Mel spektrogram karelerine dönüştürür; kodlayıcısı bunları 1.500 konumluk bir dizi olarak işler.










