DreamOn: Diffusion Language Models For Code Infilling Beyond Fixed-size Canvas
DreamOnは、動的な長さ制御状態を導入することで既存の拡散言語モデルの固定長生成の制限を克服し、アーキテクチャの変更を必要とせずに、最先端の自己回帰モデルに匹敵する性能を実現する柔軟で可変長のコードインフィリングを可能にする新しい拡散フレームワークである。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
物語やコードの空白を埋める場面を想像してみてください。あなたには「始まり(接頭辞)」と「終わり(接尾辞)」があり、その間の部分を書き込む必要があります。
長い間、最も賢いコンピュータプログラム(**自己回帰モデル(Autoregressive Models)**と呼ばれます)は、人間が文章をタイピングするように、左から右へと一単語ずつ書いていくことでこれを行ってきました。彼らはこの作業が非常に得意です。
その後、**拡散言語モデル(Diffusion Language Model: DLM)**と呼ばれる新しいタイプのプログラムが登場しました。これは、彫刻家のようなものだと考えてください。言葉を一つずつ書いていくのではなく、彼らは真ん中の部分が完全に隠された(マスクされた)粘土の塊からスタートします。そして、隠された部分を削り取り、形を整えていくことで、完璧な言葉を浮かび上がらせます。これは、左から右へという順番に縛られず、あらゆる順序で間違いを修正できるため、非常に優れた手法です。
問題点:「固定サイズ・キャンバス」の罠
しかし、これらの彫刻家には大きな欠陥がありました。彼らは、あなたが指定した通りの正確なサイズの粘土の塊でしか作業ができなかったのです。
- もし、答えに20単語必要であるのに、小さなブロック(例えば隠された部分が4単語分)を与えてしまったら、スペースが足りなくなり、壊れた不完全な答えを出してしまいます。
- もし、答えがわずか4単語しかないのに、巨大なブロック(例えば64単語分)を与えてしまったら、モデルは混乱し、余ったスペースを無意味な内容や繰り返しのゴミで埋めてしまいます。
論文では、これを**「固定サイズ・キャンバス(Fixed-Size Canvas)」**問題と呼んでいます。モデルは、穴の正確なサイズをあなたが予測してくれるのを、じっと待っている状態なのです。もし予測を間違えると、結果は悪くなります。
解決策:DREAMON
著者らは、彫刻家に作業中に粘土の塊のサイズを変更する方法を教える新しい手法、DREAMONを導入しました。
彼らは、モデルの語彙に2つの特別な「魔法のコマンド」を追加しました。
[expand]:「もっとスペースが必要だ!この一つの隠された場所を、二つの隠された場所に変換せよ。」[delete]:「スペースが多すぎる!この隠された場所を完全に削除せよ。」
仕組み(比喩)
モデルがフレームの中で絵を描いている場面を想像してください。
- 従来の方法: あなたはモデルに「10x10の正方形の中に描いて」と指示します。もし絵が20x20必要なら、モデルは押しつぶされてしまいます。もし絵が2x2で済むなら、スペースが無駄になります。
- DREAMONの方法: あなたはモデルにフレームを与えますが、同時にリモコンも持たせます。描いている最中に、もし絵がフレームに対して大きすぎると気づいたら、モデルは**
[expand]を押し、フレームは魔法のように大きくなります。もし絵が小さすぎてフレームが大きすぎると気づいたら、モデルは[delete]**を押し、フレームは縮小します。
モデルは、答えがどのような形であるべきかを自身で判断し、これらを完全に自律的に行います。事前に長さ(サイズ)を伝える必要はありません。
結果
研究者らは、コーディングタスク(コンピュータプログラムの欠落部分を埋める作業)でテストを行いました。
- DREAMON以前: 拡散モデルは、「穴」のサイズが完璧に一致しない場合、非常に性能が低い状態でした。「穴」のサイズがわずかにずれるだけで、パフォーマンスは約38%も低下しました。
- DREAMON以後: モデルは、最高の「一単語ずつ書く」書き手(自己回帰モデル)と同等のレベルに達しました。彼らはどんなサイズの穴でも扱うことができ、答えがちょうど良くなるまで、答えを成長させたり縮小させたりすることができました。
- 効率性: 彼らはまた、「削除ブロードキャスト(Deletion Broadcasting)」というテクニックも追加しました。モデルが大きな塊のフレームを削除すると決めたとき、一つずつ細かく削除するのではなく、塊全体を一瞬で削除するため、プロセスが非常に高速化されます。
まとめ
DREAMONは、強力ではあるものの硬直的だったツール(拡散モデル)に、出力を引き伸ばしたり縮小したりする柔軟性を与えました。これにより、人間が完璧な答えの長さを予測する必要がなくなり、これらのモデルは、あらゆる順序で修正できるという利点を持ちながら、現在存在する最高のコード作成AIと肩を並べることができるようになったのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。