<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文帶你了解RAG(檢索增強生成) | 概念理論介紹+ 代碼實操

          共 16581字,需瀏覽 34分鐘

           ·

          2024-10-16 07:00

          大模型 RAG 實戰(zhàn)教程 之 RAG潘多拉寶盒
          https://github.com/km1994/AwesomeRAG

          一、LLMs 已經(jīng)具備了較強能力了,為什么還需要 RAG(檢索增強生成)?

          盡管 LLM 已展現(xiàn)出顯著的能力,但以下幾個挑戰(zhàn)依然值得關(guān)注:
          • 幻覺問題:LLM 采用基于統(tǒng)計的概率方法逐詞生成文本,這一機制內(nèi)在地導(dǎo)致其可能出現(xiàn)看似邏輯嚴(yán)謹(jǐn)實則缺乏事實依據(jù)的輸出,即所謂的“鄭重其事的虛構(gòu)陳述”;
          • 時效性問題:隨著 LLM 規(guī)模擴大,訓(xùn)練成本與周期相應(yīng)增加。鑒于此,包含最新信息的數(shù)據(jù)難以融入模型訓(xùn)練過程,導(dǎo)致 LLM 在應(yīng)對諸如“請推薦當(dāng)前熱門影片”等時間敏感性問題時力有未逮;
          • 數(shù)據(jù)安全問題:通用的 LLM 沒有企業(yè)內(nèi)部數(shù)據(jù)和用戶數(shù)據(jù),那么企業(yè)想要在保證安全的前提下使用 LLM,最好的方式就是把數(shù)據(jù)全部放在本地,企業(yè)數(shù)據(jù)的業(yè)務(wù)計算全部在本地完成。而在線的大模型僅僅完成一個歸納的功能;

          二、介紹一下 RAG?

          RAG(Retrieval Augmented Generation, 檢索增強生成)是一種技術(shù)框架,其核心在于當(dāng) LLM 面對解答問題或創(chuàng)作文本任務(wù)時,首先會在大規(guī)模文檔庫中搜索并篩選出與任務(wù)緊密相關(guān)的素材,繼而依據(jù)這些素材精準(zhǔn)指導(dǎo)后續(xù)的回答生成或文本構(gòu)造過程,旨在通過此種方式提升模型輸出的準(zhǔn)確性和可靠性。
          RAG 技術(shù)架構(gòu)圖

          三、RAG 主要包含哪些模塊?

          • 模塊一:版面分析
            • 本地知識文件讀取(pdf、txt、html、doc、excel、png、jpg、語音等)
            • 知識文件復(fù)原
          • 模塊二:知識庫構(gòu)建
            • 知識文本分割,并構(gòu)建Doc文本
            • Doc文本 embedding
            • Doc文本 構(gòu)建索引
          • 模塊三:大模型微調(diào)
          • 模塊四:基于RAG的知識問答
            • 用戶query embedding
            • query 召回
            • query 排序
            • 將 Top K 個相關(guān)的 Doc 進行拼接,構(gòu)建 context
            • 基于 query 和 context 構(gòu)建 Prompt
            • 將 prompt 喂給大模型生成答案

          四、RAG 相較于直接使用 LLMs進行問答 有哪些優(yōu)點?

          RAG(檢索增強生成)方法賦予了開發(fā)者無需為每個特定任務(wù)重新訓(xùn)練大型模型的能力,僅需連接外部知識庫,即可為模型注入額外的信息資源,從而顯著提升其回答的精確度。這一方法尤其適用于那些高度依賴專業(yè)知識的任務(wù)。
          以下是 RAG 模型的主要優(yōu)勢:
          1. 可擴展性:減小模型規(guī)模及訓(xùn)練開銷,同時簡化知識庫的擴容更新過程。
          2. 準(zhǔn)確性:通過引用信息源,用戶能夠核查答案的可信度,進而增強對模型輸出結(jié)果的信任感。
          3. 可控性:支持知識內(nèi)容的靈活更新與個性化配置。
          4. 可解釋性:展示模型預(yù)測所依賴的檢索條目,增進理解與透明度。
          5. 多功能性:RAG 能夠適應(yīng)多種應(yīng)用場景的微調(diào)與定制,涵蓋問答、文本摘要、對話系統(tǒng)等領(lǐng)域。
          6. 時效性:運用檢索技術(shù)捕捉最新信息動態(tài),確保回答既即時又準(zhǔn)確,相比僅依賴固有訓(xùn)練數(shù)據(jù)的語言模型具有明顯優(yōu)勢。
          7. 領(lǐng)域定制性:通過對接特定行業(yè)或領(lǐng)域的文本數(shù)據(jù)集,RAG 能夠提供針對性的專業(yè)知識支持。
          8. 安全性:通過在數(shù)據(jù)庫層面實施角色劃分與安全管控,RAG 有效強化了對數(shù)據(jù)使用的管理,相較于微調(diào)模型在數(shù)據(jù)權(quán)限管理上的潛在模糊性,展現(xiàn)出更高的安全性。

          五、對比一下 RAG 和 SFT,說一下兩者有哪些區(qū)別?

          實際上,對于 LLM 存在的上述問題,SFT 是一個最常見最基本的解決辦法,也是 LLM 實現(xiàn)應(yīng)用的基礎(chǔ)步驟。那么有必要在多個維度上比較一下兩種方法:
          當(dāng)然這兩種方法并非非此即彼的,合理且必要的方式是結(jié)合業(yè)務(wù)需要與兩種方法的優(yōu)點,合理使用兩種方法。

          模塊一:版面分析

          為什么 需要 版面分析?

          盡管RAG(檢索增強生成)技術(shù)的核心價值在于其結(jié)合檢索與生成手段以提升文本內(nèi)容的精確度與連貫性,然而在一些具體應(yīng)用領(lǐng)域,如文檔解析、智能化寫作及對話系統(tǒng)構(gòu)建中,特別是在面對結(jié)構(gòu)化或半結(jié)構(gòu)化信息的處理需求時,其功能邊界可能拓展至版面分析。

          這是由于此類信息往往嵌于特定的布局結(jié)構(gòu)中,需要對頁面元素及其相互關(guān)系進行深入理解。

          此外,當(dāng)RAG模型面對包含豐富多媒體或多模態(tài)成分的數(shù)據(jù)源,諸如網(wǎng)頁、PDF文件、富文本記錄、Word文檔、圖像資料、語音片段、表格數(shù)據(jù)等復(fù)雜內(nèi)容時,為了能高效地攝取并利用這些非文本信息,具備基本的版面分析能力變得至關(guān)重要。這種能力有助于模型精準(zhǔn)解析各類信息單元,并成功將它們?nèi)诤铣捎幸饬x的整體解讀。

          step 1:本地知識文件獲取

          q1:如何進行 本地知識文件獲取?

          本地知識文件獲取涉及從多種數(shù)據(jù)源(如.txt、.pdf、.html、.doc、.xlsx、.png、.jpg、音頻文件等)提取信息的過程。針對不同類型的文件,需要采取特定的訪問與解析策略來有效獲取其中蘊含的知識。下面我們將介紹對于不同數(shù)據(jù)源數(shù)據(jù)的獲取方式和難點。

          q2:如何獲取 富文本txt 中內(nèi)容?

          • 介紹:富文本 主要存儲于 txt 文件中,因為排版比較整潔,所以獲取方式比較簡單
          • 實戰(zhàn)技巧:
            • 【版面分析——富文本txt讀取】

          q3:如何獲取 PDF文檔 中內(nèi)容?

          • 介紹:PDF文檔中數(shù)據(jù)比較復(fù)雜,包含文本、圖片、表格等不同樣式的數(shù)據(jù),所以解析過程中會比較復(fù)雜
          • 實戰(zhàn)技巧:
            • 【版面分析——PDF 解析神器 pdfplumber】
            • 【版面分析——PDF 解析神器 PyMuPDF】

          q4:如何獲取 HTML文檔 中內(nèi)容?

          • 介紹:PDF文檔中數(shù)據(jù)比較復(fù)雜,包含文本、圖片、表格等不同樣式的數(shù)據(jù),所以解析過程中會比較復(fù)雜
          • 實戰(zhàn)技巧:
            • 【版面分析——網(wǎng)頁HTML解析 BeautifulSoup】

          q5:如何獲取 Doc文檔 中內(nèi)容?

          • 介紹:Doc文檔中數(shù)據(jù)比較復(fù)雜,包含文本、圖片、表格等不同樣式的數(shù)據(jù),所以解析過程中會比較復(fù)雜
          • 實戰(zhàn)技巧:
            • 【版面分析——Docx 解析神器 python-docx】

          q6:如何使用 OCR 獲取圖片內(nèi)容?

          • 介紹:光學(xué)字符識別(Optical Character Recognition, OCR)是指對文本資料的圖像文件進行分析識別處理,獲取文字及版面信息的過程。亦即將圖像中的文字進行識別,并以文本的形式返回。
          • 思路:
            • 文字識別:對定位好的文字區(qū)域進行識別,主要解決的問題是每個文字是什么,將圖像中的文字區(qū)域進轉(zhuǎn)化為字符信息。
            • 文字檢測:解決的問題是哪里有文字,文字的范圍有多少;
          • 目前開源的OCR項目
            • Tesseract
            • PaddleOCR
            • EasyOCR
            • chineseocr
            • chineseocr_lite
            • TrWebOCR
            • cnocr
            • hn_ocr
          • 理論學(xué)習(xí):
            • 【版面分析——圖片解析神器 OCR】
          • 實戰(zhàn)技巧:
            • 【版面分析——OCR神器 tesseract】
            • 【版面分析——OCR神器 PaddleOCR】
            • 【版面分析——OCR神器 hn_ocr】

          q7:如何使用 ASR 獲取語音內(nèi)容?

          • 別稱:自動語音識別AutomaTlc Speech RecogniTlon,(ASR)
          • 介紹:將一段語音信號轉(zhuǎn)換成相對應(yīng)的文本信息,好比"機器的聽覺系統(tǒng)”,它讓機器通過識別和理解,把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令。
          • 目標(biāo):將人類的語音中的詞匯內(nèi)容轉(zhuǎn)換為計算機可讀的輸入(eg:按鍵、二進制編碼或者字符序列)
          • 思路:
            • 聲學(xué)信號預(yù)處理:為了更有效地提取特征往往還需要對所采集到的聲音信號進行濾波、分幀等預(yù)處理工作,把要分析的信號從原始信號中提取出來;
            • 特征提取:將聲音信號從時域轉(zhuǎn)換到頻域,為聲學(xué)模型提供合適的特征向量;
            • 聲學(xué)模型:根據(jù)聲學(xué)特性計算每一個特征向量在聲學(xué)特征上的得分;
            • 語言模型:根據(jù)語言學(xué)相關(guān)的理論,計算該聲音信號對應(yīng)可能詞組序列的概率;
            • 字典與解碼:根據(jù)已有的字典,對詞組序列進行解碼,得到最后可能的文本表示
          • 理論教程:
            • 【版面分析 之 語音識別】
          • 實戰(zhàn)技巧:
            • 【版面分析 之 Speech-to-Text】
            • 【版面分析 之 WeTextProcessing】
            • 【版面分析——ASR神器 Wenet】
            • 【版面分析 之 ASR神器訓(xùn)練】

          step 2:知識文件復(fù)原

          q1:為什么需要進行 知識文件復(fù)原?

          本地知識文件獲取包含對多源化數(shù)據(jù)(txt、pdf、html、doc、excel、png、jpg、語音等)進行讀取之后,容易將一個多行段落分割成多個段落,從而導(dǎo)致段落遇到被分割,所以需要根據(jù)內(nèi)容邏輯重新組織段落。

          q2:如何對 知識文件進行復(fù)原?

          1. 方法一:基于規(guī)則的知識文件復(fù)原
          2. 方法二:基于 Bert NSP 進行上下句拼接

          step 3:版面分析———優(yōu)化策略篇

          • 理論學(xué)習(xí):
            • 【版面分析———優(yōu)化策略篇】

          step 4:Homework

          • 任務(wù)描述:使用上述方法對 【SMP 2023 ChatGLM金融大模型挑戰(zhàn)賽】的 【ChatGLM評估挑戰(zhàn)賽-金融賽道數(shù)據(jù)集】進行版面分析
          • 任務(wù)效果:分析各種方法效果和性能

          模塊二:知識庫構(gòu)建

          為什么 需要 知識庫構(gòu)建?

          在RAG(Retrieval-Augmented Generation)中構(gòu)建知識庫是至關(guān)重要的,原因包括但不限于以下幾點:
          1. 擴展模型能力:大規(guī)模語言模型如GPT系列雖然具有強大的語言生成和理解能力,但受限于訓(xùn)練數(shù)據(jù)集的覆蓋范圍,它們可能無法準(zhǔn)確回答一些基于特定事實或詳細背景信息的問題。通過構(gòu)建知識庫,RAG可以補充模型自身的知識局限性,允許模型檢索到最新、最準(zhǔn)確的信息來生成答案。
          2. 實時更新信息:知識庫可以實時更新和擴充,確保模型能夠獲取最新的知識內(nèi)容,這對于處理時效性強的信息尤為關(guān)鍵,比如新聞事件、科技進展等。
          3. 提高準(zhǔn)確性:RAG結(jié)合了檢索與生成兩個過程,在生成回答前先檢索相關(guān)文檔,從而提高了回答問題時的準(zhǔn)確性。這樣,模型生成的答案不僅基于其內(nèi)部參數(shù)化的知識,還基于外部可靠來源的知識庫。
          4. 減少過擬合與hallucination(幻覺生成):大模型有時會因為過度依賴內(nèi)在模式而出現(xiàn)hallucination現(xiàn)象,即生成看似合理實則無依據(jù)的答案。通過引用知識庫中的確切證據(jù),RAG可以降低此類錯誤產(chǎn)生的可能性。
          5. 增強可解釋性:RAG不僅能提供答案,還能指出答案的來源,增強了模型生成結(jié)果的透明度和可信度。
          6. 支持個性化及私有化需求:對于企業(yè)或個人用戶,可以通過構(gòu)建專屬知識庫滿足特定領(lǐng)域或私人定制的需求,使得大模型能更好地服務(wù)于特定場景和業(yè)務(wù)。
          綜上所述,構(gòu)建知識庫對于RAG模型來說,是實現(xiàn)高效準(zhǔn)確地檢索并生成答案的核心機制之一,它極大地提升了模型在實際應(yīng)用中的性能和可靠性。

          step 1:知識文本分塊

          • 為什么需要對文本分塊?
            • 信息丟失的風(fēng)險:試圖一次性提取整個文檔的嵌入向量,雖然可以捕捉到整體的上下文,但也可能會忽略掉許多針對特定主題的重要信息,這可能會導(dǎo)致生成的信息不夠精確或者有所缺失。
            • 分塊大小的限制:在使用如OpenAI這樣的模型時,分塊大小是一個關(guān)鍵的限制因素。例如,GPT-4模型有一個32K的窗口大小限制。盡管這個限制在大多數(shù)情況下不是問題,但從一開始就考慮到分塊大小是很重要的。
          • 主要考慮兩個因素:
            • embedding模型的Tokens限制情況;
            • 語義完整性對整體的檢索效果的影響;
          • 實戰(zhàn)技巧:
            • 【知識庫構(gòu)建——知識文本分塊】
            • 【知識庫構(gòu)建——文檔切分優(yōu)化策略篇】

          step 2:Docs 向量化(embdeeing)

          q1:什么是Docs 向量化(embdeeing)?

          Embedding 也是文本語義含義的信息密集表示,每個嵌入都是一個浮點數(shù)向量,使得向量空間中兩個嵌入之間的距離與原始格式中兩個輸入之間的語義相似性相關(guān)聯(lián)。
          例如,如果兩個文本相似,則它們的向量表示也應(yīng)該相似,這一組向量空間內(nèi)的數(shù)組表示描述了文本之間的細微特征差異。
          簡單來說,Embedding 幫助計算機來理解如人類信息所代表的“含義”,Embedding 可以用來獲取文本、圖像、視頻、或其他信息的特征“相關(guān)性”,這種相關(guān)性在應(yīng)用層面常用于搜索、推薦、分類、聚類。

          q2:Embedding 是如何工作的?

          舉例來講,這里有三句話:
          1. “The cat chases the mouse” “貓追逐老鼠”
          2. “The kitten hunts rodents” 小貓捕獵老鼠。
          3. “I like ham sandwiches” 我喜歡火腿三明治。
          如果是人類來將這三個句子來分類,句子 1 和句子 2 幾乎是同樣的含義,而句子 3 卻完全不同。但我們看到在英文原文句子中,句子 1 和句子 2 只有“The”是相同的,沒有其他相同詞匯。計算機該如何理解前兩個句子的相關(guān)性?
          Embedding 將離散信息(單詞和符號)壓縮為分布式連續(xù)值數(shù)據(jù)(向量)。如果我們將之前的短語繪制在圖表上,它可能看起來像這樣:

          在文本被 Embedding 壓縮到計算機可以理解的多維向量化空間之后,由于句子 1 和 2 的含義相似,它們會被繪制在彼此附近。句子 3 卻距離較遠,因為它與它們沒有關(guān)聯(lián)。如果我們有第四個短語 “Sally 吃了瑞士奶酪”,它可能存在于句子 3(奶酪可以放在三明治上)和句子 1(老鼠喜歡瑞士奶酪)之間的某個地方。

          q3:Embedding 的語義檢索方式對比關(guān)鍵詞檢索的優(yōu)勢?

          1. 語義理解:基于 Embedding 的檢索方法通過詞向量來表示文本,這使得模型能夠捕捉到詞匯之間的語義聯(lián)關(guān)系,相比之下,基于關(guān)鍵詞的檢索往往關(guān)注字面匹配,可能忽略了詞語之間的語義聯(lián)系。
          2. 容錯性:由于基于 Embedding 的方法能夠理解詞匯之間的關(guān)系,所以在處理拼寫錯誤、同義詞、近義詞等情況時更具優(yōu)勢。而基于關(guān)鍵詞的檢索方法對這些情況的處理相對較弱。
          3. 多語言支持:許多 Embedding 方法可以支持多種語言,有助于實現(xiàn)跨語言的文本檢索。比如你可以用中文輸入來查詢英文文本內(nèi)容,而基于關(guān)鍵詞的檢索方法很難做到這一點。
          4. 語境理解:基于 Embedding 的方法在處理一詞多義的情況時更具優(yōu)勢,因為它能夠根據(jù)上下文為詞語賦予不同的向量表示。而基于關(guān)鍵詞的檢索方法可能無法很好地區(qū)分同一個詞在不同語境下的含義。

          q4:Embedding檢索存在哪些限制?

          1. 輸入詞數(shù)限制:即便借助Embedding技術(shù)選取與查詢最為匹配的文本片段供大型模型參考,詞匯數(shù)量的約束依然存在。當(dāng)檢索覆蓋的文本范圍廣泛時,為了控制注入模型的上下文詞匯量,通常會對檢索結(jié)果設(shè)定TopK的閾值K,但這不可避免地引發(fā)了信息遺漏的問題。
          2. 僅支持文本數(shù)據(jù):現(xiàn)階段的GPT-3.5及諸多大型語言模型尚不具備圖像識別功能,然而,在知識檢索過程中,許多關(guān)鍵信息往往依賴于圖文結(jié)合來充分理解。例如,學(xué)術(shù)論文中的示意圖、財務(wù)報告中的數(shù)據(jù)圖表,僅憑文本難以精準(zhǔn)把握其內(nèi)涵。
          3. 大模型的胡編亂造:當(dāng)檢索到的相關(guān)文獻資料不足以支撐大型模型準(zhǔn)確回答問題時,為盡力完成響應(yīng),模型可能會出現(xiàn)一定程度的“即興創(chuàng)作”,即在有限信息基礎(chǔ)上進行推測與補充。
          • 理論學(xué)習(xí):
            • 【知識庫構(gòu)建—Doc 向量化】
          • 實戰(zhàn)技巧:
            • 【Docs向量化——騰訊詞向量】
            • 【Docs向量化——sbert】
            • 【Docs向量化——SimCSE】
            • 【Docs向量化——text2vec】
            • 【Docs向量化——SGPT】
            • 【Docs向量化——BGE —— 智源開源最強語義向量模型】
            • 【Docs向量化——M3E:一種大規(guī)模混合embedding】

          step 3:Docs 構(gòu)建索引

          • 介紹
          • 實戰(zhàn)技巧:
            • 【Docs構(gòu)建索引——Faiss】
            • 【Docs構(gòu)建索引——milvus】
            • 【Docs構(gòu)建索引—— Elasticsearch】

          模塊三:大模型微調(diào)

          為什么 需要 大模型微調(diào)?

          通常,要對大模型進行微調(diào),有以下一些原因:
          • 第一個原因是,因為大模型的參數(shù)量非常大,訓(xùn)練成本非常高,每家公司都去從頭訓(xùn)練一個自己的大模型,這個事情的性價比非常低;
          • 第二個原因是,Prompt Engineering的方式是一種相對來說容易上手的使用大模型的方式,但是它的缺點也非常明顯。因為通常大模型的實現(xiàn)原理,都會對輸入序列的長度有限制,Prompt Engineering 的方式會把Prompt搞得很長。
          越長的Prompt,大模型的推理成本越高,因為推理成本是跟Prompt長度的平方正向相關(guān)的。
          另外,Prompt太長會因超過限制而被截斷,進而導(dǎo)致大模型的輸出質(zhì)量打折口,這也是一個非常嚴(yán)重的問題。
          對于個人使用者而言,如果是解決自己日常生活、工作中的一些問題,直接用Prompt Engineering的方式,通常問題不大。
          但對于對外提供服務(wù)的企業(yè)來說,要想在自己的服務(wù)中接入大模型的能力,推理成本是不得不要考慮的一個因素,微調(diào)相對來說就是一個更優(yōu)的方案。
          • 第三個原因是,Prompt Engineering的效果達不到要求,企業(yè)又有比較好的自有數(shù)據(jù),能夠通過自有數(shù)據(jù),更好的提升大模型在特定領(lǐng)域的能力。這時候微調(diào)就非常適用。
          • 第四個原因是,要在個性化的服務(wù)中使用大模型的能力,這時候針對每個用戶的數(shù)據(jù),訓(xùn)練一個輕量級的微調(diào)模型,就是一個不錯的方案。
          • 第五個原因是,數(shù)據(jù)安全的問題。如果數(shù)據(jù)是不能傳遞給第三方大模型服務(wù)的,那么搭建自己的大模型就非常必要。通常這些開源的大模型都是需要用自有數(shù)據(jù)進行微調(diào),才能夠滿足業(yè)務(wù)的需求,這時候也需要對大模型進行微調(diào)。

          如何對大模型進行微調(diào)?

          q1:大模型的微調(diào)技術(shù)路線問題

          從參數(shù)規(guī)模的角度,大模型的微調(diào)分成兩條技術(shù)路線:
          • 技術(shù)路線一:對全量的參數(shù),進行全量的訓(xùn)練,這條路徑叫全量微調(diào)FFT(Full Fine Tuning)。
          • 技術(shù)路線二:只對部分的參數(shù)進行訓(xùn)練,這條路徑叫PEFT(Parameter-Efficient Fine Tuning)。

          q2:大模型的全量微調(diào)FFT 技術(shù)存在哪些問題

          FFT也會帶來一些問題,影響比較大的問題,主要有以下兩個:
          • 問題一:訓(xùn)練的成本會比較高,因為微調(diào)的參數(shù)量跟預(yù)訓(xùn)練的是一樣的多的;
          • 問題二:災(zāi)難性遺忘(Catastrophic Forgetting),用特定訓(xùn)練數(shù)據(jù)去微調(diào)可能會把這個領(lǐng)域的表現(xiàn)變好,但也可能會把原來表現(xiàn)好的別的領(lǐng)域的能力變差。

          q3:大模型的 PEFT(Parameter-Efficient Fine Tuning) 解決哪些問題

          PEFT主要想解決的問題,就是FFT存在的上述兩個問題,PEFT也是目前比較主流的微調(diào)方案。
          從訓(xùn)練數(shù)據(jù)的來源、以及訓(xùn)練的方法的角度,大模型的微調(diào)有以下幾條技術(shù)路線:
          • 技術(shù)路線一:監(jiān)督式微調(diào)SFT(Supervised Fine Tuning),這個方案主要是用人工標(biāo)注的數(shù)據(jù),用傳統(tǒng)機器學(xué)習(xí)中監(jiān)督學(xué)習(xí)的方法,對大模型進行微調(diào);
          • 技術(shù)路線二:基于人類反饋的強化學(xué)習(xí)微調(diào)RLHF(Reinforcement Learning with Human Feedback),這個方案的主要特點是把人類的反饋,通過強化學(xué)習(xí)的方式,引入到對大模型的微調(diào)中去,讓大模型生成的結(jié)果,更加符合人類的一些期望;
          • 技術(shù)路線三:基于AI反饋的強化學(xué)習(xí)微調(diào)RLAIF(Reinforcement Learning with AI Feedback),這個原理大致跟RLHF類似,但是反饋的來源是AI。這里是想解決反饋系統(tǒng)的效率問題,因為收集人類反饋,相對來說成本會比較高、效率比較低。
          不同的分類角度,只是側(cè)重點不一樣,對同一個大模型的微調(diào),也不局限于某一個方案,可以多個方案一起。
          微調(diào)的最終目的,是能夠在可控成本的前提下,盡可能地提升大模型在特定領(lǐng)域的能力。

          大模型LLM進行SFT操作的時候在學(xué)習(xí)什么?

          • 預(yù)訓(xùn)練->在大量無監(jiān)督數(shù)據(jù)上進行預(yù)訓(xùn)練,得到基礎(chǔ)模型-->將預(yù)訓(xùn)練模型作為SFT和RLHF的起點。
          • SFT-->在有監(jiān)督的數(shù)據(jù)集上進行SFT訓(xùn)練,利用上下文信息等監(jiān)督信號進一步優(yōu)化模型-->將SFT訓(xùn)練后的模型作為RLHF的起點。
          • RLHF-->利用人類反饋進行強化學(xué)習(xí),優(yōu)化模型以更好地適應(yīng)人類意圖和偏好-->將RLHF訓(xùn)練后的模型進行評估和驗證,并進行必要的調(diào)整。

          step 1:大模型微調(diào)訓(xùn)練數(shù)據(jù)構(gòu)建

          • 介紹:如何構(gòu)建 訓(xùn)練數(shù)據(jù)?
          • 實戰(zhàn)技巧:
            • 【大模型(LLMs)LLM生成SFT數(shù)據(jù)方法篇】

          step 2:大模型指令微調(diào)篇

          • 介紹:如何構(gòu)建 訓(xùn)練數(shù)據(jù)?
          • 實戰(zhàn)技巧:
            • 【大模型(LLMs)繼續(xù)預(yù)訓(xùn)練篇】
            • 【大模型(LLMs)指令微調(diào)篇】
            • 【大模型(LLMs)獎勵模型訓(xùn)練篇】
            • 【大模型(LLMs)強化學(xué)習(xí)——PPO訓(xùn)練篇】
            • 【大模型(LLMs)強化學(xué)習(xí)——DPO訓(xùn)練篇】

          模塊四:文檔檢索

          為什么 需要 文檔檢索?

          文檔檢索 作為 RAG 核心工作,其效果對于下游工作至關(guān)重要。
          雖然可以通過向量召回的方式從文檔庫里召回和用戶問題相關(guān)的文檔片段,同時輸入到LLM中,增強模型回答質(zhì)量。
          常用的方式直接用用戶的問題進行文檔召回。但是很多時候,用戶的問題是十分口語化的,描述的也比較模糊,這樣會影響向量召回的質(zhì)量,進而影響模型回答效果
          本章主要介紹 文檔檢索 過程中 存在的一些問題和對應(yīng)的解決方法。

          step 1:文檔檢索負樣本樣本挖掘

          • 介紹:在各類檢索任務(wù)中,為訓(xùn)練好一個高質(zhì)量的檢索模型,往往需要從大量的候選樣本集合中采樣高質(zhì)量的負例,配合正例一起進行訓(xùn)練。
          • 實戰(zhàn)技巧:
            • 【文檔檢索——負樣本樣本挖掘篇】

          step 2:文檔檢索優(yōu)化策略

          • 介紹:文檔檢索優(yōu)化策略
          • 實戰(zhàn)技巧:
            • 【文檔檢索——文檔檢索優(yōu)化策略篇】

          模塊五:Reranker

          為什么 需要 Reranker?

          基本的 RAG 應(yīng)用包括四個關(guān)鍵技術(shù)組成部分:
          • Embedding 模型:用于將外部文檔和用戶查詢轉(zhuǎn)換成 Embedding 向量
          • 向量數(shù)據(jù)庫:用于存儲 Embedding 向量和執(zhí)行向量相似性檢索(檢索出最相關(guān)的 Top-K 個信息)
          • 提示詞工程(Prompt engineering):用于將用戶的問題和檢索到的上下文組合成大模型的輸入
          • 大語言模型(LLM):用于生成回答
          上述的基礎(chǔ) RAG 架構(gòu)可以有效解決 LLM 產(chǎn)生“幻覺”、生成內(nèi)容不可靠的問題。但是,一些企業(yè)用戶對上下文相關(guān)性和問答準(zhǔn)確度提出了更高要求,需要更為復(fù)雜的架構(gòu)。一個行之有效且較為流行的做法就是在 RAG 應(yīng)用中集成 Reranker

          什么是 Reranker?

          Reranker 是信息檢索(IR)生態(tài)系統(tǒng)中的一個重要組成部分,用于評估搜索結(jié)果,并進行重新排序,從而提升查詢結(jié)果相關(guān)性
          在 RAG 應(yīng)用中,主要在拿到向量查詢(ANN)的結(jié)果后使用 Reranker,能夠更有效地確定文檔和查詢之間的語義相關(guān)性,更精細地對結(jié)果重排,最終提高搜索質(zhì)量。

          step 1:Reranker 篇

          • 理論學(xué)習(xí):
            • 【RAG文檔檢索——Reranker 篇】
          • 實戰(zhàn)技巧:
            • 【Reranker——bge-reranker篇】

          模塊六:RAG 評測面

          為什么需要 對 RAG 進行評測?

          在探索和優(yōu)化 RAG(檢索增強生成器)的過程中,如何有效評估其性能已經(jīng)成為關(guān)鍵問題。

          step 1:RAG 評測 篇

          • 理論學(xué)習(xí):
            • 【RAG評測篇】

          模塊七:RAG 開源項目推薦學(xué)習(xí)

          為什么 需要 RAG 開源項目推薦學(xué)習(xí)?

          前面已經(jīng)帶你走完了 RAG 的各個流程,下面將推薦一些 RAG 開源項目,幫助大佬們進行消化學(xué)習(xí)。

          RAG 開源項目推薦 —— RAGFlow 篇

          • 介紹:RAGFlow 是一款基于深度文檔理解構(gòu)建的開源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以為各種規(guī)模的企業(yè)及個人提供一套精簡的 RAG 工作流程,結(jié)合大語言模型(LLM)針對用戶各類不同的復(fù)雜格式數(shù)據(jù)提供可靠的問答以及有理有據(jù)的引用。
          • 項目學(xué)習(xí):
            • 【RAG 項目推薦——RagFlow 篇(一)——RagFlow docker 部署】
            • 【RAG 項目推薦——RagFlow 篇(二)——RagFlow 知識庫構(gòu)建】
            • 【RAG 項目推薦——RagFlow 篇(三)——RagFlow 模型供應(yīng)商選擇】
            • 【RAG 項目推薦——RagFlow 篇(四)——RagFlow 對話】
            • 【RAG 項目推薦——RagFlow 篇(五)——RAGFlow Api 接入(以 ollama 為例)】
            • 【RAG 項目推薦——RagFlow 篇(六)——RAGFlow 源碼學(xué)習(xí)】

          RAG 開源項目推薦 —— QAnything 篇

          • 介紹:QAnything(Question and Answer based on Anything)是一個本地知識庫問答系統(tǒng),旨在支持多種文件格式和數(shù)據(jù)庫,允許離線安裝和使用。使用QAnything,您可以簡單地刪除本地存儲的任何格式的文件,并獲得準(zhǔn)確、快速和可靠的答案。QAnything目前支持的知識庫文件格式包括:PDF(pdf) , Word(docx) , PPT(pptx) , XLS(xlsx) , Markdown(md) , Email(eml) , TXT(txt) , Image(jpg,jpeg,png) , CSV (csv)、網(wǎng)頁鏈接(html)等。
          • 項目學(xué)習(xí):
            • 【RAG 開源項目推薦 —— QAnything 篇】

          RAG 開源項目推薦 —— ElasticSearch-Langchain 篇

          • 介紹:受langchain-ChatGLM項目啟發(fā),由于Elasticsearch可實現(xiàn)文本和向量兩種方式混合查詢,且在業(yè)務(wù)場景中使用更廣泛,因此本項目用Elasticsearch代替Faiss作為知識存儲庫,利用Langchain+Chatglm2實現(xiàn)基于自有知識庫的智能問答。
          • 項目學(xué)習(xí):
            • 【【LLMs 入門實戰(zhàn)】基于 本地知識庫 的高效 ??ElasticSearch-Langchain-Chatglm2】

          RAG 開源項目推薦 —— Langchain-Chatchat 篇

          • 介紹:Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 與 ChatGLM 等語言模型的本地知識庫問答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain
          • 項目學(xué)習(xí):
            • 【【LLMs 入門實戰(zhàn)】基于 本地知識庫 的高效 ??Langchain-Chatchat】


          瀏覽 125
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本www在线中文字幕 | 中文字幕在线播放第一页 | 日韩av手机在线 日韩va在线观看 | 国产精品久久久久久久久吹潮 | 日韩一级免费 |