成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

RAG 應用效果不太理想?試試以下RAG優化策略大幅提升問答效果 原創

發布于 2024-11-20 12:03
瀏覽
0收藏

自從2022年12月 ChatGPT 橫空面世以來,AI 領域獲得了十足的關注和資本,其實AI的概念在早些年也火過一波,本輪 AI 熱潮相比于之前的 AI,最大的區別在于:生成式。通過海量文本訓練的、能識別人類語言、執行語言類任務、擁有大量參數的模型,稱之為大語言模型。GPT、LLaMA、Mistral、BERT等都是LLM,LLM是對訓練文本信息的壓縮,同時擁有了泛化能力,不同于數據庫和搜索引擎,LLM能創造性地生成歷史上沒有出現過的文本內容。

雖然LLM很強大,但有以下缺點:

  • 知識的局限性:模型自身的知識完全源于它的訓練數據,當LLM訓練完成后,本身數據已經固化,無法更新,對于一些實時性的、非公開的或離線的數據是無法獲取的,周期性的微調耗時耗力。
  • 幻覺問題:LLM模型在回答問題時,當遇到訓練數據中不存在或存在較少的對話場景,會根據已有知識拼湊出答案,而這種答案很可能是不存在的、不正確的,稱之為幻覺。無論訓練數據有多大,隨著使用使用場景的增加,幻覺問題不可避免。
  • 數據安全性:對于企業來說,將自身數據完全訓練至LLM模型中,一旦模型泄露會產生重大影響。

現如今解決上面缺點的一種方案就是RAG,即檢索增強生成(Retrieval Augmented Generation)。RAG能夠將私域數據獨立于LLM外,但又能在問答過程中被LLM參考,提高LLM的知識儲備和實時更新能力,這樣也可以降低LLM幻覺問題。一句話總結:RAG(檢索增強生成) = 檢索技術 + LLM 提示

但是RAG方案想真正落地到實際生產上,會遇到很多問題,為了解決這些問題,我們需要很多的優化方案,今天就來分享一些RAG領域常用的優化策略。

RAG 各模塊有哪些優化策略?

  • 文檔塊切分:設置適當的塊間重疊、多粒度文檔塊切分、基于語義的文檔切分、文檔塊摘要。
  • 文本嵌入模型:基于新語料微調嵌入模型、動態表征
  • 提示工程優化:優化模板增加提示詞約束、提示詞改寫
  • 大模型迭代:基于正反饋微調模型、量化感知訓練、提供大context window的推理模型。

如何利用知識圖譜進行上下文增強?

在典型的RAG架構中,基于向量數據庫進行上下文增強存在如下問題:

  1. 無法獲取長程關聯知識
  2. 信息密度低(尤其當LLM context window較小時不友好)

那么如何利用 知識圖譜進行上下文增強呢?

  • 一個比較好的方案是增加一路與向量庫平行的KG(知識圖譜)上下文增強策略。
  • 另一種方案是利用NL2Cypher進行KG增加:根據query抽取實體,然后把實體作為種子節點對圖進行采樣(必要時,可把KG中節點和query中實體先向量化,通過向量相似度設置種子節點),然后把獲取的子圖轉換成文本片段,從而達到上下文增強的效果。

RAG 應用效果不太理想?試試以下RAG優化策略大幅提升問答效果-AI.x社區

如何有選擇地進行知識庫召回

經典的RAG模型通過提供與問題相關的上下文信息來支持LLM在回答知識密集型問題。然而,這種方法存在兩個主要問題:

  • 過度檢索:RAG系統并不針對用戶意圖進行精細的判斷,而是對每次輸入都執行top-k的知識檢索,可能導致引入不必要或偏離主題的信息,從而影響輸出的質量。例如,當用戶僅是打招呼時(如 "hello"),理想的做法是直接利用LLM的能力來回答,而不需要查詢知識庫
  • 輸出一致性問題:無法百分百確定回答的內容就是完全參考檢索到的上下文還是來自模型自己的生成,因為大模型本身不能保證絕對的遵循,更何況知識的相關性也會存疑。

在實際應用RAG時,我們常常通過精細化的工作流程設計和創新性的Prompt調整來盡量緩解上述問題。具體來說:

  • 我們可以利用LLM的能力,在執行檢索步驟之前先判斷是否真的需要進行檢索。
  • 在給出Prompt指令時,我們可以確保LLM嚴格按照找到的參考知識來形成答案。
  • 我們還可能依賴LLM的強大能力對答案進行評估,經過多輪迭代優化,以提升答案的質量。

然而這些方案往往比較復雜,并可能引入一些難以控制的潛在問題。Self-RAG則是另一種解決這些挑戰的方案。具體可以參考這篇文章:??讓你的RAG應用更加智能!引入自我反思的大模型 RAG 框架(Self-RAG)??

如何讓RAG支持多模態

對多模態RAG而言有三種技術路線,如下我們做個簡要說明:

  • 選項1:對文本和表格生成summary,然后應用多模態embedding模型把文本/表格summary、原始圖片轉化成embedding存入多向量檢索器。對話時,根據query召回原始文本/表格/圖像。然后將其喂給多模態LLM生成應答結果。
  • 選項2:首先應用多模態大模型(GPT4-V、LLaVA、FUYU-8b)生成圖片summary。然后對文本/表格/圖片summary進行向量化存入多向量檢索器中。當生成應答的多模態大模型不具備時,可根據query召回原始文本/表格+圖片summary。
  • 選項3:前置階段同選項2相同。對話時,根據query召回原始文本/表格/圖片。構造完整Prompt,訪問多模態大模型生成應答結果。

RAG Fusion 優化策略

思路:檢索增強這一塊主要借鑒了RAG Fusion技術,這個技術原理比較簡單,概括起來就是,當接收用戶query時,讓大模型生成5-10個相似的query,然后每個query去匹配5-10個文本塊,接著對所有返回的文本塊再做個倒序融合排序,如果有需求就再加個精排,最后取Top K個文本塊拼接至prompt。

優點:

  • 增加了相關文本塊的召回率;
  • 對用戶的query自動進行了文本糾錯、分解長句等功能

缺點:無法從根本上解決理解用戶意圖的問題。

模塊化 RAG 優化策略

動機:打破了傳統的“原始 RAG”框架,這個框架原本涉及索引、檢索和生成,現在提供了更廣泛的多樣性和更高的靈活性。

模塊介紹:

  • 搜索模塊:融合了直接在(附加的)語料庫中進行搜索的方法。這些方法包括利用大語言模型(LLM)生成的代碼、SQL、Cypher 等查詢語言,或是其他定制工具。其搜索數據源多樣,涵蓋搜索引擎、文本數據、表格數據或知識圖等。
  • 記憶模塊:本模塊充分利用大語言模型本身的記憶功能來引導信息檢索。其核心原則是尋找與當前輸入最為匹配的記憶。這種增強檢索的生成模型能夠利用其自身的輸出來自我提升,在推理過程中使文本更加貼近數據分布,而非僅依賴訓練數據。
  • 額外生成模塊:面對檢索內容中的冗余和噪聲問題,這個模塊通過大語言模型生成必要的上下文,而非直接從數據源進行檢索。通過這種方式,由大語言模型生成的內容更可能包含與檢索任務相關的

信息。

  • 任務適應模塊:該模塊致力于將 RAG 調整以適應各種下游任務。
  • 對齊模塊:在 RAG 的應用中,查詢與文本之間的對齊一直是影響效果的關鍵因素。在模塊化 RAG的發展中,研究者們發現,在檢索器中添加一個可訓練的 Adapter 模塊能有效解決對齊問題。
  • 驗證模塊:在現實世界中,我們無法總是保證檢索到的信息的可靠性。檢索到不相關的數據可能會導致大語言模型產生錯誤信息。因此,可以在檢索文檔后加入一個額外的驗證模塊,以評估檢索到的

文檔與查詢之間的相關性,這樣做可以提升 RAG的魯棒性。

查詢轉換(Query Transformations)

  • 動機:在某些情況下,用戶的 query 可能出現表述不清、需求復雜、內容無關等問題;
  • 查詢轉換(Query Transformations):利用了大型語言模型(LLM)的強大能力,通過某種提示或方法將原始的用戶問題轉換或重寫為更合適的、能夠更準確地返回所需結果的查詢。LLM的能力確保了轉換后的查詢更有可能從文檔或數據中獲取相關和準確的答案。
  • 查詢轉換的核心思想:用戶的原始查詢可能不總是最適合檢索的,所以我們需要某種方式來改進或擴展它。

RAG 索引優化有哪些優化策略?

微調嵌入

  • 影響因素:影響到 RAG 的有效性;
  • 目的:讓檢索到的內容與查詢之間的相關性更加緊密;
  • 作用:可以比作在語音生成前對“聽覺”進行調整,優化檢索內容對最終輸出的影響。特別是在處理不斷變化或罕見術語的專業領域,這些定制化的嵌入方法能夠顯著提高檢索的相關性。

檢索處理流程

  • ReRank(重新排序)
  • Prompt 壓縮
  • RAG 管道優化
  • 混合搜索
  • 遞歸檢索與查詢引擎
  • StepBack-prompt 方法
  • 子查詢
  • HyDE 方法

知識庫召回率低

  1. 知識庫里面是否有對應答案?如果沒有那就是知識庫覆蓋不全問題
  2. 知識庫有,但是沒召回:
  • 知識庫知識是否被分割掉,導致召回出錯,解決方法 修改分割方式 or 利用bert 進行上下句預測保證知識點完整性
  • 知識沒有被召回,分析 query 和 doc 的特點:字相關還是語義相關,一般建議是先用 es做召回,然后才用模型做精排

chunk大小指定多少

在構建RAG時,確定塊大小是關鍵,它決定從向量存儲中檢索的文檔長度。太小可能缺失關鍵信息,太大可能帶來噪音。找到最佳塊大小需要適當平衡,這通常通過反復試驗來實現。不過,這并非隨機嘗試,而是通過在測試集上運行評估并計算指標來找出最佳值。LlamaIndex具有此類功能,詳細信息可參考他們的博客。

如何通過 混合檢索 提升 RAG 效果

雖然向量搜索有助于找到與查詢語義相關的塊,但在精確匹配關鍵詞方面可能不足。比如,在數百萬電商產品中搜“阿迪達斯 XYZ 參考白色運動鞋”,返回的都是白色阿迪達斯運動鞋,沒有精確匹配XYZ參考。針對這種情況,混合檢索能提供解決方案。它將矢量搜索和關鍵詞搜索的優勢結合起來,既能匹配相關關鍵字,又能保持查詢意圖的控制。想了解更多混合搜索信息,可查閱Pinecone的入門指南。

如何通過 重新排名 提升 RAG 效果

查詢向量存儲時,前K個結果可能并未按相關性排序。在這些相關塊中,最相關的可能是第5或第7個,而非第1或第2個,這就需要重新排名。簡單說,重新排名就是把最相關的信息調整到提示的前沿。這一概念已在LlamaIndex、LangChain和HayStack等多種框架中實現。比如,Diversity Ranker側重于按文檔多樣性重新排序,而LostInTheMiddleRanker則在上下文窗口開始和結束間交替放置最佳文檔。

RAG 如何 提升索引數據的質量

索引數據的質量直接影響RAG答案的質量,因此優先工作是在攝取數據前盡可能清理它們——垃圾入則垃圾出。這包括刪除重復/冗余信息,識別不相關文檔,及時校驗事實的準確性。在使用過程中,對RAG的維護和更新過時文檔也至關重要。在構建RAG時,我們常常忽視了清理數據這一步驟,直接倒入所有文檔而未驗證其質量。

以下我建議可以快速解決一些問題:

  1. 通過清理特殊字符、奇怪的編碼、不必要的 HTML 標簽來消除文本噪音……還記得使用正則表達式的老的NLP 技術嗎?可以把他們重復使用起來;
  2. 通過實施一些主題提取、降維技術和數據可視化,發現與主題無關的文檔,刪除它們;
  3. 通過使用相似性度量刪除冗余文檔

如何通過添加元數據 提升RAG 效果

將元數據與索引向量結合使用有助于更好地構建它們,同時提高搜索相關性。

以下是一些元數據有用的情景:

  • 如果你搜索的項目中,時間是一個維度,你可以根據日期元數據進行排序
  • 如果你搜索科學論文,并且你事先知道你要找的信息總是位于特定部分,比如實驗部分,你可以將文章部分添加為每個塊的元數據并對其進行過濾僅匹配實驗

元數據很有用,因為它在向量搜索之上增加了一層結構化搜索。

如何通過 輸入查詢與文檔對齊 提升 RAG 效果

LLMs 和 RAGs 之所以強大,因為它們可以靈活地用自然語言表達查詢,從而降低數據探索和更復雜任務的進入

門檻。然而,有時,用戶用幾個詞或短句的形式作為輸入查詢,查詢結果會出現與文檔之間存在不一致的情況。通過一個例子來理解這一點。這是關于馬達引擎的段落(來源:ChatGPT):

發動機堪稱工程奇跡,以其復雜的設計和機械性能驅動著無數的車輛和機械。其核心是,發動機通過一系列精確協調的燃燒事件將燃料轉化為機械能。這個過程涉及活塞、曲軸和復雜的閥門網絡的同步運動,所有這些都經過仔細校準,以優化效率和功率輸出。現代發動機有多種類型,例如內燃機和電動機,每種都有其獨特的優點和應用。對創新的不懈追求不斷增強汽車發動機技術,突破性能、燃油效率和環境可持續性的界限。無論是在開闊的道路上為汽車提供動力還是驅動工業機械,電機仍然是現代世界動態運動的驅動力。

在這個例子中,我們制定一個簡單的查詢,“你能簡要介紹一下馬達引擎的工作原理嗎?”,與段落的余弦相似性

為 0.72。其實已經不錯了,但還能做得更好嗎?

為了做到這一點,我們將不再通過段落的嵌入來索引該段落,而是通過其回答的問題的嵌入來索引該段落。考慮這三個問題,段落分別回答了這些問題:

  1. 發動機的基本功能是什么?
  2. 發動機如何將燃料轉化為機械能?
  3. 發動機運行涉及哪些關鍵部件,它們如何提高發動機的效率?

通過計算得出,它們與輸入查詢的相似性分別為:

  1. 0.864
  2. 0.841
  3. 0.845

這些值更高,表明輸入查詢與問題匹配得更精確。將塊與它們回答的問題一起索引,有助于解決對齊問題并提高搜索相關性:我們不是優化與文檔的相似性,而是優化與底層問題的相似性。

如何通過 提示壓縮 提升 RAG 效果

研究表明,在檢索上下文中的噪聲會對RAG性能產生不利影響,更精確地說,對由 LLM 生成的答案產生不利影

響。一些方案建議在檢索后再應用一個后處理步驟,以壓縮無關上下文,突出重要段落,并減少總體上下文長度。

選擇性上下文等方法和 LLMLingua 使用小型LLM來計算即時互信息或困惑度,從而估計元素重要性。

RAG 未來發展方向

RAG 的三大未來發展方向:垂直優化、橫向擴展以及 RAG 生態系統的構建。

Rag 的垂直優化

盡管 RAG 技術在過去一年里取得了顯著進展,但其垂直領域仍有幾個重點問題有待深入探究:

  1. RAG 中長上下文的處理問題
  2. RAG 的魯棒性研究
  3. RAG 與微調(Fine-tuning)的協同作用
  4. RAG 的工程應用

在工程實踐中,諸如如何在大規模知識庫場景中提高檢索效率和文檔召回率,以及如何保障企業數據安全——例

如防止 LLM 被誘導泄露文檔的來源、元數據或其他敏感信息——都是亟待解決的關鍵問題。

RAG 的水平擴展

在水平領域,RAG 的研究也在迅速擴展。從最初的文本問答領域出發,RAG 的應用逐漸拓展到更多模態數據,

包括圖像、代碼、結構化知識、音視頻等。

RAG 生態系統

下游任務與評估RAG通過集成廣泛的知識庫信息,展現了處理復雜查詢和生成豐富回應的潛力。在開放式問題解答、事實驗證等任務中,RAG表現出色。其應用不僅提升了信息準確性和相關性,還增強了回應的多樣性和深度。特別在醫學、法律和教育等專業領域,RAG能夠以較低訓練成本和優秀性能突顯其價值。完善RAG評估體系,發展更精確的評估指標如上下文相關性、內容創新性等,以及提高模型可解釋性,都是未來工作重點。

技術棧在RAG的技術生態中,相關技術棧的發展起著關鍵作用。ChatGPT的流行帶動了LangChain和LLamaIndex等技術的發展,它們提供了豐富的RAG相關API,成為大模型時代的核心技術。同時,也有新興技術棧涌現,如Flowise AI6專注于低代碼操作,使用戶可以簡單地操控RAG各類AI應用。如HayStack、Meltno和Cohere Coral這樣的新興技術也在不斷進步。隨著技術棧的發展與優化,RAG技術也得到了推動。目前,RAG工具鏈的技術棧已初步建立,許多企業級應用紛紛涌現,但一個全面的整合平臺還在完善中。


本文轉載自公眾號AI 博物院 作者:longyunfeigu

原文鏈接:??https://mp.weixin.qq.com/s/BPq8ZPcQjPGCM1hgP10F0g??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2024-11-20 17:18:06修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 视频一区二区中文字幕日韩 | 中文字幕日韩在线观看 | 日韩精品 电影一区 亚洲 | 懂色一区二区三区免费观看 | 欧美一级黄 | 久久国内| 久久久久亚洲精品 | 精品国产欧美 | 中文字幕在线观看一区 | 亚洲综合二区 | 国产精品久久久久久久久久 | 亚洲一区中文字幕 | 国产激情偷乱视频一区二区三区 | 精品国产视频 | 久久国产成人 | 亚洲成人av| 男人午夜视频 | 久久精品视频播放 | 久久综合一区 | 在线视频日韩 | 亚洲一区二区三区在线 | 久久久精品久久久 | 中文字幕一区二区三区在线观看 | 国产成人免费视频网站高清观看视频 | 亚洲国产区 | 日韩二三区| 最新日韩在线 | 色婷婷激情综合 | 欧美一区免费 | 黄色一级电影免费观看 | 精国产品一区二区三区 | 亚洲精品高清视频 | 免费a在线 | 欧美精品91爱爱 | 野狼在线社区2017入口 | 国产欧美日韩精品在线观看 | 成人日韩精品 | 在线色网址 | 国产一区| 久草视频网站 | 男女羞羞免费视频 |