Jina AI將LLM Reranker延遲打下來(lái)了:21秒變3秒!
繼Jina Reranker v2之后,Jina AI又開(kāi)源了PE-Rank,一種新的基于LLM的重新排序器,用于高效的列表式段落重新排序。不是將原始文本輸入到LLM的上下文窗口,而是使用嵌入模型將每個(gè)段落表示為一個(gè)特殊標(biāo)記,然后將[指令]+[查詢]+[特殊標(biāo)記](méi)輸入到LLM中。在推理時(shí),PE-Rank將輸出空間限制在這些特殊標(biāo)記上,從而實(shí)現(xiàn)更高效的解碼。PE-Rank將重新排序100個(gè)文檔的延遲從21秒大幅減少到3秒。
RankGPT(上)與PE-Rank(下)的比較。RankGPT將整個(gè)段落作為輸入,并輸出有序數(shù)字,而PE-Rank將特殊標(biāo)記列表作為輸入和輸出。在右側(cè),展示了使用不同形式的輸入在DL19上重新排序的結(jié)果。
PE-Rank背景
使用大型語(yǔ)言模型(LLM)作為重新排序器有什么吸引人的地方?
- 新任務(wù)的靈活指令
- 零樣本能力
- 上下文推理?
但在實(shí)踐中,是什么阻止人們使用LLM作為重新排序器?
- 上下文長(zhǎng)度:重新排序100個(gè)文檔,每個(gè)文檔有1000個(gè)標(biāo)記,基本上需要一個(gè)10萬(wàn)標(biāo)記的上下文長(zhǎng)度。
- 大海撈針:由于重要信息可能在長(zhǎng)上下文中丟失,性能可能會(huì)波動(dòng)。
- 容易受到提示注入的影響:指令和查詢可能會(huì)被候選文檔覆蓋。
- 輸出格式問(wèn)題:很難確保輸出以正確的順序格式,即d1 > d3 > d2 > d7。有時(shí)你會(huì)得到語(yǔ)法錯(cuò)誤或過(guò)于冗長(zhǎng)的結(jié)果。
PE-Rank原理
使用PE-Rank,LLM的輸入基本上是指令+查詢+嵌入的段落,每個(gè)都作為一個(gè)特殊標(biāo)記,如下所示:
用于學(xué)習(xí)排名階段訓(xùn)練的數(shù)據(jù)格式
其次,使用特殊段落標(biāo)記來(lái)表示原始文本的想法類似于軟提示。但在PE-Rank中,使用像Jina/BGE這樣的外部嵌入模型來(lái)編碼文檔。這在外部嵌入和主干LLM自己的標(biāo)記嵌入之間引入了一些差異,這意味著需要學(xué)習(xí)一個(gè)映射函數(shù)。為了做到這一點(diǎn),凍結(jié)了嵌入模型和LLM,并僅訓(xùn)練了一個(gè)2層的多層感知器(MLP)來(lái)轉(zhuǎn)換嵌入空間。
在兩階段排名范式下的 PE-Rank 概覽。(a) 是檢索階段,檢索 n 個(gè)段落嵌入;(b) 是大型語(yǔ)言模型(LLM)的前向傳遞過(guò)程;(c) 展示了列表式解碼過(guò)程。
但是,如何微調(diào)一個(gè)大型語(yǔ)言模型(LLM)呢?經(jīng)典的監(jiān)督式微調(diào)(SFT)方法在這里有用嗎?實(shí)際上,并不是特別有用。因?yàn)榻獯a空間僅限于特殊的段落嵌入標(biāo)記,應(yīng)用標(biāo)準(zhǔn)的SFT并不直接。在PE-Rank中,結(jié)合了兩種損失:ListMLE,它最大化生成下一個(gè)最相關(guān)段落標(biāo)記的概率;以及上下文ListMLE,它進(jìn)一步基于原始內(nèi)容本身進(jìn)行條件化。這種方法提高了模型利用查詢和段落之間標(biāo)記級(jí)交互的能力,并有助于在僅使用嵌入進(jìn)行排名時(shí)轉(zhuǎn)移這種能力。
兩種類型的訓(xùn)練數(shù)據(jù)和學(xué)習(xí)排名的訓(xùn)練過(guò)程的說(shuō)明
PE-Rank效果評(píng)測(cè)
使用 Mistral-7B-Instruct-v0.2 作為 PE-Rank 的大型語(yǔ)言模型(LLM)的基礎(chǔ)模型,以及 Jina-embeddings-v2/BGE-v1.5 作為外部嵌入。通過(guò)這種設(shè)置,實(shí)現(xiàn)了與將原始文檔投入 GPT-4(表中的 RankGPT4)相當(dāng)?shù)男阅埽舆t僅為其六分之一,將總時(shí)間成本從20秒減少到3秒。如果只重新排序前20個(gè)候選項(xiàng),單個(gè)查詢的延遲可以進(jìn)一步降低到0.5秒,使其在現(xiàn)實(shí)世界的應(yīng)用中變得相當(dāng)實(shí)用。
在TREC DL和BEIR上重新排序前100個(gè)段落的結(jié)果(NDCG@10)。Ret表示第一階段使用的檢索模型。
在推理過(guò)程中重新排序前100名候選者在不同階段的延遲
在 Jina 嵌入和 BGE 嵌入之間切換時(shí),發(fā)現(xiàn) PE-Rank 可以一致地改進(jìn)基礎(chǔ)檢索器的性能,無(wú)論是 BM25、Jina 還是 BGE。一個(gè)有趣的點(diǎn)是,盡管 BGE 在 MTEB 上的得分高于 Jina,但使用 BGE 嵌入重新排序 BM25 檢索結(jié)果的性能在三個(gè)不同的數(shù)據(jù)集上始終低于使用 Jina 嵌入。這表明在像 MTEB 這樣的通用嵌入基準(zhǔn)測(cè)試中表現(xiàn)出色的模型,在這個(gè)特定上下文中可能不一定表現(xiàn)良好,而 Jina 嵌入在這里顯示出更好的擴(kuò)展性。
https://github.com/liuqi6777/pe_rank
https://arxiv.org/pdf/2406.14848
Leveraging Passage Embeddings for Efficient Listwise Reranking with Large Language Mo
本文轉(zhuǎn)載自??PaperAgent??
