0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

我在大模型應(yīng)用之RAG方向的探索、實踐與思考

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-06-28 16:20 ? 次閱讀

開篇

我是孫林,2021-京東集團-博士管培生,清華大學(xué)軟件學(xué)院博士,工作期間提交專利5篇,獲得北京亦麒麟優(yōu)秀人才稱號。目前,我擔(dān)任算法中臺研發(fā)部數(shù)據(jù)開發(fā)工程師,圍繞檢索增強生成應(yīng)用領(lǐng)域開展研究工作。

本文將從背景、核心工作、業(yè)務(wù)實踐與反饋以及未來展望等幾個方向進行介紹。

背景介紹

大語言模型(LLM)在自然語言處理和自然語言理解方面取得了重大突破。大模型與應(yīng)用場景的結(jié)合有助于可以在降低成本的同時提高效率。在具體場景的落地中,通用領(lǐng)域的大模型缺乏具體的領(lǐng)域知識,需要對其進行微調(diào),這將消耗大量的計算資源。

當(dāng)前,檢索增強生成(RAG)作為大語言應(yīng)用的一種模式,可以將大語言模型強大的理解能力和領(lǐng)域知識相結(jié)合,可以提高模型準(zhǔn)確性和效率。RAG主要流程分為兩步:1. 從知識庫中檢索出和問題相關(guān)的內(nèi)容;2.將相關(guān)的知識拼接到prompt中,讓LLM基于相關(guān)知識和用戶問題進行回答。以下是一個RAG prompt示例:

你是京東一名資深的商家助理,專注解答用戶編成時候遇到的問題。請基于 '---' 之間的相關(guān)參考內(nèi)容對用戶的問題進行回答。

相關(guān)參考內(nèi)容:
---
1. 入駐京東萬商平臺店鋪公司資質(zhì)要求如下:
營業(yè)執(zhí)照:加載“統(tǒng)一社會信用代碼”的營業(yè)執(zhí)照,(需確保未在企業(yè)經(jīng)營異常名錄中且所售商品在營業(yè)執(zhí)照經(jīng)營范圍內(nèi))
企業(yè)法人身份證:公司法人身份證正反面,有效期大于60天。
2. 入駐京東萬商平臺,經(jīng)營類目為一級類目(京喜供應(yīng)鏈中心)鞋包服飾,需要提交品牌資質(zhì)。
--- 
用戶問題:入駐京東萬商平臺店鋪,公司需要什么資質(zhì)
注意以下要求:
1. 在回答時,盡可能參考原文
2. 若無法提供回答,請回復(fù)聯(lián)系人工客服

在上述示例中,由于添加了相關(guān)的知識,大模型可以對公司資質(zhì)問題給出準(zhǔn)確的回答,相對于直接使用LLM進行回答,RAG可以更有效地借助垂域知識。總的來說,RAG的主要流程如下:

wKgZomZ-cjCAIZiiAAJnzn171FM763.png

由于RAG的可解釋性、不依賴模型微調(diào)、能適應(yīng)多樣化的應(yīng)用需求等優(yōu)點,市面上存在著諸多以RAG為核心的解決方案,主要包括框架和應(yīng)用兩類:

框架類:主要提供面向開發(fā)者SDK。用戶需要自行對接不同的模型資源,構(gòu)建自己的應(yīng)用流程。自定義程度高,但具備一定的上手難度。相關(guān)框架如langchain,LlamaIndex, promptflow等

應(yīng)用類:開箱即用,大多是2C的類知識助手應(yīng)用,一般流程為用戶上傳文檔(知識庫),然后可以基于知識庫進行端到端的問答(通常,不同的應(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ù)管理,還需要有輸入輸出管理頁面,用于事后的效果評價與bad-case分析及效果優(yōu)化;

優(yōu)質(zhì)數(shù)據(jù)導(dǎo)出:用于微調(diào)模型,達到更高準(zhǔn)確率;

開發(fā)生產(chǎn)隔離:模型、數(shù)據(jù)、接口服務(wù)需要區(qū)分開發(fā)環(huán)境和生產(chǎn)環(huán)境;

其他需求...

wKgaomZ-cjGATZz6AAF2pc6lZsQ756.png

在此背景下,我們從零開始創(chuàng)建了RAG平臺,希望通過平臺的能力,提供基于大模型的全鏈路端到端問答能力。

對于無需定制化流程的用戶:提供知識助手應(yīng)用,通過平臺內(nèi)置的默認RAG邏輯進行問答;

對于需要定制化需求的用戶:提供資源管理和流程編排能力,讓用戶更方便地結(jié)合業(yè)務(wù)邏輯進行二次開發(fā)。

wKgaomZ-cjKAYej7AAJrgBZtNmk927.png

技術(shù)攻堅突破的核心工作

RAG平臺的主要框架如下圖所示

wKgaomZ-cjWAD2AXAAd3ESAiH_I311.png

服務(wù)資源打通

從平臺視角看,服務(wù)資源包括數(shù)據(jù)存儲服務(wù)、模型調(diào)用服務(wù)、模型部署服務(wù)等。從用戶角度看,用戶對服務(wù)不關(guān)心,用戶只關(guān)心:“我用大模型對我的數(shù)據(jù)進行問答”,為了實現(xiàn)這個需求,需要在京東體系內(nèi)對不同的服務(wù)資源進行打通

存儲資源:打通京東Vearch向量庫,提供相似文本檢索、數(shù)據(jù)過濾等能力;

大語言模型/embedding模型:打通集團大模型網(wǎng)關(guān),提供平臺內(nèi)置大語言模型,支持用戶通過EA調(diào)用自部署模型;

服務(wù)部署:用戶構(gòu)建了自定義Pipeline之后,支持一鍵發(fā)布用于生產(chǎn)環(huán)境;

算力資源:支持用戶通過平臺進行模型微調(diào)并無縫替換原有模型。

大語言模型Pipeline構(gòu)建

wKgZomZ-cjaATHKQAACs0oJCRFE302.png

以上圖基本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,此方式可以使得用戶重點關(guān)心業(yè)務(wù)流程,大大降低了用戶自定義流程中的使用門檻。當(dāng)前,平臺內(nèi)置支持以下組件能力:

輸入輸出組件:支持自定義多輸入/多輸出;

知識庫組件:支持模糊匹配與關(guān)鍵字匹配,用于召回相似內(nèi)容;

大模型組件:提供大模型訪問接口;

Prompt組件:提供默認Prompt模版與自定義Prompt能力;

Python函數(shù)組件:用戶可通過Python函數(shù)構(gòu)建任何自定義功能塊;

分支組件:支持特定輸出情況下運行特定的子流程;

Agent組件:提供Agent能力(如ReAct);

一鍵部署:支持本地運行Pipeline與一鍵部署,提供訪問接口。

看板&效果優(yōu)化

當(dāng)前,用戶的一打痛點是:構(gòu)建了RAG流程之后,無法對效果進行調(diào)優(yōu)。實現(xiàn)效果調(diào)優(yōu),主要包含以下幾個角度:

全鏈路數(shù)據(jù)回流:B端用戶通常會對服務(wù)歷史進行收集以查看服務(wù)質(zhì)量。對于一個請求,平臺對運行時的Pipeline中間狀態(tài)進行保存,用戶可以回溯每個步驟得到了什么結(jié)果以進行進一步分析。通過完整的運行時支持中間數(shù)據(jù)跟蹤,全鏈路的數(shù)據(jù)得以收集;

數(shù)據(jù)工程:"garbage in, garbage out"也適用于本場景,數(shù)據(jù)工程是一個大方向。從數(shù)據(jù)類型角度,平臺支持了txt、docx、pdf、oss文件等多種數(shù)據(jù)類型,從分割策略來看,平臺支持遞歸分割、固定長度分割等策略,從數(shù)據(jù)增強角度,平臺支持qa抽取,語義理解等;

關(guān)鍵組件/能力優(yōu)化:當(dāng)前有多種策略用于對RAG效果進行提升,平臺將優(yōu)化策略沉淀成基礎(chǔ)組件方便用戶快速調(diào)用,如在檢索前提供語義理解、步驟拆解等,在檢索時提供對話檢索、self-query等能力,檢索后提供標(biāo)簽過濾、重排等能力;

路由:提供緩存路由模塊,對于配置的問答進行快速干預(yù)能力;

評估體系&模型迭代:傳統(tǒng)場景效果無法提升的一個主要原因是,提供了端到端的問答服務(wù)之后,不知道什么情況下回答的好,什么情況下回答的不好。通過全鏈路數(shù)據(jù)回流和評估體系的打通,平臺可以自動觸發(fā)embedding、LLM等關(guān)鍵模型的微調(diào),使得效果優(yōu)化可以自動化進行。

業(yè)務(wù)實踐與反饋

當(dāng)前,RAG平臺已經(jīng)服務(wù)多個項目,部分項目列舉如下:

B商城商家AI助理應(yīng)用(23年黑馬二等獎項目):解決平臺商家與一線人員的業(yè)務(wù)、數(shù)據(jù)、流程等問題,當(dāng)前已在多個業(yè)務(wù)線投入使用,對上千家店鋪提供服務(wù)。我為此項目提供后端RAG服務(wù),收獲項目合作方感謝信。相關(guān)核心鏈路為:

wKgaomZ-cjeALpDsAAdvPs3E64U744.png

商品型號規(guī)范化:基于標(biāo)準(zhǔn)型號庫中的型號對外包清洗的JD型號進行相似度匹配,避免因商品型號不一致導(dǎo)致糾纏。型號規(guī)范化效率從400sku/人日提高至750sku/人日,提效87%,獲得項目合作方感謝信。

知識助手應(yīng)用:對C端用戶提供服務(wù),提供開箱即用產(chǎn)品頁面。本季度對知識助手存量用戶進行遷移,支持日活用戶約7000,日訪問量2-3w,目前灰度測試中。

其他:暫略。

未來展望

大模型的發(fā)展能夠在多個業(yè)務(wù)場景中進行落地,RAG由于其能讓LLM擁有更豐富的知識,已在多種應(yīng)用場合中進行驗證。在此基礎(chǔ)上,Agent由于具備一定的“觀察思考”能力和工具調(diào)用能力未來將更大地豐富LLM的能力。未來我將投身于RAG業(yè)務(wù)落地效果提升及單/多Agent在業(yè)務(wù)中的價值探索。在此基礎(chǔ)上,結(jié)合京東內(nèi)部的應(yīng)用場景,打造更易用的平臺能力,快速將基礎(chǔ)能力復(fù)用于不同的業(yè)務(wù),以提高用戶開發(fā)效率,構(gòu)建快速服務(wù)終端用戶能力。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4123

    瀏覽量

    85279
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    2136

    瀏覽量

    1980
收藏 人收藏

    評論

    相關(guān)推薦

    模型應(yīng)用之路:從提示詞到通用人工智能(AGI)

    模型人工智能領(lǐng)域的應(yīng)用正迅速擴展,從最初的提示詞(Prompt)工程到追求通用人工智能(AGI)的宏偉目標(biāo),這一旅程充滿了挑戰(zhàn)與創(chuàng)新。本文將探索模型
    的頭像 發(fā)表于 06-14 10:20 ?1861次閱讀
    大<b class='flag-5'>模型</b>應(yīng)<b class='flag-5'>用之</b>路:從提示詞到通用人工智能(AGI)

    TaD+RAG-緩解大模型“幻覺”的組合新療法

    TaD:任務(wù)感知解碼技術(shù)(Task-aware Decoding,簡稱TaD),京東聯(lián)合清華大學(xué)針對大語言模型幻覺問題提出的一項技術(shù),成果收錄于IJCAI2024。 RAG:檢索增強生成技術(shù)
    的頭像 發(fā)表于 07-16 15:01 ?1709次閱讀
    TaD+<b class='flag-5'>RAG</b>-緩解大<b class='flag-5'>模型</b>“幻覺”的組合新療法

    【大語言模型:原理與工程實踐探索《大語言模型原理與工程實踐

    的未來發(fā)展方向進行了展望,包括跨領(lǐng)域、跨模態(tài)和自動提示生成能力方向,為讀者提供了對未來技術(shù)發(fā)展的深刻見解。《大語言模型原理與工程實踐》是一本內(nèi)容豐富、深入淺出的技術(shù)書籍。它不僅為讀者提
    發(fā)表于 04-30 15:35

    【大語言模型:原理與工程實踐探索《大語言模型原理與工程實踐》2.0

    《大語言模型“原理與工程實踐”》是關(guān)于大語言模型內(nèi)在機理和應(yīng)用實踐的一次深入探索。作者不僅深入討論了理論,還提供了豐富的
    發(fā)表于 05-07 10:30

    【大語言模型:原理與工程實踐】大語言模型的應(yīng)用

    丹尼爾·卡尼曼思考,快與慢》中提出了著名的“系統(tǒng)1與系統(tǒng)2”理論。該理論指出,人類大腦的決策系統(tǒng)存在兩種模式:一種是快速的、感性的系統(tǒng)1,它幫助我們處理簡單的決策;另一種是緩慢的、理性的系統(tǒng)2
    發(fā)表于 05-07 17:21

    大語言模型:原理與工程實踐+初識2

    的一系列變革。 大語言模型是深度學(xué)習(xí)的應(yīng)用之一,可以認為,這些模型的目標(biāo)是模擬人類交流,為了理解和生成人類語言。為此,模型需要在大量文本數(shù)據(jù)上訓(xùn)練,用來理解人類語言,進而,實現(xiàn)與人類的
    發(fā)表于 05-13 00:09

    《開關(guān)電源設(shè)計與調(diào)試》課程建設(shè)實踐探索

    《開關(guān)電源設(shè)計與調(diào)試》課程建設(shè)實踐探索,《開關(guān)電源設(shè)計與調(diào)試》課程建設(shè)實踐探索
    發(fā)表于 06-15 23:36

    探索如何打開我國3D打印的應(yīng)用之

    想要切實打開3D應(yīng)用之路,核心在于發(fā)展技術(shù),想要打開現(xiàn)有應(yīng)用之路,在于融合、專注、研究與積累。總之還是那句話探索應(yīng)用之路上我們需要協(xié)同合作
    發(fā)表于 09-07 17:33 ?942次閱讀

    MindSporeLiteOS端側(cè)AI技術(shù)實踐探索

    智強做了精彩分享,演講主題為《MindSporeLiteOS端側(cè)AI技術(shù)實踐探索》。講解了物聯(lián)網(wǎng)端側(cè)資源受限、硬件種類繁多、指令差異化較大等多種挑戰(zhàn)下,MindSpore結(jié)合Li
    的頭像 發(fā)表于 09-16 14:52 ?3062次閱讀

    COSMOPlat開源技術(shù)方向探索實踐

    2020工業(yè)互聯(lián)網(wǎng)大會工業(yè)互聯(lián)網(wǎng)新技術(shù)主題論壇上,海爾卡奧斯物聯(lián)生態(tài)科技有限公司云平臺架構(gòu)師劉安發(fā)表題為《COSMOPlat開源技術(shù)方向探索
    的頭像 發(fā)表于 11-02 10:54 ?1955次閱讀

    魔方大模型智能汽車領(lǐng)域的應(yīng)用實踐探索

    汽車領(lǐng)域最新的應(yīng)用實踐探索。 當(dāng)前,大模型的出現(xiàn)正在加速信息技術(shù)進入智能原生時代,并使得人機自然交互真正成為可能。而混合AI,端云協(xié)同等人工智能技術(shù)新的發(fā)展趨勢,為大模型
    的頭像 發(fā)表于 08-30 10:01 ?1399次閱讀

    對于大模型RAG技術(shù)的一些思考

    模型或者句向量訓(xùn)練時,使用的語料都是較為通用的語料。這導(dǎo)致了這些模型,對于垂直領(lǐng)域的知識識別是有缺陷的。它們沒有辦法理解企業(yè)內(nèi)部的一些專用術(shù)語,縮寫所表示的具體含義。這樣極大地影響了生成向量的精準(zhǔn)度,以及大
    的頭像 發(fā)表于 12-07 09:41 ?987次閱讀
    對于大<b class='flag-5'>模型</b><b class='flag-5'>RAG</b>技術(shù)的一些<b class='flag-5'>思考</b>

    阿里云推出企業(yè)級大模型RAG系統(tǒng)

    國際AI大數(shù)據(jù)峰會上,阿里云重磅推出了企業(yè)級大模型檢索增強生成(RAG)解決方案。這一解決方案旨在為企業(yè)提供更強大、更智能的大模型應(yīng)用工具,幫助企業(yè)更有效地利用大數(shù)據(jù)和人工智能技術(shù)。
    的頭像 發(fā)表于 02-05 09:54 ?969次閱讀

    OpenVINO?協(xié)同Semantic Kernel:優(yōu)化大模型應(yīng)用性能新路徑

    作為主要面向 RAG 任務(wù)方向的框架,Semantic Kernel 可以簡化大模型應(yīng)用開發(fā)過程,而在 RAG 任務(wù)中最常用的深度學(xué)習(xí)模型
    的頭像 發(fā)表于 03-08 10:41 ?488次閱讀
    OpenVINO?協(xié)同Semantic Kernel:優(yōu)化大<b class='flag-5'>模型</b>應(yīng)用性能新路徑

    什么是RAG,RAG學(xué)習(xí)和實踐經(jīng)驗

    高級的RAG能很大程度優(yōu)化原始RAG的問題,索引、檢索和生成上都有更多精細的優(yōu)化,主要的優(yōu)化點會集中索引、向量模型優(yōu)化、檢索后處理等模塊
    的頭像 發(fā)表于 04-24 09:17 ?503次閱讀
    什么是<b class='flag-5'>RAG</b>,<b class='flag-5'>RAG</b>學(xué)習(xí)和<b class='flag-5'>實踐</b>經(jīng)驗