中文

WhyGen:通过参照训练样本解释机器学习驱动的代码生成

软件工程 2022-04-19 v1

摘要

深度学习已在各类代码生成任务中展现出强大能力。然而,尽管为部分开发者带来极大便利,许多人担忧代码生成器可能在用户不知情的情况下背诵或高度模仿受版权保护的训练数据,从而引发法律与伦理问题。为缓解该问题,我们引入一款名为WhyGen的工具,通过参照训练样本来解释生成的代码。具体而言,我们首先引入一种称为推理指纹的数据结构,用于表示模型在生成预测时的决策过程。所有训练样本的指纹被离线收集并存入数据库。当模型在运行时用于代码生成时,可通过查询指纹数据库检索出最相关的训练样本。我们的实验表明,WhyGen能够以81.21%的top-10准确率精确提醒用户可能存在的背诵及高度相似的模仿。演示视频见 https://youtu.be/EtoQP6850To。

关键词

引用

@article{arxiv.2204.07940,
  title  = {WhyGen: Explaining ML-powered Code Generation by Referring to Training Examples},
  author = {Weixiang Yan and Yuanchun Li},
  journal= {arXiv preprint arXiv:2204.07940},
  year   = {2022}
}

备注

5 pages,accept by ICSE 2022 Demo track