Re Reference AI

技術

サブワード(サブワード分割)とは

Subword / サブワード分割

単語と文字の中間の単位でテキストを分割し、語彙数を抑えながら未知語にも対応するトークン化の考え方

トークナイゼーションNLP

最終更新:

概要

サブワードは、単語をさらに細かく分けた部分文字列の単位。また、その単位でテキストをトークンに分割する方式を指す。頻出する単語は1トークンのまま扱い、出現頻度の低い単語は複数の部分に分けて表す。例えば「unhappiness」を「un」「happi」「ness」のように分割する。 単語単位の分割では語彙に含まれない単語(未知語)を扱えず、文字単位では系列が長くなりすぎる。サブワード分割はその中間をとり、限られた語彙数であらゆる文字列を表現できる。 代表的なアルゴリズムに、頻出する文字の組を繰り返し統合するByte Pair Encoding(BPE)、Googleが開発したWordPiece、確率モデルで分割を選ぶUnigram言語モデルがある。SentencePieceは、空白で単語を区切らない日本語なども含め、生のテキストから直接BPEやUnigramのモデルを学習できるツール。GPT系やLlama、BERTなど、現在のLLMの多くがサブワード分割を採用している。

歴史

ニューラル機械翻訳での利用は、2016年にSennrichらがBPEで単語をサブワードに分割する手法を発表したことで広まった。2018年にはKudoがUnigram言語モデルによる分割を、KudoとRichardsonがSentencePieceを発表した。

利点

  • 限られた語彙数で未知語を含むあらゆる文字列を表現できる
  • 単語単位より語彙を小さく、文字単位より系列を短く保てる

欠点

  • 人間にとって意味の切れ目と一致しない分割になることがある
  • 学習データに少ない言語では1単語あたりのトークン数が増え、コンテキストを多く消費しやすい

関連する用語

トークンOOVトークナイゼーション語彙Byte Pair Encoding機械翻訳ニューラル機械翻訳LLMBERTRAGコーパスEmbedding

参考文献