OpenAI 文本和代码嵌入通过对比预训练

TL;DR

OpenAI 提出了一种通过在无监督数据上进行大规模对比预训练来生成高质量文本和代码向量表示(嵌入)的方法。这种方法使得单个无监督模型能够在多个任务上达到最先进的效果,包括线性探测分类和大规模语义搜索,并且往往优于之前经过微调的监督模型。

对比预训练用于通用嵌入

在无监督数据上进行大规模对比预训练能够创建捕捉深层语义意义的向量表示(嵌入)。与之前需要为特定用例定制模型的方法不同——这些方法在架构、训练目标和数据集选择上各不相同——此方法产生的通用嵌入适用于广泛的应用,如语义搜索和文本相似度。

文本嵌入分类的性能

该方法生成的无监督文本嵌入在线性探测分类中取得了新的最先进结果。在七个不同任务的平均表现上,最佳无监督模型相较于之前最佳无监督模型实现了 4% 的相对提升,相较于之前最佳监督文本嵌入模型实现了 1.8% 的相对提升。

语义搜索的进步

对比预训练方法显著提升了大规模语义搜索的性能。在标准基准上的评估表明,最佳无监督模型相较于之前最佳的无监督方法实现了以下相对提升:

  • MSMARCO: 23.4% 相对提升
  • Natural Questions: 14.7% 相对提升
  • TriviaQA: 10.6% 相对提升

代码嵌入能力

通过在(文本,代码)对上训练代码嵌入模型,OpenAI 表明相同的对比预训练逻辑可以扩展到编程语言,达到相同的效果。此过程在代码搜索领域相较于之前最佳工作实现了 20.8% 的相对提升。

技术影响摘要

此研究表明,规模和在无监督数据上的对比预训练足以生成既首要、答案优先且与监督、微调模型在自然语言和编程代码方面高度竞争的嵌入。

Sources

相关

  • Dispatch
  • Dispatch
  • 项目
  • Dispatch
  • Dispatch