paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Turaco: Complexity-Guided Data Sampling for Training Neural Surrogates of Programs

Turaco:面向程序神经代理模型训练的复杂度引导数据采样
OOPSLA 7(OOPSLA2)2023匹配度 4/10 · 论文将程序分析(复杂度判定)用于指导神经网络程序代理的训练数据采样,属于程序分析与机器学习的交叉,但未涉及用户核心关注的LLM/Agent、浮点程序分析或贝叶斯程序分析,与PL→AI(静态分析用于ML系统/Agentic程序)和AI→PL(LLM/Agent改进静态分析)方向均不直接匹配。引用 0 inbox
Alex Renda, Yi Ding, Michael Carbin
crossref: 2026-09-10

AI 速览

一句话:提出按程序执行路径学习复杂度分配采样比例,并用程序分析判定复杂度以训练神经网络程序代理模型。

程序代理模型(surrogate)是对程序可观测行为子集的近似,被广泛用于解决各类软件开发难题。训练神经代理模型需要从程序输入示例中采样数据,但如何选取训练数据仍是关键挑战。本文提出一种面向神经网络程序代理模型的数据集采样方法:首先根据学习程序不同执行路径对应代理模型的复杂度,刻画应从输入空间各区域采样的数据比例;随后给出一种程序分析,用于判定程序中不同路径的学习复杂度,从而指导采样。作者在一系列真实程序上评估该方法,结果表明复杂度引导采样在经验上提升了代理模型的准确率。

问题
训练神经网络程序代理模型时,缺乏原则性方法来决定从程序输入空间的哪些区域采样多少数据,导致代理模型准确率受限。
方法
基于各执行路径的学习复杂度刻画输入空间各区域应采样的数据比例,并提出程序分析自动判定不同路径的复杂度,据此构造训练数据集。
评估
在一系列真实程序上开展实验,验证复杂度引导采样相较基线在代理模型准确率上取得经验性提升。
原文摘要(Abstract)

Programmers and researchers are increasingly developing surrogates of programs, models of a subset of the observable behavior of a given program, to solve a variety of software development challenges. Programmers train surrogates from measurements of the behavior of a program on a dataset of input examples. A key challenge of surrogate construction is determining what training data to use to train a surrogate of a given program. We present a methodology for sampling datasets to train neural-network-based surrogates of programs. We first characterize the proportion of data to sample from each region of a program's input space (corresponding to different execution paths of the program) based on the complexity of learning a surrogate of the corresponding execution path. We next provide a program analysis to determine the complexity of different paths in a program. We evaluate these results on a range of real-world programs, demonstrating that complexity-guided sampling results in empirical improvements in accuracy.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1864,
  title = {Turaco: Complexity-Guided Data Sampling for Training Neural Surrogates of Programs},
  author = {Alex Renda and Yi Ding and Michael Carbin},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {OOPSLA2},
  year = {2023},
  doi = {10.1145/3622856}
}