Tokenizer Distillation: Cross-Model Token Mapping and TR Token Efficiency Measurement
When distilling, teacher and student tokenizers differ → label mismatch. Building cross-tokenizer mapping table for token-level distillation, GPT-4 → Llama-3 distill example, comparison of TR token efficiency (Llama-3 vs Qwen 2.5 vs Gemma 3 vs Mistral vs Phi-4).
Şükrü Yusuf KAYA
28 min read
Advanced🎯 Iki konu
(1) Distillation'da student ve teacher farklı tokenizer'a sahipse logit alignment nasıl? (2) Mevcut modellerin TR token verimi nedir — yeni model seçerken hangi tokenizer 'TR-friendly'?
1. TR Token Verimi Tablosu (Mart 2026)#
10K Türkçe cümle üzerinde, ortalama tokens/word:
| Model | Vocab | Tokens/word (TR) | Tokens/word (EN) | TR efficiency |
|---|---|---|---|---|
| Llama-3 (128K, multilingual BPE) | 128,256 | 3.21 | 1.34 | 0.42 |
| Qwen 2.5 (151K) | 151,936 | 2.34 | 1.36 | 0.58 |
| Mistral Small 3 (32K) | 32,768 | 4.18 | 1.41 | 0.34 |
| Gemma 3 (256K) | 256,000 | 1.95 | 1.27 | 0.65 |
| Phi-4 (100K cl100k_base) | 100,352 | 2.88 | 1.32 | 0.46 |
| GPT-4o (200K) | 200,019 | 2.71 | 1.30 | 0.48 |
| Custom TR-BPE 50K | 50,000 | 1.92 | n/a | 0.66 |
Karar matrisi:
- TR-only kullanım: Gemma 3 (eğer 256K embedding maliyetini kabullenirsen) veya Qwen 2.5
- TR + EN: Qwen 2.5 (en dengeli)
- TR + EN + diğer: Llama-3 (multilingual'da iyi ama TR sıkı)
- Sıfırdan TR: custom 50K BPE
Cookbook'taki Llama-3 dersleri TR-extension dersini de içerir. Qwen 2.5 zaten TR-friendly olduğu için default önerilen base.
python
# === Cross-tokenizer mapping table — distill için ===from transformers import AutoTokenizerimport numpy as np teacher_tok = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-72B-Instruct")student_tok = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3.1-8B") # Tek bir prompt için iki tokenizer'ın output'larını align etprompt = "Yapay zekâ ile insan kararının kavşağında..." t_ids = teacher_tok.encode(prompt, add_special_tokens=False)s_ids = student_tok.encode(prompt, add_special_tokens=False) t_tokens = teacher_tok.convert_ids_to_tokens(t_ids)s_tokens = student_tok.convert_ids_to_tokens(s_ids) print(f"Teacher tokens: {len(t_tokens)} | Student tokens: {len(s_tokens)}")# Teacher 14 token, Student 28 token (TR ile Llama-3 daha parçalı) # Yaklaşım: 'span alignment' — substring matching# Teacher token i. → student token range [j_start, j_end]def align_spans(t_tokens, s_tokens, t_str, s_str): """O(n+m) span alignment by reconstructing original text.""" t_offsets = [] pos = 0 for tok in t_tokens: clean = tok.replace("Ġ", " ").lstrip() t_offsets.append((pos, pos + len(clean))) pos += len(clean) s_offsets = [] pos = 0 for tok in s_tokens: clean = tok.replace("Ġ", " ").lstrip() s_offsets.append((pos, pos + len(clean))) pos += len(clean) # Map each teacher span to student span(s) by overlap mapping = [] j = 0 for ti, (ts, te) in enumerate(t_offsets): student_spans = [] while j < len(s_offsets) and s_offsets[j][1] <= te: student_spans.append(j) j += 1 mapping.append((ti, student_spans)) return mapping # Bu mapping ile teacher'ın logit distribution'unu student'ın token uzayına project edebilirsin# Detay: Part XI — Distillation Recipescross-tokenizer span alignment
2. Distill Stratejileri#
| Yaklaşım | Karmaşıklık | Kalite |
|---|---|---|
| Response distillation (sadece teacher'ın output text'ini SFT'de label olarak kullan) | düşük | düşük-orta |
| Logit distillation (cross-tokenizer mapping ile teacher logit'lerini student'a project) | yüksek | yüksek |
| Black-box distillation (sadece teacher'ın text output'u) | düşük | düşük |
| White-box distillation (teacher'ın hidden states + logits) | aşırı yüksek | en yüksek |
Cookbook'un Part XI'ında detaylı; bu derste sadece concept.
✅ Teslim
- 5 base model tokenizer'ı için TR token verimi tablosunu kendi corpus'unla doğrula. 2) Karar: TR-only mi multi-lang mi? → buna göre base model seçimi. 3) Sonraki ders: 2.4 — Chat Template Mathematics: Jinja Parsing ve Token Anatomisi.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
Part 0 — Engineering Foundations
Welcome to the Fine-Tuning Cookbook: System, Stage Taxonomy, and the Reproducibility Contract
Start LearningPart 0 — Engineering Foundations
Reproducibility Stack: Seeds, cuDNN Flags, and Deterministic CUDA — End the 'Works on My Machine' Problem
Start LearningPart 0 — Engineering Foundations