網(wǎng)站域名密碼找回b2b電子商務(wù)網(wǎng)站都有哪些
大模型系列17-RAGFlow搭建本地知識(shí)庫
- 安裝ollama
- 安裝open-wehui
- 安裝并運(yùn)行ragflow
- RAG(檢索、增強(qiáng)、生成)
- RAG是什么
- RAG三過程
- RAG問答系統(tǒng)構(gòu)建步驟
- 向量庫構(gòu)建
- 檢索模塊
- 生成模塊
- RAG解決LLM的痛點(diǎn)
- 使用ragflow
- 訪問ragflow
- 配置ollama模型
- 添加Embedding模型
- 添加chat模型
- 系統(tǒng)模式設(shè)置
- 創(chuàng)建知識(shí)庫
- 數(shù)據(jù)集配置
- 上傳論文
- 論文解析
- 創(chuàng)建論文助理
安裝ollama
參考寫的ollama的文檔
安裝open-wehui
參考寫的安裝open-webui的文章
安裝并運(yùn)行ragflow
下載ragflow
git clone https://github.com/infiniflow/ragflow.git
下載依賴鏡像并運(yùn)行
docker compose -f docker-compose.yml up -ddocker logs -f ragflow-server
運(yùn)行成功后,使用 docker logs -f ragflow-server
查看運(yùn)行狀態(tài)
ragflow使用的各種環(huán)境變量在ragflow/docker/.env
文件中,可以修改 端口號、ragflow的鏡像版本等
RAG(檢索、增強(qiáng)、生成)
RAG是什么
RAG(Retrieval Augmented Generation 檢索增強(qiáng)生成)模型由Facebook AI Research(FAIR)團(tuán)隊(duì)于2020年首次提出,并迅速成為大模型應(yīng)用中的熱門方案。它結(jié)合了信息檢索技術(shù)(例如傳統(tǒng)向量數(shù)據(jù)庫)和大語言模型(如LLMs)的技術(shù),從外部知識(shí)庫中檢索相關(guān)信息,并將其作為prompt輸入到大模型中獲取輸出。
RAG三過程
RAG 包含三個(gè)主要過程:檢索、增強(qiáng)和生成。
- 檢索:根據(jù)用戶的查詢內(nèi)容,從外部知識(shí)庫獲取相關(guān)信息。具體而言,將用戶的查詢通過嵌入模型轉(zhuǎn)換為向量,以便與向量數(shù)據(jù)庫中存儲(chǔ)的相關(guān)知識(shí)進(jìn)行比對。通過相似性搜索,找出與查詢最匹配的前 K 個(gè)數(shù)據(jù)。這個(gè)目的是為了給后續(xù)生成提供上下文信息知識(shí)。
- 增強(qiáng):將用戶的查詢內(nèi)容和檢索到的相關(guān)知識(shí)一起嵌入到一個(gè)預(yù)設(shè)的提示詞模板中。對LLMs的提示詞(prompt)
- 生成:將經(jīng)過檢索增強(qiáng)的提示詞內(nèi)容輸入到大型語言模型中,以生成所需的輸出。
RAG問答系統(tǒng)構(gòu)建步驟
向量庫構(gòu)建
收集數(shù)據(jù):首先,需要收集與問答系統(tǒng)相關(guān)的各種數(shù)據(jù),這些數(shù)據(jù)可以來自文檔、網(wǎng)頁、數(shù)據(jù)庫等多種來源。
數(shù)據(jù)清洗:對收集到的數(shù)據(jù)進(jìn)行清洗,去除噪聲、重復(fù)項(xiàng)和無關(guān)信息,確保數(shù)據(jù)的質(zhì)量和準(zhǔn)確性。
知識(shí)庫構(gòu)建:將清洗后的數(shù)據(jù)構(gòu)建成知識(shí)庫。這通常包括將文本分割成較小的片段(chunks),使用文本嵌入模型(如GLM)將這些片段轉(zhuǎn)換成向量,并將這些向量存儲(chǔ)在向量數(shù)據(jù)庫(如FAISS、Milvus等)中。
檢索模塊
問題向量化:當(dāng)用戶輸入查詢問題時(shí),使用相同的文本嵌入模型將問題轉(zhuǎn)換成向量。
相似度檢索:在向量數(shù)據(jù)庫中檢索與問題向量最相似的知識(shí)庫片段(chunks)。這通常通過計(jì)算向量之間的相似度(如余弦相似度)來實(shí)現(xiàn)。
結(jié)果排序:根據(jù)相似度得分對檢索到的結(jié)果進(jìn)行排序,選擇最相關(guān)的片段作為后續(xù)生成的輸入。
生成模塊
上下文融合:將檢索到的相關(guān)片段與原始問題合并,形成更豐富的上下文信息,將其作為大模型的prompt輸入。
大語言模型生成:使用大語言模型(如GLM)基于上述上下文信息生成回答。大語言模型會(huì)學(xué)習(xí)如何根據(jù)檢索到的信息來生成準(zhǔn)確、有用的回答。
RAG解決LLM的痛點(diǎn)
RAG(檢索增強(qiáng)生成)旨在緩解甚至解決以下大模型落地應(yīng)用的痛點(diǎn):
- 有幻覺,可以提供更準(zhǔn)確和可靠的領(lǐng)域特定知識(shí),減少生成幻覺
- 時(shí)效性,不需要重新訓(xùn)練模型,更新知識(shí)庫即可保持同步更新
- 使用外部知識(shí)庫,保護(hù)隱私
- 支持更長的上下文
參考:
- 一文徹底搞懂大模型 - RAG(檢索、增強(qiáng)、生成)
- RAG系統(tǒng)綜述
- 一文速通RAG
- 精通 RAG:打造頂尖企業(yè)級 RAG 系統(tǒng)的秘籍
- Retrieval Augmented Generation(RAGs)解釋[譯]
- langchain
使用ragflow
訪問ragflow
網(wǎng)址:http://localhost/login,然后隨便注冊賬戶:
配置ollama模型
ollama list
列出所有的模型,有兩個(gè)Embedding模型以及一個(gè)qwen2:7b的模型
添加Embedding模型
添加chat模型
添加過后
系統(tǒng)模式設(shè)置
將剛才添加的模型設(shè)置到系統(tǒng)默認(rèn)配置中
創(chuàng)建知識(shí)庫
數(shù)據(jù)集配置
設(shè)置嵌入Embedding模型以及解析方法
這里我們做的機(jī)器學(xué)習(xí)論文庫,因此可以將“解析方法”從“General”調(diào)整為“Paper”模式,對論文進(jìn)行解析。
上傳論文
論文解析
論文上傳完畢后,執(zhí)行論文內(nèi)容的解析
論文解析過程,花了10幾分鐘
創(chuàng)建論文助理
新建一個(gè)論文助理,用于后續(xù)的聊天對話
聊天詢問DeepSeek,可以看到確實(shí)識(shí)別了知識(shí)庫