[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EDTCDNRP2R023EX1FXZE74":3,"skill-same:01M6EDTCDNRP2R023EX1FXZE74":45},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":25,"repositoryHtmlUrl":26,"repositoryHomepageUrl":27,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M6EDTCDNRP2R023EX1FXZE74","sentencepiece",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FOrchestra-Research\u002FAI-Research-SKILLs\u002Fsentencepiece\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"# SentencePiece - Language-Independent Tokenization\n\nUnsupervised tokenizer that works on raw text without language-specific preprocessing.\n\n## When to use SentencePiece\n\n**Use SentencePiece when:**\n- Building multilingual models (no language-specific rules)\n- Working with CJK languages (Chinese, Japanese, Korean)\n- Need reproducible tokenization (deterministic vocabulary)\n- Want to train on raw text (no pre-tokenization needed)\n- Require lightweight deployment (6MB memory, 50k sentences\u002Fsec)\n\n**Performance**:\n- **Speed**: 50,000 sentences\u002Fsec\n- **Memory**: ~6MB for loaded model\n- **Languages**: All (language-independent)\n\n**Use alternatives instead**:\n- **HuggingFace Tokenizers**: Faster training, more flexibility\n- **tiktoken**: OpenAI models (GPT-3.5\u002F4)\n- **BERT WordPiece**: English-centric tasks\n\n## Quick start\n\n### Installation\n\n```bash\n# Python\npip install sentencepiece\n\n# C++ (requires CMake)\ngit clone https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fsentencepiece.git\ncd sentencepiece\nmkdir build && cd build\ncmake .. && make -j $(nproc)\nsudo make install\n```\n\n### Train model\n\n```bash\n# Command-line (BPE with 8000 vocab)\nspm_train --input=data.txt --model_prefix=m --vocab_size=8000 --model_type=bpe\n\n# Python API\nimport sentencepiece as spm\n\nspm.SentencePieceTrainer.train(\n    input='data.txt',\n    model_prefix='m',\n    vocab_size=8000,\n    model_type='bpe'\n)\n```\n\n**Training time**: ~1-2 minutes for 100MB corpus\n\n### Encode and decode\n\n```python\nimport sentencepiece as spm\n\n# Load model\nsp = spm.SentencePieceProcessor(model_file='m.model')\n\n# Encode to pieces\npieces = sp.encode('This is a test', out_type=str)\nprint(pieces)  # ['▁This', '▁is', '▁a', '▁test']\n\n# Encode to IDs\nids = sp.encode('This is a test', out_type=int)\nprint(ids)  # [284, 47, 11, 1243]\n\n# Decode\ntext = sp.decode(ids)\nprint(text)  # \"This is a test\"\n```\n\n## Language-independent design\n\n### Whitespace as symbol (▁)\n\n```python\ntext = \"Hello world\"\npieces = sp.encode(text, out_type=str)\nprint(pieces)  # ['▁Hello', '▁world']\n\n# Decode preserves spaces\ndecoded = sp.decode_pieces(pieces)\nprint(decoded)  # \"Hello world\"\n```\n\n**Key principle**: Treat text as raw Unicode, whitespace = ▁ (meta symbol)\n\n## Tokenization algorithms\n\n### BPE (Byte-Pair Encoding)\n\n```python\nspm.SentencePieceTrainer.train(\n    input='data.txt',\n    model_prefix='bpe_model',\n    vocab_size=16000,\n    model_type='bpe'\n)\n```\n\n**Used by**: mBART\n\n### Unigram (default)\n\n```python\nspm.SentencePieceTrainer.train(\n    input='data.txt',\n    model_prefix='unigram_model',\n    vocab_size=8000,\n    model_type='unigram'\n)\n```\n\n**Used by**: T5, ALBERT, XLNet\n\n## Training configuration\n\n### Essential parameters\n\n```python\nspm.SentencePieceTrainer.train(\n    input='corpus.txt',\n    model_prefix='m',\n    vocab_size=32000,\n    model_type='unigram',\n    character_coverage=0.9995,  # 1.0 for CJK\n    user_defined_symbols=['[SEP]', '[CLS]'],\n    unk_piece='\u003Cunk>',\n    num_threads=16\n)\n```\n\n### Character coverage\n\n| Language Type | Coverage | Rationale |\n|---------------|----------|-----------|\n| English       | 0.9995   | Most common chars |\n| CJK (Chinese) | 1.0      | All characters needed |\n| Multilingual  | 0.9995   | Balance |\n\n## Encoding options\n\n### Subword regularization\n\n```python\n# Sample different tokenizations\nfor _ in range(3):\n    pieces = sp.encode('tokenization', out_type=str, enable_sampling=True, alpha=0.1)\n    print(pieces)\n\n# Output (different each time):\n# ['▁token', 'ization']\n# ['▁tok', 'en', 'ization']\n```\n\n**Use case**: Data augmentation for robustness.\n\n## Common patterns\n\n### T5-style training\n\n```python\nspm.SentencePieceTrainer.train(\n    input='c4_corpus.txt',\n    model_prefix='t5',\n    vocab_size=32000,\n    model_type='unigram',\n    user_defined_symbols=[f'\u003Cextra_id_{i}>' for i in range(100)],\n    unk_id=2,\n    eos_id=1,\n    pad_id=0\n)\n```\n\n### Integration with transformers\n\n```python\nfrom transformers import T5Tokenizer\n\n# T5 uses SentencePiece internally\ntokenizer = T5Tokenizer.from_pretrained('t5-base')\ninputs = tokenizer('translate English to French: Hello', return_tensors='pt')\n```\n\n## Performance benchmarks\n\n### Training speed\n\n| Corpus | BPE (16k) | Unigram (8k) |\n|--------|-----------|--------------|\n| 100 MB | 1-2 min   | 3-4 min      |\n| 1 GB   | 10-15 min | 30-40 min    |\n\n### Tokenization speed\n\n- **SentencePiece**: 50,000 sentences\u002Fsec\n- **HF Tokenizers**: 200,000 sentences\u002Fsec (4× faster)\n\n## Supported models\n\n**T5 family**: `t5-base`, `t5-large` (32k vocab, Unigram)\n**ALBERT**: `albert-base-v2` (30k vocab, Unigram)\n**XLNet**: `xlnet-base-cased` (32k vocab, Unigram)\n**mBART**: `facebook\u002Fmbart-large-50` (250k vocab, BPE)\n\n## References\n\n- **[Training Guide](references\u002Ftraining.md)** - Detailed options, corpus preparation\n- **[Algorithms](references\u002Falgorithms.md)** - BPE vs Unigram, subword regularization\n\n## Resources\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fsentencepiece ⭐ 10,000+\n- **Paper**: https:\u002F\u002Farxiv.org\u002Fabs\u002F1808.06226 (EMNLP 2018)\n- **Version**: 0.2.0+\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FOrchestra-Research\u002FAI-Research-SKILLs\u002Fsentencepiece",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill sentencepiece",{"tool":37,"command":38},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill sentencepiece",{"tool":40,"command":41},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill sentencepiece","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FOrchestra-Research\u002FAI-Research-SKILLs\u002Fsentencepiece\u002FSKILL.md",true,[],[46,60,70,79,85,92],{"skillNo":47,"name":48,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":49,"categories":50,"keywords":56,"publishedAt":18},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[51],{"categoryNo":52,"categoryName":53,"taxonomyType":54,"taxonomyTypeDesc":55},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[57,58,59],"model","model hierarchy","model hierarchy skill",{"skillNo":61,"name":62,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":66,"publishedAt":18},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[65],{"categoryNo":52,"categoryName":53,"taxonomyType":54,"taxonomyTypeDesc":55},[67,68,69],"MCP","zoom","zoom mcp",{"skillNo":71,"name":72,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":18},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[76,77,78,68],"sdk","zoom apps sdk","apps",{"skillNo":80,"name":81,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":18},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[81],{"skillNo":86,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":91,"publishedAt":18},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[90],{"categoryNo":52,"categoryName":53,"taxonomyType":54,"taxonomyTypeDesc":55},[87],{"skillNo":93,"name":94,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":18},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[94]]