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