解密AI知識(shí)庫(kù)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
許多人對(duì)AI知識(shí)庫(kù)的理解是:只需將所有資料拖入AI客戶端(如Cherry Studio),AI便會(huì)自動(dòng)閱讀并生成完美結(jié)論。 但實(shí)際體驗(yàn)后,大家發(fā)現(xiàn)AI知識(shí)庫(kù)效果遠(yuǎn)不如預(yù)期,經(jīng)常出現(xiàn)各種問(wèn)題。 技術(shù)原理與局限本文將從原理出發(fā),分析AI知識(shí)庫(kù)的技術(shù)局限,并介紹進(jìn)階方案,如重排序模型、數(shù)據(jù)庫(kù)(MCP server)和超長(zhǎng)上下文模型等。 目前主流的大模型知識(shí)庫(kù)采用RAG(檢索增強(qiáng)生成)技術(shù)。 用戶添加資料時(shí),系統(tǒng)會(huì)先將其拆分為多個(gè)文本塊。 隨后,嵌入模型將這些文本塊向量化,即將文本轉(zhuǎn)為一組超長(zhǎng)數(shù)字序列。 以我的知識(shí)庫(kù)為例,嵌入模型輸出1024維向量: 每個(gè)文本塊都被轉(zhuǎn)為1024個(gè)數(shù)值組成的向量: 系統(tǒng)將向量及對(duì)應(yīng)文本存入向量數(shù)據(jù)庫(kù)。 用戶提問(wèn)時(shí),問(wèn)題同樣被向量化為1024維向量。 系統(tǒng)將問(wèn)題向量與數(shù)據(jù)庫(kù)中所有向量進(jìn)行相似度計(jì)算,完全基于數(shù)學(xué)運(yùn)算。 最終,知識(shí)庫(kù)選出最相似的原文片段,與用戶問(wèn)題一同發(fā)送給大模型,由其歸納總結(jié)。 可見(jiàn),在RAG架構(gòu)中,大模型主要負(fù)責(zé)歸納總結(jié),答復(fù)質(zhì)量很大程度取決于檢索精度。RAG系統(tǒng)普遍存在分塊粗糙、檢索不準(zhǔn)、缺乏全局視角等問(wèn)題。 Cherry Studio安裝與配置前往Cherry Studio官網(wǎng)下載并安裝軟件:Cherry Studio 安裝過(guò)程簡(jiǎn)單,按提示操作即可。 安裝后,打開(kāi)軟件,點(diǎn)擊左下角“設(shè)置”-“模型服務(wù)”。 本文以硅基流動(dòng)提供的免費(fèi)嵌入模型為例。找到“硅基流動(dòng)”,點(diǎn)擊獲取密鑰。若無(wú)賬號(hào)可先注冊(cè)。 歡迎在評(píng)論區(qū)互助分享邀請(qǐng)碼。 點(diǎn)擊左側(cè)“API密鑰”,新建密鑰(如“程序員NEO”),復(fù)制生成的密鑰。 將密鑰填入Cherry Studio。 添加嵌入模型:點(diǎn)擊“模型”右側(cè)添加按鈕。 回到硅基流動(dòng)“模型廣場(chǎng)”,篩選“類型”為“嵌入”,選擇“bge-m3(免費(fèi))”,復(fù)制模型名稱。 回到Cherry Studio,填入模型名,點(diǎn)擊“添加嵌入模型”完成配置。 知識(shí)庫(kù)配置與文件添加配置知識(shí)庫(kù):點(diǎn)擊左側(cè)“知識(shí)庫(kù)”-“添加”,填寫名稱,選擇剛添加的嵌入模型,點(diǎn)擊確定。 添加文件:點(diǎn)擊“添加文件”,選擇文檔(如《三國(guó)演義》),打開(kāi)后自動(dòng)處理。 分片已存入向量數(shù)據(jù)庫(kù)。 根據(jù)官方文檔,目前使用turso的libSQL數(shù)據(jù)庫(kù)。 在知識(shí)庫(kù)頁(yè)面右上角點(diǎn)擊“搜索知識(shí)庫(kù)”可檢索分片內(nèi)容。 如搜索“劉備”,系統(tǒng)會(huì)基于向量匹配查找相關(guān)段落,每段約300字。 Cherry Studio采用long chain遞歸文本分割器。 RAG知識(shí)庫(kù)的缺陷與改進(jìn)分塊方式簡(jiǎn)單這種分塊方式基本按段落分塊,段落過(guò)長(zhǎng)則按固定字?jǐn)?shù)切分,常導(dǎo)致句子被截?cái)唷?/p> 以剛檢索到的“劉備”為例: 可見(jiàn)“:”前內(nèi)容被截?cái)啵Y(jié)尾“雖是”也未說(shuō)完。由于分塊上限為300字,前后句被強(qiáng)行截?cái)唷?/p> 這暴露了RAG知識(shí)庫(kù)的缺陷:分塊粗糙,AI難以理解上下文,導(dǎo)致回答不精準(zhǔn)。 雖然也有基于語(yǔ)義分析的分塊方法,但目前大多不成熟,效果甚至不如簡(jiǎn)單分割。 檢索不精準(zhǔn)RAG的另一個(gè)問(wèn)題是檢索不準(zhǔn)。例如搜索“曹操兵器”,想找倚天劍的信息。 系統(tǒng)僅基于數(shù)字相似度匹配,無(wú)法真正理解文本含義,篩選片段可能相關(guān)也可能無(wú)關(guān),難以精準(zhǔn)匹配。 匹配結(jié)果往往不是所需信息,這是RAG系統(tǒng)的痛點(diǎn)之一。 較好的改進(jìn)方案是引入重排序模型。先用向量數(shù)據(jù)庫(kù)初步檢索,再用重排序模型做語(yǔ)義分析,根據(jù)相關(guān)性重新排序。 以“曹操兵器”為例,添加重排序模型后,效果明顯提升。進(jìn)入模型服務(wù),找到硅基流動(dòng),添加重排序模型。 復(fù)制免費(fèi)重排序模型名稱,回到Cherry Studio添加。 在知識(shí)庫(kù)設(shè)置中添加重排序模型,點(diǎn)擊確定。 再次搜索“曹操兵器”,倚天劍信息排到第二位,分?jǐn)?shù)78%。重排序模型顯著提升了檢索精度。 缺乏全局視角第三個(gè)痛點(diǎn)是缺乏全局視角。以AI生成的300條學(xué)生統(tǒng)計(jì)數(shù)據(jù)為例: 如需統(tǒng)計(jì)分析(如最大最小值),RAG難以勝任。向量數(shù)據(jù)庫(kù)只能匹配文本塊,無(wú)法整體分析。 將Excel文件添加到知識(shí)庫(kù): 在聊天界面(使用DeepSeek,硅基流動(dòng)提供),開(kāi)啟知識(shí)庫(kù)。 提問(wèn)“共有多少學(xué)生”,AI僅獲取六個(gè)片段。 實(shí)際有300個(gè)學(xué)生。 AI卻答120個(gè)。 因此,結(jié)構(gòu)化或統(tǒng)計(jì)性問(wèn)題建議用關(guān)系型數(shù)據(jù)庫(kù)?,F(xiàn)在可通過(guò)MCP讓AI操作數(shù)據(jù)庫(kù),效果更佳。 數(shù)據(jù)庫(kù)接入與配置已將學(xué)生數(shù)據(jù)導(dǎo)入PostgreSQL數(shù)據(jù)庫(kù)。 數(shù)據(jù)準(zhǔn)備與導(dǎo)入借助ChatGPT將Excel數(shù)據(jù)轉(zhuǎn)為SQL語(yǔ)句,高效導(dǎo)入數(shù)據(jù)庫(kù)。以下為效果截圖,敏感信息已脫敏。 Cherry Studio環(huán)境配置在Cherry Studio配置MCP server,使AI可訪問(wèn)數(shù)據(jù)庫(kù)。進(jìn)入設(shè)置,添加MCP服務(wù)器。 如出現(xiàn)紅色感嘆號(hào),點(diǎn)擊查看詳情,按提示安裝UV和Bun依賴。 安裝完成后,編輯MCP配置。 數(shù)據(jù)庫(kù)接入MCP Server在MCP配置頁(yè)面查找PostgreSQL MCP。可參考官方GitHub:PostgreSQL MCP 復(fù)制官方配置內(nèi)容,粘貼到Cherry Studio。 將 "postgresql://<user>:<password>@<host>:<port>/<database>" 示例(已脫敏): postgresql://db_user:db_password@db-host.example.com:5432/dbname?sslmode=require
點(diǎn)擊確定,啟動(dòng)服務(wù)。 系統(tǒng)提示詞配置回到聊天界面(需選擇支持函數(shù)調(diào)用的模型,模型名后有扳手圖標(biāo)),選擇剛配置的Postgres MCP服務(wù)器。 編輯系統(tǒng)提示詞,先提供數(shù)據(jù)庫(kù)表結(jié)構(gòu)信息。 擴(kuò)展兩張表:課程表和選課成績(jī)表。 你是數(shù)據(jù)庫(kù)助手,以下是PostgreSQL表結(jié)構(gòu),請(qǐng)結(jié)合表結(jié)構(gòu)和查詢結(jié)果回答用戶問(wèn)題。 CREATE TABLE students ( id SERIAL PRIMARY KEY, name VARCHAR(100), age INTEGER, phone VARCHAR(20), gender VARCHAR(10) ); CREATE TABLE courses ( course_id INTEGER PRIMARY KEY, course_name VARCHAR(100) ); CREATE TABLE enrollments ( id SERIAL PRIMARY KEY, student_id INTEGER REFERENCES students(id), course_id INTEGER REFERENCES courses(course_id), score INTEGER ); 效果驗(yàn)證保存后測(cè)試,如“學(xué)生總數(shù)是多少”。 AI可成功調(diào)用MCP server,通過(guò)SQL查詢返回結(jié)果。需選擇支持工具調(diào)用的模型。 再問(wèn)“年齡最大的學(xué)生是誰(shuí)”,同樣查詢成功。 測(cè)試復(fù)雜問(wèn)題,如“哪些學(xué)生選修了數(shù)學(xué)課,分?jǐn)?shù)最高前三名”。 AI可聯(lián)合三表查詢,準(zhǔn)確返回結(jié)果。通過(guò)MCP server對(duì)接數(shù)據(jù)庫(kù),結(jié)構(gòu)化數(shù)據(jù)檢索效果遠(yuǎn)超普通知識(shí)庫(kù)。 超長(zhǎng)上下文模型的應(yīng)用此外,還可利用支持超長(zhǎng)上下文的模型,將資料直接拖入對(duì)話框。 模型窗口進(jìn)化與測(cè)試如上圖,近兩年模型上下文窗口大幅提升。例如Gemini 2.0 Pro已支持2000萬(wàn)token,可容納四大名著。以下以Gemini為例測(cè)試。 API密鑰獲取與模型配置訪問(wèn)谷歌AI Studio(需魔法上網(wǎng))。 右上角“Get API Key”,點(diǎn)擊創(chuàng)建API密鑰。 復(fù)制API密鑰。 回到Cherry Studio,設(shè)置模型服務(wù)商為Gemini,填寫API密鑰。 添加模型,點(diǎn)擊“添加”,模型ID可在AI Studio選擇。以Gemini 2.0 Flash為例,支持100萬(wàn)token上下文,且有免費(fèi)額度。 復(fù)制Gemini 2.0 Flash模型ID。 回到Cherry Studio,填寫模型ID并添加。 切換聊天模型為Gemini 2.0 Flash。 清空助手默認(rèn)Prompt。 知識(shí)庫(kù)檢索實(shí)戰(zhàn)測(cè)試知識(shí)庫(kù)能力。以全本《三國(guó)演義》為例,用VSCode將張飛武器改為“丈九棒棒糖”,保存。 將全本《三國(guó)演義》拖入對(duì)話框,提問(wèn):“張飛造了什么兵器,請(qǐng)找到原文位置并據(jù)此回答?!?/p> AI成功檢索到答案,第一回中張飛造“丈九棒棒糖”。本次任務(wù)消耗551266 token。 整個(gè)《三國(guó)演義》僅用了一半上下文窗口。利用Gemini超長(zhǎng)上下文進(jìn)行知識(shí)庫(kù)檢索,效率極高。 總結(jié)與展望AI知識(shí)庫(kù)常被稱為“demo五分鐘,上線一年”。目前AI知識(shí)庫(kù)仍是復(fù)雜系統(tǒng)工程,無(wú)通用銀彈,項(xiàng)目落地需多工具協(xié)作。當(dāng)前效果較好的方案是自適應(yīng)RAG,根據(jù)查詢類型自動(dòng)選擇檢索策略,結(jié)合多種方式提升精度。本文到此結(jié)束. ?轉(zhuǎn)自https://www.cnblogs.com/BNTang/p/18861128 該文章在 2025/5/8 8:57:00 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |