sentencepiece
Language-independent tokenizer treating text as raw Unicode. Supports BPE and Unigram algorithms. Fast (50k sentences/sec), lightweight (6MB memory), deterministic vocabulary. Used by T5, ALBERT, XLNet, mBART. Train on raw text without pre-tokenization. Use when you need multilingual support, CJK la
By orchestra-research · 767 installs
npx skills add orchestra-research/ai-research-skills --skill sentencepiece
Source repository · Upstream listing
SentencePiece Language Independent Tokenization
Unsupervised tokenizer that works on raw text without language specific preprocessing.
When to use SentencePiece
Use SentencePiece when:
Building multilingual models (no language specific rules)
Working with CJK languages (Chinese, Japanese, Korean)
Need reproducible tokenization (deterministic vocabulary)
Want to train on raw text (no pre tokenization needed)
Require lightweight deployment (6MB memory, 50k sentences/sec)
Performance :
Speed : 50,000 sentences/sec
Memory : ~6MB for loaded model
Languages : All (language independent)
Use alternatives instead :
HuggingFace Tokenizers : Faster training, more flexibility
tiktoken : OpenAI models (GPT 3.5/4)
BERT WordPiece : English centric tasks
Quick start
Installation
Train model
Training time : ~1 2 minutes for 100MB corpus
Encode and decode
Language independent design
Whitespace as symbol (▁)
Key principle : Treat text as raw Unicode, whitespace = ▁ (meta symbol)
Tokenization algorithms
BPE (Byte Pair Encoding)
Used by : mBART
Unigram (default)
Used by : T5, ALBERT, XLNet
Training configuration
Essential parameters
Character coverage
Language Type Coverage Rationale
English 0.9995 Most common chars
CJK (Chinese) 1.0 All characters needed
Multilingual 0.9995 Balance
Encoding options
Subword regularization
Use case : Data augmentation for robustness.
Common patterns
T5 style training
Integration with transformers
Performance benchmarks
Training speed
Corpus BPE (16k) Unigram (8k)
100 MB 1 2 min 3 4 min
1 GB 10 15 min 30 40 min
Tokenization speed
SentencePiece : 50,000 sentences/sec
HF Tokenizers : 200,000 sentences/sec (4× faster)
Supported models
T5 family : t5 base , t5 large (32k vocab, Unigram)
ALBERT : albert base v2 (30k vocab, Unigram)
XLNet : xlnet base cased (32k vocab, Unigram)
mBART : facebook/mbart large 50 (250k vocab, BPE)
References
[Training Guide](references/training.md) Detailed options, corpus preparation
[Algorithms](references/algorithms.md) BPE vs Unigram, subword regularization
Resources
GitHub : https://github.com/google/sentencepiece ⭐ 10,000+
Paper : https://arxiv.org/abs/1808.06226 (EMNLP 2018)
Version : 0.2.0+