前言
LLM 問題
幻覺:在沒有答案的情況下提供虛假信息。
過時:當用戶需要特定的當前響應時,提供過時或通用的信息。
來源:從非權威來源創建響應。由于術語混淆,不同的培訓來源使用相同的術語來談論不同的事情,因此會產生不準確的響應。
RAG 是解決其中一些挑戰的一種方法。它會重定向 LLM,從權威的、預先確定的知識來源中檢索相關信息。組織可以更好地控制生成的文本輸出,并且用戶可以深入了解 LLM 如何生成響應。
RAG 范式
RAG(Retrieval Augmented Generation)有三個核心組成部分:檢索、增強和生成。其整個流程主要可以分為以下五個基本步驟:
知識文檔的準備: 這是構建RAG系統的首要步驟,涉及將各種格式的知識源(如Word文檔、TXT文件、PDF文件、圖片、視頻等)通過文檔加載器或多模態模型(如OCR技術)轉換為純文本數據。此外,還需要執行文檔切片,將長篇文檔分割成多個文本塊,以提高信息檢索的準確性和效率。
嵌入模型: 嵌入模型(Embedding Model)的任務是將文本轉換為向量形式。這一步驟通過計算文本的向量表示,使得能夠通過向量之間的差異來識別語義上相似的句子。例如,Word2Vec、BERT和GPT等模型都可用于生成文本的向量表示。
向量數據庫: 向量數據庫專門設計用于存儲和檢索向量數據。所有通過嵌入模型生成的向量都會被存儲在這樣的數據庫中,優化了處理和存儲大規模向量數據的效率。
查詢檢索: 用戶的問題首先被輸入到嵌入模型進行向量化處理,然后在向量數據庫中搜索與該問題向量語義上相似的知識文本或歷史對話記錄并返回。
生成回答: 最后,結合用戶提問和檢索到的信息,構建出一個提示模版(Prompt Template),輸入到大型語言模型(Large Language Model, LLM)中,由模型生成準確的回答。
這個流程是RAG系統的基礎,但文章中也提到了多個環節有著極大的優化空間,包括數據清洗、分塊處理、元數據、多級索引、索引/查詢算法、查詢轉換、檢索參數、高級檢索策略、重排模型、提示詞和大語言模型等方面。這些優化策略可以幫助提高RAG系統的性能和可用性。
RAG vs 微調
優化技術的差異:RAG類似于為模型提供教科書,使其能夠根據特定查詢檢索信息。適用于模型需要回答特定查詢或處理特定信息檢索任務的場景。微調則類似于讓學生通過廣泛學習來內化知識,適用于模型需要復制特定結構、風格或格式的情況。
適用場景:
RAG:適用于需要回答具體查詢或特定信息檢索任務的場景。
微調:適用于強調基礎模型中的現有知識,修改或定制模型輸出,為模型提供復雜指令的場景。
互補性:RAG和微調不是相互排斥的,而是可以相互補充,從不同層面增強模型的能力。在某些情況下,結合這兩種技術可以實現最佳的模型性能。
原始RAG、高級RAG和模塊化RAG
原始RAG(Naive RAG)
原始RAG是最早的研究范式,主要包括以下幾個步驟:
建立索引: 這一過程通常在離線狀態下進行,包括數據清理、提取,將不同文件格式(如PDF、HTML、Word、Markdown等)轉換為純文本,然后進行文本分塊,并創建索引。
檢索: 使用相同的編碼模型將用戶輸入轉換為向量,計算問題嵌入和文檔塊嵌入之間的相似度,選擇相似度最高的前K個文檔塊作為當前問題的增強上下文信息。
生成: 將給定的問題和相關文檔合并為新的提示,然后由大型語言模型基于提供的信息回答問題。如果有歷史對話信息,也可以合并到提示中,用于多輪對話。
原始RAG面臨的挑戰
檢索質量問題: 包括低精度(檢索集中不所有塊都與查詢相關,導致可能的幻覺和斷層問題)和低召回率(無法檢索到所有相關塊,阻止LLM獲取足夠的上下文來合成答案)等。
響應生成質量問題: 包括幻覺(模型編造不存在于上下文中的答案)、不相關性(模型生成的答案未能解決查詢問題)以及有害或偏見性回應等。
增強過程的挑戰:包括有效整合檢索段落的上下文與當前生成任務、冗余和重復(多個檢索段落包含相似信息導致內容重復)、確定多個檢索段落對生成任務的重要性或相關性、處理不同寫作風格或語氣的差異以確保輸出一致性等。
高級RAG (Advanced RAG)
高級RAG針對原始RAG的不足之處進行了有針對性的改進。這些改進涉及檢索生成的質量、索引的優化、檢索過程的優化等多個方面。
預檢索過程
優化數據索引: 提高索引內容的質量,包括增加索引數據的細粒度、優化索引結構、添加元數據、對齊優化和混合檢索等五個主要策略。
嵌入和索引: 涉及通過語言模型將文本編碼為向量的過程,包括微調嵌入和動態嵌入。
微調嵌入: 提高檢索內容與查詢之間的相關性。
動態嵌入: 基于單詞出現的上下文動態調整嵌入。
檢索過程優化
重新排序(ReRank): 對檢索到的信息進行重新排序,將最相關的信息放置在提示的邊緣。
提示壓縮: 通過壓縮不相關的上下文、突出關鍵段落和減少總體上下文長度來提高RAG性能。
高級RAG 特點
高級RAG通過先進的索引方法、更精細的檢索策略和有效的后處理方法來優化RAG的性能。
它采用不同的檢索技術組合,適應不同的查詢類型和信息需求,確保一致地檢索到最相關和上下文豐富的信息。
高級RAG還包括對嵌入模型的微調,以提高檢索內容的相關性,并使用動態嵌入技術以更好地處理上下文變化。
RAG 管道優化
在“RAG管道優化”這一部分中,論文討論了針對檢索過程的優化,旨在提高RAG系統的效率和信息質量。這些研究主要集中在智能組合各種搜索技術、優化檢索步驟、引入認知回溯的概念、靈活應用多樣化的查詢策略,以及利用嵌入相似性。這些努力共同追求在RAG檢索中實現效率和上下文信息豐富度之間的平衡。
RAG檢索過程的優化方法:
探索混合搜索: 通過智能融合關鍵字搜索、語義搜索和向量搜索等技術,RAG系統可以利用每種方法的優勢,適應不同類型的查詢和信息需求,確保一致地檢索到最相關和上下文豐富的信息。
遞歸檢索和查詢引擎: 實施遞歸檢索和復雜查詢引擎是優化RAG系統檢索的另一種強有力的方法。遞歸檢索意味著在初始檢索階段獲取較小的文檔塊以捕獲關鍵語義含義,然后在后續階段向語言模型提供更多上下文信息的較大塊。這種兩步檢索方法有助于在效率和富有上下文的響應之間找到平衡。
StepBack-prompt: 將StepBack-prompt方法集成到RAG過程中,鼓勵大型語言模型從特定實例中退后,參與對背后的一般概念或原則的推理。實驗結果表明,在各種具有挑戰性的、推理密集的任務中,結合后向提示的運用能顯著提高性能,顯示出其在RAG中的自然適應性。
子查詢: 可以在不同場景中采用各種查詢策略,包括使用LlamaIndex等框架提供的查詢引擎,運用樹查詢、向量查詢,或使用最基本的塊序列查詢。
HyDE: 這種方法基于假設,即生成的答案在嵌入空間中可能比直接查詢更接近。使用大型語言模型,HyDE針對查詢生成一個假設的文檔(答案),嵌入該文檔,并利用這種嵌入來檢索與假設文檔類似的真實文檔。與基于查詢的嵌入相似性不同,這種方法強調從答案到答案的嵌入相似性。然而,這種方法可能并不總是能夠產生有利的結果,特別是在語言模型不熟悉討論主題的情況下,可能導致生成更多錯誤實例。
模塊化RAG
模塊化RAG結構打破了傳統的原始RAG框架(索引、檢索和生成),提供了更大的多樣性和整個過程的靈活性。它整合了各種方法來擴展功能模塊,例如在相似性檢索中加入搜索模塊,以及在檢索器中應用微調方法。此外,特定問題的出現促使重構的RAG模塊和迭代方法的出現。模塊化RAG范式正成為RAG領域的主流,允許采用序列化管道或跨多個模塊的端到端訓練方法。
新模塊
搜索模塊: 與原始/高級RAG中的查詢和語料庫之間的相似性檢索不同,搜索模塊針對特定場景,將直接搜索引入過程中,使用由LLM生成的代碼、查詢語言(如SQL、Cypher)或其他自定義工具。
記憶模塊: 利用LLM自身的記憶能力來指導檢索。原則是找到與當前輸入最相似的記憶。例如,Self-mem迭代地使用一個檢索增強生成器來創建一個無限的記憶池,結合“原始問題”和“對偶問題”。
額外生成模塊: 在檢索到的內容中,冗余和噪聲是常見問題。額外生成模塊利用LLM生成所需的上下文,而不是直接從數據源檢索。
任務適應模塊:專注于轉換RAG以適應各種下游任務。例如,UPRISE自動從預構建的數據池中檢索給定零樣本任務輸入的提示,增強跨任務和模型的通用性。
對齊模塊: 查詢和文本之間的對齊一直是影響RAG有效性的關鍵問題。在模塊化RAG時代,研究人員發現,在檢索器中添加一個可訓練的Adapter模塊可以有效緩解對齊問題。
驗證模塊: 在現實世界場景中,不能總保證檢索到的信息是可靠的。檢索到不相關的數據可能導致LLM出現幻覺。因此,在檢索文檔后可以引入額外的驗證模塊,以評估檢索到的文檔與查詢之間的相關性,增強RAG的魯棒性。
場景
RAG技術可以在以下一些常見的自然語言處理任務中發揮作用:
問答系統 (QA Systems)
RAG可以用于構建強大的問答系統,能夠回答用戶提出的各種問題。它能夠通過檢索大規模文檔集合來提供準確的答案,無需針對每個問題進行特定訓練。
文檔生成和自動摘要 (Document Automatic Generation and Summarization)
RAG可用于自動生成文章段落、文檔或自動摘要,基于檢索的知識來填充文本,使得生成的內容更具信息價值。
智能助手和虛擬代理 (Intelligent Assistants and Virtual Agents)
RAG可以用于構建智能助手或虛擬代理,結合聊天記錄回答用戶的問題、提供信息和執行任務,無需進行特定任務微調。
信息檢索 (Information Retrieval)
RAG可以改進信息檢索系統,使其更準確深刻。用戶可以提出更具體的查詢,不再局限于關鍵詞匹配。
知識圖譜填充 (Knowledge Graph Population)
RAG可以用于填充知識圖譜中的實體關系,通過檢索文檔來識別和添加新的知識點。
優勢
明晰了RAG的應用范圍后,可能會產生疑問:為什么這些場景需要使用RAG,而不是進行微調或者通過其他方法來實現呢?接下來,我們進一步了解RAG的優勢。
RAG的具體優勢:
準確性提高: RAG通過與外部知識相關聯的答案來提高準確性,減少語言模型中的幻覺問題,使生成的響應更準確、可靠。
保持信息的時效性和準確性:與傳統只依賴訓練數據的語言模型相比,RAG可以識別最新信息,保持響應的時效性和準確性。
透明度: RAG通過引用來源提高答案的透明度,增加用戶對模型輸出的信任。
定制化能力: RAG可以通過索引相關文本語料庫來定制不同領域的模型,為特定領域提供知識支持。
安全性和隱私管理: RAG在數據庫中內置了角色和安全控制,可以更好地控制數據使用。
可擴展性: RAG能夠處理大規模數據集而無需更新所有參數和創建訓練集,使其在經濟上更有效率。
結果的可信度: RAG從最新數據中選擇確定性結果,而微調模型在處理動態數據時可能出現幻覺和不準確性,缺乏透明度和可信度。
如何系統的去學習AI大模型LLM ?
作為一名熱心腸的互聯網老兵,我意識到有很多經驗和知識值得分享給大家,也可以通過我們的能力和經驗解答大家在人工智能學習中的很多困惑,所以在工作繁忙的情況下還是堅持各種整理和分享。
但苦于知識傳播途徑有限,很多互聯網行業朋友無法獲得正確的資料得到學習提升,故此將并將重要的 AI大模型資料
包括AI大模型入門學習思維導圖、精品AI大模型學習書籍手冊、視頻教程、實戰學習等錄播視頻免費分享出來。
所有資料 ?? ,朋友們如果有需要全套 《LLM大模型入門+進階學習資源包》,掃碼獲取~
👉CSDN大禮包🎁:全網最全《LLM大模型入門+進階學習資源包》免費分享(安全鏈接,放心點擊)👈
?
一、全套AGI大模型學習路線
AI大模型時代的學習之旅:從基礎到前沿,掌握人工智能的核心技能!
二、640套AI大模型報告合集
這套包含640份報告的合集,涵蓋了AI大模型的理論研究、技術實現、行業應用等多個方面。無論您是科研人員、工程師,還是對AI大模型感興趣的愛好者,這套報告合集都將為您提供寶貴的信息和啟示。
三、AI大模型經典PDF籍
隨著人工智能技術的飛速發展,AI大模型已經成為了當今科技領域的一大熱點。這些大型預訓練模型,如GPT-3、BERT、XLNet等,以其強大的語言理解和生成能力,正在改變我們對人工智能的認識。 那以下這些PDF籍就是非常不錯的學習資源。
四、AI大模型商業化落地方案
階段1:AI大模型時代的基礎理解
- 目標:了解AI大模型的基本概念、發展歷程和核心原理。
- 內容:
- L1.1 人工智能簡述與大模型起源
- L1.2 大模型與通用人工智能
- L1.3 GPT模型的發展歷程
- L1.4 模型工程
- L1.4.1 知識大模型
- L1.4.2 生產大模型
- L1.4.3 模型工程方法論
- L1.4.4 模型工程實踐 - L1.5 GPT應用案例
階段2:AI大模型API應用開發工程
- 目標:掌握AI大模型API的使用和開發,以及相關的編程技能。
- 內容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具類框架
- L2.1.4 代碼示例 - L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架應用現狀
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架與Thought
- L2.2.5 Prompt框架與提示詞 - L2.3 流水線工程
- L2.3.1 流水線工程的概念
- L2.3.2 流水線工程的優點
- L2.3.3 流水線工程的應用 - L2.4 總結與展望
- L2.1 API接口
階段3:AI大模型應用架構實踐
- 目標:深入理解AI大模型的應用架構,并能夠進行私有化部署。
- 內容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的設計理念
- L3.1.2 Agent模型框架的核心組件
- L3.1.3 Agent模型框架的實現細節 - L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的應用場景 - L3.3 ChatGLM
- L3.3.1 ChatGLM的特點
- L3.3.2 ChatGLM的開發環境
- L3.3.3 ChatGLM的使用示例 - L3.4 LLAMA
- L3.4.1 LLAMA的特點
- L3.4.2 LLAMA的開發環境
- L3.4.3 LLAMA的使用示例 - L3.5 其他大模型介紹
- L3.1 Agent模型框架
階段4:AI大模型私有化部署
- 目標:掌握多種AI大模型的私有化部署,包括多模態和特定領域模型。
- 內容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的關鍵技術
- L4.3 模型私有化部署的實施步驟
- L4.4 模型私有化部署的應用場景
學習計劃:
- 階段1:1-2個月,建立AI大模型的基礎知識體系。
- 階段2:2-3個月,專注于API應用開發能力的提升。
- 階段3:3-4個月,深入實踐AI大模型的應用架構和私有化部署。
- 階段4:4-5個月,專注于高級模型的應用和部署。
這份完整版的所有 ?? 大模型 LLM 學習資料已經上傳CSDN,朋友們如果需要可以微信掃描下方CSDN官方認證二維碼免費領取【保證100%免費
】
全套 《LLM大模型入門+進階學習資源包》↓↓↓ 獲取~
👉CSDN大禮包🎁:全網最全《LLM大模型入門+進階學習資源包》免費分享(安全鏈接,放心點擊)👈
?