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