如何5分鐘快速搭建智能問(wèn)答系統(tǒng)

最近小馬在搞AI,目標(biāo)是實(shí)現(xiàn)一個(gè)智能問(wèn)答系統(tǒng)來(lái)支撐業(yè)務(wù)。經(jīng)過(guò)了之前一段時(shí)間的基礎(chǔ)AI技術(shù)學(xué)習(xí)后,小馬開(kāi)始NLP并調(diào)研智能問(wèn)答系統(tǒng)。本文介紹如何5分鐘快速搭建一個(gè)智能問(wèn)答系統(tǒng)。親測(cè)效果良好。

典型的QA 系統(tǒng)包括在線客戶服務(wù)系統(tǒng)、QA 聊天機(jī)器人等。大多數(shù)問(wèn)答系統(tǒng)可以分為:生成式或檢索式、單輪或多輪、開(kāi)放域或特定問(wèn)答系統(tǒng)。

傳統(tǒng)的問(wèn)答機(jī)器人大都是基于規(guī)則的知識(shí)圖譜方式實(shí)現(xiàn),這種方式需要對(duì)大量的語(yǔ)料進(jìn)行分類整理。

基于深度學(xué)習(xí)模型的實(shí)現(xiàn)方式可以徹底擺脫對(duì)語(yǔ)料的預(yù)處理,只需提供問(wèn)題和答案的對(duì)應(yīng)關(guān)系,通過(guò)自然語(yǔ)言處理的語(yǔ)義分析模型對(duì)問(wèn)題庫(kù)提取語(yǔ)義特征向量存入Milvus中,然后對(duì)提問(wèn)的問(wèn)題也進(jìn)行語(yǔ)義特征向量提取,通過(guò)對(duì)向量特征的匹配就可以實(shí)現(xiàn)自動(dòng)回復(fù),輕松實(shí)現(xiàn)智能客服等應(yīng)用。

一、理論準(zhǔn)備

如何5分鐘快速搭建一個(gè)智能問(wèn)答系統(tǒng),小馬最初受到啟發(fā)的是這個(gè)視頻教程《5分鐘搭建智能問(wèn)答系統(tǒng)》,文章《快速搭建對(duì)話機(jī)器人,就用這一招!》--有比較清晰的原理描述,但是發(fā)現(xiàn)教程中的項(xiàng)目版本已經(jīng)過(guò)舊,而且資源已經(jīng)被下架,所以視頻僅供參考。于是順藤摸瓜,找到最新的相關(guān)教程github地址,跟著這個(gè)教程走。(加載中文模型的參考文章《bootcamp問(wèn)答系統(tǒng)部署》

我們先來(lái)看看這個(gè)項(xiàng)目的描述。

This project combines Milvus and BERT to build a question and answer system. This aims to provide a solution to achieve semantic similarity matching with Milvus combined with AI models.

直譯為:

本項(xiàng)目結(jié)合 Milvus 和 BERT 構(gòu)建問(wèn)答系統(tǒng)。旨在提供一種解決方案,通過(guò) Milvus 結(jié)合 AI 模型實(shí)現(xiàn)語(yǔ)義相似度匹配。

Milvus是什么?

Milvus是一款全球領(lǐng)先的開(kāi)源向量數(shù)據(jù)庫(kù),賦能 AI 應(yīng)用和向量相似度搜索,加速非結(jié)構(gòu)化數(shù)據(jù)檢索。

BERT 是什么?

BERT是Google開(kāi)發(fā)的一種基于Transformer的機(jī)器學(xué)習(xí)技術(shù),用于自然語(yǔ)言處理(NLP) 預(yù)訓(xùn)練。

這里有一個(gè)BERT相關(guān)視頻教程《BERT從零詳細(xì)解讀,看不懂來(lái)打我》,涉及AE輸入形式? mask模型,其使用到概率學(xué),所以無(wú)監(jiān)督學(xué)習(xí)依賴于訓(xùn)練數(shù)據(jù),需要從訓(xùn)練數(shù)據(jù)中計(jì)算概率。

BERT是一個(gè)多任務(wù)模型,它的任務(wù)是由兩個(gè)自監(jiān)督任務(wù)組成,即MLM和NSP。Next Sentence Prediction(NSP)的任務(wù)是判斷句子B是否是句子A的下文。相關(guān)還有教程1,2。

BERT其中的一個(gè)重要作用是可以生成詞向量,它可以解決word2vec中無(wú)法解決的一詞多義問(wèn)題。獲取完BERT詞向量后還可以結(jié)合CNN、RNN等模型來(lái)實(shí)現(xiàn)自己的任務(wù)。

我們現(xiàn)在可以來(lái)看下系統(tǒng)的架構(gòu)原理圖

Question Answering Engine

該系統(tǒng)可以將新的用戶問(wèn)題與先前存儲(chǔ)在向量數(shù)據(jù)庫(kù)中的大量答案聯(lián)系起來(lái)。要構(gòu)建這樣的聊天機(jī)器人,請(qǐng)準(zhǔn)備您自己的問(wèn)題數(shù)據(jù)集和相應(yīng)的答案。將問(wèn)題和答案存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù) MySQL 中。然后使用用于自然語(yǔ)言處理 (NLP) 的機(jī)器學(xué)習(xí) (ML) 模型 BERT 將問(wèn)題轉(zhuǎn)換為向量。這些問(wèn)題向量在 Milvus 中存儲(chǔ)和索引。當(dāng)用戶輸入一個(gè)新問(wèn)題時(shí),BERT 模型也會(huì)將其轉(zhuǎn)換為一個(gè)向量,Milvus 會(huì)搜索與這個(gè)新向量最相似的問(wèn)題向量。問(wèn)答系統(tǒng)對(duì)最相似的問(wèn)題返回相應(yīng)的答案。

系統(tǒng)會(huì)使用 Milvus 存儲(chǔ)和搜索特征向量數(shù)據(jù),Mysql 用于存儲(chǔ) Milvus 返回的 id 與問(wèn)題數(shù)據(jù)集的對(duì)應(yīng)關(guān)系,此時(shí)需要先啟動(dòng) Milvus 和 Mysql。

二、快速部署

因?yàn)楸酒皼](méi)寫(xiě)詳細(xì),又想保留著本文評(píng)論筆記所以不想刪文,于是重新整理了一份完整內(nèi)容的:傳送門(mén)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容