自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

百度基于云原生的推薦系統(tǒng)設(shè)計(jì)與實(shí)踐

云計(jì)算 云原生
本文將分享基于深度云原生的推薦系統(tǒng)架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)。典型的云原生技術(shù)棧可分為四層:供給層(Provisioning)、運(yùn)行時(shí)層(Runtime)、策劃和管理層(Orchestration & Management)以及App定義和開發(fā)層(App Definition & Development)。

一、云原生技術(shù)棧

下圖是 CNCF 公布的云原生基礎(chǔ)架構(gòu)的抽象圖。

圖片

典型的云原生技術(shù)??煞譃樗膶樱汗┙o層(Provisioning)、運(yùn)行時(shí)層(Runtime)、策劃和管理層(Orchestration & Management)以及App定義和開發(fā)層(App Definition & Development)。還包括一些可觀測性和分析的基礎(chǔ)設(shè)施,比如監(jiān)控、日志、調(diào)用追蹤、混沌工程。

我們要做的,就是在推薦系統(tǒng)上,利用好 cloud native 的這幾層架構(gòu),來實(shí)現(xiàn)基礎(chǔ)技術(shù)能力。早期 cloud native 有些基礎(chǔ)設(shè)施還沒有完善,因此部分公司在搭建推薦系統(tǒng)時(shí),部分基礎(chǔ)設(shè)施是自建的。后期,在 cloud native 技術(shù)完善之后,在設(shè)計(jì)推薦系統(tǒng)時(shí),就會基于 cloud native 的技術(shù)棧來進(jìn)行模塊設(shè)計(jì)。無論是哪一種形式,都要對云原生的技術(shù)棧和推薦系統(tǒng)的基礎(chǔ)架構(gòu)有比較深入的了解,才能做到較好的融合。

二、推薦系統(tǒng)架構(gòu)

圖片

推薦系統(tǒng)的技術(shù)架構(gòu),可以分為在線和離線部分。

離線部分通常做內(nèi)容建模,數(shù)據(jù)引入時(shí),通常做內(nèi)容建模,例如內(nèi)容生態(tài)和合作數(shù)據(jù)引入。我們對這些數(shù)據(jù)進(jìn)行內(nèi)容處理,如標(biāo)簽化、標(biāo)簽特征抽取、向量化(即根據(jù)一些模型把 Doc 數(shù)據(jù)轉(zhuǎn)化為向量)。對于用戶數(shù)據(jù),例如用戶點(diǎn)展、共享和分享這些用戶行為,我們會對其進(jìn)行數(shù)據(jù)挖掘和用戶畫像、Attention 抽取等,并且對用戶的屬性也進(jìn)行向量化。在此基礎(chǔ)上,將用戶的推送或相關(guān)性、關(guān)聯(lián)性等 doc 維度的屬性進(jìn)行召回和排序,最終進(jìn)行展現(xiàn)。

流量方面,在天級范圍內(nèi)體現(xiàn)出明顯的潮汐現(xiàn)象。比如在晚高峰流量高,低谷期流量低。

三、基于云原生的推薦系統(tǒng)設(shè)計(jì)重點(diǎn)

圖片

針對推薦系統(tǒng)的特點(diǎn),在設(shè)計(jì)時(shí)需要從三個(gè)層次建設(shè)基礎(chǔ)能力和業(yè)務(wù)架構(gòu)。第一層,需要構(gòu)建好云原生的基礎(chǔ)設(shè)施,包括 PaaS、事件機(jī)制、服務(wù)編排、服務(wù)畫像、指標(biāo)采集等;在此基礎(chǔ)上,是第二層,云原生能力的建設(shè),包括構(gòu)建 ALM 的全生命周期管理、容量管理,SaaS 方面的資源管理、調(diào)度機(jī)制,以及流量管理、混沌工程穩(wěn)定性等等;最終體現(xiàn)在第三層業(yè)務(wù)價(jià)值上,包括降低成本、提升研發(fā)效率、保證穩(wěn)定性、提升業(yè)務(wù)效果和提升性能。

接下來重點(diǎn)介紹四個(gè)方面:虛擬化和微服務(wù)化改造,服務(wù)治理和彈性建設(shè),基于云原生能力的推薦業(yè)務(wù)應(yīng)用以及穩(wěn)定性建設(shè)。

1. 虛擬化和微服務(wù)改造

圖片

虛擬化技術(shù)是云原生系統(tǒng)中最基礎(chǔ)的部分,本質(zhì)上是軟硬件的技術(shù)棧。硬件輔助虛擬化方案(Hardware virtualization,HVM),主要利用 CPU 等硬件輔助處理敏感指令,以實(shí)現(xiàn)完全虛擬化功能,無需修改客戶端操作系統(tǒng)。

VMware Workstation,Xen,KVM 產(chǎn)品或架構(gòu)都是應(yīng)用了該技術(shù),當(dāng)前市場中幾乎所有主流硬件都是支持硬件輔助虛擬化技術(shù)的。

最常見的虛擬化落地方式是 KVM 技術(shù),通過處理敏感指令,實(shí)現(xiàn) CPU、內(nèi)存和 IO 的虛擬化技術(shù)。

圖片

另一個(gè)趨勢是 GPU,在推薦系統(tǒng)中日益盛行,主要用于模型訓(xùn)練、在線推理等一系列高密度復(fù)雜計(jì)算。GPU 顯存大、計(jì)算能力強(qiáng),需要對其進(jìn)一步虛擬化切分,使業(yè)務(wù)能夠以更低的成本使用,獲得高效的運(yùn)算效果。

圖片

虛擬化構(gòu)建之后,必不可少的步驟是微服務(wù)的改造。微服務(wù)化改造是精細(xì)化調(diào)度和服務(wù)資源運(yùn)營的基礎(chǔ)。以百度為例,早期業(yè)務(wù)流量增長迅猛,對研發(fā)迭代的效率要求極高,早期實(shí)現(xiàn)方式為巨型服務(wù),每個(gè)業(yè)務(wù)模塊功能變復(fù)雜后,功能依然在模塊內(nèi)部實(shí)現(xiàn),導(dǎo)致開發(fā)迭代變得越來越困難。隨著模塊逐步龐大,會發(fā)現(xiàn)一臺機(jī)器上的部分資源被占滿,而部分資源空閑,因此需要進(jìn)行微服務(wù)化改造。比如預(yù)估層,抽出 CTR 預(yù)估、時(shí)長預(yù)估等,將服務(wù)拆解。

微服務(wù)化拆分的目標(biāo)是無巨型服務(wù)和可遷移服務(wù)。無巨型服務(wù),即約束服務(wù)的資源顆粒度。同時(shí)做到可遷移,即各服務(wù)實(shí)現(xiàn)實(shí)例自動化遷移??蛇w移除了常見的擴(kuò)容外,還有服務(wù)實(shí)例自愈。比如當(dāng)整機(jī)出現(xiàn)熱點(diǎn),或當(dāng)服務(wù)模塊出現(xiàn)異常時(shí),能快速探測,并實(shí)現(xiàn)自愈。

拆分的原則包括:按策略、業(yè)務(wù)流程拆分,按組織團(tuán)隊(duì)拆分,以及通用服務(wù)平臺化。

圖片

一個(gè)典型的推薦系統(tǒng)服務(wù)改造方式為,將一些巨型服務(wù),如用戶模型、內(nèi)容數(shù)據(jù)、索引排序等,進(jìn)行額外的抽象,進(jìn)行獨(dú)立的平臺化處理,即通過 RPC 訪問外部服務(wù),使其從原本的推薦服務(wù)中抽離出來。

構(gòu)建通用服務(wù)框架,通過組件式的開發(fā)構(gòu)建可組裝的策略組件。包括業(yè)務(wù)模塊、架構(gòu)模塊。其中架構(gòu)模塊即一些可復(fù)用的基礎(chǔ)模塊,比如 Filter 或一些基礎(chǔ)函數(shù),還包括一些策略算子,如 CTR、Rank 等,以算子庫的形式提供給業(yè)務(wù),進(jìn)行拼裝式的使用。

常用的一種拼裝方式是 DAG 引擎。通過一些配置文件,即可將整個(gè)代碼邏輯組裝起來。

2. 服務(wù)治理和彈性建設(shè)

圖片

應(yīng)用生命周期管理(ALM)的目標(biāo)是通過服務(wù)治理,讓所有的服務(wù)都保持在合理的運(yùn)行狀態(tài)下,確保資源利用健康度,可檢測、可干預(yù)。服務(wù)治理的能力和效率,是架構(gòu)可持續(xù)發(fā)展的關(guān)鍵因素,其基礎(chǔ)依賴就是容器編排、虛擬化的支持,在此基礎(chǔ)上通過對基礎(chǔ)參數(shù)和性能參數(shù)的采集,進(jìn)行服務(wù)編排。同時(shí),還要做到可觀測性。

圖片

通過 ALM 采集的數(shù)據(jù),可以對服務(wù)進(jìn)行統(tǒng)一、標(biāo)準(zhǔn)化地治理,實(shí)現(xiàn)對資源的合理利用。但有些服務(wù),其資源利用率并不是隨 QPS 增長而線性增長的,不同服務(wù)對利用率的容忍率也不同。因此,我們構(gòu)建了以服務(wù)畫像為中心的云原生技術(shù)。

根據(jù)每個(gè)服務(wù)的極限負(fù)載個(gè)性化地設(shè)置合理容量,實(shí)現(xiàn)系統(tǒng)成本全局最優(yōu)?;诜?wù)的機(jī)型偏好的調(diào)度策略,實(shí)現(xiàn)資源最優(yōu)配置,提升系統(tǒng)性能。摒棄傳統(tǒng)固定容量模式,動態(tài)調(diào)整服務(wù)容量,實(shí)現(xiàn)資源按需分配。

圖片

針對負(fù)載波動差異大,彈性等級差異大和負(fù)載容忍度差異大等問題,通過不同類型的畫像來構(gòu)建彈性能力。比如在線場景中晚高峰流量大,push 場景中新熱點(diǎn)流量會明顯上升,對于不同的服務(wù)構(gòu)建個(gè)性化流量畫像來描繪其波動特性。另外,從存儲和計(jì)算兩個(gè)維度對各個(gè)服務(wù)的彈性進(jìn)行打分,以此作為彈性伸縮的依據(jù)。

圖片

通過 Metric agent、Data Polling 等數(shù)據(jù)采集,離群值處理、缺失值填充以及數(shù)據(jù)聚合等預(yù)處理方法,構(gòu)建多維度服務(wù)畫像。

圖片

基于畫像構(gòu)建個(gè)性化的 ALM quota resize 架構(gòu),通過預(yù)縮容、反饋和熔斷機(jī)制、步進(jìn)式調(diào)整控制流程等方法保障穩(wěn)定性。

圖片

基于畫像的 serverless,是一種基于流量預(yù)測的彈性伸縮策略,可以進(jìn)行提前預(yù)判 & 負(fù)載反饋兜底。依托 STL、LSTM 等時(shí)序算法模型進(jìn)行流量預(yù)測。通過主動預(yù)測、提前預(yù)判、監(jiān)控負(fù)載、主被動結(jié)合的方式,構(gòu)建兼顧穩(wěn)定性和成本的安全彈性機(jī)制。

上圖中展示了預(yù)測效果??梢钥吹筋A(yù)估誤差為 4%,相較于簡單規(guī)則的 18%,具有明顯優(yōu)勢。

圖片

3. 基于云原生能力的推薦業(yè)務(wù)應(yīng)用

圖片

釋放出來的資源可以用于額外的計(jì)算,以獲得更多收益。

推薦產(chǎn)品不依賴用戶的主動輸入,多數(shù)用戶的“興趣”長期穩(wěn)定。Nearline 召回機(jī)制是介于在線離線之間的一類全新召回方式,容忍秒級延遲,有更大的計(jì)算規(guī)模和復(fù)雜度,可以使用碎片資源和閑置資源,降低機(jī)制成本。

圖片

通過異步計(jì)算的方式,與在線計(jì)算解耦,根據(jù)系統(tǒng)負(fù)載主動計(jì)算,可以提前計(jì)算獲得預(yù)估結(jié)果,提升效果。根據(jù)資源情況,動態(tài)調(diào)整計(jì)算參數(shù),實(shí)現(xiàn)資源平穩(wěn)與充分利用。

4. 穩(wěn)定性建設(shè) - 混沌工程

混沌工程在 2018 年由 CNCF 提出,是??新興的技術(shù)學(xué)科,通過實(shí)驗(yàn)性的?法,讓?們建?對于復(fù)雜分布式系統(tǒng)在?產(chǎn)中抵御突發(fā)事件能力的信心。

傳統(tǒng)的穩(wěn)定性工作,建立在歷史 case 和工程師經(jīng)驗(yàn)基礎(chǔ)上,是一個(gè)(發(fā)生故障->解決問題->下次發(fā)生故障)的循環(huán)。系統(tǒng)經(jīng)過重構(gòu)升級后,穩(wěn)定性能力可能無法持續(xù)。

混沌工程的整體目標(biāo)是通過實(shí)驗(yàn)主動驅(qū)動代替過去的 case 被動驅(qū)動,在可控范圍內(nèi)周期性注入故障,主動發(fā)現(xiàn)系統(tǒng)隱患,驗(yàn)證穩(wěn)定性能力,推動架構(gòu)迭代優(yōu)化。

圖片

混沌工程的主要機(jī)制是通過紅藍(lán)對抗機(jī)制進(jìn)行故障的隨機(jī)預(yù)演練。通過對故障場景編排和自動化巡檢,利用韌性指數(shù)把穩(wěn)定性進(jìn)行量化。

圖片

基于歷史問題抽象故障庫,建立可量化的穩(wěn)定性評價(jià)體系,引入韌性信心指數(shù)規(guī)范,混沌實(shí)驗(yàn)周期性巡檢,更新韌性指數(shù),驅(qū)動架構(gòu)優(yōu)化。

責(zé)任編輯:姜華 來源: DataFunTalk
相關(guān)推薦

2024-01-09 07:48:07

推薦排序算法策略數(shù)據(jù)背景

2024-05-20 07:52:06

冷啟動策略推薦算法推薦系統(tǒng)

2012-03-23 12:12:37

百度開發(fā)者大會

2014-07-25 17:12:39

數(shù)據(jù)庫WOT2014MongoDB

2013-06-27 10:23:30

百度云百度開放云

2021-06-03 15:22:37

百度智能云AI原生

2023-12-01 08:28:29

推薦系統(tǒng)跨域多目標(biāo)建模

2018-09-06 18:37:45

百度云

2016-04-15 13:45:48

2016-10-13 15:19:34

百度

2012-05-28 22:51:53

百度

2015-09-22 10:36:30

百度媒體云人臉識別

2012-06-07 15:49:25

2015-04-20 09:53:45

Android百度智能手表

2013-07-01 16:36:26

百度云推送免費(fèi)云推送移動開發(fā)

2013-07-16 15:05:03

云推送極光推送

2013-08-30 16:39:07

百度侯震宇移動

2013-08-30 11:05:52

百度百度云

2015-06-16 11:51:17

百度云NoSQLAtlas
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號