SentencePiece せんてんすぴーす
SentencePieceトークナイザーGoogle多言語対応BPEサブワード
SentencePieceについて教えて
SentencePieceとは
SentencePiece とは、Googleが2018年に公開した言語非依存のトークナイザーライブラリです。英語では単語間にスペースがあるためWordPieceが機能しますが、日本語・中国語・タイ語などスペースのない言語では従来の手法が苦手でした。SentencePieceは生のテキストをバイト列として扱い、言語によらず統一的にサブワード分割を行います。
BPEとUnigram Language Modelという2つのアルゴリズムを実装しており、どちらも選択可能です。学習時に不要な前処理(スペース除去・正規化)を内部で行うため、再現性が高く多言語モデルの開発に適しています。T5・mT5・LLaMA 2・Gemma・Claude等の主要モデルで採用されています。
従来のWordPieceとの違い
英語のトークナイズ:
入力: "machine learning"
WordPiece: [machine] [learning](スペース区切りが前提)
SentencePiece: [▁machine] [▁learning](▁はスペースを表す特殊文字)
日本語のトークナイズ:
入力: 「機械学習」(スペースなし)
WordPiece: 事前に形態素解析が必要
SentencePiece: そのまま入力して [機械] [学習] に分割
→ 前処理なしで多言語を統一処理できる
歴史と背景
- 2018年:Google・Kudo et al.「SentencePiece: A simple and language independent subword tokenizer」を発表
- 2019年:T5・mT5(多言語T5)の採用で多言語NLPの標準ツールに
- 2023年:LLaMA・LLaMA 2がSentencePieceを採用し、オープンモデルに普及
- 現在:Gemma・Claude・多くのオープンモデルで継続採用
BPEとUnigramの比較(SentencePiece内)
| アルゴリズム | 学習方法 | 分割の決定論性 | 採用例 |
|---|---|---|---|
| BPE | 高頻度ペアの統合 | 決定論的 | LLaMA、GPT系 |
| Unigram LM | 確率モデルで最適化 | 確率的(サンプリング可能) | T5、ALBERT |
SentencePieceの語彙設計
| モデル | 語彙サイズ | アルゴリズム |
|---|---|---|
| T5 | 32,000 | SentencePiece BPE |
| LLaMA 2 | 32,000 | SentencePiece BPE |
| LLaMA 3 | 128,256 | tiktoken(BPE) |
| Gemma | 256,000 | SentencePiece BPE |