開篇
我是孫林,2021-京東集團(tuán)-博士管培生,清華大學(xué)軟件學(xué)院博士,工作期間提交專利5篇,獲得北京亦麒麟優(yōu)秀人才稱號。目前,我擔(dān)任算法中臺研發(fā)部數(shù)據(jù)開發(fā)工程師,圍繞檢索增強(qiáng)生成應(yīng)用領(lǐng)域開展研究工作。
本文將從背景、核心工作、業(yè)務(wù)實(shí)踐與反饋以及未來展望等幾個(gè)方向進(jìn)行介紹。
背景介紹
大語言模型(LLM)在自然語言處理和自然語言理解方面取得了重大突破。大模型與應(yīng)用場景的結(jié)合有助于可以在降低成本的同時(shí)提高效率。在具體場景的落地中,通用領(lǐng)域的大模型缺乏具體的領(lǐng)域知識,需要對其進(jìn)行微調(diào),這將消耗大量的計(jì)算資源。
當(dāng)前,檢索增強(qiáng)生成(RAG)作為大語言應(yīng)用的一種模式,可以將大語言模型強(qiáng)大的理解能力和領(lǐng)域知識相結(jié)合,可以提高模型準(zhǔn)確性和效率。RAG主要流程分為兩步:1. 從知識庫中檢索出和問題相關(guān)的內(nèi)容;2.將相關(guān)的知識拼接到prompt中,讓LLM基于相關(guān)知識和用戶問題進(jìn)行回答。以下是一個(gè)RAG prompt示例:
你是京東一名資深的商家助理,專注解答用戶編成時(shí)候遇到的問題。請基于 '---' 之間的相關(guān)參考內(nèi)容對用戶的問題進(jìn)行回答。 相關(guān)參考內(nèi)容: --- 1. 入駐京東萬商平臺店鋪公司資質(zhì)要求如下: 營業(yè)執(zhí)照:加載“統(tǒng)一社會(huì)信用代碼”的營業(yè)執(zhí)照,(需確保未在企業(yè)經(jīng)營異常名錄中且所售商品在營業(yè)執(zhí)照經(jīng)營范圍內(nèi)) 企業(yè)法人身份證:公司法人身份證正反面,有效期大于60天。 2. 入駐京東萬商平臺,經(jīng)營類目為一級類目(京喜供應(yīng)鏈中心)鞋包服飾,需要提交品牌資質(zhì)。 --- 用戶問題:入駐京東萬商平臺店鋪,公司需要什么資質(zhì) 注意以下要求: 1. 在回答時(shí),盡可能參考原文 2. 若無法提供回答,請回復(fù)聯(lián)系人工客服
在上述示例中,由于添加了相關(guān)的知識,大模型可以對公司資質(zhì)問題給出準(zhǔn)確的回答,相對于直接使用LLM進(jìn)行回答,RAG可以更有效地借助垂域知識。總的來說,RAG的主要流程如下:
由于RAG的可解釋性、不依賴模型微調(diào)、能適應(yīng)多樣化的應(yīng)用需求等優(yōu)點(diǎn),市面上存在著諸多以RAG為核心的解決方案,主要包括框架和應(yīng)用兩類:
框架類:主要提供面向開發(fā)者的SDK。用戶需要自行對接不同的模型資源,構(gòu)建自己的應(yīng)用流程。自定義程度高,但具備一定的上手難度。相關(guān)框架如langchain,LlamaIndex, promptflow等
應(yīng)用類:開箱即用,大多是2C的類知識助手應(yīng)用,一般流程為用戶上傳文檔(知識庫),然后可以基于知識庫進(jìn)行端到端的問答(通常,不同的應(yīng)用的內(nèi)置問答流程有在關(guān)鍵環(huán)節(jié)有一些區(qū)別,比如召回策略、是否使用Agent等)。相關(guān)應(yīng)用如Dify,有道QAnything,字節(jié)Coze等。
在和業(yè)務(wù)方的合作中,我們發(fā)現(xiàn)業(yè)務(wù)方通常有高度定制化的需求。已有的框架和應(yīng)用解決方案無法快速地用于批量解決應(yīng)用需求,如:
小白類業(yè)務(wù)方:沒有算法開發(fā)人員,只關(guān)心業(yè)務(wù)邏輯,希望平臺提供存儲、算力、策略,并結(jié)合應(yīng)用方數(shù)據(jù)構(gòu)建高可用服務(wù);
多輸入輸出:在特定場景中是多輸入多輸出的,與主流的RAG鏈路不兼容;
人工快速干預(yù):在接收到用戶的特定輸入下返回特定的結(jié)果,以保證模型可靠性;
數(shù)據(jù)鏈路閉環(huán):除了數(shù)據(jù)管理,還需要有輸入輸出管理頁面,用于事后的效果評價(jià)與bad-case分析及效果優(yōu)化;
優(yōu)質(zhì)數(shù)據(jù)導(dǎo)出:用于微調(diào)模型,達(dá)到更高準(zhǔn)確率;
開發(fā)生產(chǎn)隔離:模型、數(shù)據(jù)、接口服務(wù)需要區(qū)分開發(fā)環(huán)境和生產(chǎn)環(huán)境;
其他需求...
在此背景下,我們從零開始創(chuàng)建了RAG平臺,希望通過平臺的能力,提供基于大模型的全鏈路端到端問答能力。
對于無需定制化流程的用戶:提供知識助手應(yīng)用,通過平臺內(nèi)置的默認(rèn)RAG邏輯進(jìn)行問答;
對于需要定制化需求的用戶:提供資源管理和流程編排能力,讓用戶更方便地結(jié)合業(yè)務(wù)邏輯進(jìn)行二次開發(fā)。
技術(shù)攻堅(jiān)突破的核心工作
RAG平臺的主要框架如下圖所示
服務(wù)資源打通
從平臺視角看,服務(wù)資源包括數(shù)據(jù)存儲服務(wù)、模型調(diào)用服務(wù)、模型部署服務(wù)等。從用戶角度看,用戶對服務(wù)不關(guān)心,用戶只關(guān)心:“我用大模型對我的數(shù)據(jù)進(jìn)行問答”,為了實(shí)現(xiàn)這個(gè)需求,需要在京東體系內(nèi)對不同的服務(wù)資源進(jìn)行打通
存儲資源:打通京東Vearch向量庫,提供相似文本檢索、數(shù)據(jù)過濾等能力;
大語言模型/embedding模型:打通集團(tuán)大模型網(wǎng)關(guān),提供平臺內(nèi)置大語言模型,支持用戶通過EA調(diào)用自部署模型;
服務(wù)部署:用戶構(gòu)建了自定義Pipeline之后,支持一鍵發(fā)布用于生產(chǎn)環(huán)境;
算力資源:支持用戶通過平臺進(jìn)行模型微調(diào)并無縫替換原有模型。
大語言模型Pipeline構(gòu)建
以上圖基本RAG流程為例,以下代碼框架表示了用戶如何通過組件化方式構(gòu)建自定義RAG流程:
rag = Pipeline() rag.add_component(Input("in", input_keys=["query"])) rag.add_component(VectorStore("vectorstore")) rag.add_component(Prompt("prompt", preset="PlainRAG")) rag.add_component(ChatModel("llm")) rag.add_component(Output("output")) rag.connect("in.query", "vectorstore") rag.connect("in.query", "prompt.question") rag.connect("vectorstore", "prompt.context") rag.connect("prompt", "llm") rag.connect("llm", "output") rag.deploy()
通過組件化方式構(gòu)建Pipeline,用戶只需要定義塊和塊之間的連接關(guān)系。相對于基于開源框架構(gòu)建Pipeline,此方式可以使得用戶重點(diǎn)關(guān)心業(yè)務(wù)流程,大大降低了用戶自定義流程中的使用門檻。當(dāng)前,平臺內(nèi)置支持以下組件能力:
輸入輸出組件:支持自定義多輸入/多輸出;
知識庫組件:支持模糊匹配與關(guān)鍵字匹配,用于召回相似內(nèi)容;
大模型組件:提供大模型訪問接口;
Prompt組件:提供默認(rèn)Prompt模版與自定義Prompt能力;
Python函數(shù)組件:用戶可通過Python函數(shù)構(gòu)建任何自定義功能塊;
分支組件:支持特定輸出情況下運(yùn)行特定的子流程;
Agent組件:提供Agent能力(如ReAct);
一鍵部署:支持本地運(yùn)行Pipeline與一鍵部署,提供訪問接口。
看板&效果優(yōu)化
當(dāng)前,用戶的一打痛點(diǎn)是:構(gòu)建了RAG流程之后,無法對效果進(jìn)行調(diào)優(yōu)。實(shí)現(xiàn)效果調(diào)優(yōu),主要包含以下幾個(gè)角度:
全鏈路數(shù)據(jù)回流:B端用戶通常會(huì)對服務(wù)歷史進(jìn)行收集以查看服務(wù)質(zhì)量。對于一個(gè)請求,平臺對運(yùn)行時(shí)的Pipeline中間狀態(tài)進(jìn)行保存,用戶可以回溯每個(gè)步驟得到了什么結(jié)果以進(jìn)行進(jìn)一步分析。通過完整的運(yùn)行時(shí)支持中間數(shù)據(jù)跟蹤,全鏈路的數(shù)據(jù)得以收集;
數(shù)據(jù)工程:"garbage in, garbage out"也適用于本場景,數(shù)據(jù)工程是一個(gè)大方向。從數(shù)據(jù)類型角度,平臺支持了txt、docx、pdf、oss文件等多種數(shù)據(jù)類型,從分割策略來看,平臺支持遞歸分割、固定長度分割等策略,從數(shù)據(jù)增強(qiáng)角度,平臺支持qa抽取,語義理解等;
關(guān)鍵組件/能力優(yōu)化:當(dāng)前有多種策略用于對RAG效果進(jìn)行提升,平臺將優(yōu)化策略沉淀成基礎(chǔ)組件方便用戶快速調(diào)用,如在檢索前提供語義理解、步驟拆解等,在檢索時(shí)提供對話檢索、self-query等能力,檢索后提供標(biāo)簽過濾、重排等能力;
路由:提供緩存路由模塊,對于配置的問答進(jìn)行快速干預(yù)能力;
評估體系&模型迭代:傳統(tǒng)場景效果無法提升的一個(gè)主要原因是,提供了端到端的問答服務(wù)之后,不知道什么情況下回答的好,什么情況下回答的不好。通過全鏈路數(shù)據(jù)回流和評估體系的打通,平臺可以自動(dòng)觸發(fā)embedding、LLM等關(guān)鍵模型的微調(diào),使得效果優(yōu)化可以自動(dòng)化進(jìn)行。
業(yè)務(wù)實(shí)踐與反饋
當(dāng)前,RAG平臺已經(jīng)服務(wù)多個(gè)項(xiàng)目,部分項(xiàng)目列舉如下:
B商城商家AI助理應(yīng)用(23年黑馬二等獎(jiǎng)項(xiàng)目):解決平臺商家與一線人員的業(yè)務(wù)、數(shù)據(jù)、流程等問題,當(dāng)前已在多個(gè)業(yè)務(wù)線投入使用,對上千家店鋪提供服務(wù)。我為此項(xiàng)目提供后端RAG服務(wù),收獲項(xiàng)目合作方感謝信。相關(guān)核心鏈路為:
商品型號規(guī)范化:基于標(biāo)準(zhǔn)型號庫中的型號對外包清洗的JD型號進(jìn)行相似度匹配,避免因商品型號不一致導(dǎo)致糾纏。型號規(guī)范化效率從400sku/人日提高至750sku/人日,提效87%,獲得項(xiàng)目合作方感謝信。
知識助手應(yīng)用:對C端用戶提供服務(wù),提供開箱即用產(chǎn)品頁面。本季度對知識助手存量用戶進(jìn)行遷移,支持日活用戶約7000,日訪問量2-3w,目前灰度測試中。
其他:暫略。
未來展望
大模型的發(fā)展能夠在多個(gè)業(yè)務(wù)場景中進(jìn)行落地,RAG由于其能讓LLM擁有更豐富的知識,已在多種應(yīng)用場合中進(jìn)行驗(yàn)證。在此基礎(chǔ)上,Agent由于具備一定的“觀察思考”能力和工具調(diào)用能力未來將更大地豐富LLM的能力。未來我將投身于RAG業(yè)務(wù)落地效果提升及單/多Agent在業(yè)務(wù)中的價(jià)值探索。在此基礎(chǔ)上,結(jié)合京東內(nèi)部的應(yīng)用場景,打造更易用的平臺能力,快速將基礎(chǔ)能力復(fù)用于不同的業(yè)務(wù),以提高用戶開發(fā)效率,構(gòu)建快速服務(wù)終端用戶能力。
審核編輯 黃宇
-
存儲
+關(guān)注
關(guān)注
13文章
4355瀏覽量
86182 -
大模型
+關(guān)注
關(guān)注
2文章
2551瀏覽量
3175
發(fā)布評論請先 登錄
相關(guān)推薦
大模型應(yīng)用之路:從提示詞到通用人工智能(AGI)
![大<b class='flag-5'>模型</b>應(yīng)<b class='flag-5'>用之</b>路:從提示詞到通用人工智能(AGI)](https://file1.elecfans.com//web2/M00/ED/90/wKgZomZrqM6AVMZZAADa75cpBWs825.png)
TaD+RAG-緩解大模型“幻覺”的組合新療法
![TaD+<b class='flag-5'>RAG</b>-緩解大<b class='flag-5'>模型</b>“幻覺”的組合新療法](https://file1.elecfans.com//web2/M00/FC/CA/wKgZomaWGrWAeQ3pAAhsPvcXsXM866.png)
【大語言模型:原理與工程實(shí)踐】探索《大語言模型原理與工程實(shí)踐》
【大語言模型:原理與工程實(shí)踐】探索《大語言模型原理與工程實(shí)踐》2.0
【大語言模型:原理與工程實(shí)踐】大語言模型的應(yīng)用
大語言模型:原理與工程實(shí)踐+初識2
名單公布!【書籍評測活動(dòng)NO.52】基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化
【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀
【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+Embedding技術(shù)解讀
探索如何打開我國3D打印的應(yīng)用之路
COSMOPlat在開源技術(shù)方向的探索和實(shí)踐
魔方大模型在智能汽車領(lǐng)域的應(yīng)用實(shí)踐與探索
阿里云推出企業(yè)級大模型RAG系統(tǒng)
什么是RAG,RAG學(xué)習(xí)和實(shí)踐經(jīng)驗(yàn)
![什么是<b class='flag-5'>RAG</b>,<b class='flag-5'>RAG</b>學(xué)習(xí)和<b class='flag-5'>實(shí)踐</b>經(jīng)驗(yàn)](https://file1.elecfans.com/web2/M00/D7/62/wKgZomYoX6eAFD_2AAArktRIdzc234.png)
RAG的概念及工作原理
![<b class='flag-5'>RAG</b>的概念及工作原理](https://file1.elecfans.com/web3/M00/02/95/wKgZPGdhEASAfbf0AAAVbd9OQWg777.png)
評論