[論文レビュー] Neural-Guided Deductive Search for Real-Time Program Synthesis from Examples
NGDSは、推論的な記号的探索とニューラルガイダンスを組み合わせ、少数の入力-出力例からユーザーが意図するプログラムを迅速に合成します。リアルタイム性能を達成しつつPROSEの精度に匹敵し、最先端のニューラル手法より高速です。
Synthesizing user-intended programs from a small number of input-output examples is a challenging problem with several important applications like spreadsheet manipulation, data wrangling and code refactoring. Existing synthesis systems either completely rely on deductive logic techniques that are extensively hand-engineered or on purely statistical models that need massive amounts of data, and in general fail to provide real-time synthesis on challenging benchmarks. In this work, we propose Neural Guided Deductive Search (NGDS), a hybrid synthesis technique that combines the best of both symbolic logic techniques and statistical models. Thus, it produces programs that satisfy the provided specifications by construction and generalize well on unseen examples, similar to data-driven systems. Our technique effectively utilizes the deductive search framework to reduce the learning problem of the neural component to a simple supervised learning setup. Further, this allows us to both train on sparingly available real-world data and still leverage powerful recurrent neural network encoders. We demonstrate the effectiveness of our method by evaluating on real-world customer scenarios by synthesizing accurate programs with up to 12x speed-up compared to state-of-the-art systems.
研究の動機と目的
- 象徴的推論とニューラルガイダンスを統合することで、少数の例からのより速く、信頼性の高いプログラム合成を動機づける。
- 学習済みスコアを用いる分岐限定コントローラを活用して、DSL探索空間の生産性の低いサブブランチを剪定する。
- 記号的方法の正確性と一般化保証を維持しつつ、リアルタイム性能を向上させる。
提案手法
- 文字列変換のDSL(FlashFill DSL)に対するPROSE風の推論的探索を用いる。
- 仕様に基づいて各DSL生成の最適な一般化ポテンシャルを予測するニューラルスコアモデルを訓練する。
- 有望なブランチのみを探索するための分岐選択コントローラ(閾値ベースまたは分岐限定)を統合する。
- 仕様、生成、実現された最良スコアを回帰目的にマッピングする監視学習設定を適用する。
- 学習を簡素化するためにDSLレベルや生成ごとに別々のモデルを訓練する可能性を検討する。
実験結果
リサーチクエスチョン
- RQ1ニューラル予測は、どのDSLブランチが最良の一般化可能なプログラムにつながるかを信頼できる指標となり得るか?
- RQ2純粋に記号的または純粋にニューラルな手法と比較して、NGDSは精度を犠牲にすることなく合成速度を向上させるか?
- RQ3異なる分岐選択コントローラは、実世界のタスクにおける精度と実行時間にどう影響するか?
- RQ4PROSEの既存の証人関数を考慮した場合、分岐選択を導く監視学習の定式化は十分か?
- RQ5DSLレベルまたは生成ごとに別々のモデルを用いると、より良い一般化と効率が得られるか?
主な発見
| 手法 | 検証精度(%) | テスト精度(%) | スピードアップ(x PROSE) | 報告された場合の分岐割合(%) |
|---|---|---|---|---|
| PROSE | 67.12 | 67.12 | 1.00 | 100.00 |
| NGDS(T1, Thr) | 59.57 | 67.12 | 1.27 | 62.72 |
| NGDS(T1, BB) | 63.83 | 68.49 | 1.22 | 51.78 |
| NGDS(T1, BB 0.2) | 61.70 | 67.12 | 1.22 | 63.16 |
| NGDS(T1+PP, Thr) | 59.57 | 67.12 | 0.97 | 56.41 |
| NGDS(T1+PP, BB) | 61.70 | 72.60 | 0.89 | 50.22 |
| NGDS(T1+PP, BB 0.2) | 61.70 | 67.12 | 0.86 | 56.43 |
| NGDS(T1+POS, Thr) | 61.70 | 67.12 | 1.93 | 55.63 |
| NGDS(T1+POS, BB) | 63.83 | 68.49 | 1.67 | 50.44 |
| NGDS(T1+POS, BB 0.2) | 63.83 | 67.12 | 1.73 | 55.73 |
- NGDSは、1つの例で73のテストタスクにおいて68.49%の一般化精度を達成し、PROSEの精度と同等でありながら難易度の高いタスクで最大12xのスピードアップを実現した。
- RobustFillおよびDeepCoderと比較して、単一例のNGDSはより正確で著しく高速である。
- さまざまなNGDSのアブレーションは、スコアモデルの組み合わせ(例:T1、PP、POS)とコントローラ(閾値または分岐限定)によって性能が異なることを示している。
- 表1は、PROSEのテストタスクでの基準精度67.12%、スピードアップ1.00xを示す;NGDSの派生は同等以上のテスト精度を達成し、複数の構成で顕著なスピードアップ(例:1.22–1.93x)を示す。
- 表2は、コントローラとモデルの組み合わせに応じて0.86x〜1.93xのスピードアップを示すアブレーションを示しており、テスト精度は一般にPROSE水準付近である。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。