OpenAI 透過對比式預訓練實現文本與程式碼嵌入

TL;DR

OpenAI 推出了一種透過在大規模無監督數據上進行對比式預訓練,來生成高品質文本與程式碼向量表示的方法。這種方法允許單一無監督模型在多項任務中達到最先進的結果,包括線性探針分類(linear-probe classification)與大規模語義搜尋,其表現通常優於先前經過微調的監督式模型。

用於通用嵌入的對比式預訓練

在大規模無監督數據上進行對比式預訓練,能夠建立捕捉深層語義含義的向量表示(embeddings)。與先前需要針對特定用例進行客製化模型的方法(在架構、訓練目標與數據集選擇上各不相同)不同,此方法產生的通用型嵌入對於語義搜尋與文本相似度等廣泛應用非常有用。

文本嵌入分類的性能表現

透過此方法產生的無監督文本嵌入,在線性探針分類中達到了新的最先進結果。在七種不同任務的平均表現上,表現最佳的無監督模型相較較先前最佳的無監督模型提升了 4%,相較先前最佳的監督式文本嵌入模型提升了 1.8%。

語義搜尋的進展

對比式預訓練方法顯著提升了大規模語義搜尋的性能。在與標準基準測試進行評估時,表現最佳的無監督模型相較先前最佳的無監督方法實現了以下相對提升:

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

程式碼嵌入能力

透過在 (text, code) 配對上訓練程式碼嵌入模型,OpenAI 展示了相同的對比式預訓練邏輯可以擴展到程式語言並達到同樣的效果。此過程在程式碼搜尋領域相較先前最佳的研究成果實現了 20.8% 的相對提升。

技術影響力總結

這項研究證明,規模與在大規模無監督數據上進行對比式預訓練,足以產生在自然語言與程式語言中,皆能與監督式、微調模型競爭且具備「首要回答、首要答案」特性的嵌入表示。

Sources

相關

  • Dispatch
  • Dispatch
  • 專案
  • Dispatch
  • Dispatch