湖北國聯(lián)計算機科技有限公司
  • 首頁HOME
  • 公司簡介INTRODUCTION
  • 安全防御DEFENSE
  • 軟件開發(fā)SOFTWARE
  • 物聯(lián)網(wǎng)IOT
  • 運行維護SRE
  • 成功案例CASE
  • 聯(lián)系我們CONTACT
  • SOFTWARE |軟件開發(fā)

    生成式 AI 引爆廣告效率革命,揭秘京東大模型應(yīng)用架構(gòu)的實踐之道
    來源:湖北國菱計算機科技有限公司-湖北國聯(lián)計算機科技有限公司-荊州網(wǎng)站建設(shè)-荊州軟件開發(fā)-政府網(wǎng)站建設(shè)公司 時間:2025-05-16

    大模型時代廣告領(lǐng)域發(fā)展的契機和挑戰(zhàn)

    京東在過去一段時間里,在大模型浪潮下進行了諸多探索和實踐,涉及算法和工程方面。

    回顧過去一年半行業(yè)趨勢,國內(nèi)大部分廣告平臺都大力投入到基于大語言模型或生成式技術(shù)相關(guān)的產(chǎn)品及技術(shù)升級,涵蓋B 端和 C 端產(chǎn)品。大模型落地實踐剛開始時較為分散,但逐漸出現(xiàn)收斂趨勢,主要體現(xiàn)在訓(xùn)練和推理方面。同時,工業(yè)級別應(yīng)用層面的范式也在逐步收斂。

    在電商領(lǐng)域存在一些痛點,如知識融合問題,傳統(tǒng)推薦系統(tǒng)難以有效容納場景化知識,需外掛大量詞表信息及業(yè)務(wù)自反饋信息。而大語言模型時代到來后,對電商用戶和商品的理解能力可在大模型加持下得到提升。此外,基于大語言模型或生成式技術(shù)的scaling law(擴展定律)讓廣告算法系統(tǒng)煥發(fā)生機。

    產(chǎn)業(yè)界使用大語言模型主要有三大目標:一是大幅提升人貨匹配效率,尤其在搜索、推薦等核心鏈路模型中,通過提升人貨匹配效率帶動CTR(點擊通過率)、CVR(轉(zhuǎn)化率)、GMV(商品交易總額)及廣告收入等核心業(yè)務(wù)指標上漲;二是借助其知識理解和融合能力;三是滿足多模態(tài)信息接納需求,發(fā)揮大語言模型在文字、視頻、語音、圖片等多種模態(tài)下的理解能力。

    京東希望找到一種在應(yīng)用級別、一定時間內(nèi)具有scaling law 趨勢的算法演進路線,且該路線能適用于較多場景,同時以低成本獲取高性能

    生成式算法體系

    在典型的廣告算法體系中,生成式技術(shù)主要作用于以下場景。從經(jīng)典廣告系統(tǒng)的鏈路來看,從生成式的角度可以劃分為三個階段:第一個階段是召回和粗排階段,這本質(zhì)上是一個信息檢索類問題。其核心是如何“無中生有”,從海量信息中找出對用戶可能有用或感興趣的信息,形成一個龐大的候選集合。第二階段是精排階段。CTR(點擊通過率)和 CVR(轉(zhuǎn)化率)是典型的精排問題。精排模型打出的分數(shù)常用于排序,本質(zhì)上是在進行信息過濾,篩選出更符合用戶需求的內(nèi)容。第三階段是信息補足階段。對于已經(jīng)排在較前位置的商品或信息流廣告,進一步引入多模態(tài)理解能力,包括創(chuàng)意和排序機制的優(yōu)化,即重排。重排可以視為在上下文場景下的二次排序,進一步提升廣告效果。

    在討論生成式技術(shù)或大語言模型時,離不開其對應(yīng)的數(shù)據(jù)體系。數(shù)據(jù)體系需要解決兩個核心問題:一是用戶行為如何在生成式技術(shù)浪潮中進行二次定義;二是在電商廣告場景下,如何將知識融入生成式AI 模型或算法中。

    對于用戶行為,傳統(tǒng)上是通過人、貨、場三個維度進行定義。在生成式場景下,除了這三個維度,還會包含用戶畫像類信息。對于電商知識類信息,除了商品、貨品等結(jié)構(gòu)化信息,還存在大量未被很好結(jié)構(gòu)化的信息,例如用戶隨手拍的評論圖片,其語義化信息尚未被充分利用。

    在電商廣告場景下,經(jīng)過比較和分析,認為Semantic ID(語義 ID)是當前場景下更適用的表征解決方案。在數(shù)據(jù)表征的基礎(chǔ)上,算法建設(shè)涉及幾個關(guān)鍵步驟。首先是商品的量化表示,通過 Semantic ID 的方式進行表征。其次是讓大語言模型或生成式算法對這些表征后的信息具備理解能力和推理能力。

    關(guān)于編碼和表征,引用了一篇經(jīng)典文章的觀點,探討了Sid 是如何通過類似殘差信息的表達方式進行表征的,這與 Google 的相關(guān)研究相對應(yīng)。即通過某種編碼的 code book 方式來表達信息。在將信息注入大語言模型(無論是開源獲取的還是從零開始訓(xùn)練的)時,面臨兩個關(guān)鍵問題:一是這些數(shù)據(jù)如何訓(xùn)練;二是如何讓訓(xùn)練的數(shù)據(jù)有效表征其含義,即 DPO。

    生成式算法工程實踐

    我們來看一下在具體實踐中遇到的算法和工程上的挑戰(zhàn)。

    首先,我們今天主要討論的環(huán)節(jié)是召回,但實際上我們的的工作已經(jīng)覆蓋了排序、創(chuàng)意甚至重排階段。在將生成式AI 或大語言模型應(yīng)用于推薦系統(tǒng)時,我們遇到了兩個極具挑戰(zhàn)性的問題。第一個挑戰(zhàn)是工業(yè)場景下的規(guī)模問題。隨著業(yè)務(wù)的發(fā)展,模型的規(guī)模越來越大。在廣告系統(tǒng)中,延遲是一個關(guān)鍵問題。如果推理延遲超過 100 毫秒,結(jié)果將不會被采納,被認為是毫無意義的。為了實現(xiàn)高性能和低延遲的推理,我們需要付出巨大的計算成本,而我們希望這種成本越低越好。目前,許多大語言模型的工作是基于開源模型進行 SFT(監(jiān)督微調(diào))或 PT(預(yù)訓(xùn)練)后直接使用。然而,隨著我們對業(yè)務(wù)的深入理解和算法應(yīng)用的靈活性提升,我們發(fā)現(xiàn)僅僅借用他人的模型結(jié)構(gòu)已經(jīng)無法滿足我們的需求。我們需要對模型結(jié)構(gòu)進行改造,并且發(fā)現(xiàn)單純的生成式模型無法很好地解決判別型問題。這意味著未來的應(yīng)用場景需要生成式和判別式模型進行聯(lián)合學(xué)習(xí)和推理。

    第二個挑戰(zhàn)是低延遲和高吞吐的要求。我們給出一個典型的參考數(shù)據(jù):百萬token 的推理成本必須低于 1 元人民幣。如果高于這個成本,在大多數(shù)工業(yè)場景下,成本將變得不可控,模型很可能只能停留在實驗階段,無法大規(guī)模落地。這兩個挑戰(zhàn)共同導(dǎo)致了一個問題:我們需要進行極致的性能優(yōu)化,才能讓這樣的模型或算法真正在線應(yīng)用。

    在進行大規(guī)模工業(yè)化性能優(yōu)化時,我們發(fā)現(xiàn)算力或推理優(yōu)化主要由三個方面決定:首先是裸算力,其次是存儲性能或存儲吞吐量,第三是訓(xùn)練和推理過程中的IO 問題。這三者存在木桶短板效應(yīng),即任何一個環(huán)節(jié)的短板都將決定我們在應(yīng)用中的性能上限。

    針對低延遲和高吞吐的極致性能優(yōu)化,我們的優(yōu)化思路分為三個層面:首先是在單節(jié)點優(yōu)化上,我們希望實現(xiàn)極致的性能釋放;其次,當任務(wù)變?yōu)榉植际綍r,我們希望實現(xiàn)軟硬協(xié)同的分布式高性能推理;最后,在整個全鏈路上,我們希望尋找其他可以優(yōu)化的資源或耗時空間,例如層次化推理和同層次化算力的優(yōu)化。

    在優(yōu)化手段方面,業(yè)內(nèi)已經(jīng)有許多相關(guān)工作,包括基于算子和圖的優(yōu)化、深度學(xué)習(xí)編譯器的優(yōu)化,以及推理模式的優(yōu)化,如各種緩存模式(KV Cache、Layer Cache 等)和推理范式的優(yōu)化(例如 PD 分離)??偨Y(jié)來說,單節(jié)點上的推理算力釋放主要分為兩部分:一是單純的推理優(yōu)化,二是從服務(wù)層級進行優(yōu)化。在單節(jié)點推理優(yōu)化方面,主要涉及量化、Tensor 并行和各種 Attention 技術(shù);在服務(wù)層級優(yōu)化方面,主要關(guān)注調(diào)度層面,如連續(xù)批處理(continuous batch)和負載均衡。

    單節(jié)點算力釋放

    為了降低單節(jié)點推理的無用功計算,我們通常會采用一些優(yōu)化方式,例如多查詢(Multi-Query)注意力機制等。這些方法在業(yè)內(nèi)已經(jīng)被廣泛應(yīng)用,例如基于英偉達 GPU 的解決方案,雖然在一定程度上有效,但仍然無法完全解決工業(yè)場景下的問題。

    在優(yōu)化手段方面,量化技術(shù)是一個重要的方向。從半精度到FP8,甚至更低比特的量化技術(shù),雖然在推理性能上追求極致,但在實際應(yīng)用場景中,如廣告推薦或搜索,過低的精度可能導(dǎo)致無法達到預(yù)期效果。Tensor 并行則是一種計算層面的資源分配優(yōu)化,通過將任務(wù)拆分,降低單卡負載,從而降低延遲并充分利用性能。

    在注意力機制的優(yōu)化方面,Flash Attention 和 Page Attention 等技術(shù)已經(jīng)被廣泛應(yīng)用于開源模型中。通過采用這些優(yōu)化手段,例如 batching 和注意力技術(shù),可以顯著提升推理效率。公開資料顯示,平均推理延遲可以降低到原來的 1/5 左右,吞吐量提升的同時,成本可以降低約一半。

    特別地,我們推薦一種batching 策略—— Dynamic Latency Batching Switch。傳統(tǒng)的 Continuous Batching 雖然可以填充推理過程中的空閑時間,但在低延遲場景下,簡單地將任務(wù)插入到空閑位置可能會導(dǎo)致累積延遲超標。動態(tài)延遲 batching 的核心思想是,在保證每個推理請求不超過最大延遲的前提下,通過智能調(diào)度,將任務(wù)分配到更合適的批次中。例如,當發(fā)現(xiàn)某條推理鏈路如果繼續(xù)插入任務(wù)會導(dǎo)致延遲超標時,系統(tǒng)會將其切換到更早結(jié)束的批次,從而確保下一個任務(wù)可以更早進入推理狀態(tài)。

    分布式算力釋放

    在分布式場景下,軟硬協(xié)同的優(yōu)化思路雖然簡單,但在工業(yè)場景下的大規(guī)模實現(xiàn)具有挑戰(zhàn)性。由于請求的長度(request length)不同,不同集群和節(jié)點的處理能力也各異。因此,我們傾向于將計算量大的任務(wù)分配到計算能力更強的節(jié)點上。然而,難點在于負載均衡。并非所有廣告或推薦請求的價值都相同,如果某次請求對系統(tǒng)的價值更高,我們會優(yōu)先處理。因此,在負載均衡策略上,我們會進行基于請求價值的粗粒度預(yù)估,將高價值請求分配到專用計算節(jié)點上優(yōu)先處理,而低優(yōu)先級的請求可能會被拋棄或采用傳統(tǒng)算法和模型處理。

    在調(diào)度層面之外,我們還嘗試了以下三項已被驗證有價值的工作:

    生成式推理集群:在集群層面,我們進行了以下優(yōu)化:

    大模型的集群化推理;

    小批量(small batch)適配能力;

    PD分離,prefill(預(yù)填充)和 decode(解碼)這是業(yè)內(nèi)常見的優(yōu)化手段。

    KV Cache 池化:許多企業(yè)希望減少計算資源的浪費,同時保證計算精度和效果。KV Cache 池化是應(yīng)對集群化推理的有效解決方案,能夠避免從零開始推理每條請求,從而提高效率。

    判別式場景的集群化處理:在廣告場景中,無論是搜索還是推薦,結(jié)果的相關(guān)性是一個關(guān)鍵問題。對于判別式任務(wù),我們設(shè)置了單獨的集群進行路由化處理。

    為了實現(xiàn)集群化模型的分布式并行推理,我們采用了以下方法:

    模型拆圖:將模型中的多個block(既有 CPU 計算密集型部分,也有 GPU 計算密集型部分)根據(jù)計算負荷和價值進行拆分。拆圖后,將不同部分分別進行服務(wù)化部署。通過這種方式,可以優(yōu)化集群的計算資源利用率。拆圖前,由于模型塊的差異,集群的資源利用率存在較大差異;拆圖并并行計算后,利用率趨于平衡,避免了某些資源過度使用或浪費。

    多級緩存:針對IO 瓶頸問題,我們利用 CPU 管理的 RAM 和 GPU 的 HBM(高帶寬存儲器)構(gòu)建了多級緩存。這種多級緩存減少了多機之間的通信,使系統(tǒng)能夠更快地獲取預(yù)計算結(jié)果,從而實現(xiàn)更低的延遲和更高的吞吐量。

    在訓(xùn)練過程中,我們發(fā)現(xiàn)了一些有效的解決方案。對于更復(fù)雜的生成式AI 訓(xùn)練(超出簡單的大語言模型范疇),全參數(shù) GPU 同步訓(xùn)練在特定應(yīng)用場景下能夠顯著提升訓(xùn)練速度。

    在分布式推理的調(diào)度器設(shè)計中,我們面臨的業(yè)務(wù)應(yīng)用場景不僅包括生成式算法模型,還涉及語義理解層面的相關(guān)性以及典型的排序任務(wù)(如CTR、CVR 等)。這些任務(wù)通過不同層級的調(diào)度器進行請求劃分和調(diào)度。

    全鏈路算力釋放

    為了維持低延遲和低資源消耗的推理,我們希望從其他環(huán)節(jié)“偷”一些資源或耗時空間。具體方法如下。

    端計算與預(yù)計算:我們將相當一部分計算下沉到用戶手機端(設(shè)備端),采用端計算模式進行大量預(yù)計算工作。在用戶發(fā)起請求的瞬間,我們利用召回到排序之間的這段時間進行前置計算,這部分耗時空間約為30~100 毫秒,具體取決于不同業(yè)務(wù)場景。

    近線計算:對于一些信息,我們只需要在一定時間內(nèi)保證其最新即可,因此可以通過近線計算的方式提前算好,然后在線上進行查詢或直接使用。

    離線計算:對于計算極其復(fù)雜且在較長時間內(nèi)不會變化的任務(wù),我們采用離線計算的方式。

    通過以上層次化的劃分,結(jié)合軟硬件的定制化優(yōu)化,我們將原本100 毫秒的計算延遲拆分為多個幾十毫秒的小塊,這些小塊已經(jīng)完成了預(yù)計算。因此,真正留給實時推理和計算的任務(wù)變得相對簡單,從而能夠在百毫秒以內(nèi)完成在線生成式 AI 的推理。進一步地,我們是否可以更徹底地“偷”資源呢?答案是可以。在每個環(huán)節(jié)(如檢索、排序等)中,我們都可以利用層次化的算力設(shè)計和動態(tài)協(xié)調(diào)機制,實現(xiàn)更加負載均衡的算力配置。

    在整個算法和全鏈路設(shè)計中,貫穿了兩條核心思想:

    重新定義算力邊界:我們將單環(huán)節(jié)的推理任務(wù)拆分到多個環(huán)節(jié),重新定義了算力的邊界以及模型需要計算的內(nèi)容。

    多層次任務(wù)定義與優(yōu)化:我們將復(fù)雜的計算任務(wù)定義到多個層次上,通過硬件升級、調(diào)度層面升級以及流程層面升級,帶來實際算力的提升。這樣既能夠保持全鏈路推理在百毫秒以內(nèi),又能夠支撐一定程度的Scaling Law,以應(yīng)對不斷增長的計算需求。

    算法建模靈活度問題

    在算法研發(fā)過程中,算法工程師們擁有大量富有創(chuàng)意的想法。根據(jù)不完全統(tǒng)計,一個典型的業(yè)務(wù)算法工程師在一個季度內(nèi)至少希望進行兩次上線評審,背后可能涉及近10 次想法的嘗試。如果一個公司或團隊有幾十甚至上百名算法工程師,算法的靈活性問題就顯得尤為突出。在這種情況下,如何在有限的耗時空間和硬件資源下,支撐靈活的算法定制,成為了一個亟待解決的棘手問題。具體而言,如何讓生成式模型和判別式模型進行聯(lián)合建模、訓(xùn)練和推理,是我們當前面臨的一大挑戰(zhàn)。我們主要的解決方案是基于 Python 和 TensorFlow 進行構(gòu)圖,以實現(xiàn)聯(lián)合訓(xùn)練和推理。

    在召回層面,雖然可以通過生成式技術(shù)(例如Semantic ID)對商品進行表征,根據(jù)用戶的歷史行為(如瀏覽、點擊等)預(yù)測其未來可能感興趣的商品,但這只是最基礎(chǔ)的檢索問題。檢索結(jié)果還需要進行相關(guān)性判斷,并進入粗排環(huán)節(jié)進行打分和排序。在這個過程中,如果發(fā)現(xiàn)相關(guān)性已經(jīng)失衡,那么可能根本不需要進行粗排打分,甚至某些類目下的商品或推薦項也無需生成。這種將生成式和判別式算法鏈路耦合后的結(jié)構(gòu)剪枝,即推理過程中的剪枝,已被實驗驗證可以顯著提升召回率和準確率,甚至達到兩位數(shù)的提升。這種效果非常明顯且令人震驚。

    為了實現(xiàn)召回和粗排一體化(召排一體),業(yè)界最典型的做法是先召回一個大集合,再進行過濾和粗排,形成三個環(huán)節(jié)。但如果將這三個環(huán)節(jié)合并為一個,即召回加粗排一體,會面臨哪些問題呢?

    以典型的稀疏模型(如粗排或精排的CTR 模型)為例,其稠密部分的計算量相對較?。s 0.5T Flops),但 embedding table 占比巨大。而典型的生成式模型,其 Dense 部分非常龐大,對算力要求極高,但 embedding 等外掛信息相對較少。如果希望將這兩種模型進行耦合或聯(lián)合建模,數(shù)據(jù)是否充足是一個關(guān)鍵問題。下圖引用了一張開源公開文章中的截圖,顯示高質(zhì)量語料數(shù)據(jù)被認為已接近耗盡,預(yù)計耗盡的時間點在 2028 年左右。然而,在我們的業(yè)務(wù)場景中,用于訓(xùn)練最典型的稀疏模型的數(shù)據(jù)仍然非常充足。如果僅關(guān)注生成式模型,數(shù)據(jù)耗盡的風險確實存在。但如果考慮生成式與判別式模型的聯(lián)合建模,數(shù)據(jù)空間仍然較為充裕。無論是生成式模型還是判別式模型,其參數(shù)增長的勢頭并未減緩,反而仍在加速增長。

    如果簡單地將兩者耦合進行推理,會立即遇到一個明顯的問題——“撞墻”。目前主流的大語言模型,無論是在 Google 的 TPU、英偉達的 GPU 還是 AMD 的 MI 推理芯片上運行,其推理的 token 吞吐量似乎都集中在較低水平,主要受限于 HBM(高帶寬存儲器)的瓶頸。隨著參數(shù)增長、數(shù)據(jù)量和模型結(jié)構(gòu)的擴大,推理環(huán)節(jié)已經(jīng)成為制約因素。在這種情況下,單純依靠硬件提升已無法滿足聯(lián)合訓(xùn)練和推理的需求。

    我們提出采用分而治之的分層思想來解決這個問題。業(yè)界常用的硬件解決方案及其對應(yīng)的技術(shù)棧為我們提供了分層的空間。我們的分層邏輯包括定制化和優(yōu)化兩個層面,最上面是業(yè)務(wù)層面。通過通信、建模和數(shù)據(jù)的三層解耦,我們可以找到三者之間的有機平衡關(guān)系。這意味著通過利用局部計算特性,HBM 的通信問題得到了一定程度的緩解。

    生成式& 判別式聯(lián)合推理能力

    在生成式和判別式聯(lián)合推理能力方面,我們以基于TensorFlow 的 CTR(點擊通過率)和 CVR(轉(zhuǎn)化率)排序模型(即典型的稀疏模型)為例,同時結(jié)合像 LLaMA 等典型的大語言模型。我們的目標是將這兩者耦合在一起,這種耦合并非簡單的分步推理(即上一步推理完成后再進行下一步),而是通過直接共享 hidden state(隱藏狀態(tài))來驅(qū)動整個圖的共享,從而實現(xiàn)整個推理過程的封裝。

    在推理過程中,我們同時采用多引擎進行推理:一方面通過TensorFlow 的 Graph engine 進行觸發(fā)和驅(qū)動,另一方面驅(qū)動 TensorRT engine 推理引擎 。最終,我們實現(xiàn)了生成式和判別式模型的有機結(jié)合,并且避免了“撞 HBM 的墻”,能夠在業(yè)務(wù)場景中真正實現(xiàn)推理。

    (轉(zhuǎn)載自:infoq)

    荊州地區(qū)政府網(wǎng)站建設(shè) 解決方案 專業(yè)團隊 騰訊第三方平臺 地址:湖北省荊州市沙市區(qū)荊沙大道楚天都市佳園一期C區(qū)29棟112       地址:湖北省松滋市新江口街道才知文化廣場1幢1146-1151室     郵編:434200 聯(lián)系電話:0716-6666211     網(wǎng)站編輯部郵箱:business@gl-ns.com 鄂公網(wǎng)安備 42100202000212號 備案號:鄂ICP備2021015094號-1     企業(yè)名稱:湖北國菱計算機科技有限公司