google/sentencepiece
Unsupervised text tokenizer for Neural Network-based text generation.
何を解決するか
SentencePieceは、大規模言語モデルなどのニューラルネットワークベースのテキスト生成システムに使用するための、高速で言語に依存しない方法で、生テキストをサブワード単位(トークン)に変換します。言語固有の前処理やプリトークナイザーの必要性を排除しており、中国語、日本語、タイ語のように単語境界が明確でない言語において特に有用です。
動作方法
入力テキストをUnicode文字の連続として扱い、Byte-Pair-Encoding (BPE) やユニグラム言語モデルなどのサブワードアルゴリズムを実装しています。デトークナイズが損失なしで逆変換可能になるように、空白文字を特別なメタ記号(▁)に置き換えます。システムは高性能を実現するため、最適化されたC++で記述されており、すべての語彙マッピングと正規化ルールを含む自己完結型の.modelファイルを生成します。
対象ユーザー
LLMやその他のニューラルテキスト生成システムを構築する開発者や研究者向けです。訓練前に固定された語彙サイズが必要な場合に最適です。
特徴
- 損失なしのデトークナイズ: 空白を記号として扱うため、トークンをテキストに戻す操作は単純な文字列結合で実現できます。
- 言語に依存しない: MeCab や Moses などの外部プリトークナイザーを必要とせず、生の文から直接学習できます。
- サブワード正則化: BPE-Dropout やユニグラムサンプリングなど、実行時にサンプリングを行うことで、モデルのノイズや綴りの違いに対する耐性を高めます。
- 高パフォーマンス: 最適化されたC++実装により、約50,000文/秒の処理速度を達成し、メモリ使用量も小さいです。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト