論文の概要: Latent Execution for Neural Program Synthesis Beyond Domain-Specific
Languages
- arxiv url: http://arxiv.org/abs/2107.00101v1
- Date: Tue, 29 Jun 2021 02:21:32 GMT
- ステータス: 処理完了
- システム内更新日: 2021-07-02 13:30:01.120476
- Title: Latent Execution for Neural Program Synthesis Beyond Domain-Specific
Languages
- Title(参考訳): ドメイン特化言語を越えたニューラルプログラム合成のための潜時実行
- Authors: Xinyun Chen, Dawn Song, Yuandong Tian
- Abstract要約: 入力出力の例からCプログラムを合成する第一歩を踏み出す。
特に,部分生成プログラムの実行を近似するために潜在表現を学習するLa Synthを提案する。
これらのプログラムのトレーニングにより,Karel と C のプログラム合成における予測性能がさらに向上することを示す。
- 参考スコア(独自算出の注目度): 97.58968222942173
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Program synthesis from input-output examples has been a long-standing
challenge, and recent works have demonstrated some success in designing deep
neural networks for program synthesis. However, existing efforts in
input-output neural program synthesis have been focusing on domain-specific
languages, thus the applicability of previous approaches to synthesize code in
full-fledged popular programming languages, such as C, remains a question. The
main challenges lie in two folds. On the one hand, the program search space
grows exponentially when the syntax and semantics of the programming language
become more complex, which poses higher requirements on the synthesis
algorithm. On the other hand, increasing the complexity of the programming
language also imposes more difficulties on data collection, since building a
large-scale training set for input-output program synthesis require random
program generators to sample programs and input-output examples. In this work,
we take the first step to synthesize C programs from input-output examples. In
particular, we propose LaSynth, which learns the latent representation to
approximate the execution of partially generated programs, even if their
semantics are not well-defined. We demonstrate the possibility of synthesizing
elementary C code from input-output examples, and leveraging learned execution
significantly improves the prediction performance over existing approaches.
Meanwhile, compared to the randomly generated ground-truth programs, LaSynth
synthesizes more concise programs that resemble human-written code. We show
that training on these synthesized programs further improves the prediction
performance for both Karel and C program synthesis, indicating the promise of
leveraging the learned program synthesizer to improve the dataset quality for
input-output program synthesis.
- Abstract(参考訳): 入力出力例からのプログラム合成は長年の課題であり、最近の研究はプログラム合成のためのディープニューラルネットワークの設計に成功している。
しかし、インプット・アウトプットのニューラルプログラム合成における既存の取り組みはドメイン固有言語に焦点を当てており、cのような本格的なプログラミング言語でコードを合成する以前のアプローチの適用性は疑問視されている。
主な課題は2つある。
一方、プログラミング言語の構文や意味がより複雑になると、プログラム検索空間は指数関数的に増大し、合成アルゴリズムにより高い要求が生じる。
一方で、プログラム合成のための大規模トレーニングセットを構築するには、サンプルプログラムと入出力サンプルのランダムプログラム生成器が必要であるため、プログラミング言語の複雑さの増大はデータ収集にさらに困難を伴います。
本研究では,入力出力の例からCプログラムを合成する第一歩を踏み出す。
特にLaSynthを提案する。LaSynthは,プログラムのセマンティクスが十分に定義されていない場合でも,部分生成プログラムの実行を近似するために潜在表現を学習する。
入力出力サンプルから基本cコードを合成する可能性を示し、学習した実行を活用することで、既存のアプローチよりも予測性能が大幅に向上することを示す。
一方、rasynthはランダムに生成された地上プログラムと比較して、人間の書いたコードに似たより簡潔なプログラムを合成する。
これらの合成プログラムのトレーニングにより、karelとcプログラム合成の両方の予測性能が向上し、学習したプログラムシンセサイザーを活用して、入出力プログラム合成のデータセット品質が向上する可能性が示された。
関連論文リスト
- Hierarchical Neural Program Synthesis [19.94176152035497]
プログラム合成は、与えられたタスク仕様を満たす人間可読プログラムを自動構築することを目的としている。
プログラムを階層的に構成することでプログラムを合成するスケーラブルなプログラム合成フレームワークを提案する。
入力/出力ペアを持つ文字列変換領域において,提案するフレームワークを広範囲に評価する。
論文 参考訳(メタデータ) (2023-03-09T18:20:07Z) - A Conversational Paradigm for Program Synthesis [110.94409515865867]
本稿では,大規模言語モデルを用いた対話型プログラム合成手法を提案する。
私たちは、自然言語とプログラミング言語のデータに基づいて、CodeGenと呼ばれる大規模な言語モデルのファミリーを訓練します。
本研究は,会話能力の出現と,提案した会話プログラム合成パラダイムの有効性を示すものである。
論文 参考訳(メタデータ) (2022-03-25T06:55:15Z) - Representing Partial Programs with Blended Abstract Semantics [62.20775388513027]
プログラム合成エンジンにおける部分的なプログラム表現手法について紹介する。
モジュラーニューラルネットワークとして実装された近似実行モデルを学ぶ。
これらのハイブリッドニューロシンボリック表現は、実行誘導型シンセサイザーがより強力な言語構成を使うことができることを示す。
論文 参考訳(メタデータ) (2020-12-23T20:40:18Z) - Latent Programmer: Discrete Latent Codes for Program Synthesis [56.37993487589351]
プログラム合成や文書要約などの多くのシーケンス学習タスクにおいて、重要な問題は出力シーケンスの広い空間を探索することである。
本稿では,検索対象とする出力の表現を学習することを提案する。
本稿では,まず入力/出力サンプルから離散潜在コードを予測するプログラム合成手法であるemphLatent Programmerを紹介し,そのプログラムを対象言語で生成する。
論文 参考訳(メタデータ) (2020-12-01T10:11:35Z) - Optimal Neural Program Synthesis from Multimodal Specifications [45.35689345004124]
マルチモーダルプログラム合成は、プログラム合成を挑戦的な設定に拡張する魅力的な方法である。
本稿では,ユーザが提供する制約を満たすプログラムを見つけることを目的とした,最適なニューラルシンセサイザー手法を提案する。
論文 参考訳(メタデータ) (2020-10-04T20:51:21Z) - Synthesize, Execute and Debug: Learning to Repair for Neural Program
Synthesis [81.54148730967394]
本稿では,合成,実行,デバッグの段階を組み込んだニューラルネットワーク生成フレームワークであるSEDを提案する。
SEDはまず、神経プログラムシンセサイザーコンポーネントを使用して初期プログラムを生成し、その後、神経プログラムデバッガを使用して生成されたプログラムを反復的に修復する。
挑戦的な入出力プログラム合成ベンチマークであるKarelでは、SEDはニューラルプログラムシンセサイザー自体のエラー率をかなりのマージンで削減し、デコードのための標準ビームサーチより優れている。
論文 参考訳(メタデータ) (2020-07-16T04:15:47Z) - Program Synthesis with Pragmatic Communication [28.24612900419843]
本研究では,プログラム合成タスクを合理的なコミュニケーションとしてモデル化した新しい帰納的バイアスを導入する。
ユーザスタディでは、エンドユーザの参加者が、非実用的なプログラムシンセサイザーよりも、より効果的に、実践的なプログラムシンセサイザーと通信することを発見した。
論文 参考訳(メタデータ) (2020-07-09T20:55:44Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。