通過(guò)亞馬遜云科技基礎(chǔ)服務(wù),打造企業(yè)知識(shí)庫(kù)搜索問(wèn)答應(yīng)用方案

背景

本篇主要介紹LangChain和開(kāi)源大語(yǔ)言模型集成,結(jié)合亞馬遜云科技的云基礎(chǔ)服務(wù),構(gòu)建基于企業(yè)知識(shí)庫(kù)的智能搜索問(wèn)答方案。

LangChain介紹

LangChain是一個(gè)利用大語(yǔ)言模型的能力開(kāi)發(fā)各種下游應(yīng)用的開(kāi)源框架,它的核心理念是為各種大語(yǔ)言模型應(yīng)用實(shí)現(xiàn)通用的接口,簡(jiǎn)化大語(yǔ)言模型應(yīng)用的開(kāi)發(fā)難度,主要的模塊示意圖為:

  • Index:提供了各類文檔導(dǎo)入、文本拆分、文本向量化存儲(chǔ)和檢索的接口,導(dǎo)入的文檔類型除常見(jiàn)的word、excel、PDF、txt外,還包括API和數(shù)據(jù)庫(kù)接口,向量化存儲(chǔ)包括各類向量數(shù)據(jù)庫(kù),其中也包含Amazon的OpenSearch搜索引擎。通過(guò)Index模塊,非常容易處理各類型的外部數(shù)據(jù),來(lái)提供給大模型進(jìn)行推理。

  • Prompts:將用戶輸入和其他外部數(shù)據(jù)轉(zhuǎn)化為適合大語(yǔ)言模型的提示詞,包括提示詞管理、提示詞優(yōu)化和提示詞序列化等功能。通過(guò)調(diào)整提示詞,可以讓大語(yǔ)言模型執(zhí)行各類任務(wù),如文本生成文本(包括聊天、問(wèn)答、摘要、報(bào)告等)、文本生成SQL、文本生成代碼等,另外還可以通過(guò)提示詞讓模型進(jìn)行few shot learning,目前對(duì)各任務(wù)的提示詞最優(yōu)實(shí)踐在如火如荼的研究中,通過(guò)提示詞不斷探索大語(yǔ)言模型的能力邊界,LangChain提供了一個(gè)易用的提示詞管理工具。

  • Models:提供了對(duì)各類大語(yǔ)言模型的管理和集成,除閉源的大語(yǔ)言模型API接口外,還提供對(duì)多個(gè)開(kāi)源模型倉(cāng)庫(kù)中開(kāi)源大語(yǔ)言模型的集成接口,以及在云上部署的大語(yǔ)言模型接口,如部署在Amazon SageMaker Endpoint的大語(yǔ)言模型接口。

  • Memory:用來(lái)保存與模型交互時(shí)的上下文狀態(tài),是實(shí)現(xiàn)多輪對(duì)話的關(guān)鍵組件。

  • Chains:LangChain的核心組件,能對(duì)上面的各組件組合在一起以完成特定的任務(wù),如一個(gè)chain可以包含prompt模版、大語(yǔ)言模型及輸出處理組件,來(lái)完成用戶聊天功能。對(duì)各種不同的任務(wù),LangChain提供不同的chain,如問(wèn)答任務(wù)提供了Question Answering Chain,文本摘要任務(wù)提供了Summarization Chain,文本生成SQL任務(wù)提供了SQL Chain,數(shù)學(xué)計(jì)算任務(wù)提供了LLM Math Chain等,同時(shí)可以自定義Chain,Chain組件提供了不同的模型推理模式,包括stuff、map_reduce、refine、map-rerank等,可以根據(jù)具體的任務(wù)需求,選擇合適的Chain以及模型推理模式來(lái)完成任務(wù)。

  • Agents:LangChain的高級(jí)功能,能根據(jù)用戶的輸入來(lái)決定調(diào)用那些工具,同時(shí)能組合一系列的Chain來(lái)完成復(fù)雜的任務(wù),如提問(wèn):我的賬號(hào)余額能買多少兩黃金?Agents通過(guò)SQL chain查詢賬號(hào)余額,通過(guò)調(diào)用網(wǎng)頁(yè)查詢接口的LLM查找實(shí)時(shí)黃金價(jià)格,通過(guò)調(diào)用LLM Math計(jì)算能買到的黃金數(shù)量完成最終的任務(wù),這一系列的邏輯操作均可以在Agents中配置。

除LangChain外,目前另一個(gè)比較常用的開(kāi)源大語(yǔ)言模型應(yīng)用開(kāi)發(fā)框架是LIamaIndex。LIamaIndex有豐富的數(shù)據(jù)導(dǎo)入接口,特別是對(duì)結(jié)構(gòu)化數(shù)據(jù)的支持更友好,另外LIamaIndex的Index對(duì)多種模式的問(wèn)答邏輯進(jìn)行了封裝,易于使用但缺少靈活性。LIamaIndex支持與LangChain集成,2個(gè)框架可以互相調(diào)用。

基于智能搜索的大語(yǔ)言模型增強(qiáng)解決方案指南

結(jié)合LangChain的各類功能接口和亞馬遜云科技的基礎(chǔ)服務(wù),構(gòu)建亞馬遜云科技基于智能搜索的大語(yǔ)言模型增強(qiáng)解決方案指南,架構(gòu)圖如下:

方案的工作流程示意圖如下:

方案的工作流程及與LangChain的集成說(shuō)明如下:

1. 數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)模塊,集成LangChain的Index接口,支持多種外部數(shù)據(jù)導(dǎo)入,匯總各類數(shù)據(jù),形成企業(yè)的知識(shí)庫(kù):

  • 對(duì)非結(jié)構(gòu)數(shù)據(jù),主要支持word、excel、PDF和txt等常見(jiàn)文檔,通過(guò)對(duì)非結(jié)構(gòu)數(shù)據(jù)進(jìn)行文本提取和文本拆分,得到多條文本塊,通過(guò)調(diào)用部署在SageMaker Endpoint的向量模型,得到文本塊相應(yīng)的向量,最后將文本塊和向量存儲(chǔ)到OpenSearch搜索引擎中。

  • 對(duì)結(jié)構(gòu)化數(shù)據(jù),通過(guò)集成LlamaIndex的SQL Index,讀取數(shù)據(jù)庫(kù)取得相應(yīng)的數(shù)據(jù),目前主要通過(guò)規(guī)則生成SQL語(yǔ)言查詢數(shù)據(jù)庫(kù),通過(guò)開(kāi)源大語(yǔ)言模型生成SQL語(yǔ)言還在調(diào)測(cè)中。

  • 如果需要查詢網(wǎng)絡(luò)獲取實(shí)時(shí)信息,可以通過(guò)Index接口讀取URL網(wǎng)址的信息,也可以通過(guò)搜索引擎接口查詢網(wǎng)絡(luò)實(shí)時(shí)信息。

2. 意圖識(shí)別模塊,集成LangChain的RouterChain接口,通過(guò)對(duì)用戶輸入問(wèn)題進(jìn)行語(yǔ)義判斷,自動(dòng)選擇合適的數(shù)據(jù)來(lái)源來(lái)回答用戶提出的問(wèn)題。

3. Prompt工程模塊,集成LangChain的Prompt接口,對(duì)各類不同任務(wù)、不同場(chǎng)景、不同語(yǔ)種的Prompt進(jìn)行管理和調(diào)優(yōu)。同時(shí)集成LangChain的Memory接口,將用戶的問(wèn)題和答案存儲(chǔ)在DynamoDB,形成用戶問(wèn)答的History信息,作為多輪對(duì)話任務(wù)的大語(yǔ)言模型推理依據(jù)。

4. 大語(yǔ)言模型模塊,集成LangChain的Model接口,調(diào)用部署在SageMaker Endpoint的開(kāi)源大語(yǔ)言模型,對(duì)各類型的任務(wù)進(jìn)行推理。

5. 反饋及優(yōu)化迭代模塊,通過(guò)記錄有問(wèn)題的答案,分析方案存在問(wèn)題,及時(shí)在知識(shí)庫(kù)和Prompt工程上調(diào)優(yōu)。

相比其它基于LangChain的知識(shí)庫(kù)私有化部署方案,本方案使用了亞馬遜云科技的云原生服務(wù),包括SageMaker、OpenSearch和Lambda等,這些云原生服務(wù)可以通過(guò)auto scaling機(jī)制,根據(jù)線上實(shí)際流量情況,快速擴(kuò)展或收縮資源,以最優(yōu)的性價(jià)比來(lái)確保線上業(yè)務(wù)平穩(wěn)運(yùn)行。

可通過(guò)方案的調(diào)測(cè)頁(yè)面,方便地進(jìn)行智能問(wèn)答功能調(diào)試:

輸入:

  • query:用戶提問(wèn)文本

  • Session ID:用戶請(qǐng)求的session id,對(duì)話信息會(huì)以session id為key保存在DynamoDB中

  • Language:語(yǔ)言選擇,目前支持中文和英文,不同語(yǔ)言對(duì)應(yīng)的文本分拆方法、文本向量模型和開(kāi)源大語(yǔ)言模型均不相同

  • Prompt:提示詞調(diào)試,可以在默認(rèn)提示詞的基礎(chǔ)上,測(cè)試不同的提示詞文本對(duì)結(jié)果的影響

  • Index:OpenSearch存儲(chǔ)數(shù)據(jù)的Index

  • Top_k:放到大模型推理的相關(guān)文本的數(shù)量,如果文檔資料比較規(guī)范,文檔與query容易匹配,可以減少Top_k以增加答案的確定性

  • LLM Temperature:大語(yǔ)言模型的temperature參數(shù),temperature參數(shù)控制大語(yǔ)言模型的隨機(jī)程度,temperature越小答案的確定性越高

輸出:

  • Answer:大語(yǔ)言模型對(duì)問(wèn)題的推理輸出

  • Confidence:答案的置性度

  • Source:與Query相關(guān)且放到大模型推理的文本

基于智能搜索的大語(yǔ)言模型增強(qiáng)解決方案指南在電商場(chǎng)景的應(yīng)用

智能客服

隨著電商行業(yè)的發(fā)展,消費(fèi)者對(duì)網(wǎng)上購(gòu)物的服務(wù)質(zhì)量要求越來(lái)越高,客服已成為電商服務(wù)不可或缺的一環(huán)。為了節(jié)約成本,商家傾向于使用智能客服自動(dòng)回答簡(jiǎn)單問(wèn)題,智能客服解決不了的問(wèn)題再由人工回復(fù)。然而各大電商平臺(tái)的智能客服系統(tǒng),往往通過(guò)關(guān)鍵詞給出預(yù)設(shè)的答案,無(wú)法完成理解顧客提出的問(wèn)題,答案與客戶的需求存在差距,用戶體驗(yàn)并不友好。而大語(yǔ)言模型的語(yǔ)義理解和歸納推理能力,非常適合智能客服場(chǎng)景。目前方案在智能客服場(chǎng)景的應(yīng)用包括:

1. 基于企業(yè)知識(shí)庫(kù)的智能問(wèn)答。使用企業(yè)知識(shí)庫(kù)數(shù)據(jù),結(jié)合大語(yǔ)言模型的推理能力,實(shí)現(xiàn)精準(zhǔn)問(wèn)答。

下例在導(dǎo)入電商退換貨示例文檔后,顧客提出退貨問(wèn)題的回答:

從上面例子可以看到,大語(yǔ)言模型理解顧客買的褲子屬于服裝類商品,有相應(yīng)的7天無(wú)理由退貨政策,但需要進(jìn)一步獲取購(gòu)買日期才能確認(rèn)是否能退貨,最后生成了一個(gè)進(jìn)一步獲取顧客購(gòu)買日期以及7天無(wú)理由退貨政策解釋的答案。

2. 多輪聊天。方案會(huì)把用戶與大語(yǔ)言模型交互的信息保存起來(lái),在下次對(duì)話時(shí)作為上下文信息嵌入Prompt提示詞,讓大語(yǔ)言模型知道上下文信息回答后續(xù)的問(wèn)題。

3. 文本摘要提取和文本報(bào)告生成。通過(guò)輸入客服中的電話通話記錄,快速生成通話摘要,準(zhǔn)確提取用戶在通話記錄中提到的需求點(diǎn),以便后續(xù)對(duì)通話記錄進(jìn)行分析和客戶后續(xù)跟進(jìn)營(yíng)銷。以下為客戶咨詢產(chǎn)品購(gòu)買問(wèn)題的案例:

智能推薦

當(dāng)前電商行業(yè)逐步進(jìn)入內(nèi)容電商的時(shí)代,直播帶貨在電商的成交占例越來(lái)越高,直播帶貨的一個(gè)特點(diǎn)是主播與觀眾的互動(dòng)非常頻繁,觀眾通常針對(duì)直播場(chǎng)景進(jìn)行提問(wèn)??梢园阎悄軉?wèn)答系統(tǒng)當(dāng)成導(dǎo)購(gòu)員,輔助主播回答問(wèn)題,比如在一個(gè)主播推銷球鞋的直播間,觀眾可能問(wèn):“什么系列球鞋適合雨天踢球?”、“人比較胖穿哪個(gè)配色好看點(diǎn)?”、“哪雙球鞋有情侶款?”,智能問(wèn)答系統(tǒng)能結(jié)合產(chǎn)品的描述信息、產(chǎn)品的評(píng)價(jià)信息和用戶的購(gòu)買記錄信息,對(duì)用戶的提問(wèn)直接輸出產(chǎn)品推薦或產(chǎn)品使用建議,提升主播與觀眾互動(dòng)的效率。

智能問(wèn)答系統(tǒng)生成答案使用的產(chǎn)品示例數(shù)據(jù):

上面例子中,在提供了不同系列的球鞋合適的使用場(chǎng)景信息后,智能問(wèn)答系統(tǒng)能根據(jù)顧客提出的問(wèn)題,將合適的產(chǎn)品推薦給用戶。

常遇問(wèn)題及解決方法

目前基于企業(yè)知識(shí)庫(kù)的智能問(wèn)答功能是需求和落地最多的功能,方案在不同的場(chǎng)景落地時(shí),往往需要針對(duì)具體的場(chǎng)景需求進(jìn)行調(diào)優(yōu),在落地中普遍遇到的問(wèn)題以及解決方法有:

1. 如何在知識(shí)庫(kù)中準(zhǔn)確找到與問(wèn)題相關(guān)的文本?

主要使用企業(yè)規(guī)則文檔和之前的客服問(wèn)答數(shù)據(jù)作為知識(shí)庫(kù),文檔使用docs格式存儲(chǔ),使用句子和段落拆分?jǐn)?shù)據(jù),但存在的主要問(wèn)題是:多個(gè)句子或段落組成一個(gè)邏輯段落,邏輯段落大小不一,如果按句子或段落拆分,有可能會(huì)把邏輯段落拆開(kāi),如可能把問(wèn)題和答案拆成了2個(gè)文本塊存儲(chǔ),或可能把上一邏輯段落的一部分加上下一個(gè)邏輯段落的一部分存儲(chǔ),導(dǎo)致檢索時(shí)不能正確根據(jù)問(wèn)題找到相應(yīng)的答案。錯(cuò)誤拆分示意圖如下:

解決方案:

  • 將docs文檔處理轉(zhuǎn)為csv格式存儲(chǔ),每個(gè)邏輯段的內(nèi)容放到一行中,人工分隔邏輯段。

  • 將拆分文本塊中按句子或段落拆為多個(gè)向量化文本進(jìn)行向量化,將整個(gè)邏輯塊文本作為檢索文本,將向量文本、向量和檢索文本作為一條文本信息存儲(chǔ)。

  • 檢索時(shí),使用文本向量與問(wèn)題向量進(jìn)行匹配,使用整個(gè)邏輯塊文本作為檢索文本送到大模型推理。

通過(guò)人工分隔邏輯塊、細(xì)顆粒度文本向量、粗顆粒度文本召回等措施,大大提升了相關(guān)文本召回的準(zhǔn)確率。

2. 如何評(píng)估大語(yǔ)言模型輸出的答案是否胡編亂造?

通過(guò)計(jì)算答案置信度的方式來(lái)評(píng)估答案是否可靠,計(jì)算的維度包含以下3方面:

  • 計(jì)算問(wèn)題與答案的相似度,通常情況大語(yǔ)言模型生成的答案與問(wèn)題的相似度會(huì)比較高,偶爾出現(xiàn)相似度比較低的情況,這種情況答案大概率與問(wèn)題無(wú)關(guān),另外偶爾出現(xiàn)相似度非常高的情況,這時(shí)答案文本基本是問(wèn)題文本的重復(fù),這種情況的答案也不能用。

  • 計(jì)算答案文本與大模型推理使用的相關(guān)文本的相似度。如果答案文本與大模型推理使用的相關(guān)文本相似度較低,答案文本大概率是模型編造出來(lái)的。

  • 計(jì)算答案文本在數(shù)據(jù)庫(kù)召回的相關(guān)文本列表,與問(wèn)題文本在數(shù)據(jù)庫(kù)召回的相關(guān)文本列表的重合率。如果2個(gè)列表的重合率低,答案的置信度也會(huì)較低。

根據(jù)不同場(chǎng)景合理調(diào)整3個(gè)分?jǐn)?shù)的閥值,來(lái)判斷答案是否置信。

總結(jié)

目前,集成LangChain的基于智能搜索的大語(yǔ)言模型增強(qiáng)解決方案指南除在上面介紹的電商行業(yè)落地外,在制造、金融、教育和醫(yī)療等行業(yè)均有落地案例,同時(shí)方案已與Amazon Kendra服務(wù)集成。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。

2023-11-14
通過(guò)亞馬遜云科技基礎(chǔ)服務(wù),打造企業(yè)知識(shí)庫(kù)搜索問(wèn)答應(yīng)用方案
本篇主要介紹LangChain和開(kāi)源大語(yǔ)言模型集成,結(jié)合亞馬遜云科技的云基礎(chǔ)服務(wù),構(gòu)建基于企業(yè)知識(shí)庫(kù)的智能搜索問(wèn)答方案。

長(zhǎng)按掃碼 閱讀全文