3 个月前

通过对比预训练实现的文本与代码嵌入

通过对比预训练实现的文本与代码嵌入

摘要

文本嵌入(text embeddings)在语义搜索、文本相似度计算等多种应用场景中具有重要价值。以往的研究通常针对不同使用场景定制化训练模型,其差异体现在数据集选择、训练目标以及模型架构等方面。在本研究中,我们证明了在大规模无监督数据上进行对比学习预训练,能够生成高质量的文本与代码向量表示。这些无监督训练得到的文本嵌入不仅在线性探测分类任务中取得了新的最先进(state-of-the-art)性能,还展现出出色的语义搜索能力,其表现有时甚至可与微调后的模型相媲美。在平均覆盖7个任务的线性探测分类准确率上,我们最优的无监督模型相较于此前最佳的无监督和有监督文本嵌入模型,分别实现了4%和1.8%的相对提升。在大规模语义搜索任务评估中,该文本嵌入模型在MSMARCO、Natural Questions和TriviaQA三个基准测试上,相较于此前最佳的无监督方法,分别实现了23.4%、14.7%和10.6%的相对性能提升。类似地,我们通过在(文本,代码)配对数据上训练代码嵌入模型,在代码搜索任务中实现了相较于先前最优方法20.8%的相对性能提升。

代码仓库

openmatch/coco-dr
pytorch
GitHub 中提及

基准测试

基准方法指标
code-search-on-codesearchnetcpt-code S
Go: 97.7
JS: 86.0
Java: 94.0
Overall: 93.4
PHP: 96.7
Python: 99.8
Ruby: 86.3
code-search-on-codesearchnetcpt-code M
Go: 97.5
JS: 86.5
Java: 94.4
Overall: 93.5
PHP: 97.2
Python: 99.9
Ruby: 85.5
passage-ranking-on-ms-marcocpt-text XL
MRR@10: 22.7
passage-ranking-on-ms-marcoFine-tuned SOTA
MRR@10: 44.3
passage-ranking-on-ms-marcocpt-text L
MRR@10: 21.5
passage-ranking-on-ms-marcoBM25
MRR@10: 18.4

用 AI 构建 AI

从想法到上线——通过免费 AI 协同编程、开箱即用的环境和市场最优价格的 GPU 加速您的 AI 开发

AI 协同编程
即用型 GPU
最优价格
立即开始

Hyper Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供
通过对比预训练实现的文本与代码嵌入 | 论文 | HyperAI超神经