LLM基礎

SentencePiece せんてんすぴーす

SentencePieceトークナイザーGoogle多言語対応BPEサブワード
SentencePieceについて教えて

簡単に言うとこんな感じ!

Googleが開発した「言語の違いを気にせず文章を分割できる」トークナイザーライブラリだよ!英語・日本語・中国語など、スペースの有無が違う言語でも統一的に処理できる。LLaMAやT5などのグローバルなモデルで採用されてるんだ!


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の語彙設計

モデル語彙サイズアルゴリズム
T532,000SentencePiece BPE
LLaMA 232,000SentencePiece BPE
LLaMA 3128,256tiktoken(BPE)
Gemma256,000SentencePiece BPE

関連用語

  • BPE — SentencePieceが実装するトークナイズアルゴリズム
  • トークナイザー — SentencePieceが属するテキスト分割ツールの分類
  • トークン — SentencePieceが生成する処理単位
  • 事前学習 — SentencePieceが使われるLLMの学習工程