中文

CodeRetriever:用于代码搜索的单模态与双模态对比学习

计算与语言 2022-10-27 v3 软件工程

摘要

本文提出 CodeRetriever 模型,通过大规模代码-文本对比预训练学习函数级代码语义表示。我们在 CodeRetriever 中采用两种对比学习方案:单模态对比学习与双模态对比学习。对于单模态对比学习,我们设计了一种无监督学习方法,基于文档与函数名构建语义相关代码对。对于双模态对比学习,我们利用代码的文档与行内注释构建代码-文本对。两种对比目标均可充分利用大规模代码语料进行预训练。大量实验结果表明,在六种编程语言、不同代码粒度(函数级、片段级与语句级)的十一个领域/语言特定代码搜索任务上,CodeRetriever 以对现有代码预训练模型的显著改进取得了新的 SOTA,证明了 CodeRetriever 的有效性与鲁棒性。

关键词

引用

@article{arxiv.2201.10866,
  title  = {CodeRetriever: Unimodal and Bimodal Contrastive Learning for Code Search},
  author = {Xiaonan Li and Yeyun Gong and Yelong Shen and Xipeng Qiu and Hang Zhang and Bolun Yao and Weizhen Qi and Daxin Jiang and Weizhu Chen and Nan Duan},
  journal= {arXiv preprint arXiv:2201.10866},
  year   = {2022}
}

备注

Accepted to EMNLP 2022 (main conference)