快速且内存高效的神经代码补全
软件工程
2021-03-17 v4 机器学习
摘要
代码补全是现代集成开发环境 (IDEs) 中使用最广泛的功能之一。尽管深度学习在源代码统计预测方面取得了显著进展,但最先进的神经网络模型消耗数百兆字节内存,导致开发环境臃肿。我们分两步解决此问题:首先提出一个模块化的神经代码补全框架,这使我们能够探索设计空间并评估不同技术。其次,在该框架内设计了一种新颖的重排序神经补全模型,将静态分析与细粒度词元编码相结合。最佳神经重排序模型仅消耗 6 MB RAM(比先前模型少 19 倍),在 8 ms 内计算单次补全,并在其前五个建议中达到 90% 准确率。
引用
@article{arxiv.2004.13651,
title = {Fast and Memory-Efficient Neural Code Completion},
author = {Alexey Svyatkovskiy and Sebastian Lee and Anna Hadjitofi and Maik Riechert and Juliana Franco and Miltiadis Allamanis},
journal= {arXiv preprint arXiv:2004.13651},
year = {2021}
}