回答“通義千問(wèn)是什么”

同樣地,這種方式可以應(yīng)用于處理文檔,PDF,郵件,網(wǎng)絡(luò)資訊等等尚未被LLM訓(xùn)練數(shù)據(jù)集覆蓋到的內(nèi)容。比如:

  1. 結(jié)合最新的航班信息和最新的網(wǎng)紅打卡地點(diǎn)等旅游攻略資源,打造旅游助手。比如回答下周最適合去哪里旅游,如何最經(jīng)濟(jì)實(shí)惠的問(wèn)題。
  2. 體育賽事點(diǎn)評(píng),時(shí)事熱點(diǎn)新聞點(diǎn)評(píng),總結(jié)。今天誰(shuí)是NBA比賽的MVP。
  3. 教育行業(yè),最新的教育熱點(diǎn)解讀,比如,告訴我什么是AIGC,什么是Stable Diffusion以及如何使用等等。
  4. 金融領(lǐng)域,快速分析各行業(yè)領(lǐng)域金融財(cái)報(bào),打造金融咨詢助手。
  5. 專業(yè)領(lǐng)域的客服機(jī)器人…

實(shí)現(xiàn)原理

本地知識(shí)問(wèn)答系統(tǒng)(Local QA System)主要是通過(guò)結(jié)合了大語(yǔ)言模型的推理能力和向量數(shù)據(jù)庫(kù)的存儲(chǔ)和檢索能力。來(lái)實(shí)現(xiàn)通過(guò)向量檢索到最相關(guān)的語(yǔ)義片段,然后讓大語(yǔ)言模型結(jié)合相關(guān)片段上下文來(lái)進(jìn)行正確的推理得到結(jié)論。在這個(gè)過(guò)程中主要有兩個(gè)流程:

a. 后端數(shù)據(jù)處理和存儲(chǔ)流程

b. 前端問(wèn)答流程

同時(shí)其底層主要依賴兩個(gè)模塊:

1. 基于大語(yǔ)言模型的推理模塊

2. 基于向量數(shù)據(jù)庫(kù)的向量數(shù)據(jù)管理模塊

Local QA system on LLM & VectorStore原理

后端數(shù)據(jù)處理和存儲(chǔ)流程

上圖黑色的部分為后端的數(shù)據(jù)處理流程,主要是將我們的原始數(shù)據(jù)求解embedding,并和原始數(shù)據(jù)一起存入到向量數(shù)據(jù)庫(kù)ADB-PG中。這里你只需要關(guān)注上圖的藍(lán)色虛線框部分。黑色的處理模塊和ADB-PG向量數(shù)據(jù)庫(kù)。

前端問(wèn)答流程

在這個(gè)過(guò)程中主要分為三個(gè)部分:1.問(wèn)題提煉部分;2.向量檢索提取最相關(guān)知識(shí);3.推理求解部分。在這里我們需要關(guān)注橙色部分。單單說(shuō)原理可能比較晦澀,我們還是用上面的例子來(lái)說(shuō)明。

Local QA system on LLM & VectorStore

Part1 問(wèn)題提煉

這個(gè)部分是可選的,之所以存在是因?yàn)橛行﹩?wèn)題是需要依賴于上下文的。因?yàn)橛脩魡?wèn)的新問(wèn)題可能沒(méi)辦法讓LLM理解這個(gè)用戶的意圖。

比如用戶的新問(wèn)題是“它能做什么”。LLM并不知道它指的是誰(shuí),需要結(jié)合之前的聊天歷史,比如“通義千問(wèn)是什么”來(lái)推理出用戶需要求解答案的獨(dú)立問(wèn)題“通義千問(wèn)能做什么”。LLM沒(méi)法正確回答“它有什么用”這樣的模糊問(wèn)題,但是能正確回答“通義千問(wèn)有什么用”這樣的獨(dú)立問(wèn)題。如果你的問(wèn)題本身就是獨(dú)立的,則不需要這個(gè)部分。

得到獨(dú)立問(wèn)題后,我們可以基于這個(gè)獨(dú)立問(wèn)題,來(lái)求取這個(gè)獨(dú)立問(wèn)題的embedding。然后去向量數(shù)據(jù)庫(kù)中搜索最相似的向量,找到最相關(guān)的內(nèi)容。這個(gè)行為在Part2 Retrieval Plugin的功能中。

Part2 向量檢索

獨(dú)立問(wèn)題求取embedding這個(gè)功能會(huì)在text2vec模型中進(jìn)行。在獲得embedding之后就可以通過(guò)這個(gè)embedding來(lái)搜索已經(jīng)事先存儲(chǔ)在向量數(shù)據(jù)庫(kù)中的數(shù)據(jù)了。比如我們已經(jīng)在ADB-PG中存儲(chǔ)了下面內(nèi)容。我們就可以通過(guò)求取的向量來(lái)獲得最相近的內(nèi)容或者知識(shí),比如第一條和第三條。通義千問(wèn)是…,通義千問(wèn)可以幫助我們xxx。

Part3 推理求解

在獲得最相關(guān)的知識(shí)之后,我們就可以就可以讓LLM基于最相關(guān)的知識(shí)和獨(dú)立問(wèn)題來(lái)進(jìn)行求解推理,得到最終的答案了。這里就是結(jié)合“通義千問(wèn)是…”,“通義千問(wèn)可以幫助我們xxx”等等最有效的信息來(lái)回答“通義千問(wèn)有什么用”這個(gè)問(wèn)題了。最終讓GPT的推理求解大致是這樣:

4、ADB-PG:內(nèi)置向量檢索+全文檢索的一站式企業(yè)知識(shí)數(shù)據(jù)庫(kù)

為什么ADB-PG適合作為Chatbot的知識(shí)數(shù)據(jù)庫(kù)?ADB-PG是一款具備大規(guī)模并行處理能力的云原生數(shù)據(jù)倉(cāng)庫(kù)。它支持行存儲(chǔ)和列存儲(chǔ)模式,既可以提供高性能的離線數(shù)據(jù)處理,也可以支持高并發(fā)的海量數(shù)據(jù)在線分析查詢。因此我們可以說(shuō)ADB-PG是一個(gè)支持分布式事務(wù)、混合負(fù)載的數(shù)據(jù)倉(cāng)庫(kù)平臺(tái),同時(shí)也支持處理多種非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)源。如通過(guò)向量檢索插件實(shí)現(xiàn)了對(duì)圖片、語(yǔ)言、視頻、文本等非結(jié)構(gòu)化數(shù)據(jù)的高性能向量檢索分析,對(duì)JSON等半結(jié)構(gòu)化數(shù)據(jù)的全文檢索分析。

因此在AIGC場(chǎng)景下,ADB-PG既可以作為一款向量數(shù)據(jù)庫(kù)滿足其對(duì)向量存儲(chǔ)和檢索的需求,也可以滿足其他結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和查詢,同時(shí)也可以提供全文檢索的能力,為AIGC場(chǎng)景下的業(yè)務(wù)應(yīng)用提供一站式的解決方案。下面我們將對(duì)ADB-PG的向量檢索、融合檢索和全文檢索這三方面的能力進(jìn)行詳細(xì)介紹。

ADB-PG向量檢索和融合檢索功能于2020年首次在公有云上線,目前已經(jīng)在人臉識(shí)別領(lǐng)域得到了非常廣泛的應(yīng)用。ADB-PG的向量數(shù)據(jù)庫(kù)繼承自數(shù)據(jù)倉(cāng)庫(kù)平臺(tái),因此它幾乎擁有DBMS的所有好處,如ANSISQL、ACID事務(wù)、高可用性、故障恢復(fù)、時(shí)間點(diǎn)恢復(fù)、可編程性、可擴(kuò)展性等。同時(shí)它支持了點(diǎn)積距離、漢明距離和歐氏距離的向量和向量的相似度搜索。這些功能目前在人臉識(shí)別、商品識(shí)別和基于文本的語(yǔ)義搜索中得到了廣泛應(yīng)用。隨著AIGC的爆炸式增長(zhǎng),這些功能為基于文本的Chatbot奠定了堅(jiān)實(shí)的基礎(chǔ)。另外,ADB-PG向量檢索引擎也使用Intel SIMD指令極其有效地實(shí)現(xiàn)了向量相似性匹配。

下面我們用一個(gè)具體的例子來(lái)說(shuō)明ADB-PG的向量檢索和融合檢索如何使用。假設(shè)有一個(gè)文本知識(shí)庫(kù),它是將一批文章分割成chunk再轉(zhuǎn)換為embedding向量后入庫(kù)的,其中chunks表包含以下字段:

那么對(duì)應(yīng)的建表DDL如下:

為了對(duì)向量檢索進(jìn)行加速,我們還需要建立一個(gè)向量索引:

同時(shí)為了對(duì)向量結(jié)構(gòu)化融合查詢提供加速,我們還需要為常用的結(jié)構(gòu)化列建立索引:

在進(jìn)行數(shù)據(jù)插入的時(shí)候,我們可以直接使用SQL中的insert語(yǔ)法:

在這個(gè)例子中,如果我們要通過(guò)文本搜索它的來(lái)源文章,那么我們就可以直接通過(guò)向量檢索進(jìn)行查找,具體SQL如下:

同樣,如果我們的需求是查找最近一個(gè)月以內(nèi)的某個(gè)文本的來(lái)源文章。那么我們就可以直接通過(guò)融合檢索進(jìn)行查找,具體SQL如下:

在看完上面的例子之后,我們可以很清楚地發(fā)現(xiàn),在ADB-PG中使用向量檢索和融合檢索就跟使用傳統(tǒng)數(shù)據(jù)庫(kù)一樣方便,沒(méi)有任何的學(xué)習(xí)門(mén)檻。同時(shí),我們對(duì)向量檢索也有針對(duì)性地做了很多優(yōu)化,如向量數(shù)據(jù)壓縮、向量索引并行構(gòu)建、向量多分區(qū)并行檢索等等,這里不再詳述。

ADB-PG同時(shí)也具有豐富的全文檢索功能,支持復(fù)雜組合條件、結(jié)果排名等檢索能力;另外對(duì)于中文數(shù)據(jù)集,ADB-PG也支持中文分詞功能,能夠高效、自定義地對(duì)中文文本加工分詞;同時(shí)ADB-PG也支持使用索引加速全文檢索分析性能。這些能力同樣也可以在AIGC業(yè)務(wù)場(chǎng)景下得到充分的使用,如業(yè)務(wù)可以對(duì)知識(shí)庫(kù)文檔結(jié)合上述向量檢索和全文檢索能力進(jìn)行雙路召回。

知識(shí)數(shù)據(jù)庫(kù)搜索部分包括傳統(tǒng)的關(guān)鍵詞全文檢索和向量特征檢索,關(guān)鍵詞全文檢索保證查詢的精準(zhǔn)性,向量特征檢索提供泛化性和語(yǔ)義匹配,除字面匹配之外召回和語(yǔ)義匹配的知識(shí),降低無(wú)結(jié)果率,為大模型提供更加豐富的上下文,有利于大語(yǔ)言模型進(jìn)行總結(jié)歸納。

5、總結(jié)

結(jié)合本文前面所提到的內(nèi)容,如果把滿腹經(jīng)綸的Chatbot比喻為人類,那么大語(yǔ)言模型可以看成是Chatbot在大學(xué)畢業(yè)前從所有書(shū)本和各領(lǐng)域公開(kāi)資料所獲得的知識(shí)和學(xué)習(xí)推理能力。所以基于大語(yǔ)言模型,Chatbot能夠回答截止到其畢業(yè)前相關(guān)的問(wèn)題,但如果問(wèn)題涉及到特定專業(yè)領(lǐng)域(相關(guān)資料為企業(yè)組織專有,非公開(kāi))或者是新出現(xiàn)的物種概念(大學(xué)畢業(yè)時(shí)尚未誕生),僅靠在學(xué)校的知識(shí)所得(對(duì)應(yīng)預(yù)訓(xùn)練的大語(yǔ)言模型)則無(wú)法從容應(yīng)對(duì),需要具備畢業(yè)后持續(xù)獲得新知識(shí)的渠道(如工作相關(guān)專業(yè)學(xué)習(xí)資料庫(kù)),結(jié)合本身的學(xué)習(xí)推理能力,來(lái)做出專業(yè)應(yīng)對(duì)。

同樣的Chatbot需要結(jié)合大語(yǔ)言模型的學(xué)習(xí)推理能力,和像ADB-PG這樣包含向量檢索和全文檢索能力的一站式數(shù)據(jù)庫(kù)(存儲(chǔ)了企業(yè)組織專有的以及最新的知識(shí)文檔和向量特征),在應(yīng)對(duì)問(wèn)題時(shí)具備基于該數(shù)據(jù)庫(kù)中的知識(shí)內(nèi)容來(lái)提供更專業(yè)更具時(shí)效性的回答。

分享到

zhupb

相關(guān)推薦