一、前言
擁有一個幫你躺著賺錢的助手,聽起來是不是有點(diǎn)心動?依托于京東聯(lián)盟廣告平臺,借助AIGC大語言模型出色的理解、推理、規(guī)劃能力,我們推出了京粉智能推廣助手機(jī)器人,幫助合作伙伴擁有自己的智能助理,為京東聯(lián)盟的推客提供更加智能的一站式經(jīng)營服務(wù)。
1、京東聯(lián)盟是什么?
《京東聯(lián)盟》是聯(lián)合廣大媒體合作伙伴幫助京東推廣商品、擴(kuò)大品牌知名度的合作平臺。 經(jīng)京東許可的任何個人或公司加入京東聯(lián)盟后,獲取相應(yīng)推廣代碼或鏈接進(jìn)行推廣,當(dāng)用戶完成有效購買行為時,京東聯(lián)盟會員即可獲得傭金。
2、為什么要做京粉智能推廣助手?
業(yè)務(wù)上,京粉App是京東聯(lián)盟的客戶端產(chǎn)品,有日均百萬的合作媒體和個人推客用戶每在京粉上推廣商品賺取傭金,在推廣助手推出之前,經(jīng)過聯(lián)盟業(yè)務(wù)近些年的發(fā)展,有越來越多的功能和玩法活動加入進(jìn)來,推客如何選品、推廣、參加活動以及經(jīng)營數(shù)據(jù)的分析都分散在各個功能模塊中,用戶學(xué)習(xí)經(jīng)營的成本越來越高,問題也越來越多,人力維護(hù)成本也會越來越高,如果有一個助手可以幫助推客,隨時解答用戶問題、利用數(shù)據(jù)分析指導(dǎo)用戶如何進(jìn)行選品推廣、什么時間該參加什么類型的活動,那么將會有更多的用戶愿意加入進(jìn)來幫助京東進(jìn)行推廣。
技術(shù)上,隨著大語言模型技術(shù)的不斷成熟,助手類應(yīng)用也更加容易落地,借助AIGC大語言模型出色的理解、推理、規(guī)劃能力,使用自然語言的交互形式,充分理解推客的個性化經(jīng)營訴求,深度結(jié)合了廣大推客的實際推廣鏈路,從智能選品、推廣建議、素材生成、經(jīng)營指導(dǎo)等多方面為推廣者帶來經(jīng)營升級,解決了傳統(tǒng)被動交互形式中需求差異巨大及獲取信息效率低等問題。
?
?
二、如何做?
京粉智能推廣助手集合了知識問答、素材創(chuàng)作、選品推廣、經(jīng)營數(shù)據(jù)分析等一系列功能,幾乎涵蓋了助手類應(yīng)用的所有應(yīng)用場景,僅僅依賴通用大模型的能力是不夠的,這里就需要一個強(qiáng)大的智能體(Agent)進(jìn)行規(guī)劃、決策和執(zhí)行,同時讓智能體擁有記憶和使用工具能力,用戶通過自然語言多輪對話的方式進(jìn)行交互,重點(diǎn)將從以下三部分來介紹:
?Agent架構(gòu):分為兩部分,一部分是通過對模型的訓(xùn)練提升Agent的核心大模型識別工具的準(zhǔn)確性,另一部分要設(shè)計一個可擴(kuò)展并安全可控的Agent架構(gòu)來填充和擴(kuò)展業(yè)務(wù)能力。
?記憶:多輪對話應(yīng)用中如何組織、存儲和檢索記憶來提升大模型對用戶的理解。
?快捷回復(fù):利用快捷回復(fù)做用戶意圖的路徑規(guī)劃,實現(xiàn)業(yè)務(wù)目標(biāo)。
下面我們對實際應(yīng)用落地中的一些經(jīng)驗進(jìn)行分享和探討。
?
三、實戰(zhàn)1-AI Agent
1、為什么要用Agent?
聯(lián)盟場景有很多自有知識、活動、和數(shù)據(jù),大部分都有現(xiàn)成的接口來提供這些數(shù)據(jù),由于大模型本身對于垂類場景專業(yè)知識不足、知識的時效性差、容易出現(xiàn)幻覺等因素,直接使用大模型來和用戶做交互很容易出現(xiàn)問題,需要大模型來理解用戶的意圖并能夠利用聯(lián)盟已有的工具才能更準(zhǔn)確的回答用戶的問題,但是大模型本身是無法與外部環(huán)境進(jìn)行交互的,所以要用Agent來解決。
2、挑戰(zhàn)
?工具的識別:通過實驗發(fā)現(xiàn),市面上開源大模型對于外部工具使用能力只有Chat GPT-3.5/4以上的準(zhǔn)確率才能符合要求,但是成本很高,在企業(yè)應(yīng)用中需要訓(xùn)練自己的大模型學(xué)會如何更準(zhǔn)確的識別工具。
?Agent架構(gòu):當(dāng)前Agent仍處于發(fā)展的初級階段,從應(yīng)用場景來看,從智能客服->智能創(chuàng)意->推薦系統(tǒng)->自動駕駛->智能機(jī)器人到一個復(fù)雜的城市智能規(guī)劃系統(tǒng),所需要感知與交互的環(huán)境因素越來越復(fù)雜、所要決策的事項也越來越困難,所面對的風(fēng)險程度和安全級別也差異很大,所以目前沒有一種通用的Agent適合在所有場景使用,每種應(yīng)用場景都需要根據(jù)其特點(diǎn)、成本、效率、風(fēng)險相結(jié)合來設(shè)計Agent架構(gòu)。
3、技術(shù)方案
工具識別
大模型識別工具的方式有兩種,一種是用system prompt的方式,這種擴(kuò)展性較好,但是需要模型具有極強(qiáng)的指令跟隨的能力,一旦出現(xiàn)工具選擇錯誤、或者入?yún)㈠e誤,都會造成Agent調(diào)用工具失敗的情況,我們在開發(fā)初期使用該方法,但是prompt的調(diào)優(yōu)過程就好比魔法,時好時壞。第二種方式就是把工具訓(xùn)練到模型里面去,這種對于工具使用的準(zhǔn)確性可以大幅提升,并且用起來也很方便。我們利用了ToolLLM框架提供的數(shù)據(jù)構(gòu)建、模型微調(diào)和評測框架來增強(qiáng)大模型對工具的使用能力。結(jié)果證明用LLama-6B sft的效果已經(jīng)達(dá)到了Chat GPT的水平。
Agent實現(xiàn)
對于Agent實現(xiàn)上,最初的方案是基于langchain的agent來開發(fā)實現(xiàn)的,不過在實現(xiàn)的過程中,發(fā)現(xiàn)langchain中的很多問題,過度的封裝、異步并發(fā)效率低、版本前后不兼容、核心功能難易控制,由于langchain是用python實現(xiàn)的,解釋性語言運(yùn)行速度慢、并發(fā)處理能力較弱,雖然靈活性很高,但也造成了性能低的問題,所以比較適合做實驗或小型應(yīng)用,但是企業(yè)級高并發(fā)應(yīng)用并不合適,所以我們在ReAct范式基礎(chǔ)上,結(jié)合京東內(nèi)部公共組件和自研組件,融入了工具/接口的接入、自定義工具的編排、記憶模塊、vearch向量檢索、prompt引擎、流式回調(diào)函數(shù)、各模塊的監(jiān)控、并用golang重寫了Agent主要架構(gòu),提升了系統(tǒng)的穩(wěn)定性和高并發(fā)能力,性能上整體提升50%以上。
Agent的核心部門我們主要分了2個階段,初始化階段、迭代執(zhí)行階段,初始化階段是對環(huán)境信息的收集,包括用戶的輸入、歷史記憶加載、工具的接入、prompt接入、模型的接入,流式/非流式回調(diào)接入,這部分在langchain中agent啟動階段是比較耗時的,針對每輪用戶的交互,Agent都需要重新初始化,我們采用Agent復(fù)用的方式進(jìn)行預(yù)加載,除了用戶的輸入和歷史記憶,其他模塊全部提前加載,提升效率。另一個階段是迭代執(zhí)行階段,包含4個部分,預(yù)處理模塊、規(guī)劃、后處理模塊、執(zhí)行,預(yù)處理模塊需要維護(hù)一個階段狀態(tài)(第幾輪迭代)和數(shù)據(jù)的拼接處理(用戶的輸入+大模型回復(fù)+執(zhí)行結(jié)果)。規(guī)劃階段主要是通過大模型推理階段,這里需要預(yù)留對工具的解析模塊,因為不同的模型對于工具的輸入是不一樣的。后處理模塊是對模型規(guī)劃的結(jié)果進(jìn)行解析,有部分需要注意對模型規(guī)劃的結(jié)果做區(qū)分,結(jié)束或調(diào)用工具,需要在這里進(jìn)行流式和非流式的結(jié)果存儲和返回,如果需要調(diào)用工具,就進(jìn)入執(zhí)行模塊,將工具的調(diào)用結(jié)果送入預(yù)處理模塊進(jìn)行下一輪的迭代,我們在模型的調(diào)用和工具的調(diào)用中都預(yù)設(shè)了自定義鉤子,用戶可以根據(jù)需求在自定義工具執(zhí)行的任意階段進(jìn)行流式輸出。
合理的架構(gòu)
從企業(yè)級應(yīng)用來看,越智能的架構(gòu)越合理嗎?這里最重要的問題其實是系統(tǒng)是否足夠安全可靠,智能化是所有企業(yè)所追求的,但是要在一個可控的邊界內(nèi)智能,一個不受控制的智能體是任何企業(yè)無法接受的。所以安全邊界來看,應(yīng)用架構(gòu)可以分為以下兩種:
完全智能化架構(gòu):系統(tǒng)的運(yùn)行完全依靠Agent自主執(zhí)行
安全性架構(gòu):系統(tǒng)運(yùn)行依靠提前編寫好的任務(wù)流,Agent只做流程的選擇和判斷。
這么多年的經(jīng)驗告訴我們,如果脫離業(yè)務(wù)聊架構(gòu),就會沒人用,如果完全按照業(yè)務(wù)來做,總會被推翻重來,所以架構(gòu)的設(shè)計需要貼合業(yè)務(wù)的同時還要有一些前瞻性。
京粉智能推廣助手的業(yè)務(wù)主要需求:
功能 | 描述及解決方案 | 依賴 |
知識問答 | 京東聯(lián)盟有很多針對推客的使用介紹、規(guī)則、常用問題??梢酝ㄟ^外掛知識庫解決 | 知識庫 |
經(jīng)營分析 | 對于推客經(jīng)營狀態(tài)進(jìn)行分析,包括收入、客群畫像、推廣建議??梢酝ㄟ^聯(lián)盟各種已有工具接口進(jìn)行數(shù)據(jù)的接入。 | 推客/用戶畫像/活動等工具接口 |
推廣選品 | ·目標(biāo)明確的(搜索iphone15 pro max) ·目標(biāo)模糊的(過年送長輩的禮物) ·無目的 對于推薦的商品,要有推薦理由、同品/相似品多維度對比(傭金、價格、銷量、評論等) 分為簡單任務(wù)和復(fù)雜任務(wù)。復(fù)雜任務(wù)可以通過特定的任務(wù)流實現(xiàn) | 商品接口/歷史數(shù)據(jù)/同品相似品數(shù)據(jù) |
文案生成 | 對于選好的商品,幫助推客自動化生成推廣文案和分享轉(zhuǎn)鏈 | 轉(zhuǎn)鏈工具 |
... |
? |
? |
從功能需求來看,既有簡單任務(wù),又有復(fù)雜任務(wù),而且隨著時間的推移,增加的任務(wù)會越來越多,同時業(yè)務(wù)的定制化內(nèi)容越來越復(fù)雜,對Agent的難度會增加很多,為了平衡從業(yè)務(wù)、安全、成本、效率考慮,最終我們通過自定義任務(wù)流與agent自主決策相結(jié)合的方式,兼容了動態(tài)規(guī)劃、自主決策執(zhí)行任務(wù)流與業(yè)務(wù)的可定制化、可擴(kuò)展性。
?
4、業(yè)務(wù)效果
?
四、實戰(zhàn)2- 記憶
對于多輪對話形式的大模型應(yīng)用來說,上下文信息對于模型理解人類需求有很大的幫助,如果沒有記憶,在多輪對話中,大模型的表現(xiàn)會比較割裂,長期的記憶也會讓模型對用戶的習(xí)慣、偏好有更好的認(rèn)知。
1、挑戰(zhàn)
1.1.由于大模型token的限制,和系統(tǒng)內(nèi)存的限制,無法將用戶的所有歷史信息進(jìn)行存儲和加載到模型中。
1.2.如何模擬人類大腦記憶和檢索方式,構(gòu)建長/短期記憶。
1.3.多輪對話中的垂類領(lǐng)域知識的結(jié)構(gòu)化記憶。
2、技術(shù)方案
記憶的構(gòu)建可以概括為理解、存儲、刪除和檢索的過程,通過以下方式對短期記憶、長期記憶、垂類領(lǐng)域知識進(jìn)行存儲和檢索。
2.1. 短期記憶的設(shè)計比較容易,包括短期滑窗多輪對話的方式和定長時間內(nèi)的多輪對話都可以作為短期記憶,短期記憶要盡可能的存儲細(xì)節(jié)信息,但是輪數(shù)要盡可能的少。
2.2. 長期記憶:將短期的詳細(xì)記憶提取出實體信息,可以通過NER抽取實體信息,也可以通過大模型對緩存進(jìn)行總結(jié)和壓縮,按照記憶片段和時間戳進(jìn)行向量表征并存入向量庫中。
2.3. 垂類領(lǐng)域知識,比如京東的skuid,是一個數(shù)字類型,不代表任何語義信息,在前面的對話中可能會輸出給用戶某個skuid,如果短期記憶已被壓縮成長期記憶,就會導(dǎo)致不包含任何語義信息的數(shù)字類型消失,我們可以通過自定義結(jié)構(gòu)化信息存儲的方式將這類信息與長/短時記憶進(jìn)行融合存儲和檢索,這樣在用戶多輪次對話中就可以通過(“分析上一個商品”)從記憶中獲取結(jié)構(gòu)化的skuid來查找并分析該商品,而不是必須輸入分析上一個商品的“skuid”才能夠識別。
2.4. 檢索時同時檢索短時緩存記憶和向量庫長時記憶檢索(通過vearch實現(xiàn))以及垂類領(lǐng)域知識,將三部分進(jìn)行融合后,作為整體的記憶模塊,節(jié)省記憶空間。
?
五、實戰(zhàn)3-快捷回復(fù)
從線上實踐的數(shù)據(jù)分析來看,快捷回復(fù)功能在整個系統(tǒng)或用戶交互上都是使用率最高的,所有的用戶都存在選擇困難,特別是在一個全新的應(yīng)用場景中,用戶在首次使用時,用戶都喜歡使用一些給定的功能,所以如何利用好快捷回復(fù)的能力,通過快捷回復(fù)引導(dǎo)用戶朝著業(yè)務(wù)目標(biāo)路徑執(zhí)行,這個也是比較有意思的點(diǎn)。
快捷回復(fù)的三種實現(xiàn)方案
1.通過歷史信息和用戶的當(dāng)前輸入,利用大模型總結(jié)續(xù)寫能力,生成一些用戶可能繼續(xù)輸入的內(nèi)容。
2.結(jié)合應(yīng)用的功能預(yù)設(shè)一些常用問題。
3.重點(diǎn):可以根據(jù)應(yīng)用的業(yè)務(wù)目標(biāo),來規(guī)劃用戶使用路徑圖,使用戶按照快捷回復(fù)的路徑最終達(dá)成我們需要的業(yè)務(wù)目標(biāo),在實際業(yè)務(wù)中可以結(jié)合1、2點(diǎn),既有用戶想輸入的,又有我們想讓用戶看到的功能。
比如京粉智能推廣助手的最終業(yè)務(wù)目標(biāo)是幫助推客選品并推廣,那么所有的功能點(diǎn)最終都要導(dǎo)向幫助推客生成推廣文案和推廣鏈接并分享。
?
六、總結(jié)與展望:
本文主要總結(jié)了開發(fā)大模型應(yīng)用的一些實戰(zhàn)經(jīng)驗,通過對AI Agent + 工具 + memory+快捷回復(fù)可以解決通用大模型應(yīng)用的常見問題。時至今日,京粉智能推廣助手已經(jīng)服務(wù)了近百萬的推客,產(chǎn)生了上億的GMV。當(dāng)然,在應(yīng)用的實際開發(fā)中還有很多需要優(yōu)化的地方,我們也在不停的迭代升級中,未來還需要從以下幾個方面持續(xù)優(yōu)化:
1、垂類領(lǐng)域用戶意圖的理解:結(jié)合垂類業(yè)務(wù)的特點(diǎn),通過自然語言溝通交流的方式,更加精準(zhǔn)更快速的識別用戶的意圖,模型上需要大量的真實可靠的業(yè)務(wù)數(shù)據(jù)來進(jìn)行訓(xùn)練,機(jī)制上需要對Agent進(jìn)行升級,多個更加專業(yè)的助理進(jìn)行協(xié)作,例如multi Agent的應(yīng)用。
2、生成式推薦技術(shù):對現(xiàn)有推薦系統(tǒng)進(jìn)行技術(shù)變革,從召回、排序、重排固有的推薦鏈路演變成直接生成用戶所需的內(nèi)容或商品。
3、成本效率:大語言模型雖然很強(qiáng)大,但是其應(yīng)用也帶來巨大的成本和效率上的考驗,如何在垂類領(lǐng)域采用較小的模型實現(xiàn)大模型的效果,如何對模型推理加速,提高計算利用效率,降低機(jī)器成本,也是我們長期需要考慮和優(yōu)化的地方。
?
在這里也歡迎各位在該領(lǐng)域有興趣的有志之士加入或合作,利用技術(shù)讓我們的業(yè)態(tài)更加豐富與有趣。
審核編輯 黃宇
-
AI
+關(guān)注
關(guān)注
88文章
35166瀏覽量
280096 -
AIGC
+關(guān)注
關(guān)注
1文章
388瀏覽量
2482 -
大模型
+關(guān)注
關(guān)注
2文章
3146瀏覽量
4078
發(fā)布評論請先 登錄
Agent應(yīng)用實戰(zhàn):從廣告智能助手落地到平臺化賦能

《AI Agent 應(yīng)用與項目實戰(zhàn)》第1-2章閱讀心得——理解Agent框架與Coze平臺的應(yīng)用
《AI Agent應(yīng)用與項目實戰(zhàn)》閱讀體驗--跟著迪哥學(xué)Agent
《AI Agent 應(yīng)用與項目實戰(zhàn)》----- 學(xué)習(xí)如何開發(fā)視頻應(yīng)用
【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗】+初品Agent
使用 llm-agent-rag-llamaindex 筆記本時收到的 NPU 錯誤怎么解決?
基于多Agent系統(tǒng)的智能家庭網(wǎng)絡(luò)研究
日本地震對中國廣告聯(lián)盟的影響
基于遺傳算法的多agent聯(lián)盟的生成
Agent在智能小區(qū)管理中的應(yīng)用
基于信用度的Agent聯(lián)盟效用分配策略
廣告賺錢-如何用google adsense 廣告聯(lián)盟賺錢方
生成式推薦系統(tǒng)與京東聯(lián)盟廣告-綜述與應(yīng)用

評論