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