从合成输入输出对学习程序行为模型
摘要
我们引入 Modelizer - 一个新型框架,给定黑盒程序,从其输入/输出行为中学习模型,使用神经机器翻译算法。 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 and inputs and unsupervised tokenizers to decompose the resulting outputs, allowing it to learn sequence-to-sequence associations between token streams. Other than input 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. As it learns from and predicts executions rather than code, Modelizer departs from the LLM-centric research trend, opening new opportunities for program-specific models that are fully tuned towards individual programs. Indeed, we foresee several applications of these models, especially as the output of the program can be any aspect of program behavior. Beyond mocking and predicting program behavior, the models can also synthesize inputs that are likely to produce a particular behavior, such as failures or coverage, thus assisting in program understanding and maintenance.
引用
@article{arxiv.2407.08596,
title = {Modeling Multiple X-Ray Reflection in Super-Eddington Winds},
author = {Zijian Zhang and Lars Lund Thomsen and Lixin Dai and Christopher S. Reynolds and Javier A. García and Erin Kara and Riley Connors and Megan Masterson and Yuhan Yao and Thomas Dauser},
journal= {arXiv preprint arXiv:2407.08596},
year = {2024}
}
备注
24 pages, published in ApJ