σ-GPTs:新しい自己回帰モデルのアプローチ
(arxiv.org)- σ-GPTは、データの入力順序と自己回帰生成の順序を分離し、Transformerがシーケンスを任意にシャッフルされた順序でも学習・生成できるようにする
- 従来の自己回帰モデルは、テキストの左から右への順序や画像のラスタースキャン順序のような自然な配列に従うことが多いが、2つの順序が必ず同じである必要はない
- サンプルごとに任意のシャッフル順序 σ をその場で選び、入力・出力順序に対応する2つの位置エンコーディングを付与して、自己回帰プロセスの一貫性を保つ
- 生成中のどの時点でも残りのトークンの条件付き分布を推定でき、任意位置サンプリング・任意条件付き生成・インフィリング・バーストサンプリングへ拡張される
- カリキュラム学習を併用すると、左から右への自己回帰モデルに近い性能に到達でき、トークンベースの棄却サンプリングにより複数トークンをバースト単位で生成できる
入力順序と生成順序の分離
- Transformerは複数のモダリティで高い自己回帰性能を示してきた
- 従来の自己回帰方式は、データの自然な順序に従う
- テキストは通常、左から右へ処理する
- ビジョンでは、画像をラスタースキャン順に展開して得られたシーケンスをTransformerでモデル化する
- σ-GPTは、データの入力順序と自己回帰順序を区別する
- ほとんどの応用では2つの順序は整列しているが、必ずしも同じである必要はない
- シーケンスを任意にシャッフルした順序で学習・生成する方法を探る
- シーケンス順序を変えると学習はより難しくなるが、モデルは任意位置の条件付き生成のような新しい性質を持つようになる
σ-GPTの構造と動作
- σ-GPTは各サンプルごとに任意のシャッフル順序 σ をその場で選択できる
- 選択されたσは、入力順序
0, σ(1), σ(2), ...と出力順序σ(1), σ(2), σ(3), ...を作る- 入力には、トークン数を一貫して合わせるために最初に
0パディングが付く - トークンはその順序に合わせてシャッフルされる
- 入力には、トークン数を一貫して合わせるために最初に
- モデル入力には2つの位置エンコーディングが連結される
- 1つは入力順序に対応する
- もう1つは出力順序に対応する
- 出力は最後に実際の順序へ戻される
- コード公開: https://github.com/idiap/sigma-gpt
標準GPT・拡散モデルとの比較
- σ-GPTは、標準的なcausal transformer encoderであるGPTおよび拡散モデルと比較される
- 対応機能は次のとおり
- シーケンスの任意位置でのトークンサンプリング
- 部分的にサンプリングされたシーケンスに基づく残りの密度モデリング
- 任意条件付き生成
- インフィリング
- 複数トークンを一度に生成するバーストサンプリング
- 交差エントロピーに基づく対数尤度学習
- 標準GPTは任意条件付き生成と対数尤度学習は可能だが、任意位置サンプリング・条件付き密度推定・インフィリング・バーストサンプリングには対応していないものとして比較される
- 拡散モデルはバーストサンプリングに対応するが、対数尤度学習には対応していないものとして比較される
生成中の条件付き分布と棄却サンプリング
- 標準的な自己回帰順序から外れると、モデルは特定の順序に従ってトークンを予測できる
- この方式では、生成中のどの時点でも残りのトークンの条件付き分布を予測できる
- 条件付き分布推定は、特定時点で可能な生成結果を定量化するために活用される
- これを棄却サンプリングに適用すると、動的なステップ数でシーケンスをバースト単位で生成できる
評価タスクと貢献
- σ-GPTはシャッフル自己回帰を導入し、カリキュラム手法と組み合わせることで基盤モデルの性能を高められるかを評価する
- 評価対象は3つの主要タスク
- オープンテキスト生成
- 経路解決
- 航空機の垂直速度予測
- 貢献は4つに整理される
- 入力順序と出力順序にそれぞれ対応する2つの位置エンコーディングを持つσ-GPTアーキテクチャの導入
- カリキュラム学習を使うと、左から右への自己回帰モデルに近い性能に到達できることを示した
- 任意順序のサンプル生成により、シーケンスのどの部分に対しても条件付き生成が可能であることを示した
- バースト単位のサンプル生成のためのトークンベース棄却サンプリング方式の導入
1件のコメント
Hacker News のコメント
良さそう。学習時に入力トークンをランダムにシャッフルし、各トークンに2種類の位置エンコーディングを付ける。1つはそのトークン自身の位置、もう1つは予測するトークンの位置。
それ以外は標準的な自己回帰 GPT だが、この一見単純な変更の効果は大きい。学習済みモデルにシーケンスの一部をプロンプトとして与えると、欠けているトークンを順序に依存せず一括で並列デコードでき、すべての欠落トークンの条件付き確率密度も並列に計算できる。
また著者らは、棄却サンプリングに基づく並列穴埋め生成手法を提案しており、実際にうまく機能しているように見える。
I . . . . . . . . happily.なら、予測する2番目の単語は1番目の単語に依存するのではないかと思う。昔のもの[1]がまた新しいものになっているが、先行研究への引用がない。無名の研究でもなく、ICMLに掲載され、引用も約250回ある。
[1]: https://arxiv.org/abs/1902.03249
本当に素晴らしいコンセプトだ。画像生成モデルで見られるダイナミクスに似たものになり始めているのか気になる。画像のある領域に構造やディテールが生まれ、周辺領域が徐々に整合して解消されていくような感じだ。
このような挙動は、長い推論/論理/計画に特に有用に見える。大きなアイデアが先に現れ、その間の細部やテキストが自然に埋まっていく可能性があるからだ。
Twitter にテキストを生成する動画がある。少し画像の拡散っぽく見える。
https://x.com/ArnaudPannatier/status/1799055129829839166
今日この論文のことをずっと考えていたが、機能が本当に気に入った。逐次的な LLM では比較的難しいことが、ここでは簡単になる。
JSON が欲しければ、中括弧トークンを最初と最後に固定すればよい。特定のトークン長の回答説明が欲しければ、短い答えを後ろに付けておき、その中間を埋めればよい。
より情報密度の高い回答が欲しければ、生成テキストに密度評価セクションと LLM が情報密度を採点するスペースを追加し、高いスコアを探すように生成させればよい。試してみることは多そうで、論文の基準ではトークンが3倍ほど必要なのは残念だが、妥当なトークン数の8B パラメータモデルでも試せるとよさそうだ。
ただし、もっと良い方法もある。LLM の出力を JSON のような特定の文法に制限すれば、構文的に有効な JSON だけで答えさせられる。
これがコンピュータコード生成に特に役立つのか気になる。ある段階で出力する内容が、後の段階で書かれる内容に実質的に依存し得るからだ。
興味深い研究だ。似た順列アプローチは Taylorformer の論文(https://arxiv.org/pdf/2305.19141v1)にもすでに出ている。
著者らは時系列のような連続過程に Transformer デコーダを使い、学習中に各シーケンスをランダムにシャッフルする。各シーケンス要素には位置エンコーディングがあり、シャッフルされたシーケンスに対して対数尤度を用いる。
そこでは順列が、補間、外挿、不規則サンプルデータの予測に役立つ。また、生成順序に関係なく平均二乗誤差が概ね同じになる「一貫性」にも役立つように見える。
この論文がこうしたアイデアの理解や応用に何を加えているのか気になる。シーケンス順序をシャッフルするアイデアは Transformer Neural Process の論文にも出ている: https://arxiv.org/pdf/2207.04179
これは Vision Transformer で学んだことを言語 Transformer に適用しているのかなと思った。
私の理解では、ビジョンモデルは画像をタイルに分割し、各タイルに位置エンコーディングを付けて、モデルがタイルの相対位置を理解できるようにする。
正直、要旨しか読んでおらず多くの部分は難しいが、この論文は似たアイデアを2Dではなく1Dに提案しているように見える。
学習はより難しくなるが、複数のトークンを一度に生成できるようにするようだ。つまり N トークン長の答えを N ステップではなく N/x ステップで得られる。
コードがあるのか気になる。二重位置とシャッフルを完全には理解できていない。位置値を足し合わせず、連結しているのも興味深い。
Yann LeCun なら、自己回帰そのものが問題であり、この種の機械学習では AGI の近くにも行けないと言うだろう[0]。
少なくとも自己回帰パラダイムの中にとどまる限り、幻覚問題は解決できない。
[0] https://twitter.com/ylecun/status/1640122342570336267
元論文の著者らは、この仕事が AGI に近づく助けになるとは主張していない。自己回帰 LLM が以前はできなかった新しいことをできるようにしただけだ。
ほとんどの作業に AGI が必要だとも思わない。意識ある存在に苦痛を作り出す意図がないなら、なおさらだ。
直感的には、あるトークンは他のトークンより難しい。出力の中にキートークンがあり、それ以降は残りのトークンがずっと簡単になることがある。また自己回帰方式でも、
actually no...のようなトークンを出力して、誤ったトークンから回復できる。トークンのサンプリング方式によっては、提案された生成を全体として見て修正できそうだ。現在の論文で提案されているサンプリング方式が今すぐそうしているのかは分からないが、確率から得られる情報を使えば可能に見える。