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