Learning Program Behavioral Models from Synthesized Input-Output Pairs

要約

Modelizer を紹介します。これは、ブラックボックス プログラムを与えられた場合に、_ニューラル機械翻訳_ を使用して、その入出力動作からモデルを学習する新しいフレームワークです。
結果として得られるモデルは、元のプログラムを「模擬」します。入力が与えられると、モデルはプログラムによって生成される出力を予測します。
ただし、このモデルは「可逆的」でもあります。つまり、モデルは、特定の出力を生成する入力を予測できます。
最後に、モデルは微分可能であり、プログラム動作の特定の側面のみを予測するように効率的に制限できます。
Modelizer は、_grammars_ を使用して入力を合成し、その結果の出力を解析して、トークン ストリーム間のシーケンス間の関連付けを学習できるようにします。
入出力文法以外に、Modelizer に必要なのはプログラムを実行する機能のみです。
結果として得られるモデルは_小規模_であり、Markdown や HTML などの言語で必要なパラメーターは 630 万未満です。
そしてそれらは_正確_で、実世界のアプリケーションのモック化において最大 95.4% の精度と標準誤差 0.04 で BLEU スコア 0.98 を達成しました。
特にプログラムの出力はプログラム動作のあらゆる側面になり得るため、これらのモデルのいくつかの「応用」が予想されます。
このモデルは、プログラムの動作をモックして予測するだけでなく、失敗やカバレッジなどの特定の動作を生成する可能性が高い入力を合成することもできます。

要約(オリジナル)

We introduce Modelizer – a novel framework that, given a black-box program, learns a _model from its input/output behavior_ using _neural machine translation_. The resulting model _mocks_ the original program: Given an input, the model predicts the output that would have been produced by the program. However, the model is also _reversible_ – that is, the model can predict the input that would have produced a given output. Finally, the model is _differentiable_ and can be efficiently restricted to predict only a certain aspect of the program behavior. Modelizer uses _grammars_ to synthesize inputs and to parse the resulting outputs, allowing it to learn sequence-to-sequence associations between token streams. Other than input and output grammars, Modelizer only requires the ability to execute the program. The resulting models are _small_, requiring fewer than 6.3 million parameters for languages such as Markdown or HTML; and they are _accurate_, achieving up to 95.4% accuracy and a BLEU score of 0.98 with standard error 0.04 in mocking real-world applications. We foresee several _applications_ of these models, especially as the output of the program can be any aspect of program behavior. Besides mocking and predicting program behavior, the model can also synthesize inputs that are likely to produce a particular behavior, such as failures or coverage.

arxiv情報

著者 Tural Mammadov,Dietrich Klakow,Alexander Koller,Andreas Zeller
発行日 2024-07-11 15:25:02+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: (Primary), 68Q42, cs.LG, cs.SE, D.2.5, secondary パーマリンク