国产成av人片在线观看天堂无码,伊人免费视频在线,另类在线欧美图片,亚洲国产中文字幕乱,绝世天君txt下载,家有囍事小说,斗罗小说网

基于Ollama+AnythingLLM搭建本地私有知識庫系統(tǒng)

基于Ollama+AnythingLLM搭建本地私有知識庫系統(tǒng)

yunxin 2025-03-20 醉美胡楊 3 次瀏覽 0個評論

1. 傳統(tǒng)LLM應(yīng)用的弊端? ? ? ?

????????自O(shè)penAI革命性的ChatGPT發(fā)布以來,在人工智能領(lǐng)域,特別是大型語言模型(Large Language Model,LLM)的能力進(jìn)化速度之快令人驚嘆,大模型浪潮已經(jīng)席卷了幾乎各行業(yè)。通過利用LLM的強(qiáng)大功能來解決復(fù)雜任務(wù)、增強(qiáng)自然語言理解和生成類人文本,從而可能顛覆各個領(lǐng)域。

? ? ? ?但是當(dāng)涉及到專業(yè)場景或行業(yè)細(xì)分領(lǐng)域時,通用的基礎(chǔ)大模型基本無法滿足我們的實際業(yè)務(wù)需求,主要有以下幾方面原因:

  • 知識的局限性:模型自身的知識完全源于它的訓(xùn)練數(shù)據(jù),而現(xiàn)有的主流大模型(ChatGPT、文心一言、通義千問)的訓(xùn)練集基本都是構(gòu)建于網(wǎng)絡(luò)公開的數(shù)據(jù),對于一些實時性的、非公開的或離線的數(shù)據(jù)是無法獲取到的,這部分知識也就無從具備。
  • 幻覺問題:所有的AI模型的底層原理都是基于數(shù)學(xué)概率,其模型輸出實質(zhì)上是一系列數(shù)值運算,大模型也不例外,所以它有時候會一本正經(jīng)地胡說八道,尤其是在大模型自身不具備某一方面的知識或不擅長的場景。而這種幻覺問題的區(qū)分是比較困難的,因為它要求使用者自身具備相應(yīng)領(lǐng)域的知識。
  • 數(shù)據(jù)安全性:對于企業(yè)來說,數(shù)據(jù)安全至關(guān)重要,沒有企業(yè)愿意承擔(dān)數(shù)據(jù)泄露的風(fēng)險,將自身的私域數(shù)據(jù)上傳第三方平臺進(jìn)行訓(xùn)練。這也導(dǎo)致完全依賴通用大模型自身能力的應(yīng)用方案不得不在數(shù)據(jù)安全和效果方面進(jìn)行取舍。既要保證安全,又要借助AI能力,那么最好的方式就是把數(shù)據(jù)全部放在本地,企業(yè)數(shù)據(jù)的業(yè)務(wù)計算全部在本地完成。

????????其實問題還有很多,包括tokens的限制,雖然這個長期來看不是問題,各LLM供應(yīng)商的tokens數(shù)量限制肯定會越來越大。但是,費用也許就是另外一個需要考慮的問題了。

2.??檢索增強(qiáng)生成原理 ? ??

????????檢索增強(qiáng)生成(Retrieval-Augmented Generation,RAG),是一種使用外部知識庫來補(bǔ)充大語言模型的上下文并生成響應(yīng)的技術(shù)。 RAG結(jié)合了LLM中的參數(shù)化知識和非參數(shù)化外部知識,緩解了幻覺問題,通過檢索技術(shù)識別及時的信息,并增強(qiáng)了響應(yīng)的準(zhǔn)確性。 此外,通過引用來源,RAG增加了模型輸出的透明度和用戶信任度。 RAG還可以通過索引相關(guān)文本語料庫進(jìn)行定制以適應(yīng)特定領(lǐng)域。

? ? ? ?RAG的架構(gòu)如圖所示,簡單來講,RAG就是通過檢索獲取相關(guān)的知識并將其融入Prompt,讓大模型能夠參考相應(yīng)的知識從而給出合理回答。因此,可以將RAG的核心理解為“檢索+生成”,前者主要是利用向量數(shù)據(jù)庫的高效存儲和檢索能力,召回目標(biāo)知識;后者則是利用大模型和Prompt工程,將召回的知識合理利用,生成目標(biāo)答案。

? ????? 完整的RAG應(yīng)用流程主要包含數(shù)據(jù)準(zhǔn)備和應(yīng)用兩個階段。

????????數(shù)據(jù)準(zhǔn)備主要是將私域數(shù)據(jù)向量化后構(gòu)建索引并存入數(shù)據(jù)庫的過程。主要包括:數(shù)據(jù)提取、文本分割、向量化、數(shù)據(jù)入庫等環(huán)節(jié)。文本分割主要考慮兩個因素:1)embedding模型的Tokens限制情況;2)語義完整性對整體的檢索效果的影響。向量化是一個將文本數(shù)據(jù)轉(zhuǎn)化為向量矩陣的過程,該過程會直接影響到后續(xù)檢索的效果。數(shù)據(jù)向量化后構(gòu)建索引,并寫入數(shù)據(jù)庫的過程可以概述為數(shù)據(jù)入庫過程。

????????應(yīng)用階段根據(jù)用戶的提問,通過高效的檢索方法,召回與提問最相關(guān)的知識,并融入Prompt;大模型參考當(dāng)前提問和相關(guān)知識,生成相應(yīng)的答案。

????????我們可以化繁為簡。把RAG——Retrieval?Augmented?Generation理解為Retrieval?And? Generation,也就是檢索與生成,在加上一個數(shù)據(jù)向量和索引的工作,我們對RAG就可以總概方式地理解為“索引、檢索和生成”。

????????可以看到,RAG與LLM相結(jié)合,成為現(xiàn)階段自動構(gòu)建私有/本地知識庫的主要手段。

? ? ? ? 構(gòu)建本地知識庫有三個方面,一是LLM,懂得怎么處理自然語言;二是嵌入模型,它的工作就是把復(fù)雜的數(shù)據(jù)簡化,轉(zhuǎn)化成易于處理的格式;最后是向量數(shù)據(jù)庫,專門存儲和管理那些轉(zhuǎn)化后的數(shù)據(jù)。

????????本文介紹利用Ollama和AnythingLLM構(gòu)建自己的本地知識庫。

????????Ollama 是一個專注于本地運行大型語言模型(LLM)的框架,它使得用戶能夠在自己的計算機(jī)上輕松地部署和使用大型語言模型,而無需依賴昂貴的GPU資源。Ollama 提供了一系列的工具和服務(wù),旨在簡化大型語言模型的安裝、配置和使用過程,讓更多人能夠體驗到人工智能的強(qiáng)大能力。Ollama的下載和安裝可以參考我之前寫的另一篇文章(Window 11本地部署 Meta Llama3-8b),這里不再贅述。

1.?AnythingLLM 簡介

????????AnythingLLM 是 Mintplex Labs 開發(fā)的一款可以與任何內(nèi)容聊天的私人ChatGPT,是高效、可定制、開源的企業(yè)級文檔聊天機(jī)器人解決方案。它能夠?qū)⑷魏挝臋n、資源或內(nèi)容片段轉(zhuǎn)化為大語言模型(LLM)在聊天中可以利用的相關(guān)上下文。

????????AnythingLLM 支持多種文檔類型(PDF、TXT、DOCX等),具有對話和查詢兩種聊天模式。

支持多種?LLM、嵌入模型和向量數(shù)據(jù)庫:

基于Ollama+AnythingLLM搭建本地私有知識庫系統(tǒng)

????????LLM:包括任何開源的 llama.cpp 兼容模型、OpenAI、Azure OpenAI、Anthropic ClaudeV2、LM Studio 和 LocalAi。
????????嵌入模型:AnythingLLM 原生嵌入器、OpenAI、Azure OpenAI、LM Studio 和 LocalAI。
????????向量數(shù)據(jù)庫:LanceDB(默認(rèn))、Pinecone、Chroma、Weaviate 和 QDrant。

????????AnythingLLM 主要由三部分組成:收集器、前端和服務(wù)器。

  • collector:Python 工具,可快速將在線資源或本地文檔轉(zhuǎn)換為 LLM 可用格式。
  • frontend:ViteJS + React 前端,用于創(chuàng)建和管理 LLM 可使用的所有內(nèi)容。
  • server:NodeJS + Express 服務(wù)器,處理所有向量數(shù)據(jù)庫管理和 LLM 交互。

????????可見,AnythingLLM是一個功能豐富,集成度很高的RAG框架,其在github上的開源項目(anything-llm),已經(jīng)有1萬2千多Star。它不僅僅是一個聊天機(jī)器人,是一個全棧應(yīng)用程序,旨在通過一個精心設(shè)計的用戶界面,為客戶提供與文檔、資源等進(jìn)行智能對話的最簡單方式。該工具的一個獨特之處在于,它可以在后臺簡單地運行,而不需要使用大量的內(nèi)存或資源。

????????AnythingLLM將文檔的容器化作為其基礎(chǔ)。在這種情況下,不同的工作區(qū)可以共享相同的記錄,但不能相互交互,從而允許用戶為不同的用例維護(hù)不同的工作區(qū)。AnythingLLM包括兩種聊天模式:對話模式,其中保留以前的問題;查詢模式,指針對用戶指定的文檔進(jìn)行簡單的問答聊天。此外,對于公開可訪問的文檔,每個聊天響應(yīng)還包括一個引用,鏈接到原始內(nèi)容。

2.?AnythingLLM 安裝

????????AnythingLLM安裝有很多方式,一是到官方網(wǎng)站(Download AnythingLLM for Desktop)下載桌面版,然后雙擊即可。

????????但是,與Docker版本相比,Desktop版本的功能要少很多,所以還是安裝Docker版的吧。

? ? ? ? 首先下拉一個鏡像:

 

????????按照官方說明,輸入下列命令:?

 

????????然后就開源打開瀏覽器,輸入網(wǎng)址http://localhost:3001/,顯示Anyting LLM入口。

3.?AnythingLLM 配置

? ? ? ? LLM選擇

????????選擇 Ollama,填入 Ollama 的??端口,然后選擇你下載的模型。

?

????????咦,報錯了!

 

????????哦,原因是AnythingLLM是運行在Docker容器中的,無法連接本地環(huán)回地址,得用這個地址:?,并選擇LLM(llama3)。

4.?AnythingLLM 測試

Embedding 和向量數(shù)據(jù)庫配置

可以選擇AnythingLLM 自帶的 AnythingLLMEmbedder,以及默認(rèn)使用內(nèi)置的向量數(shù)據(jù)庫 LanceDB。

? ? ? ? 1. 配置worksapce

????????點擊新建文檔庫,填寫名稱testanythingllm。

????????我們將本筆記存儲為簡單的txt文件,作為LLM的外部文檔。點擊按鈕開始添加文檔,并將文檔點擊出現(xiàn)就表示配置已經(jīng)完成。

2. 比較測試

????????回到主頁面,輸入問題“如何基于ollama+anything構(gòu)建知識庫”,結(jié)果見下圖,可以看到結(jié)果基本正確。

????????作為對比,我們看一下,llama3本身的答案:是很通用的答案,與ollama和anythingllm沒有聯(lián)系。

????????我們把llm換成對中文支持比較好的llama2 chinese版,看看這個問題的結(jié)果。

????????可以看到,基于llama2中文版的AnythingLLM結(jié)果還是比較理想的。類似的,后面直接基于llama2的回答結(jié)果就有點“胡思亂語”了。

? ? ? ? 本文首先介紹了LLM在落地應(yīng)用中的不足,引入了RAG這個框架和原理,介紹了RAG在私有知識庫中的重要作用。以O(shè)llama和AnythingLLM為實現(xiàn)手段,構(gòu)建了并測試了本地知識庫。測試結(jié)果表明,有了RAG的加持,LLM的回答結(jié)果更加貼切,有效。

參考文獻(xiàn)

一文搞懂大模型RAG應(yīng)用

轉(zhuǎn)載請注明來自阿拉善凱拓戶外,本文標(biāo)題:《基于Ollama+AnythingLLM搭建本地私有知識庫系統(tǒng)》

百度分享代碼,如果開啟HTTPS請參考李洋個人博客
每一天,每一秒,你所做的決定都會改變你的人生!
Top
 東航最新航班搜索信息  龍華小機(jī)長招聘最新信息  綿陽廚師最新招聘信息  江西宜都最新招聘信息  常州最新游泳館信息  洛陽僑業(yè)最新信息招聘  泥坡小區(qū)招聘信息最新  重慶北區(qū)最新房源信息  廣州移印招聘最新信息  西安外賣最新信息招聘  潭下中學(xué)招聘信息最新  青鳥藥企招聘信息最新  贛榆網(wǎng)絡(luò)員招聘最新信息  盧偉冰nfc最新信息  琦氏醫(yī)院招聘信息最新  龍口平房出租信息最新  江蘇裁剪最新招聘信息  中山雪糕柜出售最新信息  順鋒快遞最新信息查詢  新吳區(qū)路況最新信息  幸福的理由最新信息在線  長春糧庫最新招聘信息  青島房價的最新報道信息  深圳市大選最新信息  大通縣飯店招聘信息最新  銀川工廠招聘信息最新消  安慶光彩最新招聘信息  同安燒烤師招聘最新信息