
使用Python調(diào)用免費(fèi)歸屬地查詢API
數(shù)據(jù):包含回答問(wèn)題的相關(guān)信息的數(shù)據(jù)集合(如文件、網(wǎng)頁(yè))。
檢索: 能從數(shù)據(jù)中檢索相關(guān)源知識(shí)的檢索策略。
生成: 利用相關(guān)源知識(shí),在 LLM 的幫助下生成回復(fù)。
在與模型直接交互時(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è)搜索。
我們將在今后的文章中介紹其他檢索策略。
檢索相關(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)今最流行的方法之一。 我們將在今后的文章中介紹其他方法。
訓(xùn)練后,LLM (大語(yǔ)言模型)被凍結(jié)。 模型的參數(shù)知識(shí)是固定的,無(wú)法更新。 但是,當(dāng)我們?cè)?RAG 管道中添加數(shù)據(jù)和檢索時(shí),我們可以根據(jù)底層數(shù)據(jù)源的變化更新源知識(shí),而無(wú)需重新訓(xùn)練模型。
模型的響應(yīng)也可以受限于只使用上下文中提供的源知識(shí),這有助于限制幻覺(jué)。 這種方法還允許使用較小的、針對(duì)特定任務(wù)的 LLM(大語(yǔ)言模型),而不是大型的、通用的模型。 這樣就能優(yōu)先使用源知識(shí)來(lái)回答問(wèn)題,而不是在訓(xùn)練過(guò)程中獲得的一般知識(shí)。
此外,RAG 還能提供用于回答問(wèn)題的源知識(shí)的清晰可追溯性。 這對(duì)于合規(guī)性和監(jiān)管原因非常重要,也有助于發(fā)現(xiàn) LLM(大語(yǔ)言模型) 的幻覺(jué)。 這就是所謂的源跟蹤。
檢索到相關(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ù)。
有效檢索是有效回答問(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)。
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
使用Python調(diào)用免費(fèi)歸屬地查詢API
最佳經(jīng)緯度查詢API免費(fèi)版推薦與使用指南
免費(fèi)API攔截工具入門(mén)指南:初學(xué)者必備教程與實(shí)用技巧
LLM內(nèi)容創(chuàng)作能力評(píng)估
使用Python語(yǔ)言調(diào)用零一萬(wàn)物API實(shí)戰(zhàn)指南
探索中國(guó)特色內(nèi)容知識(shí)的API合輯:構(gòu)建智慧應(yīng)用的橋梁
API 市場(chǎng)在 5 個(gè)領(lǐng)域中的作用
有道翻譯API:開(kāi)啟多語(yǔ)言交流新篇章
如何免費(fèi)調(diào)用手機(jī)歸屬地查詢API實(shí)現(xiàn)用戶定位
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)