背景
本篇主要介紹LangChain和開源大語言模型集成,結(jié)合亞馬遜云科技的云基礎(chǔ)服務,構(gòu)建基于企業(yè)知識庫的智能搜索問答方案。
LangChain介紹
LangChain是一個利用大語言模型的能力開發(fā)各種下游應用的開源框架,它的核心理念是為各種大語言模型應用實現(xiàn)通用的接口,簡化大語言模型應用的開發(fā)難度,主要的模塊示意圖為:
Index:提供了各類文檔導入、文本拆分、文本向量化存儲和檢索的接口,導入的文檔類型除常見的word、excel、PDF、txt外,還包括API和數(shù)據(jù)庫接口,向量化存儲包括各類向量數(shù)據(jù)庫,其中也包含Amazon的OpenSearch搜索引擎。通過Index模塊,非常容易處理各類型的外部數(shù)據(jù),來提供給大模型進行推理。
Prompts:將用戶輸入和其他外部數(shù)據(jù)轉(zhuǎn)化為適合大語言模型的提示詞,包括提示詞管理、提示詞優(yōu)化和提示詞序列化等功能。通過調(diào)整提示詞,可以讓大語言模型執(zhí)行各類任務,如文本生成文本(包括聊天、問答、摘要、報告等)、文本生成SQL、文本生成代碼等,另外還可以通過提示詞讓模型進行few shot learning,目前對各任務的提示詞最優(yōu)實踐在如火如荼的研究中,通過提示詞不斷探索大語言模型的能力邊界,LangChain提供了一個易用的提示詞管理工具。
Models:提供了對各類大語言模型的管理和集成,除閉源的大語言模型API接口外,還提供對多個開源模型倉庫中開源大語言模型的集成接口,以及在云上部署的大語言模型接口,如部署在Amazon SageMaker Endpoint的大語言模型接口。
Memory:用來保存與模型交互時的上下文狀態(tài),是實現(xiàn)多輪對話的關(guān)鍵組件。
Chains:LangChain的核心組件,能對上面的各組件組合在一起以完成特定的任務,如一個chain可以包含prompt模版、大語言模型及輸出處理組件,來完成用戶聊天功能。對各種不同的任務,LangChain提供不同的chain,如問答任務提供了Question Answering Chain,文本摘要任務提供了Summarization Chain,文本生成SQL任務提供了SQL Chain,數(shù)學計算任務提供了LLM Math Chain等,同時可以自定義Chain,Chain組件提供了不同的模型推理模式,包括stuff、map_reduce、refine、map-rerank等,可以根據(jù)具體的任務需求,選擇合適的Chain以及模型推理模式來完成任務。
Agents:LangChain的高級功能,能根據(jù)用戶的輸入來決定調(diào)用那些工具,同時能組合一系列的Chain來完成復雜的任務,如提問:我的賬號余額能買多少兩黃金?Agents通過SQL chain查詢賬號余額,通過調(diào)用網(wǎng)頁查詢接口的LLM查找實時黃金價格,通過調(diào)用LLM Math計算能買到的黃金數(shù)量完成最終的任務,這一系列的邏輯操作均可以在Agents中配置。
除LangChain外,目前另一個比較常用的開源大語言模型應用開發(fā)框架是LIamaIndex。LIamaIndex有豐富的數(shù)據(jù)導入接口,特別是對結(jié)構(gòu)化數(shù)據(jù)的支持更友好,另外LIamaIndex的Index對多種模式的問答邏輯進行了封裝,易于使用但缺少靈活性。LIamaIndex支持與LangChain集成,2個框架可以互相調(diào)用。
基于智能搜索的大語言模型增強解決方案指南
結(jié)合LangChain的各類功能接口和亞馬遜云科技的基礎(chǔ)服務,構(gòu)建亞馬遜云科技基于智能搜索的大語言模型增強解決方案指南,架構(gòu)圖如下:
方案的工作流程示意圖如下:
方案的工作流程及與LangChain的集成說明如下:
1. 數(shù)據(jù)處理和數(shù)據(jù)存儲模塊,集成LangChain的Index接口,支持多種外部數(shù)據(jù)導入,匯總各類數(shù)據(jù),形成企業(yè)的知識庫:
對非結(jié)構(gòu)數(shù)據(jù),主要支持word、excel、PDF和txt等常見文檔,通過對非結(jié)構(gòu)數(shù)據(jù)進行文本提取和文本拆分,得到多條文本塊,通過調(diào)用部署在SageMaker Endpoint的向量模型,得到文本塊相應的向量,最后將文本塊和向量存儲到OpenSearch搜索引擎中。
對結(jié)構(gòu)化數(shù)據(jù),通過集成LlamaIndex的SQL Index,讀取數(shù)據(jù)庫取得相應的數(shù)據(jù),目前主要通過規(guī)則生成SQL語言查詢數(shù)據(jù)庫,通過開源大語言模型生成SQL語言還在調(diào)測中。
如果需要查詢網(wǎng)絡獲取實時信息,可以通過Index接口讀取URL網(wǎng)址的信息,也可以通過搜索引擎接口查詢網(wǎng)絡實時信息。
2. 意圖識別模塊,集成LangChain的RouterChain接口,通過對用戶輸入問題進行語義判斷,自動選擇合適的數(shù)據(jù)來源來回答用戶提出的問題。
3. Prompt工程模塊,集成LangChain的Prompt接口,對各類不同任務、不同場景、不同語種的Prompt進行管理和調(diào)優(yōu)。同時集成LangChain的Memory接口,將用戶的問題和答案存儲在DynamoDB,形成用戶問答的History信息,作為多輪對話任務的大語言模型推理依據(jù)。
4. 大語言模型模塊,集成LangChain的Model接口,調(diào)用部署在SageMaker Endpoint的開源大語言模型,對各類型的任務進行推理。
5. 反饋及優(yōu)化迭代模塊,通過記錄有問題的答案,分析方案存在問題,及時在知識庫和Prompt工程上調(diào)優(yōu)。
相比其它基于LangChain的知識庫私有化部署方案,本方案使用了亞馬遜云科技的云原生服務,包括SageMaker、OpenSearch和Lambda等,這些云原生服務可以通過auto scaling機制,根據(jù)線上實際流量情況,快速擴展或收縮資源,以最優(yōu)的性價比來確保線上業(yè)務平穩(wěn)運行。
可通過方案的調(diào)測頁面,方便地進行智能問答功能調(diào)試:
輸入:
query:用戶提問文本
Session ID:用戶請求的session id,對話信息會以session id為key保存在DynamoDB中
Language:語言選擇,目前支持中文和英文,不同語言對應的文本分拆方法、文本向量模型和開源大語言模型均不相同
Prompt:提示詞調(diào)試,可以在默認提示詞的基礎(chǔ)上,測試不同的提示詞文本對結(jié)果的影響
Index:OpenSearch存儲數(shù)據(jù)的Index
Top_k:放到大模型推理的相關(guān)文本的數(shù)量,如果文檔資料比較規(guī)范,文檔與query容易匹配,可以減少Top_k以增加答案的確定性
LLM Temperature:大語言模型的temperature參數(shù),temperature參數(shù)控制大語言模型的隨機程度,temperature越小答案的確定性越高
輸出:
Answer:大語言模型對問題的推理輸出
Confidence:答案的置性度
Source:與Query相關(guān)且放到大模型推理的文本
基于智能搜索的大語言模型增強解決方案指南在電商場景的應用
智能客服
隨著電商行業(yè)的發(fā)展,消費者對網(wǎng)上購物的服務質(zhì)量要求越來越高,客服已成為電商服務不可或缺的一環(huán)。為了節(jié)約成本,商家傾向于使用智能客服自動回答簡單問題,智能客服解決不了的問題再由人工回復。然而各大電商平臺的智能客服系統(tǒng),往往通過關(guān)鍵詞給出預設的答案,無法完成理解顧客提出的問題,答案與客戶的需求存在差距,用戶體驗并不友好。而大語言模型的語義理解和歸納推理能力,非常適合智能客服場景。目前方案在智能客服場景的應用包括:
1. 基于企業(yè)知識庫的智能問答。使用企業(yè)知識庫數(shù)據(jù),結(jié)合大語言模型的推理能力,實現(xiàn)精準問答。
下例在導入電商退換貨示例文檔后,顧客提出退貨問題的回答:
從上面例子可以看到,大語言模型理解顧客買的褲子屬于服裝類商品,有相應的7天無理由退貨政策,但需要進一步獲取購買日期才能確認是否能退貨,最后生成了一個進一步獲取顧客購買日期以及7天無理由退貨政策解釋的答案。
2. 多輪聊天。方案會把用戶與大語言模型交互的信息保存起來,在下次對話時作為上下文信息嵌入Prompt提示詞,讓大語言模型知道上下文信息回答后續(xù)的問題。
3. 文本摘要提取和文本報告生成。通過輸入客服中的電話通話記錄,快速生成通話摘要,準確提取用戶在通話記錄中提到的需求點,以便后續(xù)對通話記錄進行分析和客戶后續(xù)跟進營銷。以下為客戶咨詢產(chǎn)品購買問題的案例:
智能推薦
當前電商行業(yè)逐步進入內(nèi)容電商的時代,直播帶貨在電商的成交占例越來越高,直播帶貨的一個特點是主播與觀眾的互動非常頻繁,觀眾通常針對直播場景進行提問。可以把智能問答系統(tǒng)當成導購員,輔助主播回答問題,比如在一個主播推銷球鞋的直播間,觀眾可能問:“什么系列球鞋適合雨天踢球?”、“人比較胖穿哪個配色好看點?”、“哪雙球鞋有情侶款?”,智能問答系統(tǒng)能結(jié)合產(chǎn)品的描述信息、產(chǎn)品的評價信息和用戶的購買記錄信息,對用戶的提問直接輸出產(chǎn)品推薦或產(chǎn)品使用建議,提升主播與觀眾互動的效率。
智能問答系統(tǒng)生成答案使用的產(chǎn)品示例數(shù)據(jù):
上面例子中,在提供了不同系列的球鞋合適的使用場景信息后,智能問答系統(tǒng)能根據(jù)顧客提出的問題,將合適的產(chǎn)品推薦給用戶。
常遇問題及解決方法
目前基于企業(yè)知識庫的智能問答功能是需求和落地最多的功能,方案在不同的場景落地時,往往需要針對具體的場景需求進行調(diào)優(yōu),在落地中普遍遇到的問題以及解決方法有:
1. 如何在知識庫中準確找到與問題相關(guān)的文本?
主要使用企業(yè)規(guī)則文檔和之前的客服問答數(shù)據(jù)作為知識庫,文檔使用docs格式存儲,使用句子和段落拆分數(shù)據(jù),但存在的主要問題是:多個句子或段落組成一個邏輯段落,邏輯段落大小不一,如果按句子或段落拆分,有可能會把邏輯段落拆開,如可能把問題和答案拆成了2個文本塊存儲,或可能把上一邏輯段落的一部分加上下一個邏輯段落的一部分存儲,導致檢索時不能正確根據(jù)問題找到相應的答案。錯誤拆分示意圖如下:
解決方案:
將docs文檔處理轉(zhuǎn)為csv格式存儲,每個邏輯段的內(nèi)容放到一行中,人工分隔邏輯段。
將拆分文本塊中按句子或段落拆為多個向量化文本進行向量化,將整個邏輯塊文本作為檢索文本,將向量文本、向量和檢索文本作為一條文本信息存儲。
檢索時,使用文本向量與問題向量進行匹配,使用整個邏輯塊文本作為檢索文本送到大模型推理。
通過人工分隔邏輯塊、細顆粒度文本向量、粗顆粒度文本召回等措施,大大提升了相關(guān)文本召回的準確率。
2. 如何評估大語言模型輸出的答案是否胡編亂造?
通過計算答案置信度的方式來評估答案是否可靠,計算的維度包含以下3方面:
計算問題與答案的相似度,通常情況大語言模型生成的答案與問題的相似度會比較高,偶爾出現(xiàn)相似度比較低的情況,這種情況答案大概率與問題無關(guān),另外偶爾出現(xiàn)相似度非常高的情況,這時答案文本基本是問題文本的重復,這種情況的答案也不能用。
計算答案文本與大模型推理使用的相關(guān)文本的相似度。如果答案文本與大模型推理使用的相關(guān)文本相似度較低,答案文本大概率是模型編造出來的。
計算答案文本在數(shù)據(jù)庫召回的相關(guān)文本列表,與問題文本在數(shù)據(jù)庫召回的相關(guān)文本列表的重合率。如果2個列表的重合率低,答案的置信度也會較低。
根據(jù)不同場景合理調(diào)整3個分數(shù)的閥值,來判斷答案是否置信。
總結(jié)
目前,集成LangChain的基于智能搜索的大語言模型增強解決方案指南除在上面介紹的電商行業(yè)落地外,在制造、金融、教育和醫(yī)療等行業(yè)均有落地案例,同時方案已與Amazon Kendra服務集成。
- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長
- 2025醫(yī)藥數(shù)智營銷創(chuàng)新峰會“金創(chuàng)獎”獎項申報啟動!
- 2024第五屆亞太銀行數(shù)字化創(chuàng)新大會圓滿落幕
- 2024年被稱為“低空經(jīng)濟元年”!倒計時15天 | 2025中國eVTOL創(chuàng)新發(fā)展大會報名中
- 匯聚技術(shù)星火 點亮生態(tài)星空
- GTF2025攜航空和燃氣輪機全產(chǎn)業(yè)鏈優(yōu)勢資源全新回歸上海
- 潮玩風暴來襲,2025 ChinaJoy 潮玩手辦及模型展區(qū)招商火爆!
- 普渡機器人發(fā)布首款全人形機器人PUDU D9
- 【創(chuàng)新金融驅(qū)動力】2025中原金融科技節(jié)擘畫中原金融科技新未來!
- 年底聚會!談思汽車AutoFusa功能安全行業(yè)年會沙龍火熱報名中~~
- 金屏獎 | 2024識變拓新,2025蓄勢前行
免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。