バイトペアエンコーディング[1] [2](別名ダイグラムコーディング)[3]は、1994 年に Philip Gage によって初めて説明された、下流のモデリングで使用するためにテキスト文字列を表形式にエンコードするアルゴリズムです。[4]その変更は、単一の文字(単一の数字や単一の句読点を含む)をエンコードするトークンと、単語全体(最長の複合語も含む)をエンコードするトークンの両方を組み合わせる機能を備えた大規模言語モデルトークナイザーとして注目に値します。[5] [6] [7]この変更では、最初のステップで、すべての一意の文字が 1 文字の長さのn-gramの初期セット(つまり、初期「トークン」)であると想定します。次に、隣接する文字の最も頻繁なペアが新しい 2 文字の長さの n-gram に連続的にマージされ、ペアのすべてのインスタンスがこの新しいトークンに置き換えられます。これは、規定のサイズの語彙が得られるまで繰り返されます。新しい単語は、最終的な語彙トークンと初期セットの文字から常に構築できることに注意してください。[8]このアルゴリズム的アプローチは近年、音声言語から手話へと拡張されてきました。[9]
コーパス内で見つかったすべての一意のトークンはトークン語彙にリストされており、そのサイズは、 GPT-3.5およびGPT-4の場合、100256 です。
修正されたアルゴリズムと元のアルゴリズムの違いは、元のアルゴリズムでは最も頻繁に使用されるデータのバイトペアを結合せず、初期データセットに含まれていなかった新しいバイトに置き換えることです。初期データセットを再構築するには、置き換えのルックアップ テーブルが必要です。このアルゴリズムは、計算オーバーヘッドが低く、一貫性と信頼性が維持されるため、トークン化に効果的です。
オリジナルアルゴリズム
元のアルゴリズムは、対象テキスト内の最も一般的な連続した文字列を未使用の「プレースホルダー」バイトに繰り返し置き換えることで動作します。文字列が見つからなくなると反復は終了し、対象テキストは実質的に圧縮された状態になります。このプロセスを逆にして、ルックアップ テーブルを使用して、既知のプレースホルダー用語を対応する指定された文字列に対して照会することで、解凍を実行できます。元の論文では、このルックアップ テーブルはエンコードされ、圧縮されたテキストと一緒に保存されます。
例
エンコードするデータが
ああああああ
バイト ペア「aa」は最も頻繁に出現するため、「Z」などのデータで使用されていないバイトに置き換えられます。次に、データと置換テーブルを示します。
ザブドザバツ Z=あああ
次に、バイト ペア「ab」を「Y」に置き換えて、このプロセスを繰り返します。
ジヤック Y=ab Z=あああ
残っている唯一のリテラル バイト ペアは 1 回だけ発生するため、エンコードはここで停止する可能性があります。または、プロセスは再帰的なバイト ペア エンコードを続行し、「ZY」を「X」に置き換えることもできます。
うわあ X=ZY Y=ab Z=あああ
このデータは、複数回出現するバイトのペアが存在しないため、バイト ペア エンコーディングによってさらに圧縮することはできません。
データを解凍するには、逆の順序で置換を実行するだけです。
参照
参考文献
- ^ Gage, Philip (1994). 「データ圧縮のための新しいアルゴリズム」. C ユーザー ジャーナル.
- ^ 「データ圧縮のための新しいアルゴリズム」。Dr . Dobb's Journal。1994年2月1日。 2020年8月10日閲覧。
- ^ Witten, Ian H.; Moffat, Alistair; Bell, Timothy C. (1994). 『Managing Gigabytes』 ニューヨーク: Van Nostrand Reinhold. ISBN 978-0-442-01863-4。
- ^ 「バイトペアエンコーディング」。2016年3月26日時点のオリジナルよりアーカイブ。
- ^ Sennrich, Rico; Birch, Alexandra; Haddow, Barry (2015-08-31). 「サブワード単位による希少単語のニューラル機械翻訳」. arXiv : 1508.07909 [cs.CL].
- ^ Brown, Tom B.; Mann, Benjamin; Ryde r, Nick; Subbiah, Melanie; Kaplan, Jared; Dhariwal, Prafulla; Neelakantan, Arvind; Shyam, Pranav; Sastry, Girish; Askell, Amanda; Agarwal, Sandhini (2020-06-04). 「言語モデルは少数ショットの学習者です」. arXiv : 2005.14165 [cs.CL].
- ^ “google/sentencepiece”. Google. 2021年3月2日. 2021年3月2日閲覧。
- ^ Paaß, Gerhard; Giesselbach, Sven (2022). 「事前学習済み言語モデル」。自然言語処理の基礎モデル。人工知能:基礎、理論、アルゴリズム。pp. 19–78。doi : 10.1007 / 978-3-031-23190-2_2。ISBN 9783031231902. 2023年8月3日閲覧。
- ^ 宮崎太郎、Sihan Tan、Tsubasa Uchida、Hiroyuki Kaneko (2024年5月25日)。「Gloss Pair Encodingによる手話翻訳」(PDF)。第11回手話の表現と処理に関するワークショップの議事録。
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク)
