高并发图片实时渲染技术在阿里妈妈的大规模应用
個(gè)性化推薦已經(jīng)廣泛應(yīng)用到新媒體、電商、游戲等領(lǐng)域,當(dāng)你打開(kāi)手機(jī)淘寶的時(shí)候,淘寶會(huì)根據(jù)你的瀏覽和購(gòu)買等歷史行為,提供個(gè)性化的商品推薦。那么,這些形式多樣、風(fēng)格各異的個(gè)性化商品展示是怎樣最終呈現(xiàn)到APP中的呢?今天就來(lái)為大家介紹,在超級(jí)推薦等場(chǎng)景下,我們是如何來(lái)為用戶實(shí)時(shí)推送個(gè)性化內(nèi)容的。
個(gè)性化創(chuàng)意
在高流量的終端中推送圖文創(chuàng)意有很多需要考慮的因素,首當(dāng)其沖的就是商品圖和宣傳文案的體量問(wèn)題。在有大量商品等待推薦時(shí),每個(gè)商品都會(huì)被添加許多維度的標(biāo)簽,在創(chuàng)意呈現(xiàn)之前,由一個(gè)引擎進(jìn)行篩選和拼接,決定向用戶推送的商品和宣傳文案。然而大部分的商品圖不適合作為廣告創(chuàng)意直接透出,原因是:1)設(shè)計(jì)感不足,導(dǎo)致吸睛力不夠,不能抓住用戶的注意力;2)傳遞的信息不完整,重要場(chǎng)外信息如促銷、賣點(diǎn)等缺失。更進(jìn)一步說(shuō),廣告創(chuàng)意作為傳遞商品信息的最重要載體,如何能做到針對(duì)不同用戶喜好的個(gè)性化呈現(xiàn),提升用戶視覺(jué)體驗(yàn)的同時(shí),也達(dá)到廣告效率的進(jìn)步?
在這個(gè)背景下,我們引入了模版的概念,由專業(yè)的設(shè)計(jì)師團(tuán)隊(duì),針對(duì)不同的類目、風(fēng)格、場(chǎng)景來(lái)設(shè)計(jì)模板。針對(duì)每一次投放,廣告引擎需要決策推送的商品、文案,并選擇一個(gè)合適的模版,但隨之而來(lái)的是,這些物料排列組合產(chǎn)生了體量非常龐大的創(chuàng)意。如果我們提前生成了全部可能被投放的創(chuàng)意,但最終很可能只有少數(shù)的優(yōu)秀組合會(huì)保留下來(lái),這就會(huì)造成一種極大的浪費(fèi)。更糟糕的情況是,如果需要改動(dòng)某些內(nèi)容來(lái)進(jìn)行效果的迭代,就很可能要重新生成大量的創(chuàng)意,這也不利于效果的驗(yàn)證和快速迭代。
為解決這個(gè)問(wèn)題,我們?cè)?016年研發(fā)了高并發(fā)的圖片實(shí)時(shí)渲染技術(shù),在每次創(chuàng)意展現(xiàn)的時(shí)刻,實(shí)時(shí)根據(jù)引擎提供的物料,渲染一張圖片返回。對(duì)于終端來(lái)說(shuō),我們像是一個(gè) CDN 圖片服務(wù)。而對(duì)于大部分業(yè)務(wù)來(lái)說(shuō),幾乎不需要任何成本就可以接入這項(xiàng)服務(wù)。
Shout Out for Rust
2016年,經(jīng)過(guò)幾輪技術(shù)論證后,我們選擇了當(dāng)時(shí)其實(shí)并不是很成熟的 Rust 作為開(kāi)發(fā)語(yǔ)言,完成了我們所知比較早的阿里集團(tuán) Rust 線上服務(wù)。選擇 Rust 的原因主要包括:
安全:作為一個(gè)線上服務(wù),一旦出錯(cuò)就會(huì)導(dǎo)致廣告位空白,這是非常嚴(yán)重的故障。作為一個(gè)沒(méi)有太多歷史版本可以支撐的全新項(xiàng)目,我們無(wú)法承擔(dān) c/cpp 這類語(yǔ)言帶來(lái)的風(fēng)險(xiǎn)。而 Rust 的強(qiáng)類型、內(nèi)存管理和幾乎算是刻板的變量控制,反而成為安全性上的有力保證。在最初的版本中,我們也刻意減少了對(duì)第三方庫(kù)的依賴,來(lái)進(jìn)一步提升整個(gè)項(xiàng)目的可靠性。
性能:如果說(shuō) Rust 最吸引我們的一點(diǎn),那就是它能夠在保證安全性的前提下,提供接近 c/cpp 的性能。在規(guī)格為 32 Cores 2.5GHz / 128GB RAM / 600GB SSD 的服務(wù)器上,以原手機(jī)淘寶 640x200 像素的 banner 創(chuàng)意圖生成為例,若寶貝主圖有緩存,當(dāng)前圖片的渲染服務(wù)單機(jī)壓到 70% CPU 水位,并發(fā)請(qǐng)求數(shù)為 100 時(shí),可保證每秒 5000 次請(qǐng)求下,服務(wù)的整體返回時(shí)間維持在 25ms 以內(nèi);若沒(méi)有寶貝主圖緩存,服務(wù)單機(jī)壓到 50% CPU 水位,并發(fā)請(qǐng)求數(shù)依然為 100 時(shí),可保證每秒 3000 次請(qǐng)求下,服務(wù)的整體響應(yīng)時(shí)間保持在 30ms 以內(nèi)。
并發(fā):當(dāng)然,大部分語(yǔ)言都有并發(fā)模型。但是 Rust 嚴(yán)格的內(nèi)存管理和跨線程訪問(wèn)模型,保證了我們?cè)谙到y(tǒng)設(shè)計(jì)的過(guò)程中,幾乎不會(huì)出現(xiàn)錯(cuò)誤跨線程訪問(wèn)而產(chǎn)生競(jìng)爭(zhēng)、死鎖等問(wèn)題。最重要的是,這種來(lái)自語(yǔ)言級(jí)別的約束,也很大程度上保證了我們依賴的三方庫(kù)也能提供類似的保證。
性能帶來(lái)的想象力
一個(gè)高性能的渲染服務(wù)實(shí)質(zhì)上會(huì)讓許多不可能的想法成為可能。在項(xiàng)目上線后,很快拓展到了其他業(yè)務(wù)中。
阿里媽媽全域營(yíng)銷平臺(tái)開(kāi)屏創(chuàng)意
阿里媽媽全域營(yíng)銷平臺(tái)在”雙11”等大促場(chǎng)景,會(huì)在各手機(jī)客戶端投放千人千面的智能開(kāi)屏創(chuàng)意。例如,根據(jù)用戶的過(guò)往喜好,選擇商品放置在上述樣例的商品站臺(tái)上。如果預(yù)先生成這些創(chuàng)意圖,幾乎是不可能的。我們通過(guò)對(duì)選品與展現(xiàn)規(guī)則與對(duì)應(yīng)圖片位置打標(biāo),在客戶端開(kāi)屏展示時(shí)生成一個(gè)展示方案,并通過(guò)我們的圖片實(shí)時(shí)渲染服務(wù)迅速生成圖片,來(lái)達(dá)到業(yè)務(wù)所需要的千人千面的效果。
由于開(kāi)屏的時(shí)間很短,各家媒體的開(kāi)屏創(chuàng)意尺寸較大,這項(xiàng)業(yè)務(wù)對(duì)于渲染服務(wù)的速度要求很高。當(dāng)創(chuàng)意使用 3 張較大的商品主圖,在規(guī)格為 32 Cores 2.5GHz / 128GB RAM / 600GB SSD 的服務(wù)器上,當(dāng) CPU 在 70% 水位時(shí),每秒可處理 500 個(gè)左右的請(qǐng)求,平均響應(yīng)時(shí)間約 200ms。
淘寶App 信息流中的廣告創(chuàng)意展示
2021年 淘寶App 改版后,首頁(yè)焦點(diǎn)廣告位改變?yōu)榭ㄆ降男鲁叽纭T谶@項(xiàng)業(yè)務(wù)中,我們的渲染服務(wù)為廣告創(chuàng)意在新場(chǎng)景的快速落地和個(gè)性化提供了可能性。借助渲染服務(wù),廣告創(chuàng)意在新尺寸下落地幾乎沒(méi)有額外成本。這主要得益于我們圍繞模版的產(chǎn)品架構(gòu)選型帶來(lái)的靈活性:設(shè)計(jì)師只需要按照新的要求設(shè)計(jì)模板,就能適應(yīng)復(fù)雜的新場(chǎng)景需要。
展示外投的個(gè)性化廣告創(chuàng)意展示
在外投業(yè)務(wù)中,由于媒體環(huán)境千差萬(wàn)別,對(duì)于投放來(lái)說(shuō)最簡(jiǎn)單有效的創(chuàng)意形式就是圖片,非常適合使用拼圖服務(wù)。
由于渲染性能的提升,我們不僅可以支持實(shí)時(shí)渲染商品圖、文案內(nèi)容。還提供了實(shí)時(shí)渲染模板中裝飾圖層的能力,在此基礎(chǔ)上,算法可以根據(jù)商品圖特征,產(chǎn)出更美觀的創(chuàng)意。比如對(duì)于同一個(gè)模板,可以根據(jù)不同商品圖主色調(diào),產(chǎn)出完全不同配色。
這種根據(jù)商品圖特征實(shí)時(shí)變化創(chuàng)意配色的創(chuàng)意,目前已經(jīng)投放在抖音、手機(jī)百度、趣頭條等各種媒體,日均 PV 超過(guò) 5 億。
阿里巴巴國(guó)際站個(gè)性化焦點(diǎn)圖
阿里巴巴國(guó)際站選擇我們的實(shí)時(shí)渲染服務(wù),主要是因?yàn)槲覀兛梢灾С侄鄧?guó)語(yǔ)言。從目前業(yè)務(wù)比較廣泛的東亞語(yǔ)言到復(fù)雜的阿拉伯文,甚至多行、混合樣式的復(fù)雜排版都有完整的支持。阿里巴巴國(guó)際站借此快速實(shí)現(xiàn)了一個(gè)支持多國(guó)語(yǔ)言、投放簡(jiǎn)單靈活、可覆蓋所有資源位的圖片生產(chǎn)方案。初期使用過(guò)程中,本服務(wù)服務(wù)端實(shí)際響應(yīng)為 100ms 左右,在準(zhǔn)備好模板后,能快速與其投放系統(tǒng)對(duì)接,AB 測(cè)試結(jié)果顯示對(duì)接后和原靜態(tài)圖相比,業(yè)務(wù)效果平均提升了 35.68%。
更多應(yīng)用場(chǎng)景
此外還有許多應(yīng)用場(chǎng)景,如今日頭條、西瓜視頻等的直通車外投創(chuàng)意上,我們將智能文案與實(shí)時(shí)合圖相結(jié)合;再如淘寶聯(lián)盟使用圖片實(shí)時(shí)渲染支持的二維碼功能,無(wú)需提前準(zhǔn)備素材和客戶端介入,即可在雙 11 等大促時(shí)生成帶有二維碼的海報(bào)或活動(dòng)頁(yè)等。
想象力推動(dòng)創(chuàng)新
回望我們創(chuàng)造實(shí)時(shí)渲染引擎之前,也曾面臨著是用傳統(tǒng)的服務(wù)加大集群,還是從零開(kāi)始研發(fā)的選擇。在這種時(shí)候,對(duì)于未來(lái)技術(shù)前景的想象力,和技術(shù)落地后帶來(lái)的廣泛應(yīng)用的憧憬,推動(dòng)了我們?cè)谶@個(gè)領(lǐng)域的創(chuàng)新。最終,我們將看好的技術(shù)成功落地,助力業(yè)務(wù),并可以反過(guò)來(lái)進(jìn)一步提升我們的技術(shù)深度。希望這篇文章能夠在你面臨技術(shù)選型抉擇,或者在工作中苦惱“魚和熊掌不可兼得”的時(shí)候,提供一點(diǎn)新思路。
END
???關(guān)于我們
阿里媽媽創(chuàng)意前端團(tuán)隊(duì),致力于阿里集團(tuán)核心商業(yè)產(chǎn)品中創(chuàng)意相關(guān)技術(shù)建設(shè),優(yōu)化創(chuàng)意效果與效率。歡迎感興趣的同學(xué)投遞簡(jiǎn)歷至:alimama_chuangyi@service.alibaba.com,或點(diǎn)擊下方「閱讀原文」了解崗位詳情。
瘋狂暗示↓↓↓↓↓↓↓
總結(jié)
以上是生活随笔為你收集整理的高并发图片实时渲染技术在阿里妈妈的大规模应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【阿里妈妈数据科学系列】第一篇:认识在线
- 下一篇: 【阿里妈妈数据科学系列】第二篇:在线分流