實(shí)驗(yàn)證明,LLM2Vec模型在嵌入任務(wù)上具有更好的性能,它可以為組織開辟新的場所,并以非常低的成本快速創(chuàng)建專門的嵌入模型。
嵌入模型已經(jīng)成為大型語言模型(LLM)應(yīng)用的重要組成部分,可以實(shí)現(xiàn)檢測文本相似度、信息檢索和聚類等任務(wù)。然而,與生成任務(wù)中使用的架構(gòu)不同,嵌入模型主要基于Transformer架構(gòu)。這使得很難將生成模型上的大量工作轉(zhuǎn)移到改進(jìn)的嵌入模型上,并且需要額外的并行工作。
在一項(xiàng)新的研究中,魁北克人工智能研究所(Mila)和ServiceNow Research公司的研究人員采用了一種簡單的無監(jiān)督方法——LLM2Vec,可以將僅解碼器(Decoder-only)的LLM轉(zhuǎn)換為強(qiáng)大的文本編碼器。實(shí)驗(yàn)證明,LLM2Vec模型在嵌入任務(wù)上具有更好的性能。
LLM2Vec直觀而高效,它可以為組織開辟新的場所,并以非常低的成本快速創(chuàng)建專門的嵌入模型。
用于嵌入的僅解碼器Transformer
目前,用于嵌入模型的主要架構(gòu)是預(yù)訓(xùn)練的雙向編碼器或編碼器-解碼器,例如BERT和T5。與GPT和Llama等解碼器模型不同的是,這些模型的設(shè)計目的不是生成令牌,而是將其語義內(nèi)容編碼為數(shù)字向量。
最近,研究人員一直在探索用于嵌入文本的僅解碼器LLM。解碼器模型的使用有限,部分原因是它們的單向注意力機(jī)制,這對于生成任務(wù)很有用,但對于學(xué)習(xí)豐富的嵌入模型來說卻不盡如人意。
麥吉爾大學(xué)和魁北克人工智能研究所(Mila)博士生、LLM2Vec論文的主要作者Parishad BehnamGhader表示,“我們需要強(qiáng)大的指令跟隨文本編碼器,例如應(yīng)用在檢索中,這是我們探索如何使用僅解碼器的LLM進(jìn)行文本表示的原因。”
僅解碼器的LLM適合于嵌入任務(wù)有幾個原因:首先,他們的訓(xùn)練方法使它們從所有輸入令牌中學(xué)習(xí),而不是在訓(xùn)練期間屏蔽部分輸入的編碼器模型。其次,在解碼器LLM上有很多活動,并且有一個具有豐富的模型、技術(shù)和工具生態(tài)系統(tǒng)可供選擇。最后,針對指令遵循和人類偏好進(jìn)行了微調(diào)的LLM可以作為通用文本嵌入模型的基礎(chǔ),該模型可以在許多任務(wù)中推廣。
LLM2Vec
LLM2Vec是一種簡單的無監(jiān)督方法,可用于將任何僅解碼器的LLM轉(zhuǎn)換為嵌入模型。
BehnamGhader說,“當(dāng)我們開始開發(fā)這個項(xiàng)目時,只有少數(shù)論文使用僅解碼器的LLM進(jìn)行文本表示。然而,他們主要關(guān)注的是監(jiān)督微調(diào)。相比之下,我們的目標(biāo)是建立一個簡單的通用方法,可以應(yīng)用于任何僅解碼器的LLM,并且不一定需要令牌的訓(xùn)練數(shù)據(jù)。因此,我們的重點(diǎn)是對無監(jiān)督和有監(jiān)督的公開數(shù)據(jù)進(jìn)行參數(shù)的高效微調(diào)。”
LLM2Vec由三個簡單步驟組成:首先,修改模型以實(shí)現(xiàn)雙向注意。這使得每個令牌都能夠關(guān)注所有其他令牌,而不是像僅解碼器LLM那樣只看到先前的令牌。
接下來,使用掩蔽下一個令牌預(yù)測(MNTP)對模型進(jìn)行訓(xùn)練。MNTP將下一個令牌預(yù)測與掩碼語言建模相結(jié)合。
最后,該模型在SimCSE上進(jìn)行了微調(diào),SimCSE是一種用于句子嵌入的無監(jiān)督對比學(xué)習(xí)技術(shù)。對于這一步驟,訓(xùn)練輸入序列是重復(fù)的,由于模型的丟棄,每個序列都有不同的掩碼節(jié)點(diǎn)。這導(dǎo)致同一序列有兩種不同的表示形式。對比學(xué)習(xí)目標(biāo)迫使模型最大化相同輸入序列的修改版本之間的嵌入的相似性,并最小化與批處理中其他序列的表示的相似性。這一步驟可以應(yīng)用于任何序列集合,這顯著地減少了收集訓(xùn)練數(shù)據(jù)所需的工作量。
BehnamGhader說,“LLM2Vec是一種通用的方法,適用于任何僅解碼器的LLM。鑒于僅解碼器LLM在我們的領(lǐng)域中無處不在,我們認(rèn)為能夠?qū)⑵滢D(zhuǎn)換為編碼器是很重要的,這為從頭開始訓(xùn)練編碼器提供了一種計算效率更高的替代方案。”
許多LLM應(yīng)用程序使用檢索增強(qiáng)生成(RAG),這需要嵌入段落和文檔。使用LLM2Vec,相同的僅解碼器的LLM可以作為嵌入和生成任務(wù)的主干。這減少了對基礎(chǔ)設(shè)施的需求,并使嵌入和生成模型保持一致。
BehnamGhader說:“我們相信,文本嵌入任務(wù)(如檢索)可以從僅解碼器LLM的功能獲益,例如它們的指令跟蹤行為。”
LLM2Vec的應(yīng)用
研究人員將LLM2vec應(yīng)用于三個僅解碼器的LLM,范圍從13億到70億個參數(shù),并評估了單詞和序列級任務(wù)的結(jié)果模型。
他們使用來自英語維基百科的數(shù)據(jù)執(zhí)行了MNTP和無監(jiān)督對比學(xué)習(xí)步驟,因?yàn)檫@些數(shù)據(jù)包含在他們實(shí)驗(yàn)的模型的預(yù)訓(xùn)練混合中。這是為了確保這兩個步驟不會教給模型任何新的知識,除了如何處理未來的令牌和如何構(gòu)建序列表示。
他們使用低秩自適應(yīng)(LoRA)來降低模型的訓(xùn)練成本。有趣的是,在80GB的A100 GPU上,使用LLM2Vec微調(diào)70億個參數(shù)模型的整個過程只用了不到4個小時,這意味著成本不到10美元。鑒于 LLM2Vec 中使用的訓(xùn)練數(shù)據(jù)是從訓(xùn)練解碼器模型時使用的語料庫中提取的,因此整個過程快速高效。
他們的實(shí)驗(yàn)表明,LLM2Vec模型特別適用于序列級任務(wù)。在大規(guī)模文本嵌入基準(zhǔn)(MTEB)上,LLM2Vec轉(zhuǎn)換的模型為無監(jiān)督模型樹立了新的技術(shù)水平。
由于大多數(shù)僅編碼器的模型只是僅解碼器LLM的一小部分,研究人員還在小型模型上測試了LLM2Vec。
BehnamGhader說,“可以肯定的是,使用LLM2Vec轉(zhuǎn)換的僅解碼器模型的大小會影響其性能。為了證明LLM2Vec不僅適用于大型模型,我們還將其應(yīng)用于相對較小的僅解碼器模型。”
他們在具有13億個參數(shù)的Sheared-LLaMA模型上的實(shí)驗(yàn)表明,LLM2Vec在小型模型上的應(yīng)用也是有效的。研究人員開源了LLM2Vec的源代碼,還發(fā)布了他們?yōu)閷?shí)驗(yàn)訓(xùn)練的模型。
BehnamGhader說,“LLM2vec是朝著更好地利用這些模型進(jìn)行文本嵌入任務(wù)的方向邁出的第一步。讓我們特別興奮的是可以采用這種方法應(yīng)用于低資源設(shè)置,并使用它來為我們沒有足夠的訓(xùn)練數(shù)據(jù)來從頭開始訓(xùn)練模型的語言創(chuàng)建編碼器模型。”