無需人工標(biāo)注!LLM加持文本嵌入學(xué)習(xí):輕松支持100種語言,適配數(shù)十萬下游任務(wù)
文本嵌入(word embedding)是自然語言處理(NLP)領(lǐng)域發(fā)展的基礎(chǔ),可以將文本映射到語義空間中,并轉(zhuǎn)換為稠密的矢量,已經(jīng)被廣泛應(yīng)用于各種自然語言處理(NLP)任務(wù)中,如信息檢索(IR)、問答、文本相似度計算、推薦系統(tǒng)等等,
比如在IR領(lǐng)域,第一階段的檢索往往依賴于文本嵌入來進(jìn)行相似度計算,先在大規(guī)模語料庫中召回一個小的候選文件集,再進(jìn)行細(xì)粒度的計算;基于嵌入的檢索也是檢索增強生成(RAG)的關(guān)鍵組成部分,使大型語言模型(LLM)可以訪問動態(tài)的外部知識,而無需修改模型參數(shù)。
早期的文本嵌入學(xué)習(xí)方法如word2vec,GloVe等大多是靜態(tài)的,無法捕捉自然語言中豐富的上下文信息;隨著預(yù)訓(xùn)練語言模型的出現(xiàn),Sentence-BERT和SimCSE等方法在自然語言推理(NLI)數(shù)據(jù)集上通過微調(diào)BERT來學(xué)習(xí)文本嵌入。
為了進(jìn)一步增強文本嵌入的性能和魯棒性,最先進(jìn)的方法如E5和BGE采用了更復(fù)雜的多階段訓(xùn)練范式,先對數(shù)十億個弱監(jiān)督文本對進(jìn)行預(yù)訓(xùn)練,然后再在數(shù)個標(biāo)注數(shù)據(jù)集上進(jìn)行微調(diào)。
現(xiàn)有的多階段方法仍然存在兩個缺陷:
1. 構(gòu)造一個復(fù)雜的多階段訓(xùn)練pipeline,需要大量的工程工作來管理大量的相關(guān)性數(shù)據(jù)對(relevance pairs)。
2. 微調(diào)依賴于人工收集的數(shù)據(jù)集,而這些數(shù)據(jù)集往往受到任務(wù)多樣性和語言覆蓋范圍的限制。
3. 大多數(shù)現(xiàn)有方法采用BERT-style的編碼器作為主干,忽略了訓(xùn)練更好的LLM和相關(guān)技術(shù)(諸如上下文長度擴展)的最新進(jìn)展。
最近,微軟的研究團隊提出了一種簡單且高效的文本嵌入訓(xùn)練方法,克服了上述方法的缺陷,無需復(fù)雜的管道設(shè)計或是人工構(gòu)建的數(shù)據(jù)集,只需要利用LLM來「合成多樣化的文本數(shù)據(jù)」,就可以為為近100種語言的數(shù)十萬文本嵌入任務(wù)生成高質(zhì)量的文本嵌入,整個訓(xùn)練過程還不到1000步。
論文鏈接:https://arxiv.org/abs/2401.00368
具體來說,研究人員使用兩步提示策略,首先提示LLM頭腦風(fēng)暴候選任務(wù)池,然后提示LLM從池中生成給定任務(wù)的數(shù)據(jù)。
為了覆蓋不同的應(yīng)用場景,研究人員為每個任務(wù)類型設(shè)計了多個提示模板,并將不同模板生成的數(shù)據(jù)進(jìn)行聯(lián)合收割機組合,以提高多樣性。
實驗結(jié)果證明,當(dāng)「僅對合成數(shù)據(jù)」進(jìn)行微調(diào)時,Mistral-7B在BEIR和MTEB基準(zhǔn)上獲得了非常有競爭力的性能;當(dāng)同時加入合成和標(biāo)注數(shù)據(jù)進(jìn)行微調(diào)時,即可實現(xiàn)sota性能。
用大模型提升文本嵌入
1. 合成數(shù)據(jù)生成
利用GPT-4等最先進(jìn)的大型語言模型(LLM)來合成數(shù)據(jù)越來越受到重視,可以增強模型在多任務(wù)和多語言上的能力多樣性,進(jìn)而可以訓(xùn)練出更健壯的文本嵌入,在各種下游任務(wù)(如語義檢索、文本相似度計算、聚類)中都能表現(xiàn)良好。
為了生成多樣化的合成數(shù)據(jù),研究人員提出了一個簡單的分類法,先將嵌入任務(wù)分類,然后再對每類任務(wù)使用不同的提示模板。
非對稱任務(wù)(Asymmetric Tasks)
包括查詢(query)和文檔在語義上相關(guān)但彼此不互為改寫(paraphrase)的任務(wù)。
根據(jù)查詢和文檔的長度,研究人員進(jìn)一步將非對稱任務(wù)分為四個子類別:短-長匹配(短查詢和長文檔,商業(yè)搜索引擎中的典型場景),長-短匹配,短-短匹配和長-長匹配。
對于每個子類別,研究人員設(shè)計了一個兩步提示模板,首先提示LLM頭腦風(fēng)暴的任務(wù)列表,然后生成一個具體的例子的任務(wù)定義的條件;從GPT-4的輸出大多連貫一致,質(zhì)量很高。
在初步實驗中,研究人員還嘗試使用單個提示生成任務(wù)定義和查詢文檔對,但數(shù)據(jù)多樣性不如上述的兩步方法。
對稱任務(wù)
主要包括具有相似語義但不同表面形式的查詢和文檔。
文中研究了兩個應(yīng)用場景:單語種(monolingual)語義文本相似性(STS)和雙文本檢索,并且為每個場景設(shè)計了兩個不同的提示模板,根據(jù)其特定目標(biāo)進(jìn)行定制,由于任務(wù)的定義比較簡單,所以頭腦風(fēng)暴步驟可以省略。
為了進(jìn)一步提高提示詞的多樣性,提高合成數(shù)據(jù)的多樣性,研究人員在每個提示板中加入了幾個占位符,在運行時隨機采樣,例如「{query_length}」代表從集合「{少于5個單詞,5-10個單詞,至少10個單詞}」中采樣的。
為了生成多語言數(shù)據(jù),研究人員從XLM-R的語言列表中采樣「{language}」的值,給予高資源語言更多的權(quán)重;任何不符合預(yù)定義JSON格式的生成數(shù)據(jù)都將在解析過程中被丟棄;還會根據(jù)精確的字符串匹配刪除重復(fù)項。
2. 訓(xùn)練
給定一個相關(guān)的查詢-文檔對,先使用原始查詢q+來生成一個新的指令q_inst,其中「{task_definition}」是嵌入任務(wù)的一句話描述的占位符。
對于生成的合成數(shù)據(jù),使用頭腦風(fēng)暴步驟的輸出;對于其他數(shù)據(jù)集,例如MS-MARCO,研究人員手動創(chuàng)建任務(wù)定義并將其應(yīng)用于數(shù)據(jù)集中的所有查詢,不修改文件端的任何指令前綴。
通過這種方式,可以預(yù)先構(gòu)建文檔索引,并且可以通過僅更改查詢端來自定義要執(zhí)行的任務(wù)。
給定一個預(yù)訓(xùn)練的LLM,將一個[EOS]標(biāo)記附加到查詢和文檔的末尾,然后饋送到LLM中,通過獲取最后一層[EOS]向量來獲得查詢和文檔嵌入。
然后采用標(biāo)準(zhǔn)的InfoNCE loss對批內(nèi)negatives和hard negatives進(jìn)行損失計算。
其中?表示所有negatives的集合,用來計算查詢和文檔之間的匹配分?jǐn)?shù),t是一個溫度超參數(shù),在實驗中固定為0.02
實驗結(jié)果
合成數(shù)據(jù)統(tǒng)計
研究人員使用Azure OpenAI服務(wù)生成了500k個樣本,包含150k條獨特指令,其中25%由GPT-3.5-Turbo生成,剩余由GPT-4生成,總共消耗了1.8億個token。
主要語言是英語,一共覆蓋93種語言;對于75種低資源語言,平均每種語言約有1k個樣本。
在數(shù)據(jù)質(zhì)量方面,研究人員發(fā)現(xiàn)GPT-3.5-Turbo的部分輸出沒有嚴(yán)格遵循提示模板中規(guī)定的準(zhǔn)則,但盡管如此,總體質(zhì)量仍然是可以接受的,初步實驗也證明了采用這一數(shù)據(jù)子集的好處。
模型微調(diào)和評估
研究人員對預(yù)訓(xùn)練Mistral-7B使用上述損失微調(diào)1個epoch,遵循RankLLaMA的訓(xùn)練方法,并使用秩為16的LoRA。
為了進(jìn)一步降低GPU內(nèi)存需求,采用梯度檢查點、混合精度訓(xùn)練和DeepSpeed ZeRO-3等技術(shù)。
在訓(xùn)練數(shù)據(jù)方面,同時使用了生成的合成數(shù)據(jù)和13個公共數(shù)據(jù)集,采樣后產(chǎn)生了約180萬個示例。
為了與之前的一些工作進(jìn)行公平比較,研究人員還報告了當(dāng)唯一的標(biāo)注監(jiān)督是MS-MARCO篇章排序數(shù)據(jù)集時的結(jié)果,還在MTEB基準(zhǔn)上對模型進(jìn)行了評估。
主要結(jié)果
下表中可以看到,文中得到的模型「E5mistral-7B + full data」在MTEB基準(zhǔn)測試中獲得了最高的平均分,比之前最先進(jìn)的模型高出2.4分。
在「w/ synthetic data only」設(shè)置中,沒有使用標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練,但性能仍然很有競爭力。
研究人員還對幾種商業(yè)文本嵌入模型進(jìn)行了比較,但由于這些模型缺乏透明度和文檔,因此無法進(jìn)行公平的比較。
不過,在BEIR基準(zhǔn)上的檢索性能對比結(jié)果中可以看到,訓(xùn)練得到的模型在很大程度上優(yōu)于當(dāng)前的商業(yè)模型。
多語言檢索
為了評估模型的多語言能力,研究人員在MIRACL數(shù)據(jù)集上進(jìn)行了評估,包含18種語言的人工標(biāo)注查詢和相關(guān)性判斷。
結(jié)果顯示,該模型在高資源語言上超過了mE5-large,尤其是在英語上,性能表現(xiàn)更出色;不過對于低資源語言來說,該模型與mE5-base相比仍不理想。
研究人員將此歸因于Mistral-7B主要在英語數(shù)據(jù)上進(jìn)行了預(yù)訓(xùn)練,預(yù)測多語言模型可以用該方法來彌補這一差距。