?背景
?知識庫需求在各行各業(yè)中普遍存在,例如制造業(yè)中歷史故障知識庫、游戲社區(qū)平臺的內(nèi)容知識庫、電商的商品推薦知識庫和醫(yī)療健康領(lǐng)域的掛號推薦知識庫系統(tǒng)等。為保證推薦系統(tǒng)的實效性和準(zhǔn)確性,需要大量的數(shù)據(jù)/算法/軟件工程師的人力投入和包括硬件在內(nèi)的物力投入。其次,為了進(jìn)一步提高搜索準(zhǔn)確率,如何引導(dǎo)用戶搜索描述更加準(zhǔn)確和充分利用用戶行為優(yōu)化搜索引擎也是常見的用戶痛點。此外,如何根據(jù)企業(yè)知識庫直接給出用戶提問的答案也是眾多企業(yè)中會遇見的技術(shù)瓶頸。
?本文旨在介紹一些企業(yè)知識庫的典型實用場景,以及如何使用智能搜索,結(jié)合大語言模型,針對企業(yè)知識庫提供基于搜索的精準(zhǔn)問答。
??各行各業(yè)中有很多場景需要基于企業(yè)知識庫進(jìn)行搜索和問答
?1.構(gòu)建裝備維護知識庫和問答系統(tǒng):使用歷史維保記錄和維修手冊構(gòu)建企業(yè)知識庫,維修人員可依靠該知識庫,快速地進(jìn)行問題定位和維修。
?2.構(gòu)建IT/HR系統(tǒng)智能問答系統(tǒng):使用企業(yè)內(nèi)部IT/HR使用手冊構(gòu)建企業(yè)知識庫,企業(yè)內(nèi)部員工可通過該知識庫快速解決在IT/HR上遇到的問題。
?3.構(gòu)建電商平臺的搜索和問答系統(tǒng):使用商品信息構(gòu)建商品數(shù)據(jù)庫,消費者可通過檢索+問答的方式快速了解商品的詳細(xì)信息。
?4.構(gòu)建游戲社區(qū)自動問答系統(tǒng):使用游戲的信息(例如游戲介紹,游戲攻略等)構(gòu)建社區(qū)知識庫,可根據(jù)該知識庫自動回復(fù)社區(qū)成員提供的問題。
?5.構(gòu)建智能客戶聊天機器人系統(tǒng):通過與呼叫中心/聊天機器人服務(wù)結(jié)合,可自動基于企業(yè)知識庫就客戶提出的問題進(jìn)行聊天回復(fù)。
?6.構(gòu)建智能教育輔導(dǎo)系統(tǒng):使用教材和題庫構(gòu)建不同教育階段的知識庫,模擬和輔助老師/家長對孩子進(jìn)行教學(xué)。
?為解決上述場景需求,可通過結(jié)合搜索和大語言模型的方式來實現(xiàn)。首先,可以利用企業(yè)自身積累的數(shù)據(jù)資產(chǎn)建立一個知識庫。其次,對于特定的問答任務(wù),可以使用搜索功能對知識庫進(jìn)行有效的召回,然后將召回的知識進(jìn)行利用,增強大語言模型。通過這一方法,可以實現(xiàn)對問答任務(wù)的解決。
?在企業(yè)知識庫建立和搜索服務(wù)方面,亞馬遜云科技擁有云端托管式搜索服務(wù)Amazon OpenSearch和基于AI/ML的智能企業(yè)搜索服務(wù)Amazon Kendra。雖然上述服務(wù)能夠提供基本的搜索引擎和框架,解決了用戶在硬件投入大和管理難的痛點,然而上述服務(wù)并且不能夠滿足基于文檔的進(jìn)行問答需求。為了解決用戶需求和亞馬遜云科技服務(wù)之間的差距,借助亞馬遜云科技的服務(wù),構(gòu)建了基于智能搜索的大語言模型增強方案。該方案以Amazon OpenSearch/Amazon Kendra為基礎(chǔ)構(gòu)建搜索引擎,結(jié)合托管到Amazon SageMaker上的大語言模型,提供一站式的智能知識庫搜索問答平臺。
??基于智能搜索的大語言模型增強方案介紹
?架構(gòu)圖
?該平臺將包括五大核心內(nèi)容
?1. 智能搜索
?傳統(tǒng)僅依靠關(guān)鍵詞匹配的分詞搜索的方式在很多場景下可以提供快速有效的查詢,但是也存在一些固有的局限性。例如匹配一些包括停用詞在內(nèi)的無關(guān)詞匯,無法識別同義詞和缺乏抽象能力。為了解決這些問題,本方案中一方面使用意圖識別模型,對關(guān)鍵信息進(jìn)行提取,從而可以有效的避免停用詞等無法詞匯對搜索造成的干擾。另一方面,引入AI/ML的方法來輔助實現(xiàn)語意搜索。具體來講,使用同一個向量編碼的模型對搜索語句和文檔數(shù)據(jù)庫進(jìn)行語意編碼,在檢索的過程中,使用knn方法進(jìn)行向量匹配。以下是一個傳統(tǒng)分詞搜索與語意向量搜索的對比展示??梢钥吹剑褂孟蛄克阉鞴δ芎?,可以召回更多自然語意上相近而關(guān)鍵詞無關(guān)的內(nèi)容,增加召回范圍和提升搜索準(zhǔn)確性。
?在本方案中,以Amazon OpenSearch和Amazon Kendra為基礎(chǔ)構(gòu)建搜索引擎。提供分詞搜索,模糊查詢和AI/ML輔助搜索功能。不在局限于某一種搜索方式,而是將所有搜索方法取長補短,進(jìn)行有機的整合。
- ?智能引導(dǎo)
?造成搜索不準(zhǔn)確的原因,一方面是由于搜索引擎本身的能力不足,另外一方面的原因是因為搜索的語句不夠準(zhǔn)確和具體。因此,本方案中提出了一種引導(dǎo)式的搜索機制來幫助檢索人員逐步豐富輸入的搜索語句,最終達(dá)到提升搜索準(zhǔn)確性的目的。
?以下面制造業(yè)大型設(shè)備維保知識庫的搜索流程為例。該知識庫存儲歷史維修記錄,包括故障現(xiàn)象,故障原因,維修方案等字段。
- 當(dāng)用戶輸入檢索詞“電路”后,除了從知識庫中返回與電路相關(guān)的條目之外,還會給予一些提示詞,例如“門系統(tǒng)”、“控制系統(tǒng)”等,這些詞代表與“電路”相關(guān)的故障往往伴隨可能出現(xiàn)問題的系統(tǒng),提示用戶進(jìn)一步豐富當(dāng)前的搜索描述。
- 當(dāng)用戶進(jìn)一步輸入“主板”后,會將“電路”和“主板”進(jìn)行聯(lián)合查詢,返回相關(guān)的條目,并進(jìn)一步給出新的提示詞。
- 用戶可以重復(fù)以上過程,直到搜索出來更為精準(zhǔn)的結(jié)果。
?提示詞的獲取:根據(jù)實際情況,可以采用人工打標(biāo)、無監(jiān)督聚類、有監(jiān)督分類、大語言模型(LLM)等方法進(jìn)行提取,并提前注入到數(shù)據(jù)庫中。
- ?智能優(yōu)化
?通常情況下,由于知識庫的迭代更新,檢索的準(zhǔn)確率可能會隨時時間的推薦逐步降低,一方面是因為我們往往不能保證,數(shù)據(jù)庫和搜索引擎一次性構(gòu)建完成后就達(dá)到很好的效果。另外一方面是因為對于過時的知識沒有進(jìn)行有效的處理。因此,本方案提出以用戶行為對搜索引擎進(jìn)行持續(xù)優(yōu)化。
?具體來講包括兩個步驟:
- 用戶行為收集:將歷史用戶的行為進(jìn)行收集,例如用戶對某個搜索詞條的打分。
- 模型訓(xùn)練和部署:通過用戶行為,整理得到搜索詞條和知識庫之間的相關(guān)度。使用該相關(guān)度訓(xùn)練和部署一個重排模型,該重排模型可以根據(jù)歷史的用戶行為,給予用戶更加偏好的內(nèi)容更高的權(quán)重得分。
?值得注意的是,該模型是基于傳統(tǒng)機器學(xué)習(xí)模型xgboost的,所以所需要的訓(xùn)練數(shù)據(jù)量和推理所需要的資源都是很小的(例如只需要幾十條數(shù)據(jù)和t3.small機型),因此可以基于不同的用戶/用戶群訓(xùn)練不同的重排模型,達(dá)到千人千面,個性化搜索的目的。
?4.智能問答
?基于私有知識庫進(jìn)行問答是另外一個廣泛應(yīng)用的場景,例如智能客戶聊天機器人系統(tǒng),IT/HR系統(tǒng)智能問答系統(tǒng)等。
?如果僅使用搜索引擎,只能基于問題從數(shù)據(jù)庫中提取與該問題相關(guān)的內(nèi)容,而不能直接給出答案。
?如果僅使用大語言模型(Large Language Model,LLM),不能基于私有知識庫進(jìn)行問答。一種可行的方式是將私有知識庫和問題直接以prompt的形式直接一次性給到LLM,然后讓LLM給出回答。但是受限于LLM Token的限制,無法一次性輸入過多的知識庫。
?因此,在本方案中,將兩者結(jié)合。如下圖所示,當(dāng)用戶提出一個問題后,首先使用搜索提取與問題相關(guān)的知識,然后再將問題和提取的知識給到LLM進(jìn)行總結(jié),最后直接給出問題答案。
?5.?非結(jié)構(gòu)化數(shù)據(jù)注入
?可供搜索引擎進(jìn)行檢索的企業(yè)知識庫是一種結(jié)構(gòu)化的數(shù)據(jù),但往往企業(yè)的原始知識都是以非結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行存儲的,來自多個渠道,也包含了多種格式,例如Words,PDF,Excel等。
?為了能夠幫助企業(yè)快速將這些結(jié)構(gòu)化數(shù)據(jù)利用起來,本方案提供了非結(jié)構(gòu)化數(shù)據(jù)注入功能,該功能將企業(yè)的知識文檔進(jìn)行自動段落拆分和向量編碼,建立結(jié)構(gòu)化企業(yè)知識庫。
??模型技術(shù)細(xì)節(jié)
- ?LLM
?最近半年,大語言模型(LLM)在自然語言處理領(lǐng)域取得了飛速的發(fā)展。大語言模型通?;赥ransformer架構(gòu),在大規(guī)模的網(wǎng)絡(luò)文本數(shù)據(jù)上進(jìn)行訓(xùn)練,其核心是使用一個自我監(jiān)督的目標(biāo)來預(yù)測部分句子中的下一個單詞。亞馬遜云科技已推出大語言模型Titan和大語言模型平臺Amazon Bedrock,另外還有許多研究機構(gòu)推出開源大語言模型,如斯坦福大學(xué)的Alpaca和清華大學(xué)的ChatGLM等。這些大語言模型都具備強大的文本處理能力,廣泛應(yīng)用在智能問答、文本總結(jié)、文本生成等場景。
- ?Embedding
?各類非結(jié)構(gòu)化數(shù)據(jù)廣泛存在于我們的生活和工作場景,如文本、圖片、視頻等,為了處理這些非結(jié)構(gòu)化數(shù)據(jù),亞馬遜云科技通常使用Embedding模型提取這些數(shù)據(jù)的特征,并把數(shù)據(jù)特征轉(zhuǎn)化成向量,通過特征向量對這些非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分析和檢索。通用的預(yù)訓(xùn)練語言模型都有把文本進(jìn)行向量化的功能,可以根據(jù)不同的場景和語種,選用合適的預(yù)訓(xùn)練模型作為Embedding模型。
- ?Intent Detection
?搜索意圖識別主要功能是分析用戶的核心搜索需求,例如在電商場景,用戶找的電子產(chǎn)品,是電腦類的,還是手機類的,是家庭場景用的,還是戶外場景用的等等,如果意圖識別不準(zhǔn),會有很多不相關(guān)的商品展現(xiàn)給用戶,導(dǎo)致產(chǎn)生非常差的用戶體驗,因此精準(zhǔn)的意圖識別非常重要。意圖識別主要包括類目預(yù)測和實體識別模型,類目預(yù)測模型主要采用文本多分類模型,根據(jù)平臺的用戶行為數(shù)據(jù),將查詢文本預(yù)測屬于各個類目的概率。實體識別模型將查詢文本中的實體詞識別出來,實體詞是描述商品的維度信息,如品牌、顏色、材質(zhì)等,通過實體識別模型識別出查詢文本的實體詞后,再到搜索引擎進(jìn)行精準(zhǔn)查詢。
- ?Controlled Text Generation
?可控文本生成是在傳統(tǒng)文本生成的基礎(chǔ)上,增加對生成文本的控制,如指定生成文本的關(guān)鍵詞、格式、風(fēng)格等,從而使生成的文本符合我們的預(yù)期,比如生成與某人相同風(fēng)格的文本,生成有固定內(nèi)容格式的報告,根據(jù)簡單的故事線生成完整的小說等等??煽匚谋旧捎袑︻A(yù)訓(xùn)練模型finetune、重新訓(xùn)練文本生成模型和重構(gòu)預(yù)訓(xùn)練模型輸出結(jié)果等方式。在大語言模型推出后,目前可以方便的通過Prompt提示詞,指導(dǎo)大語言模型進(jìn)行可控文本生成,針對不同的場景和文本生成目標(biāo),設(shè)計不同格式和內(nèi)容的提示詞,生成滿足需求的文本。