仅需日志:通过从匿名 IDE 使用日志中学习改进代码补全
软件工程
2022-09-07 v2 机器学习
摘要
在这项工作中,我们提出了一种从 IDE 用户处收集补全使用日志并用其训练基于机器学习的模型以对补全候选项进行排序的方法。我们开发了一组描述补全候选项及其上下文的特征,并在基于 IntelliJ 的 IDE 的 Early Access Program 中部署了它们的匿名收集。我们利用这些日志收集了来自用户的代码补全数据集,并用以训练一个排序 CatBoost 模型。随后,我们在两种设置下对其进行了评估:在收集的补全数据的留出集上,以及在 IDE 中两组不同用户间独立的 A/B 测试中。我们的评估表明,使用基于过往用户行为日志训练的简易排序模型显著改善了代码补全体验。与默认的基于启发式的排序相比,我们的模型将使 IDE 中执行补全所需的键入动作次数从 2.073 降至 1.832。该方法遵循隐私要求与法律约束,因其无需收集个人信息,所有必要的匿名化均在客户端完成。重要的是,它可持续改进:实现新特征、收集新数据并评估新模型——自 2020 年底起,我们已在生产环境中使用该方法。
引用
@article{arxiv.2205.10692,
title = {All You Need Is Logs: Improving Code Completion by Learning from Anonymous IDE Usage Logs},
author = {Vitaliy Bibaev and Alexey Kalina and Vadim Lomshakov and Yaroslav Golubev and Alexander Bezzubov and Nikita Povarov and Timofey Bryksin},
journal= {arXiv preprint arXiv:2205.10692},
year = {2022}
}
备注
11 pages, 4 figures