RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

大模型外掛知識(shí)庫(kù)優(yōu)化-大模型輔助向量召回

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:NLP工作站 ? 2023-09-08 16:50 ? 次閱讀

寫(xiě)在前面

大模型時(shí)代,通常采用向量召回的方式從文檔庫(kù)里召回和用戶問(wèn)題相關(guān)的文檔片段,輸入到LLM中來(lái)增強(qiáng)模型回答質(zhì)量。

但是很多時(shí)候,用戶的問(wèn)題是十分口語(yǔ)化的,描述的也比較模糊,這樣會(huì)影響向量召回的質(zhì)量,進(jìn)而影響模型回答效果。今天給大家?guī)?lái)一篇來(lái)自戰(zhàn)士金大佬(@知乎戰(zhàn)士金)的博文-大模型輔助向量召回。接下來(lái)分享兩篇通過(guò)大模型的能力增強(qiáng)召回效果的文章,這兩篇文章的內(nèi)容都已經(jīng)加入了langchain的標(biāo)準(zhǔn)組件,易用性還是比較好的,但是都有一些特定的使用場(chǎng)景。

Paper1:https://arxiv.org/abs/2212.10496
Paper2:https://arxiv.org/abs/2305.06983
知乎:https://zhuanlan.zhihu.com/p/653808554

HYDE

HYDE論文-Precise Zero-Shot Dense Retrieval without Relevance Labels,文章中強(qiáng)調(diào)了該文章主要適用于Zero-Shot場(chǎng)景。Zero-Shot指的是模型沒(méi)有見(jiàn)過(guò)某個(gè)場(chǎng)景(或者某個(gè)數(shù)據(jù)集)的數(shù)據(jù),就應(yīng)用于該場(chǎng)景,和用數(shù)據(jù)訓(xùn)練模型以及在語(yǔ)言模型上下文中加入示例相對(duì)應(yīng)。Zero-Shot體現(xiàn)了模型的遷移能力,我猜大部分同學(xué)都是在zero shot場(chǎng)景上使用向量化模型的,比如從網(wǎng)上下載個(gè)向量化模型權(quán)重,直接在自己的業(yè)務(wù)場(chǎng)景上用。其實(shí),如果自己的業(yè)務(wù)場(chǎng)景有數(shù)據(jù),微調(diào)一下向量化模型,在對(duì)應(yīng)業(yè)務(wù)場(chǎng)景下召回率能提升不少。

既然論文題目強(qiáng)調(diào)了zero-shot,論文看的比較多的同學(xué)一定能馬上反應(yīng)過(guò)來(lái),是不是在非zero shot(比如微調(diào)向量化模型)的場(chǎng)景下這方法效果就很一般呢?文章作者也給出了實(shí)驗(yàn)結(jié)果,該方法在結(jié)合微調(diào)過(guò)的向量化模型時(shí),效果就沒(méi)那么好了,非常依賴打輔助的LLM的能力。如果您有微調(diào)向量化模型的能力,這部分就可以跳過(guò)了。再?gòu)?qiáng)調(diào)一下,這篇文章是篇純討論召回的文章,最后的衡量指標(biāo)也是nDCG和召回率這些指標(biāo),使用LLM單純是為了提高召回效果的。

langchain鏈接:https://python.langchain.com/docs/use_cases/question_answering/how_to/hyde

論文思路非常簡(jiǎn)單:

  • Step1:用LLM根據(jù)用戶query生成k個(gè)“假答案”。(大模型生成答案采用sample模式,保證生成的k個(gè)答案不一樣,不懂LLM生成答案原理的同學(xué)可以看我這篇文章。此時(shí)的回答內(nèi)容很可能是存在知識(shí)性錯(cuò)誤,因?yàn)槿绻芑卮鹫_,那就不需要召回補(bǔ)充額外知識(shí)了對(duì)吧。不過(guò)不要緊,我們知識(shí)想通過(guò)大模型去理解用戶的問(wèn)題,生成一些“看起來(lái)”還不錯(cuò)的假答案)
  • Step2:利用向量化模型,將生成的k的假答案和用戶的query變成向量。
  • Step3:根據(jù)如下公式,將k+1個(gè)向量取平均:其中dk為第k個(gè)生成的答案,q為用戶問(wèn)題,f為向量化操作。

a9bb10c4-4e1e-11ee-a25d-92fbcf53809c.png

  • Step4:利用融合向量v從文檔庫(kù)中召回答案。融合向量中既有用戶問(wèn)題的信息,也有想要答案的模式信息,可以增強(qiáng)召回效果。

接下來(lái)我們從論文中挑一個(gè)比較重要的實(shí)驗(yàn)結(jié)果進(jìn)行討論。測(cè)試集為TREC DL19/20數(shù)據(jù)集,向量化模型使用的是Contriever模型,原始的該模型并未在TREC DL19/20數(shù)據(jù)集上訓(xùn)練過(guò)。模型有上標(biāo)FT指的是向量化模型在TREC DL相關(guān)的數(shù)據(jù)集上微調(diào)過(guò)的。黃框標(biāo)出來(lái)的是未使用hyde技術(shù)的baseline結(jié)果。綠框標(biāo)出來(lái)的是未微調(diào)的向量化模型使用hyde技術(shù)的實(shí)驗(yàn)結(jié)果。紅框標(biāo)出來(lái)的是微調(diào)過(guò)的向量化模型使用hyde技術(shù)的實(shí)驗(yàn)結(jié)果。

a9d458ae-4e1e-11ee-a25d-92fbcf53809c.png

實(shí)驗(yàn)指標(biāo)為NDCG@10,可以發(fā)現(xiàn),對(duì)于沒(méi)有微調(diào)過(guò)的向量戶化模型(zero shot場(chǎng)景),hyde還是非常有用的,并且隨著使用的LLM模型的增大,效果不斷變好(因?yàn)長(zhǎng)LM的回答質(zhì)量提高了)。非常有意思的一點(diǎn)是是對(duì)于微調(diào)過(guò)的向量化模型,如果使用比較小的LLM生成假答案(小于52B參數(shù)量),hdye技術(shù)甚至?xí)?lái)負(fù)面影響。

因?yàn)轭I(lǐng)域微調(diào)過(guò)的向量化模型性能已經(jīng)不錯(cuò)了,NDCG@10指標(biāo)能達(dá)到60多,LLM生成的假答案的知識(shí)性錯(cuò)誤帶來(lái)的負(fù)面影響大于回答模式信息帶來(lái)的正面影響。所以向量化模型模型還是能微調(diào)就微調(diào)吧。

FLARE

和上一篇文章相比,F(xiàn)LARE論文比較新一點(diǎn),評(píng)估的指標(biāo)是直接看最后LLM的回答效果的,而非是向第一篇文章那樣只討論召回準(zhǔn)確率。這篇文章涉及到針對(duì)同一個(gè)問(wèn)題的多次召回,因此比較適合長(zhǎng)文本回答。如果您所面對(duì)的場(chǎng)景大部分問(wèn)題用一兩句話就能回答,那收益就不是太大了。

langchain鏈接:https://python.langchain.com/docs/use_cases/question_answering/how_to/flare

對(duì)于大模型外掛知識(shí)庫(kù),大家通常的做法是根據(jù)用戶query一次召回文檔片段,讓模型生成答案。只進(jìn)行一次文檔召回在長(zhǎng)文本生成的場(chǎng)景下效果往往不好,生成的文本過(guò)長(zhǎng),更有可能擴(kuò)展出和query相關(guān)性較弱的內(nèi)容,如果模型沒(méi)有這部分知識(shí),容易產(chǎn)生模型幻覺(jué)問(wèn)題。一種解決思路是隨著文本生成,多次從向量庫(kù)中召回內(nèi)容。

有三種常用的多次召回策略:

  • a. 每生成固定的n個(gè)token就召回一次。
  • b. 每生成一個(gè)完整的句子就召回一次。
  • c. 將用戶query一步步分解為子問(wèn)題,需要解答當(dāng)前子問(wèn)題時(shí)候,就召回一次。

已有的多次召回方案比較被動(dòng),召回文檔的目的是為了得到模型不知道的信息,a、b策略并不能保證不需要召回的時(shí)候不召回,需要召回的時(shí)候觸發(fā)召回。c.方案需要設(shè)計(jì)特定的prompt工程,限制了其通用性。作者在本文里提出了兩種更主動(dòng)的多次召回策略,讓模型自己決定啥時(shí)候觸發(fā)召回操作。

策略1

通過(guò)設(shè)計(jì)prompt以及提供示例的方式,讓模型知道當(dāng)遇到需要查詢知識(shí)的時(shí)候,提出問(wèn)題,并按照格式輸出,和toolformer的模式類似。提出問(wèn)題的格式為[Serch(“模型自動(dòng)提出的問(wèn)題”)](稱其為主動(dòng)召回標(biāo)識(shí))。利用模型生成的問(wèn)題去召回答案。召回出答案后,將答案放到用戶query的前邊,然后去掉主動(dòng)召回標(biāo)識(shí)之后,繼續(xù)生成。當(dāng)下一次生成主動(dòng)召回標(biāo)識(shí)之后,將上一次召回出來(lái)的內(nèi)容從prompt中去掉。下圖展示了生成拜登相關(guān)答案時(shí),觸發(fā)多次召回的例子,分別面對(duì)拜登在哪上學(xué)和獲得了什么學(xué)位的知識(shí)點(diǎn)上進(jìn)行了主動(dòng)召回標(biāo)識(shí)的生成。

a9edc5b4-4e1e-11ee-a25d-92fbcf53809c.png

該方法也存在一些缺陷:

  • 1.LLM不愿意生成主動(dòng)召回標(biāo)識(shí)。解決方法:對(duì)"["對(duì)應(yīng)的logit乘2,增加生成"["的概率,"["為主動(dòng)召回標(biāo)識(shí)的第一個(gè)字,進(jìn)而促進(jìn)主動(dòng)召回標(biāo)識(shí)的生成。
  • 2.過(guò)于頻繁的主動(dòng)召回可能會(huì)影響生成質(zhì)量。解決方法:在剛生成一次主動(dòng)召回標(biāo)識(shí)、得到召回后的文檔、去掉主動(dòng)召回標(biāo)識(shí)之后,接下來(lái)生成的幾個(gè)token禁止生成"["。
  • 3.不微調(diào)該方案不太可靠,很難通過(guò)few shot的方式讓模型生成這種輸出模式。

策略2

策略1存在的第3點(diǎn)缺陷比較知名。因此作者提出了另外一個(gè)策略。該策略基于一個(gè)假設(shè):模型生成的詞對(duì)應(yīng)該的概率能夠表現(xiàn)生成內(nèi)容的置信度。(傳統(tǒng)的chatgpt接口是用不了策略2的,因?yàn)榈貌坏缴擅總€(gè)詞的概率。)

分為4個(gè)步驟:

  • Step0:根據(jù)用戶的query,進(jìn)行第一次召回,讓模型生成答案。
  • Step1:之后,每生成64個(gè)token,用NLTK工具包從64個(gè)token里邊找到第一個(gè)完整句子,當(dāng)作“假答案”,扔掉多余的token。(和第一篇文章思想一樣,利用LLM生成符合回答模式的“假答案”)
  • Step2:如果“假答案”里有任意一個(gè)token對(duì)應(yīng)的概率,低于某一閾值,那么就利用這個(gè)句子進(jìn)行向量召回。觸發(fā)召回的“假答案”很可能包含事實(shí)性錯(cuò)誤,降低召回準(zhǔn)確率。設(shè)計(jì)了兩種方法解決這個(gè)問(wèn)題。方法1:將“假答案”中生成概率低于某一閾值的token扔掉(低概率的token很有可能存在錯(cuò)誤信息),然后再進(jìn)行向量召回。方法2:利用大模型能力,對(duì)“假答案”中置信度低的內(nèi)容進(jìn)行提問(wèn),生成一個(gè)問(wèn)題,用生成的問(wèn)題進(jìn)行向量召回。
  • Step3:利用召回出來(lái)的文本,重新生成新的“真答案”,然后進(jìn)行下一個(gè)句子的生成。

依然針對(duì)拜登的問(wèn)題,下圖給出了例子。

aa0ce066-4e1e-11ee-a25d-92fbcf53809c.png

接下來(lái)介紹一下實(shí)驗(yàn)結(jié)果。先聲明一下,這篇文章用的召回器(向量化模型)是BM25,2009年被提出,基于統(tǒng)計(jì)學(xué)的原理,屬于一種詞袋模型,效果一般。筆者認(rèn)為,如果用一些效果更好的基于神經(jīng)網(wǎng)絡(luò)的召回器,本文提出的方法提升就沒(méi)那么大了。

召回器榜單:
中文:https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB
英文:MTEB Leaderboard - a Hugging Face Space by mteb

多次召回方案在更加開(kāi)放的任務(wù)類型上提升比較小。如果是召回并回答一些模型不知道的垂類知識(shí),F(xiàn)LARE效果提升應(yīng)該是還不錯(cuò)的。

aa1c49d4-4e1e-11ee-a25d-92fbcf53809c.png

作者證明了用生成”假答案“進(jìn)行召回(Next)效果比用前一句進(jìn)行召回效果更好(印證了HYDE觀點(diǎn))。

aa2a976e-4e1e-11ee-a25d-92fbcf53809c.png

當(dāng)一個(gè)句子里生成的所有單詞的概率都大于一個(gè)閾值t時(shí),才不觸發(fā)召回文檔。當(dāng)t=0%時(shí),不觸發(fā)召回文檔;t=100%時(shí),每次都觸發(fā)召回。下圖展示了不同的t的情況下LLM回答效果。可以發(fā)現(xiàn)t過(guò)大或者過(guò)小都不是最好的??傮w上來(lái)看t=50%比較好。

aa3e377e-4e1e-11ee-a25d-92fbcf53809c.png

總結(jié)

分享的這兩篇文章都需要多次調(diào)用LLM,來(lái)增強(qiáng)召回,雖然在一些場(chǎng)景下比較有效,不過(guò)開(kāi)銷感覺(jué)有點(diǎn)太大了。其實(shí)最簡(jiǎn)單有效的提高召回效果的方式就是在自己業(yè)務(wù)的數(shù)據(jù)集上微調(diào)一下向量化模型。



聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 向量
    +關(guān)注

    關(guān)注

    0

    文章

    55

    瀏覽量

    11662
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1208

    瀏覽量

    24689
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    2423

    瀏覽量

    2640

原文標(biāo)題:大模型外掛知識(shí)庫(kù)優(yōu)化-大模型輔助向量召回

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于訓(xùn)練階段使用知識(shí)庫(kù)+KNN檢索相關(guān)信息輔助學(xué)習(xí)方法

    上面收的引入知識(shí)庫(kù)+KNN的方法,緩解了模型參數(shù)需要強(qiáng)記憶訓(xùn)練樣本的問(wèn)題。此外,文中還通過(guò)KNN檢索結(jié)果來(lái)指導(dǎo)模型的學(xué)習(xí)過(guò)程。
    的頭像 發(fā)表于 10-09 17:33 ?1627次閱讀

    模型卷價(jià)格,向量數(shù)據(jù)庫(kù)“卷”什么?

    被大模型“帶飛”這一年,向量數(shù)據(jù)庫(kù)才剛剛寫(xiě)下序言
    的頭像 發(fā)表于 05-23 09:24 ?1768次閱讀
    大<b class='flag-5'>模型</b>卷價(jià)格,<b class='flag-5'>向量</b>數(shù)據(jù)<b class='flag-5'>庫(kù)</b>“卷”什么?

    【實(shí)操文檔】在智能硬件的大模型語(yǔ)音交互流程中接入RAG知識(shí)庫(kù)

    非常明顯的短板。盡管這些模型在理解和生成自然語(yǔ)言方面有極高的性能,但它們?cè)谔幚韺I(yè)領(lǐng)域的問(wèn)答時(shí),卻往往不能給出明確或者準(zhǔn)確的回答。 這時(shí)就需要接一個(gè)專有知識(shí)庫(kù)來(lái)滿足產(chǎn)品專有和專業(yè)知識(shí)的回復(fù)需求,理論
    發(fā)表于 09-29 17:12

    【書(shū)籍評(píng)測(cè)活動(dòng)NO.52】基于大模型的RAG應(yīng)用開(kāi)發(fā)與優(yōu)化

    的思想,那么可以先從企業(yè)私有的知識(shí)庫(kù)中檢索出下面一段相關(guān)的補(bǔ)充知識(shí)。 你把檢索出的補(bǔ)充知識(shí)組裝到提示詞中,將其輸入大模型,并要求大模型基于
    發(fā)表于 12-04 10:50

    基于知識(shí)庫(kù)的智能策略翻譯技術(shù)

    提出基于知識(shí)庫(kù)的策略翻譯方法,設(shè)計(jì)策略翻譯組成結(jié)構(gòu),分析策略知識(shí)及其表示形式,建立動(dòng)態(tài)可擴(kuò)展的策略知識(shí)庫(kù),開(kāi)發(fā)可擴(kuò)展的策略編譯器和策略組裝器。實(shí)例測(cè)試表明,該
    發(fā)表于 04-22 09:42 ?11次下載

    領(lǐng)域知識(shí)庫(kù)的研究與設(shè)計(jì)

    領(lǐng)域知識(shí)庫(kù)的構(gòu)建有利于知識(shí)的檢索和共享。分析了領(lǐng)域知識(shí)庫(kù)應(yīng)具備的條件,指出構(gòu)建領(lǐng)域知識(shí)庫(kù)的有效方法;介紹了構(gòu)建知識(shí)庫(kù)的一般步驟,并設(shè)計(jì)出領(lǐng)域
    發(fā)表于 08-29 14:39 ?0次下載

    NXP NFC知識(shí)庫(kù)

    NXP NFC知識(shí)庫(kù)
    發(fā)表于 12-30 17:32 ?49次下載

    本體知識(shí)庫(kù)的模塊與保守?cái)U(kuò)充

    模塊化是軟件工程的一種方法,近年來(lái)被引入到本體領(lǐng)域,用以支持本體的重用和本體的整合。已有的工作沒(méi)有討論同時(shí)含有TBox和ABox的本體知識(shí)庫(kù)的模塊化的相關(guān)問(wèn)題。在定義本體知識(shí)庫(kù)的模塊和知識(shí)庫(kù)的保守
    發(fā)表于 11-24 09:58 ?0次下載

    虛擬儀器知識(shí)庫(kù)文件的結(jié)構(gòu)組成和知識(shí)庫(kù)文件自動(dòng)生成器的設(shè)計(jì)與應(yīng)用

    在前幾章中,重點(diǎn)介紹了VISA規(guī)范、儀器驅(qū)動(dòng)程序規(guī)范及軟面板規(guī)范,這些構(gòu)成了虛擬儀器及系統(tǒng)設(shè)計(jì)的關(guān)鍵部分。為了將VXI產(chǎn)品更有效地集成到虛擬儀器系統(tǒng)中去,VXI總線即插即用系統(tǒng)聯(lián)盟還定義了虛擬儀器知識(shí)庫(kù)文件的結(jié)構(gòu)。本章介紹了虛擬儀器知識(shí)庫(kù)文件的結(jié)構(gòu)組成,并重點(diǎn)介紹了
    發(fā)表于 12-05 14:21 ?2次下載
    虛擬儀器<b class='flag-5'>知識(shí)庫(kù)</b>文件的結(jié)構(gòu)組成和<b class='flag-5'>知識(shí)庫(kù)</b>文件自動(dòng)生成器的設(shè)計(jì)與應(yīng)用

    介紹幾篇EMNLP&apos;22的語(yǔ)言模型訓(xùn)練方法優(yōu)化工作

    訓(xùn)練過(guò)程中引入知識(shí)庫(kù),提升語(yǔ)言模型對(duì)事實(shí)知識(shí)的抽取能力——Pre-training Language Models with Deterministic Factual Knowledge; 針對(duì)目標(biāo)域效果
    的頭像 發(fā)表于 12-22 16:14 ?976次閱讀

    借助亞馬遜云科技大語(yǔ)言模型等多種服務(wù)打造下一代企業(yè)知識(shí)庫(kù)

    /算法/軟件工程師的人力投入和包括硬件在內(nèi)的物力投入。其次,為了進(jìn)一步提高搜索準(zhǔn)確率,如何引導(dǎo)用戶搜索描述更加準(zhǔn)確和充分利用用戶行為優(yōu)化搜索引擎也是常見(jiàn)的用戶痛點(diǎn)。此外,如何根據(jù)企業(yè)知識(shí)庫(kù)直接給出用戶提問(wèn)的答案
    的頭像 發(fā)表于 11-02 11:22 ?663次閱讀
    借助亞馬遜云科技大語(yǔ)言<b class='flag-5'>模型</b>等多種服務(wù)打造下一代企業(yè)<b class='flag-5'>知識(shí)庫(kù)</b>

    如何基于亞馬遜云科技LLM相關(guān)工具打造知識(shí)庫(kù)

    背景 本篇將為大家闡述亞馬遜云科技大語(yǔ)言模型下沉到具體行業(yè)進(jìn)行場(chǎng)景以及實(shí)施案例的介紹,是亞馬遜云科技官方《基于智能搜索和大模型打造企業(yè)下一代知識(shí)庫(kù)》系列的第四篇博客。感興趣的小伙伴可以進(jìn)入官網(wǎng)深入
    的頭像 發(fā)表于 11-23 17:53 ?1017次閱讀
    如何基于亞馬遜云科技LLM相關(guān)工具打造<b class='flag-5'>知識(shí)庫(kù)</b>

    如何手?jǐn)]一個(gè)自有知識(shí)庫(kù)的RAG系統(tǒng)

    用于自然語(yǔ)言處理任務(wù),如文本生成、問(wèn)答系統(tǒng)等。 我們通過(guò)一下幾個(gè)步驟來(lái)完成一個(gè)基于京東云官網(wǎng)文檔的RAG系統(tǒng) 數(shù)據(jù)收集 建立知識(shí)庫(kù) 向量檢索 提示詞與模型 數(shù)據(jù)收集 數(shù)據(jù)的收集再整個(gè)RAG實(shí)施過(guò)程中無(wú)疑是最耗人工的,涉及到收集、
    的頭像 發(fā)表于 06-17 14:59 ?568次閱讀

    視語(yǔ)坤川大模型智能體平臺(tái)亮相2024世界人工智能大會(huì)

    視語(yǔ)坤川大模型智能體平臺(tái)兼容多種多尺寸的大語(yǔ)言模型及多模態(tài)模型,并可以使用訓(xùn)推平臺(tái)組件進(jìn)行模型微調(diào),以適配不同的應(yīng)用場(chǎng)景。平臺(tái)還具備外掛
    的頭像 發(fā)表于 07-09 14:38 ?237次閱讀
    視語(yǔ)坤川大<b class='flag-5'>模型</b>智能體平臺(tái)亮相2024世界人工智能大會(huì)

    科技云報(bào)到:大模型時(shí)代下,向量數(shù)據(jù)庫(kù)的野望

    科技云報(bào)到:大模型時(shí)代下,向量數(shù)據(jù)庫(kù)的野望
    的頭像 發(fā)表于 10-14 17:18 ?245次閱讀
    RM新时代网站-首页