RAG-202502

目錄

  • RAG場景的坑
    • 知識等級金字塔
  • 初級RAG存在的問題
  • 高級RAG
    • 索前優化
    • 檢索優化
    • 檢索后優化
  • 優化經驗總結
  • 參考

RAG場景的坑

  1. 晦澀的專業術語

誤區:在專業領域中。許多文獻和資料中充滿了專業術語,這些術語對于非專業人士(甚至是大模型)來說都是難以理解的。

風險:當知識庫內容包含大量專業術語、且文獻錯綜復雜,對術語沒有做出很好的解釋和關聯時,模型可能就會“倒在”第一步。因為它根本無法很好地理解這些術語,更遑論最終輸出正確的答案了。

  1. 信息提取困難

誤區:有時候,文獻量太大,RAG系統在處理大量文本數據時,它可能無法有效地從中抽取關鍵信息。

風險:如果模型無法從復雜的文獻中提取出核心要點,那么生成的答案可能會缺乏重點,或者包含大量無關緊要的細節,例如,在法律文獻中,關鍵條款往往隱藏在大量法律條文中,模型在檢索時可能會“忽略”,或者一股腦地提取。導致回答要么缺漏重點,要么又多又雜、找不到重點。

  1. 自相矛盾/不一致的信息

誤區:有時候文獻過多,輸入到RAG系統中的數據可能包含不準確或錯誤的信息。比如,一個醫療的RAG系統,它的目的為醫生和患者在進行詢問時,提供準確的藥品信息。但是,這個系統在知識庫的建立時,收集了多種來源的藥品說明書、臨床試驗報告以及最新的醫學研究論文。就極有可能出現以下情況:

說明書A(來自制造商X,2020年發布):“阿莫西林適用于治療多種細菌感染,如肺炎、咽炎和皮膚感染。,成人每日劑量為500毫克,每日三次。”
最新研究論文C(2023年發表):“最新的臨床研究表明,阿莫西林對某些類型的細菌感染不再有效,因為它可能導致耐藥性。”

風險:生成答案時,可能會出現自相矛盾的回答,或者是每次的回答都不一致,容易誤導用戶。

  1. 過時內容

誤區:過時內容是指知識庫中的某些信息可能已經不再適用當前的情況。

風險:如果RAG系統提供了過時的信息,那么這些信息可能會導致用戶做出基于過時數據的決策。例如,在技術快速發展的領域,如信息技術或生物醫藥,幾年前的研究成果可能已經不再適用。

  1. 無關且多余的信息

誤區:無關且多余的信息是指知識庫中包含了一些與當前問題無關或多余的內容。

風險:這些信息可能會干擾模型的判斷,導致生成的答案中包含不必要的細節,從而使答案顯得冗長而不切題。例如,在用戶詢問某一產品的具體規格時,系統卻給出了大量與產品無關的市場營銷材料。

  1. 與“世界(知識)為敵”

誤區:這種經常出現在一些“軟”知識上,比如公司管理、領導力咨詢等等。在這種知識領域,并沒有唯一的、正確的答案,而是不同的“學派”會有不同的切入點和理論體系。這樣,同一個概念,在私有知識庫和世界知識的說法不同,就可能產出沖突。

風險:模型回答的輸出不穩定。面對“外掛”給到的知識點和自己訓練時就有的數據,大模型容易陷入“本能遷移”,更傾向于用自己訓練時的數據做回答。

知識等級金字塔

在這里插入圖片描述并不是所有的知識都是平等的。你需要評估哪些知識“有價值”,而價值的私有知識,才可以稱之為“知識資產”,并放入知識庫之中。

那什么是有價值的知識資產?盡管各領域的知識內容不盡相同,但在實踐中,我們可以遵循金字塔梯度的思路:

  1. 頂層,核心資產:這應該是公司私有化/專業領域中最為核心、最關鍵的知識內容。也是這個私有知識庫最想給用戶傳遞、最有競爭力的知識體系。例如,一家咨詢公司賴以成名的核心方法論,就是這家公司最核心的知識資產。在RAG的實踐中,一旦涉及到這類范圍的知識理解和輸出,必須要求準確、全面、深入,能夠體現權威性。
  2. 次層,獨家資產:重要等級比關鍵知識略低,但同樣是私有知識庫中的獨特的資產。這些知識也許會和世界知識有重合,但在私有知識庫中,必須按照私有知識庫中的要求回答。這類知識的一種常見場景就是公司的規章制度/文化內容/績效規則等,世界知識庫也許有大量類似的內容,但是在公司中必須要按照公司的要求進行。因此,對這類知識的解讀也同樣要求準確,且必須以私有知識庫為準,不得混淆世界知識。
  3. 第三層,普通資產:在實踐中,經常會出現一種情況:“私有”即“世界”。說白了,不管是多私有的知識,它的源頭必然能追溯到人類公有的知識體系中。所以,私有知識庫免不了有一些“其實和世界知識差不多,但表述、范圍上略有差異”的內容。這類其實是最容易和世界知識發生混淆,造成輸出不準確/冗余的“元兇”。因此,這類知識,我們建議不必“敝帚自珍”,在建立知識庫時大刀闊斧地去除即可。
  4. 第四層,不良資產:包括自相矛盾、過時、無用的信息,這些不良資產,一定要盡早剝離。在進行知識庫的建設時,就不能存在。

初級RAG存在的問題

主要在三個方面面臨挑戰:檢索質量低、生成質量差和增強過程難。

  1. 檢索質量低:首先使用長文本做索引,不能很好的突出主題,建立索引時,核心知識湮沒在大量無用的信息中,其次,使用用戶原始query做檢索,不能很好的突出其核心訴求,這就導致用戶query和知識索引不能很好的匹配,檢索質量比較差。
  2. 生成質量差:未檢索到知識或檢索知識質量差時,大模型自主回答私域問題時,容易產生幻覺,或回答內容比較空洞,無法直接使用,知識庫失去了本身的意義。
  3. 增強過程難:將檢索到的信息與不同任務整合可能具有挑戰性,有時會導致輸出不連貫或不一致。此外,還有一個擔憂是生成模型可能過度依賴增強信息,導致輸出僅僅是復述檢索內容而沒有添加有洞察力或綜合信息。

高級RAG

在這里插入圖片描述

索前優化

檢索前優化集中在知識切分、索引方式和query改寫的優化上。
知識切分主要把較長的文本按照語義內聚性的分析切成小塊,解決核心知識湮沒以及語義截斷的問題。
索引方式優化技術通過優化數據索引組織方式提升檢索效果。比如去除無效數據或插入某些數據來提高索引覆蓋程度,從而達到與用戶問題的高匹配度問題。
query改寫主要需要理解用戶想表達的意圖,把用戶原始的問題轉換成適合知識庫檢索的問題,從而提高檢索的精準程度。

檢索優化

檢索階段的目標是召回知識庫中最相關知識。通常,檢索基于向量搜索,它計算查詢與索引數據之間的語義相似性。因此,大多數檢索優化技術都圍繞嵌入模型展開:

  1. 微調嵌入模型,將嵌入模型定制為特定領域的上下文,特別是對于術語不斷演化或罕見的領域。例如,BAAI/bge是一個高性能的嵌入模型,可以進行微調。
  2. 動態嵌入根據單詞的上下文進行調整,而靜態嵌入則為每個單詞使用單一向量。例如,OpenAI的embeddings-ada-02是一個復雜的動態嵌入模型,可以捕獲上下文理解。
  3. 除了向量搜索之外,還有其他檢索技術,例如混合搜索,通常是指將向量搜索與基于關鍵字的搜索相結合的概念。如果您的檢索需要精確的關鍵字匹配,則此檢索技術非常有益。

檢索后優化

對檢索到的上下文進行額外處理可以幫助解決一些問題,例如超出上下文窗口限制或引入噪聲,從而阻礙對關鍵信息的關注。在RAG調查中總結的檢索后優化技術包括:
提示壓縮:通過刪除無關內容并突出重要上下文,減少整體提示長度。
重新排序:使用機器學習模型重新計算檢索到的上下文的相關性得分。

優化經驗總結

RAG想做出來比較容易,但想做好還是比較難的,每個步驟都有可能對最終效果產生影響。

  1. 我們在RAG中也做了大量的探索,比如: 知識切分方面,做了固定字符切分的效果驗證,分析索引噪音點,利用大模型做了大量的降噪處理;
  2. 在query改寫方面,利用大模型做了更加明確的意圖抽取,并對用戶的query進行降噪的探索;
  3. 在數據召回方面,embedding模型基于bge、voyage和cohere做了大量的測評,探索向量+分詞的召回策略;
  4. 在后置處理優化上,做了知識的去重以及rerank的探索等。

RAG的發展會越來越迅速,只要知識依賴和知識更新的問題沒有得到解決,RAG就有其存在的價值和一席之地。

參考

  1. 阿里云開發者《一文詳談RAG優化方案與實踐》
  2. RAG實踐篇(一):知識資產的“梯度”
    【RAG的6個坑和知識等級分類】
    https://www.woshipm.com/aigc/6130455.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70862.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70862.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70862.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CDN與群聯云防護的技術差異在哪?

CDN(內容分發網絡)與群聯云防護是兩種常用于提升網站性能和安全的解決方案,但兩者的核心目標和技術實現存在顯著差異。本文將從防御機制、技術架構、適用場景和代碼實現等方面詳細對比兩者的區別,并提供可直接運行的代碼示例。 一…

STM32-智能小車項目

項目框圖 ST-link接線 實物圖: 正面: 反面: 相關內容 使用L9110S電機模塊 電機驅動模塊L9110S詳解 | 良許嵌入式 測速模塊 語音模塊SU-03T 網站:智能公元/AI產品零代碼平臺 一、讓小車動起來 新建文件夾智能小車項目 在里面…

【Linux】vim 設置

【Linux】vim 設置 零、起因 剛學Linux,有時候會重裝Linux系統,然后默認的vi不太好用,需要進行一些設置,本文簡述如何配置一個好用的vim。 壹、軟件安裝 sudo apt-get install vim貳、配置路徑 對所有用戶生效: …

【Python爬蟲(90)】以Python爬蟲為眼,洞察金融科技監管風云

【Python爬蟲】專欄簡介:本專欄是 Python 爬蟲領域的集大成之作,共 100 章節。從 Python 基礎語法、爬蟲入門知識講起,深入探討反爬蟲、多線程、分布式等進階技術。以大量實例為支撐,覆蓋網頁、圖片、音頻等各類數據爬取&#xff…

【java進階】java多態深入探討

前言 在Java的編程宇宙中,多態是極為關鍵的概念,它宛如一條靈動的紐帶,串聯起面向對象編程的諸多特性,賦予程序宛如生命般的動態活力與高度靈活性。透徹理解多態,不僅是提升代碼質量的關鍵,更是開啟高效編程大門的鑰匙。 一、多態的定義與本質 多態,從概念層面來講,…

17164字符遷移

17164字符遷移 ??難度:中等 📖 📚 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();int q scanner.nextInt();scanner.next…

強化學習概覽

強化學習的目標 智能體(Agent)通過與環境(Environment)交互,學習最大化累積獎勵(Cumulative Reward)?的策略。 數學抽象 馬爾科夫決策過程(MDP) 收益 由于馬爾科夫決…

IDEA關閉SpringBoot程序后仍然占用端口的排查與解決

IDEA關閉SpringBoot程序后仍然占用端口的排查與解決 問題描述 在使用 IntelliJ IDEA 開發 Spring Boot 應用時,有時即使關閉了應用,程序仍然占用端口(例如:4001 端口)。這會導致重新啟動應用時出現端口被占用的錯誤&a…

QT:QPen、QBrush、與圖形抗鋸齒的關聯

QPen QPen 是 Qt 框架中用于定義繪圖時使用的畫筆屬性的類。在使用 QPainter 進行 2D 繪圖時,QPen 可以控制線條的外觀,比如線條的顏色、寬度、樣式(如實線、虛線等)、端點樣式(如方形端點、圓形端點等)和…

論文筆記(七十二)Reward Centering(三)

Reward Centering(三) 文章概括摘要3 基于值的獎勵中心化4 案例研究: 以獎勵為中心的 Q-learning5 討論、局限性與未來工作致謝 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan…

單例模式——c++

一個類,只能有1個對象 (對象在堆空間) 再次創建該對象,直接引用之前的對象 so構造函數不能隨意調用 so構造函數私有 so對象不能構造 如何調用私有化的構造函數: 公開接口調用構造函數 調用構造函數:singleTon instance; 但…

ReentrantLock 底層實現

一、核心概念 1 - CAS CAS(Compare-And-Swap,比較并交換)操作是一種無鎖的原子操作,它在多線程環境下能夠保證線程安全,主要是通過硬件級別的原子性以及樂觀鎖的思想來實現的。以下詳細介紹 CAS 操作保證線程安全的原…

NLP學習記錄十:多頭注意力

一、單頭注意力 單頭注意力的大致流程如下: ① 查詢編碼向量、鍵編碼向量和值編碼向量分別經過自己的全連接層(Wq、Wk、Wv)后得到查詢Q、鍵K和值V; ② 查詢Q和鍵K經過注意力評分函數(如:縮放點積運算&am…

算法-二叉樹篇08-完全二叉樹的節點個數

完全二叉樹的節點個數 力扣題目鏈接 題目描述 給你一棵 完全二叉樹 的根節點 root ,求出該樹的節點個數。 完全二叉樹 的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其余每層節點數都達到最大值,并且最下…

【原創工具】同文件夾PDF文件合并 By憐渠客

【原創工具】同文件夾PDF文件合并 By憐渠客 原貼:可批量合并多個文件夾內的pdf工具 - 吾愛破解 - 52pojie.cn 他這個存在一些問題,并非是軟件內自主實現的PDF合并,而是調用的pdftk這一工具,但樓主并沒有提供pdftk,而…

微軟云和金山云和k8有什么區別

Kubernetes(K8s)和微軟云(Microsoft Cloud)是兩種不同的技術,分別用于不同的目的。Kubernetes是一個開源的容器編排系統,用于自動化部署、擴展和管理容器化應用程序,而微軟云是一個提供多種云服…

libGL.so.1: cannot open shared object file: No such file or directory-linux022

in <module> from PyQt5.QtGui import QPixmap, QFont, QIcon ImportError: libGL.so.1: cannot open shared object file: No such file or directory 這個錯誤信息表示XXXX 在啟動時遇到問題&#xff0c;缺少 libGL.so.1 文件。libGL.so.1 是與 OpenGL 圖形庫相關的共…

滲透測試【seacms V9】

搭建seacms環境 我選擇在虛擬機中用寶塔搭建環境 將在官網選擇的下載下來的文件解壓后拖入寶塔面板的文件中 創建網站 添加站點 搭建完成seacmsV9 找到一個報錯口 代碼分析 <?php set_time_limit(0); error_reporting(0); $verMsg V6.x UTF8; $s_lang utf-8; $dfDbn…

論文閱讀筆記:Continual Forgetting for Pre-trained Vision Models

論文閱讀筆記&#xff1a;Continual Forgetting for Pre-trained Vision Models 1 背景2 創新點3 方法4 模塊4.1 問題設置4.2 LoRA4.3 概述4.4 GS-LoRA4.5 損失函數 5 效果6 結論 1 背景 出于隱私和安全考慮&#xff0c;如今從預先訓練的視覺模型中刪除不需要的信息的需求越來…

車載DoIP診斷框架 --- 連接 DoIP ECU/車輛的故障排除

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 簡單,單純,喜歡獨處,獨來獨往,不易合同頻過著接地氣的生活,除了生存溫飽問題之外,沒有什么過多的欲望,表面看起來很高冷,內心熱情,如果你身…