使用 DeepSeek-R1 等推理模型將 RAG 轉(zhuǎn)換為 RAT,以實現(xiàn)更智能的 AI

# 使用 DeepSeek-R1 等推理模型將 RAG 轉(zhuǎn)換為 RAT,以實現(xiàn)更智能的 AI 傳統(tǒng)的檢索增強(qiáng)生成(RAG)系統(tǒng)在生成具備上下文感知的答案方面表現(xiàn)出色。然而,它們往往存在以下不足: - **精確性不足**:單次推理可能會忽略復(fù)雜查詢中的細(xì)微差別。 - **理解不夠深入**:若沒有迭代過程,輸出結(jié)果可能無法全面解決多方面的問題。 ## RAG簡介 檢索增強(qiáng)思考(RAT)通過引入模仿人類思維過程的推理循環(huán),彌補(bǔ)了這些差距。這使得它在以下應(yīng)用場景中具有極高價值: - 復(fù)雜問題解答 - 特定領(lǐng)域的AI助手 - 研究密集型工作流程 ![](https://upload-images.jianshu.io/upload_images/17294212-1baee2cfe2d14699.png) ## RAT詳解 如下圖所示,RAT的工作步驟如下: 1. **用戶輸入**:與RAG一樣,用戶提出問題。例如:“我如何提高我的生產(chǎn)力?” 2. **知識檢索**:系統(tǒng)從知識庫(如文檔、文章)中檢索與問題相關(guān)的信息片段。例如:檢索到的內(nèi)容可能包括關(guān)于時間管理、生產(chǎn)力技巧的文章,或者像任務(wù)優(yōu)先級排序這樣的工具介紹。 ![](https://upload-images.jianshu.io/upload_images/17294212-b7430c84c7955130.png) 3. **推理循環(huán)(迭代優(yōu)化)** - **初始思考**:推理大語言模型(LLM)基于檢索到的信息片段和用戶問題開始工作,生成初始思考或推理內(nèi)容。例如:“專注于有效進(jìn)行任務(wù)優(yōu)先級排序”。 - **迭代**:系統(tǒng)將這個思考結(jié)果反饋回檢索和推理過程中。每次迭代都會優(yōu)化檢索到的上下文,并生成更細(xì)致入微的推理。 - 迭代2:“將任務(wù)分解成更小的部分,并根據(jù)緊急程度和重要性對它們進(jìn)行優(yōu)先級排序”。 - 迭代3:“實施時間塊管理,并消除干擾以進(jìn)行深度工作”。 4. **最終思考**:在完成指定的迭代次數(shù)后(或者當(dāng)推理趨于穩(wěn)定時停止),系統(tǒng)會產(chǎn)生一個最終思考結(jié)果,這是對問題經(jīng)過深入思考后得出的詳細(xì)理解。最終思考:“要提高生產(chǎn)力,可以使用艾森豪威爾矩陣對任務(wù)進(jìn)行優(yōu)先級排序,將它們分解成更小的部分,并利用時間塊管理來專注工作”。 5. **增強(qiáng)生成**:經(jīng)過優(yōu)化的推理(最終思考結(jié)果)會被傳遞給負(fù)責(zé)生成答案的LLM。這個LLM將推理結(jié)果與原始問題相結(jié)合,生成最終便于用戶理解的答案。最終答案:“要提高你的生產(chǎn)力,可以先使用艾森豪威爾矩陣對任務(wù)進(jìn)行優(yōu)先級排序。將它們分解成易于管理的步驟,并利用時間塊管理來保持專注”。 ## 為何使用RAGLight來實現(xiàn)RAT? RAGLight是一個功能多樣的框架,它通過為檢索、推理和生成工作流程提供模塊化組件,簡化了RAG和RAT管道的實現(xiàn)過程。憑借預(yù)構(gòu)建的集成功能和可擴(kuò)展的設(shè)計,你可以專注于提升AI的能力,而無需從頭開始開發(fā)。 以下是如何使用RAGLight設(shè)置RAT和RAG管道,以及關(guān)鍵參數(shù)和定制選項的詳細(xì)解釋。 ## 設(shè)置RAT管道 ```python from raglight.rat.simple_rat_api import RATPipeline from raglight.models.data_source_model import FolderSource, GitHubSource from raglight.config.settings import Settings Settings.setup_logging() pipeline = RATPipeline(knowledge_base=[ FolderSource(path="/knowledge_base"), GitHubSource(url="https://github.com/Bessouat40/RAGLight") ], model_name="llama3", reasoning_model_name="deepseek-r1:1.5b", reflection=1) pipeline.build() response = pipeline.generate("How can I create an easy RAGPipeline using raglight framework? Give me the the easier python implementation") print(response) ``` ## 理解RAGLight參數(shù) - **knowledge_base**:定義知識來源的列表。RAGLight支持: - FolderSource:指向包含文檔(如PDF、文本文件)的本地文件夾路徑。 - GitHubSource:要包含在知識庫中的GitHub倉庫的URL。你可以組合多個文件夾和倉庫,以創(chuàng)建一個全面的知識庫。 - **model_name**:用于最終生成的LLM的名稱。RAGLight目前支持從Ollama拉取到本地的模型。你可以將“l(fā)lama3”替換為其他模型,如“deepseek-r1:1.5b”,或者任何與Ollama兼容且已拉取到本地的模型。也可以使用推理模型。 - **reasoning_model_name(RAT特定)**:指定在RAT管道中用于迭代推理的模型。你必須選擇推理模型。實際上,RAGLight目前只支持像deepseek-r1:1.5b這樣的deepseek模型。 - **reflection(RAT特定)**:定義要執(zhí)行的推理迭代次數(shù)。每次迭代都會優(yōu)化檢索到的上下文和推理邏輯。增加迭代次數(shù)可以進(jìn)行更深入的推理,減少迭代次數(shù)則可以加快處理速度。 - **pipeline.build** :此函數(shù)用于處理知識庫、生成嵌入向量,并初始化向量存儲。 - 工作原理:解析知識庫來源(如文件夾、GitHub倉庫);使用指定模型為所有文檔創(chuàng)建嵌入向量;將嵌入向量存儲在向量存儲中以供檢索。 - **pipeline.generate**:根據(jù)用戶的查詢和從知識庫中檢索到的上下文生成響應(yīng)。 - 工作原理:將用戶查詢轉(zhuǎn)換為嵌入向量;從向量存儲中檢索相關(guān)文檔或片段;(對于RAT管道)使用推理模型迭代優(yōu)化響應(yīng);生成最終具有上下文感知的響應(yīng)。 本文由[mdnice](https://mdnice.com/?platform=6)多平臺發(fā)布
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容