數(shù)據(jù):包含回答問(wèn)題的相關(guān)信息的數(shù)據(jù)集合(如文件、網(wǎng)頁(yè))。

檢索: 能從數(shù)據(jù)中檢索相關(guān)源知識(shí)的檢索策略。

生成: 利用相關(guān)源知識(shí),在 LLM 的幫助下生成回復(fù)。

RAG 管道流量

在與模型直接交互時(shí),LLM (大語(yǔ)言模型)會(huì)收到一個(gè)問(wèn)題,并根據(jù)其參數(shù)知識(shí)生成一個(gè)響應(yīng)。 RAG 在此過(guò)程中增加了一個(gè)額外步驟,利用檢索功能查找相關(guān)數(shù)據(jù),為 LLM (大語(yǔ)言模型)建立額外的上下文。

在下面的例子中,我們使用密集向量檢索策略從數(shù)據(jù)中檢索相關(guān)的源知識(shí)。 然后將這些源知識(shí)作為上下文傳遞給 LLM(大語(yǔ)言模型),以生成響應(yīng)。

RAG 不一定要使用密集矢量檢索,它可以使用任何能從數(shù)據(jù)中檢索出相關(guān)源知識(shí)的檢索策略。 它可以是簡(jiǎn)單的關(guān)鍵詞搜索,甚至是谷歌網(wǎng)頁(yè)搜索。

我們將在今后的文章中介紹其他檢索策略。

檢索源知識(shí)

檢索相關(guān)源知識(shí)是有效回答問(wèn)題的關(guān)鍵。

生成式人工智能最常用的檢索方法是使用密集向量進(jìn)行語(yǔ)義搜索。 語(yǔ)義搜索是一種需要嵌入模型將自然語(yǔ)言輸入轉(zhuǎn)化為表示源知識(shí)的密集向量的技術(shù)。 我們依靠這些密集向量來(lái)表示源知識(shí),因?yàn)樗鼈兡軌虿蹲轿谋镜恼Z(yǔ)義。 這一點(diǎn)非常重要,因?yàn)樗试S我們將源知識(shí)的語(yǔ)義與問(wèn)題進(jìn)行比較,以確定源知識(shí)是否與問(wèn)題相關(guān)。

給定一個(gè)問(wèn)題及其嵌入,我們就能找到最相關(guān)的源知識(shí)。

使用密集向量進(jìn)行語(yǔ)義搜索并不是唯一的檢索選擇,但卻是當(dāng)今最流行的方法之一。 我們將在今后的文章中介紹其他方法。

RAG 的優(yōu)勢(shì)

訓(xùn)練后,LLM (大語(yǔ)言模型)被凍結(jié)。 模型的參數(shù)知識(shí)是固定的,無(wú)法更新。 但是,當(dāng)我們?cè)?RAG 管道中添加數(shù)據(jù)和檢索時(shí),我們可以根據(jù)底層數(shù)據(jù)源的變化更新源知識(shí),而無(wú)需重新訓(xùn)練模型。

以源知識(shí)為基礎(chǔ)

模型的響應(yīng)也可以受限于只使用上下文中提供的源知識(shí),這有助于限制幻覺(jué)。 這種方法還允許使用較小的、針對(duì)特定任務(wù)的 LLM(大語(yǔ)言模型),而不是大型的、通用的模型。 這樣就能優(yōu)先使用源知識(shí)來(lái)回答問(wèn)題,而不是在訓(xùn)練過(guò)程中獲得的一般知識(shí)。

在答復(fù)中引用資料來(lái)源

此外,RAG 還能提供用于回答問(wèn)題的源知識(shí)的清晰可追溯性。 這對(duì)于合規(guī)性和監(jiān)管原因非常重要,也有助于發(fā)現(xiàn) LLM(大語(yǔ)言模型) 的幻覺(jué)。 這就是所謂的源跟蹤。

行動(dòng)中的 RAG

檢索到相關(guān)源知識(shí)后,我們就可以利用它來(lái)生成對(duì)問(wèn)題的回答。 為此,我們需要

建立背景:包含回答問(wèn)題相關(guān)信息的源知識(shí)集合(如文檔、網(wǎng)頁(yè))。 這為模型生成回復(fù)提供了背景。

提示模板:針對(duì)特定任務(wù)(回答問(wèn)題、總結(jié)文本)用自然語(yǔ)言編寫(xiě)的模板。 用作 LLM (大語(yǔ)言模型)的輸入。

問(wèn)題:與任務(wù)相關(guān)的問(wèn)題。 一旦有了這三個(gè)組件,我們就可以使用 LLM(大語(yǔ)言模型)生成對(duì)問(wèn)題的回復(fù)。

RAG 面臨的挑戰(zhàn)

有效檢索是有效回答問(wèn)題的關(guān)鍵。 良好的檢索可為上下文提供一系列不同的相關(guān)源知識(shí)。 然而,這與其說(shuō)是一門(mén)科學(xué),不如說(shuō)是一門(mén)藝術(shù),需要大量的實(shí)驗(yàn)才能獲得成功,而且在很大程度上取決于使用情況。

精確的密集矢量

由于大型文檔包含多種語(yǔ)義,因此難以用單個(gè)密集向量來(lái)表示。 為了實(shí)現(xiàn)有效的檢索,我們需要將文檔分解成較小的文本塊,這些文本塊可以準(zhǔn)確地表示為單個(gè)密集向量。

一般文本的常見(jiàn)方法是按段落分塊,并將每個(gè)段落表示為一個(gè)密集的向量。 根據(jù)您的使用情況,您可能希望使用標(biāo)題、小標(biāo)題甚至句子將文檔細(xì)分為若干小塊。

大背景

在使用 LLM(大語(yǔ)言模型) 時(shí),我們需要注意傳遞給模型的上下文的大小。

LLM (大語(yǔ)言模型)一次可處理的令牌數(shù)量有限制。 例如,GPT-3.5-turbo 有 4096個(gè)令牌的限制。

其次,隨著情境的增加,產(chǎn)生的反應(yīng)質(zhì)量可能會(huì)下降,從而增加產(chǎn)生幻覺(jué)的風(fēng)險(xiǎn)。

較大的背景也需要更多的時(shí)間來(lái)處理,更重要的是,它們會(huì)增加 LLM 的成本。

這又回到了檢索的藝術(shù)上。 我們需要在分塊大小和嵌入準(zhǔn)確性之間找到恰當(dāng)?shù)钠胶恻c(diǎn)。

結(jié)論:

Retrieval Augmented Generation(檢索增強(qiáng)生成)是一種強(qiáng)大的技術(shù),可以通過(guò)提供相關(guān)的源知識(shí)作為上下文,幫助提高 LLM (大語(yǔ)言模型)生成的回復(fù)質(zhì)量。 但 RAG 并不是靈丹妙藥。它需要大量的實(shí)驗(yàn)和調(diào)整才能達(dá)到最佳效果,而且在很大程度上取決于您的使用情況。

本文翻譯源自:https://www.elastic.co/search-labs/blog/retrieval-augmented-generation-rag

上一篇:

LLM內(nèi)容創(chuàng)作能力評(píng)估

下一篇:

OpenAI o1的價(jià)值及意義
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)