Command Palette
Search for a command to run...

摘要
文本嵌入(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-codesearchnet | cpt-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-codesearchnet | cpt-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-marco | cpt-text XL | MRR@10: 22.7 |
| passage-ranking-on-ms-marco | Fine-tuned SOTA | MRR@10: 44.3 |
| passage-ranking-on-ms-marco | cpt-text L | MRR@10: 21.5 |
| passage-ranking-on-ms-marco | BM25 | MRR@10: 18.4 |