未加工のUnicode文字からバイトレベルBPEへの変換
トランスフォーマーは生のテキスト文字を直接読み取るわけではありません。数学的にはトークンと呼ばれる離散的な整数IDの配列を処理します。完全な単語単位の辞書では未知語に対応できず、文字単位の分割では文章が過剰に長くなって自己注意機構の2乗計算量が急増してしまいます。
バイトレベルのByte Pair Encoding(BPE)は、256個のUTF 8バイトを最小単位として出発し、学習データ内で最も頻繁に出現する隣接シンボルのペアを反復的に統合することで、この課題を完全に解決します。
- テキスト文字列を個別のUTF 8バイト列へと分解する。
- コーパス全体で隣接するすべてのシンボルペアの出現回数を集計する。
- 最も出現頻度が高いペアを1つの新しいトークンとしてマージする。
- 指定された語彙サイズVに到達するまでこの手順を繰り返す。