Kernel Memory 入门系列: RAG 简介
Kernel Memory 入門(mén)系列: RAG 簡(jiǎn)介
開(kāi)一個(gè)新坑,Semantic Kernel系列會(huì)在 Release 1.0 之后陸續(xù)更新。
當(dāng)我們有了一定的產(chǎn)品資料或者知識(shí)內(nèi)容之后,自然想著提供一個(gè)更加方便的方式讓用戶(hù)能夠快速地找到自己想要的信息,或者得到一個(gè)更加智能的答案。
以往的時(shí)候可能需要通過(guò)一些搜索引擎或者問(wèn)答系統(tǒng)來(lái)實(shí)現(xiàn),但是這些系統(tǒng)往往需要極高的維護(hù)成本,而且對(duì)于用戶(hù)來(lái)說(shuō)也不是很友好。很多時(shí)候仍然需要用戶(hù)自己去思考問(wèn)題的表達(dá)方式,然后再去搜索或者提問(wèn),可以說(shuō)是費(fèi)事費(fèi)力。
如今有了大語(yǔ)言模型,我們就可以考慮通過(guò)它來(lái)實(shí)現(xiàn)一個(gè)更加智能的問(wèn)答系統(tǒng),為用戶(hù)提供一個(gè)更加友好的交互方式。
從對(duì)話(huà)開(kāi)始
當(dāng)我們直接接入大語(yǔ)言的模型的時(shí)候,往往會(huì)遇到一個(gè)很常見(jiàn)的問(wèn)題,就是它對(duì)于我們私有的數(shù)據(jù),小眾領(lǐng)域的信息或者較新的知識(shí)并不知道。
這源自于大語(yǔ)言模型的訓(xùn)練數(shù)據(jù)集的限制,它的數(shù)據(jù)往往來(lái)自于大眾的語(yǔ)料庫(kù),所以對(duì)于公開(kāi)的信息了解的就比較多,但是對(duì)于私有的數(shù)據(jù),小眾領(lǐng)域的信息都不在它的知識(shí)范圍內(nèi),而且由于訓(xùn)練成本和時(shí)間的限制,它也不可能實(shí)時(shí)地去更新模型本身的知識(shí)。
這個(gè)時(shí)候得到“不知道”的答案反而是一個(gè)好事兒,起碼看得出來(lái)這個(gè)模型是有一定的智能的,它知道自己不知道,而不是隨便瞎猜。畢竟處理大模型的幻覺(jué)也是很大的一個(gè)問(wèn)題。
補(bǔ)充上下文
那么這個(gè)時(shí)候如果想要讓模型能夠?yàn)槲覀兯玫模托枰弦稽c(diǎn)技術(shù)手段了。
最簡(jiǎn)單的方法就是在與大模型溝通的時(shí)候,增加一些上下文的信息。
那這里的上下文就是我們所能夠提供給模型的,用于回答用戶(hù)問(wèn)題的信息了。
那么接下來(lái)的問(wèn)題就是,這個(gè)上下文信息是怎么來(lái)的?
RAG
我們需要從整個(gè)流程來(lái)回溯一下:
- 首先用戶(hù)提出問(wèn)題,這個(gè)問(wèn)題從始至終不會(huì)發(fā)生變化
- 然后我們需要理解用戶(hù)的問(wèn)題,知道用戶(hù)提問(wèn)的意圖和方向
- 接下來(lái)就是我們需要根據(jù)用戶(hù)的問(wèn)題,去檢索我們的知識(shí)庫(kù),找到與用戶(hù)問(wèn)題相關(guān)的信息,查找出與之相關(guān)的的文檔或者文本內(nèi)容
- 最后我們需要將這些文檔或者文本內(nèi)容進(jìn)行整合,組成一個(gè)完整的提示詞,提供給大語(yǔ)言模型用于生成
- 最后通過(guò)大語(yǔ)言模型生成相對(duì)精確的答案,返回給用戶(hù)
這個(gè)過(guò)程就被稱(chēng)為 RAG(Retrieval Augmented Generation),也就是檢索增強(qiáng)生成。
參考資料
- 檢索增強(qiáng)生成 (RAG)
總結(jié)
以上是生活随笔為你收集整理的Kernel Memory 入门系列: RAG 简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 心情不好唯美短句子169个
- 下一篇: java信息管理系统总结_java实现科