隨著大模型的飛速發(fā)展猪瞬, AI 技術(shù)開始在更多場景中普及憎瘸。在數(shù)據(jù)庫運維領(lǐng)域,我們的目標是將專家系統(tǒng)和 AI 原生技術(shù)相融合陈瘦,幫助數(shù)據(jù)庫運維工程師高效獲取數(shù)據(jù)庫知識幌甘,并做出快速準確的運維決策。傳統(tǒng)的運維知識庫系統(tǒng)主要采用固化的規(guī)則和策略來記錄管理操作和維護的知識痊项,這些系統(tǒng)的知識檢索方式主要基于關(guān)鍵字搜索和預(yù)定義的標簽或分類锅风,用戶需要具備一定的專業(yè)知識才能有效地利用這些系統(tǒng)。這已不足以滿足現(xiàn)在復(fù)雜多變的運維環(huán)境鞍泉。因此皱埠,借助大模型來提供運維知識并協(xié)助決策成為趨勢。這將在運維能力咖驮、成本控制边器、效率提升和安全性等方面帶來深刻的變革训枢。在數(shù)據(jù)庫領(lǐng)域,AI 技術(shù)應(yīng)用可以劃分為不同場景饰抒,例如知識庫學(xué)習(包括知識問答和知識管理)肮砾、診斷與推理(包括日志分析和故障診斷)、工作輔助(包括 SQL 生成和 SQL 優(yōu)化)等袋坑。本文將主要著重介紹「知識庫智能問答系統(tǒng)」的設(shè)計與實現(xiàn)仗处,旨在為讀者提供深入了解該領(lǐng)域應(yīng)用的思路。
架構(gòu)設(shè)計和實現(xiàn)
技術(shù)方案選型
目前枣宫,大模型已經(jīng)可以通過對自然語言的理解揣摩用戶意圖婆誓,并對原始知識進行匯總、整合也颤,進而生成更具邏輯和完整性的答案洋幻。然而,仍存在以下幾個問題翅娶,導(dǎo)致我們不能直接使用這些模型來對特定領(lǐng)域知識進行問答文留。專業(yè)性不足:作為通用大模型,對專業(yè)領(lǐng)域知識的訓(xùn)練不足竭沫,可能會產(chǎn)生虛假陳述燥翅、準確性不足以及信息豐富度不足的問題。時效性問題:模型的訓(xùn)練數(shù)據(jù)基于某個時間之前的數(shù)據(jù)蜕提,缺乏最新的信息森书,每次添加新數(shù)據(jù)都會導(dǎo)致高昂的訓(xùn)練成本。安全性問題:模型無法訪問企業(yè)內(nèi)部私密文檔谎势,且這些文檔不能直接用于 Fine-Tuning凛膏。為了解決這些問題,業(yè)界采用了如下幾種技術(shù)手段來為大型模型提供額外知識脏榆。Fine-Tuning(微調(diào)):使用特定領(lǐng)域的知識對基礎(chǔ)大模型進行微調(diào)猖毫,以改變神經(jīng)網(wǎng)絡(luò)參數(shù)的權(quán)重。雖然適用于特定任務(wù)或風格须喂,但需要大量資源和高質(zhì)量的訓(xùn)練數(shù)據(jù)鄙麦。Prompt 工程:將行業(yè)領(lǐng)域的知識作為輸入消息提供給模型,讓模型對消息中的知識進行分析和處理镊折。這種方法在正確性和精度上表現(xiàn)良好胯府,但有文本長度限制,對于大規(guī)模數(shù)據(jù)不夠高效恨胚。與傳統(tǒng)搜索結(jié)合:使用傳統(tǒng)搜索技術(shù)構(gòu)建基礎(chǔ)知識庫骂因,然后使用大語言模型處理用戶請求,對召回結(jié)果進行二次加工赃泡。這種方法具有更高的可控性和效率寒波,并適用于大規(guī)模數(shù)據(jù)乘盼。為了確保準確性和效率,我們選擇了第 2 種和第 3 種方式相結(jié)合的方案俄烁,通過向量數(shù)據(jù)庫將知識外掛作為大模型記憶體绸栅,使用 LangChain 作為基礎(chǔ)開發(fā)框架來構(gòu)建知識庫問答系統(tǒng),最終依靠 Prompt 工程和大模型進行交互页屠。