1、DataFunSummitDataFunSummit#20242024RAG在辦公領域中的探索與實踐中移動信息技術有限公司/高級NLP算法工程師/付一韜分享大綱4總結2RAG核心技術架構3RAG構建挑戰與實踐1背景介紹RAG在辦公領域中的探索與創新背景介紹大語言模型的缺點背景介紹RAGRAG(Retrieval Augmented Generation),即檢索增強生成。它通過結合檢索系統和生成模型來提高語言生成的準確性和相關性。RAG 系統的組成 RAG的優勢在于它能夠在生成響應時引入外部知識,提供更符合上下文語境的回答。與預訓練模型不同,RAG的內部知識可以很容易地修改甚至實時補充。相比于
2、微調技術,RAG具備可觀測性、可解釋性等優勢,還可以有效降低大模型的幻覺問題RAG不是單一的一個組件,是由多個組件組成的復雜系統,LLM只是其中的一個組件。RAG系統的組件包括:數據源:存儲了要檢索的信息。數據處理模塊:負責將數據轉換為適合RAG系統使用的格式。檢索器(Retriever):負責根據用戶查詢從數據源中檢索相關信息。排序器(Ranker):將最相關的信息呈現給LLM用于內容生成。生成器(Generator):結合用戶查詢和相關信息,通過LLM生成最終的相應。RAG 的優勢分享大綱4總結2RAG核心技術架構3RAG構建挑戰與實踐1背景介紹RAG在辦公領域中的探索與創新RAG核心技術
3、架構Modular RAG:Transforming RAG Systems into LEGO-like Reconfigurable FrameworksRAG核心技術架構系統設計RAG核心技術架構整體思路 檢索:通過文檔解析、Query改寫以及混合檢索的方式,快速檢索出一批可能相關的候選文檔,以保證檢索回來的相關文檔“搜的更全”排序:通過粗排序、精排序和知識過濾的方式,在這些候選文檔中找出最相關的文檔,并將它們按相關性排序,以保證這些文檔的排序“排的更好”生成:通過知識排版,再結合用戶提問+Prompt模板組成提示詞輸入到大模型中,進而保證針對用戶提問的回答“回答的更準”用戶提問=檢索=
4、排序=生成=用戶RAG核心技術架構問答流程文檔解析知識庫(行業規范、操作手冊、書)字符串文本塊chunk索引構建劃分段落塊文本索引向量索引知識數據用戶提問重排序匹配K段和問題相關的知識原文提示詞Prompt(包含原文和問題)大語言模型(九天、通義千問、GLM)在線離線搜的更全排的更好回答的更準分享大綱4總結2RAG核心技術架構3RAG構建挑戰與實踐1背景介紹RAG在辦公領域中的探索與創新RAG構建挑戰及實踐文檔解析知識庫(行業規范、操作手冊、書)字符串文本塊chunk索引構建劃分段落塊文本索引向量索引知識數據用戶提問重排序匹配K段和問題相關的知識原文提示詞Prompt(包含原文和問題)大語言模
5、型(九天、通義千問、GLM)在線離線搜的更全問答流程RAG構建挑戰及實踐-“搜的更全”整體流程RAG構建挑戰及實踐-“搜的更全”文檔解析RAG仍有兩點優勢是短時間內無法被替代:1.版式多樣的文檔數據:針對版式各異的文檔數據,解析出邏輯區塊并進行問答;2.答案溯源:幫助用戶快速從原文中驗證答案的可靠性,從而提升整個問答系統的可信度?;谶@兩點優勢的發揮,都需要依賴一個強大的文檔解析流程。解析文檔內容是 RAG 系統最重要的前置工作之一。解決方案:基于RAGFlow的DeepDoc模塊進行二次開發。DeepDoc最大的特色是多樣化的文檔智能處理,對多種不同格式文檔的深度解析。在中國移動內部,文檔數
6、據更多是PDF和Word文檔,所以我們也對這兩類文檔數據進行重點優化。具體流程:1.數據解析Word:天然的版面結構Pdf:版面元素恢復(標題/段落/圖片),表格結構識別,閱讀順序還原2.數據切分結構切分:通過版面結構進行區域切分長度切分:結合切片長度(chunk size)進行切分(用于檢索的文本塊)3.創建索引分別調用文本分詞和向量模型對文本塊進行處理,寫入索引RAG構建挑戰及實踐-“搜的更全”多輪Query改寫對于指代消岐類,先是識別指代詞“它”,同時識別出上下文中的關鍵信息“總部制度管理小組”,然后替換掉“它“。對于信息補全類,先是識別出上下文中的關鍵信息“出差住宿費標準”,然后識別出
7、需要補全信息的位置在呢之前??偛恐贫裙芾硇〗M牽頭部門是哪個部門總部制度管理小組的牽頭部門是XXX。它的職責是什么總部制度管理小組的職責是什么指代人/物/組織識別指代詞識別成都的出差住宿費標準省公司領導:xxx其他成員:xxx那重慶呢那重慶的出差住宿費標準呢插入位置預測補全信息識別技術方案將多輪Query改寫轉換為關系抽取任務,指代消歧和信息補全看作關系,指代實體/指代詞/補全信息/插入位置看作實體,采用TPLinker模型構建。用戶:總部制度管理小組牽頭部門是哪個?系統:總部制度管理小組的牽頭部門是XXX。用戶:成都的出差住宿費標準系統:省公司領導:XXX,其他成員:XXX無法檢索到相關信息改
8、寫:總部制度管理小組的職責是什么指代消歧改寫:那重慶的出差住宿費標準呢信息補全用戶:它的職責是什么用戶:那重慶呢RAG構建挑戰及實踐-“搜的更全”混合檢索精確匹配短文本匹配傾向低頻詞匯的匹配可解釋強全文檢索優勢更精準:混合檢索可以同時利用全文檢索和向量檢索對數據進行查詢,提高檢索的準確性和可行度。更多樣:混合檢索可以利用向量檢索的多樣性,返回多種不同的檢索結果,提供更多的選擇和信息,滿足不同的用戶查詢需求和偏好。更強大:混合檢索可以利用全文檢索的邏輯運算、排序、過濾等功能,實現更復雜的查詢需求。更可解釋:混合檢索可以利用全文檢索的文本匹配和高亮顯示,實現更可解釋的檢索結果?;旌蠙z索優勢相近語義
9、理解多語言理解/跨語言理解多模態理解容錯性強向量檢索優勢RAG構建挑戰及實踐-“搜的更全”混合檢索 jieba和lac的分詞粒度太細 texmsart分詞粒度太粗 cutword分詞粒度適中模型支持語種維度最大token特點相關性bge-m3100+語言10248192支持超過100種語言的語義表示及檢索任務同時集成了稠密檢索、稀疏檢索、多向量檢索三大能力XX.X%bce-base-v1中英768512中英雙語和跨語種能力多領域覆蓋,收集了包括:教育、醫療、法律、金融、百科、科研論文、客服(faq)、通用QA等場景的語料XX.X%m3e-base 中英768512使用場景主要是中文,少量英文的
10、情況支持中英雙語的文本相似度計算和文本檢索等功能,未來還會支持代碼檢索XX.X%gte-base-zh中文768512從效果來說,多數任務上表現不錯XX.X%分詞工具分詞結果jieba關鍵時期/,/全面/建設/社會主義/現代化/國家/,/需要/一批/能夠/體現/國家/經濟/實力/、/科技/實力/和/國際/競爭力/的/世界/一流/企業/作為/關鍵/支撐/。lac關鍵/時期/,/全面/建設/社會主義/現代化/國家/,/需要/一批/能夠/體現/國家/經濟/實力/、/科技/實力/和/國際/競爭力/的/世界/一流/企業/作為/關鍵/支撐/。texsmart關鍵時期/,/全面建設社會主義現代化國家/,/需
11、要/一批/能夠/體現/國家/經濟實力/、/科技/實力/和/國際競爭力/的/世界一流/企業/作為/關鍵/支撐/。cutword關鍵時期/,/全面/建設/社會主義/現代化/國家/,/需要/一批/能夠/體現/國家/經濟實力/、/科技/實力/和/國際競爭力/的/世界一流/企業/作為/關鍵支撐/。開源分詞模型對比開源向量模型對比采用bge-m3和bce-base-v1模型雙向量模型檢索,以達到檢索互補的目的。RAG構建挑戰及實踐問答流程文檔解析知識庫(行業規范、操作手冊、書)字符串文本塊chunk索引構建劃分段落塊文本索引向量索引知識數據用戶提問重排序匹配K段和問題相關的知識原文提示詞Prompt(包含
12、原文和問題)大語言模型(九天、通義千問、GLM)在線離線排的更好RAG構建挑戰及實踐-“排的更好”整體流程top20top5過濾LLM生成混合檢索粗排序精排序知識過濾Indextop100RAG構建挑戰及實踐-“排的更好”粗排序Reciprocal Rank Fusion(RRF)RRF(Reciprocal Rank Fusion),即倒數排序融合,是一種將具有不同相關性指標的多個結果集組合成單個結果集的方法。它不依賴于搜索引擎分配的絕對分數,而是依賴于相對排名,因此結合具有不同分數尺度或分布的結果變得實際。它用于兩個或多個查詢并行執行的場景。排名BM25相關性向量相關性RRF排名結果(k=
13、0)1ABB:1/2+1/1=1.52BCA:1/1+1/3=1.33CAC:1/3+1/2=0.83RAG-Fusion:The Next Frontier of Search TechnologyRRF的優勢:1.不利用相關得分,而僅靠排名計算,簡單有效;2.適合多路召回,通過RRF選取topn后再進行重排序,這樣有助于提升重排序的效率;3.混合檢索的文檔進行合并去重;RAG構建挑戰及實踐-“排的更好”粗排序延遲交互模型,為什么是下一代RAG的標配?ColBERT:延遲交互模型(Late Interaction Model)ColBERT相比較雙編碼器和交叉編碼器(Cross Encode
14、r)的特點:1.相比于Cross Encoder,ColBERT仍采用雙編碼器策略,離線處理文檔編碼,在查詢時僅針對Query 編碼,因此處理的速度大大高于Cross Encoder;2.相比于雙編碼器,ColBERT輸出的是多向量而非單向量,這是從Transformer的最后輸出層直接獲得的,而雙編碼器則通過一個Pooling層把多個向量轉成一個向量輸出,因此丟失了部分語義。3.排序計算時,ColBERT 引入了延遲交互計算相似度函數,并將其命名為最大相似性(MaxSim)計算方法如下:對于每個查詢Token的向量都要與所有文檔Token 對應的向量進行相似度計算,并跟蹤每個查詢Token的
15、最大得分。RAG構建挑戰及實踐-“排的更好”精排序為什么需要排序模型呢?特性向量檢索Reranker交互層級文檔級Token級計算需求低高計算時機離線(索引時)在線(查詢時)結果廣泛但膚淺高度相關且精確優勢-快速高效-實施簡單-深刻理解上下文-高級語義分析局限性-缺乏深度-可能忽略用戶意圖-計算密集-模型復雜適合場景快速初步召回優化召回結果質量向量檢索和Reranker模型之間的差異有道QAnything背后的故事-關于RAG的一點經驗分享RAG構建挑戰及實踐-“排的更好”排序模型對比排序模型特點效果性能RRF簡單權重加權融合,完全按照各路召回的排名進行打分,丟掉了原始召回中的相似度信息,算法
16、魯棒,適合于性能要求高的場景。一般快Colbert延遲交互機制,既滿足了對排序過程中查詢和文檔之間復雜交互的捕獲,也能實現較快的排序性能,兼顧了性能與效果。適中適中Cross Encoder強大的重排序算法,能夠對每一對查詢和文檔進行詳細的相關性評估,適合于對準確性要求高的場景。好慢RRF、Colbert和Cross Encoder這三個模型的作用都是排序,可針對自己的業務場景進行選型適配。RAG構建挑戰及實踐-“排的更好”知識過濾Enhancing Retrieval and Managing Retrieval:A Four-Module Synergy for Improved Qual
17、ity and Efficiency in RAG Systems不相關文檔過濾指令:你的任務是解決NLI問題:給定知識中的前提和假設知識包含可靠的答案,有助于回答問題。你應該將回應分類為蘊含、矛盾或中性。問題:問題在這里。知識:待判斷的知識在這里。格式:解釋。*NLI結果。Prompt模板對于LLM來說是Garbage in Garbage out。為了解決檢索到的無關知識問題,引入知識過濾模塊,通過NLI任務來評估檢索到的知識與問題的相關性,排除不相關信息,提高回答的準確性。RAG構建挑戰及實踐問答流程文檔解析知識庫(行業規范、操作手冊、書)字符串文本塊chunk索引構建劃分段落塊文本索引
18、向量索引知識數據用戶提問重排序匹配K段和問題相關的知識原文提示詞Prompt(包含原文和問題)大語言模型(九天、通義千問、GLM)在線離線回答的更準RAG構建挑戰及實踐-“回答的更準”整體流程用戶提問排序的知識文本塊請基于內的內容回答問題,保證回答的正確性和簡潔性。knowledge我的問題是:questionPrompt模板LLM生成知識排版RAG構建挑戰及實踐-“回答的更準”知識排版第二章個人信息處理規則第一節一般規定第十三條符合下列情形之一的,個人信息處理者方可處理個人信息:(一)取得個人的同意;(二)為訂立、履行個人作為一方當事人的合同所必需,或者按照依法制定的勞動規章制度和依法簽訂的
19、集體合同實施人力資源管理所必需;(三)為履行法定職責或者法定義務所必需;(四)為應對突發公共衛生事件,或者緊急情況下為保護自然人的生命健康和財產安全所必需;(五)為公共利益實施新聞報道、輿論監督等行為,在合理的范圍內處理個人信息;(六)依照本法規定在合理的范圍內處理個人自行公開或者其他已經合法公開的個人信息;(七)法律、行政法規規定的其他情形。依照本法其他有關規定,處理個人信息應當取得個人同意,但是有前款第二項至第七項規定情形的,不需取得個人同意。第十四條基于個人同意處理個人信息的,該同意應當由個人在充分知情的前提下自愿、明確作出。法律、行政法規規定處理個人信息應當取得個人單獨同意或者書面同意
20、的,從其規定。個人信息的處理目的、處理方式和處理的個人信息種類發生變更的,應當重新取得個人同意。第十五條基于個人同意處理個人信息的,個人有權撤回其同意。個人信息處理者應當提供便捷的撤回同意的方式。個人撤回同意,不影響撤回前基于個人同意已進行的個人信息處理活動的效力。問題:上下文支持有限 分片粒度選擇chunk size:128/256/512 如何避免信息丟失 如何召回上下文用戶提問:什么情況下,信息處理者可以處理個人信息?用戶提問:個人信息處理的一般規定有哪些?較小的chunk:更精準的檢索能力較大的chunk:更完整豐富的語義解決方案:分片粒度期望:既能提供足夠的文本嵌入以便有效精準的執行
21、檢索,也能夠有足夠的上下文提供給LLM進行推理。*評估測試不同尺寸(chunk size)下的性能與質量。召回上下文 離線階段1.文檔解析:區分層級結構2.數據入庫:層級和分片信息 在線階段1.同層及父層上下文補全(用于生成的文本塊)2.匯總去重3.Prompt組裝:防止“迷失在中間”(lost in the middle)RAG構建挑戰及實踐-“回答的更準”FoRAGFoRAG:Factuality-optimized Retrieval Augmented Generation for Web-enhanced Long-form Question Answering存在問題 事實性不足:
22、現有系統生成的答案中只有大約一半的陳述能夠完全得到檢索到的參考資料的支持,這嚴重影響了這些系統的可信度。清晰邏輯的缺失:長篇問答(Long-form Question Answering)任務中理想的答案往往需要多方面組織和整合信息,但現有的開源方法在生成答案時往往缺乏清晰的邏輯結構。解決方案 大綱增強生成器(Outline-Enhanced Generator):提出了一種新的兩階段生成技術,首先生成一個組織模式和大綱,以提高生成答案的邏輯清晰度。Outline Stage(提綱階段):在此階段,生成器首先使用提綱模板,根據用戶查詢和上下文生成答案的提綱。提綱模板引導大型語言模型(LLM)考
23、慮哪種組織模式最適合當前問題,例如“因果關系”或“比較對比”。然后,LLM根據選定的組織模式輸出提綱,為后續的擴展階段做準備。Expansion Stage(擴展階段):基于前一階段生成的提綱,LLM擴展每個要點,構建最終答案。模型被要求在包含查詢、上下文和提綱的輸入下,生成對問題的答案。RAG構建挑戰及實踐-“回答的更準”FoRAGFoRAG:Factuality-optimized Retrieval Augmented Generation for Web-enhanced Long-form Question Answering#任務#根據資料回答問題。#要求#第一步:根據問題和資料生
24、成回答提綱。1.決定回答結構,從總分總、遞進、對比、因果、并列、時序等結構中選擇合適的來組織回答。2.根據回答結構,在提綱中要完整地列出答案中需要包括的要點。3.要點之間可以是并列、對照、遞進等關系,不可以是重復或者包含關系。4.要點要保持精煉,至少有1點,不能多于5點,5.每個要點僅可參考1段資料,并在提綱中標注資料編號。第二步:根據資料和提綱對問題進行回答。1.回答要以提綱為藍本,對問題進行詳細的回答。2.回答中可以采用編號或項目列表、小標題、latex公式等格式。3.回答中減少使用“首先”、“其次”、“再者”等簡單的連接詞。4.回答中不要生成重復內容。5.回答中不要標注資料來源。6.回答
25、應當嚴格依據資料,不采用不在資料中的內容。#格式#【結構】:【提綱】:【回答】:下面是1個示例輸入和2個滿足要求的示例輸出:#示例輸入#問題#2023年西安房貸利率最新消息#資料#1 一、西安商業貸款固定利率1年以內(含)4.35%5年(含)以下4.75%5年以上4.9%貸款市場報價利率LPR:目前1年期LPR為3.45%,5年期LPR為4.2%首套住房商業性個人住房貸款利率下限為不低于相應期限LPR減20個基點。二套住房商業性個人住房貸款利率下限為不低于相應期限貸款市場報價LPR利率加20個基點。二、西安公積金貸款利率5年(含)以下2.6%5年以上3.1%2 目前西安主流銀行的首套房利率集中
26、在4%左右,二套房利率差基本維持在4.9%。3 首先,雖然LPR在7月沒有變動,但西安首套房貸款利率已經低至4%,并且低于2009年房貸利率打七折后的4.156%!這點也恰恰和樓市走訪到的信息不謀而合,據了解,西安目前多數銀行首套房貸利率主要集中于4%,二套房貸利率基本在4.9%左右。4 7月20日,中國人民銀行授權全國銀行間同業拆借中心公布了最新一期貸款市場報價利率(LPR):1年期LPR為3.55%,5年期以上LPR為4.20%,均與上個月持平。但西安房貸利率較上月小幅下行,西安多家銀行首套房貸利率從4.1%降至4%。今年6月,LPR時隔10個月迎來下調,1年期和5年期以上LPR均跟隨政策
27、利率下調10個基點。記者了解到,從6月下旬開始,西安各大銀行相繼落實首套房貸利率政策動態調整機制,進行利率調整。目前,西安地區六大行及招商銀行、寧夏銀行、北京銀行、西安銀行等十余家銀行首套房貸利率降至4%,較LPR下浮0.2%。二套房貸利率同步下行,跌破5%大關,維持在4.9%。#示例輸出1#【結構】:總分總【提綱】:1.首套房商業貸款利率(僅使用2 回答)2.二套房商業貸款利率(僅使用2 回答)3.公積金貸款利率(僅使用1 回答)【回答】:西安的房貸市場在2023年呈現了一定的調整趨勢,特別是在商業貸款和公積金貸款利率方面。針對不同的貸款年限,首套和二套住房的貸款利率有所不同。下面是具體的利
28、率情況和銀行對房貸利率的調整概述。#首套房商業貸款利率首套住房商業貸款利率集中在4%左右,較LPR下浮0.2%。#二套房商業貸款利率二套房商業貸款利率基本維持在4.9%左右。#公積金貸款利率公積金貸款利率5年(含)以下為2.6%,5年以上為3.1%。西安的房貸市場在2023年經歷了積極的調整,尤其是首套房貸款利率的下降,為購房者帶來了更為優惠的借款條件。與此同時,公積金貸款的低利率也為有資格的借款人提供了額外的經濟支持。這些調整對于穩定房地產市場、支持合理住房需求有著重要的作用。#示例輸出2#【結構】:并列【提綱】:1.西安商業貸款固定利率(僅使用1 回答)2.西安公積金貸款利率(僅使用1 回
29、答)3.首套與二套房貸款利率最新變化(僅使用4 回答)【回答】:2023年西安的房貸利率最新消息如下:商業貸款固定利率:-1年以內(含)的利率為4.35%-5年(含)以下的利率為4.75%-5年以上的利率為4.9%公積金貸款利率:-5年(含)以下為2.6%-5年以上為3.1%據報道,7月20日,雖然LPR沒有變動,但西安首套房貸款利率已經低至4%,低于2009年房貸利率打七折后的4.156%,二套房貸利率同步下行,維持在4.9%。在6月LPR下調后,西安各大銀行相繼落實首套房貸利率政策動態調整機制,進行利率調整。下面是你要回答的問題和相應的資料,請根據上述要求、格式和示例進行輸出:#問題#qu
30、ery#資料#doc分享大綱4總結2RAG核心技術架構3RAG構建挑戰與實踐1背景介紹RAG在辦公領域中的探索與創新總結 分享總結介紹了我們在辦公領域RAG構建過程中在構建系統、構建算法兩個方面的實踐經驗。在檢索方面,通過文檔解析、多輪Query改寫和混合檢索等方式,保證檢索的相關文檔“搜的更全”。在排序方面,通過粗排序、精排序和知識過濾等方式,保證文檔的相關性排序“排的更好”。在生成方面,通過知識排版、Query+Prompt模板組裝等方式,保證大模型“回答的更準”。一點心得RAG想做出來比較容易,但想做好還是比較難的,做好每一個細節,不要將壓力全都交給LLM。一個生產級RAG的最終目標就是優化檢索和生成,貼近業務,按需設計。在實際應用中,需要工程和算法等多方面參與和努力,需要大量的實驗對比,不斷驗證和優化。DataFunSummitDataFunSummit#20242024THANKS