作者 |泰來
隨著近年深度學(xué)習(xí)技術(shù)的發(fā)展,搜索算法復(fù)雜度不斷上升,算力供給需求出現(xiàn)了爆發(fā)式的增長(zhǎng)。伴隨著AI技術(shù)逐步走到深水區(qū),算法紅利在逐步消失,邊際效應(yīng)日益顯著,算力效能的提升尤為重要,同時(shí)隨著宏觀經(jīng)濟(jì)影響,大規(guī)模的算力需求供給也遭遇到了瓶頸。同時(shí)隨著流量、時(shí)間或系統(tǒng)故障時(shí)帶來的容量變化,總算力約束也在時(shí)刻改變,周期性的出現(xiàn)波峰、波谷,以及會(huì)因?yàn)榱髁客辉觥?a href="http://m.1cnz.cn/v/tag/1722/" target="_blank">網(wǎng)絡(luò)抖動(dòng)等原因?qū)е孪到y(tǒng)出現(xiàn)穩(wěn)定性問題。 在此背景下,需要一種更加智能化、個(gè)性化的算力調(diào)控分配方法,不斷提高系統(tǒng)的自適應(yīng)性,使得在給定資源上限的情況下,最大化資源投入的性價(jià),同時(shí)在故障時(shí)刻發(fā)生時(shí)自適應(yīng)的調(diào)整算力分配,降低系統(tǒng)負(fù)載。
01
問題與挑戰(zhàn)
互聯(lián)網(wǎng)行業(yè)十余年的蓬勃發(fā)展及硬件性能的持續(xù)攀升,使得 Ranking相關(guān)算法進(jìn)入到了深度學(xué)習(xí)時(shí)代,模型、技術(shù)創(chuàng)新層出不窮。但隨著技術(shù)逐步進(jìn)入到深水區(qū),在同樣的算力需求下對(duì)效果的增長(zhǎng)邊際已經(jīng)非常明顯。
同時(shí)伴隨當(dāng)前宏觀經(jīng)濟(jì)影響,大規(guī)模算力的需求供給也持續(xù)遭遇瓶頸,如何在有限的算力資源內(nèi)不斷創(chuàng)造出更大的效果價(jià)值是一項(xiàng)非常有挑戰(zhàn)性的工作。
為此我們不斷探索根據(jù)流量?jī)r(jià)值及系統(tǒng)狀態(tài)自適應(yīng)的進(jìn)行算力分配,使得總體投入產(chǎn)出比不斷提升。
GEEK TALK
02
整體思路
目前搜索系統(tǒng)流轉(zhuǎn)過程中調(diào)控手段彼此相互之間是獨(dú)立的,調(diào)控的算子的輸入輸出沒有全局視角,調(diào)控算子彼此割裂、聯(lián)動(dòng)和管理是比較困難的,且調(diào)控手段大多基于靜態(tài)閾值配置。但我們認(rèn)為系統(tǒng)中請(qǐng)求經(jīng)過每層的調(diào)控算子是有狀態(tài)的,理想的級(jí)聯(lián)系統(tǒng)中每種調(diào)控算子應(yīng)該是全局可見的,需要從全局的視角更好的審視業(yè)務(wù)系統(tǒng),站在更高的維度去看算力調(diào)控分配這項(xiàng)工作。
我們?cè)谖⒂^和宏觀兩方案開展了相關(guān)調(diào)控工作:
1.微觀:忽略系統(tǒng)容量狀態(tài),在當(dāng)前時(shí)刻下根據(jù)流量產(chǎn)生的價(jià)值來動(dòng)態(tài)的分配算力,使得在給定算力總約束下獲得全局最優(yōu)。
2.宏觀:隨著流量、時(shí)間或系統(tǒng)故障時(shí)帶來的容量變化,總算力約束在不斷改變,需要在給定的資源及響應(yīng)時(shí)間限制下,計(jì)算出在當(dāng)前限制條件下的最優(yōu)分配方式。動(dòng)態(tài)的調(diào)整系統(tǒng)核心階段的計(jì)算強(qiáng)度,合理調(diào)控峰值算力。并基于搜索系統(tǒng)的實(shí)時(shí)狀態(tài)反饋,自動(dòng)的調(diào)節(jié)系統(tǒng)的安全狀態(tài)。使搜索系統(tǒng)能夠在速度、資源、效果、穩(wěn)定性等多個(gè)維度上進(jìn)行自適應(yīng)的調(diào)控。
2.1問題建模
變量說明:
第i條流量。
流量i在階段j的具體信息,例如隊(duì)列長(zhǎng)度,模型選型等,可以用表示,其中的alpha beta gamma都可以根據(jù)經(jīng)驗(yàn)進(jìn)行設(shè)定并用實(shí)驗(yàn)來驗(yàn)證。
流量在第j階段的折扣因子。
第i條流量的價(jià)值
。
目標(biāo):通過調(diào)控流量在各個(gè)階段的信息例如隊(duì)列長(zhǎng)度、模型選型等,從而調(diào)節(jié)折扣因子,最終實(shí)現(xiàn)流量?jī)r(jià)值最大化,假設(shè)M條流量經(jīng)過N個(gè)階段表達(dá)如下:
C1 成本約束,對(duì)于任意一個(gè)階段,都必須小于等于其成本;
C2 時(shí)間約束,對(duì)于任意一個(gè)請(qǐng)求流量,在N個(gè)階段的耗時(shí)綜合都必須小于等于規(guī)定的耗時(shí);
C3 輔助約束,對(duì)于任意一個(gè)請(qǐng)求任意一個(gè)階段都必須有大于等于0的值。
對(duì)于一個(gè)實(shí)時(shí)的搜索系統(tǒng)來說,在線進(jìn)行上述的優(yōu)化并不太實(shí)際也會(huì)帶來比較多的困難。為了簡(jiǎn)化分析和提高系統(tǒng)的魯棒性,我們將上述N個(gè)階段拆封成N個(gè)子問題,這樣方便對(duì)各個(gè)階段進(jìn)行監(jiān)控和可靠的干預(yù),提高系統(tǒng)的魯棒性,例如當(dāng)系統(tǒng)出現(xiàn)巨大的變化時(shí),可以隨時(shí)動(dòng)態(tài)調(diào)整各個(gè)階段的參數(shù)。簡(jiǎn)化問題求解,將C1、C2約束進(jìn)行一定的拆分。
具體來說,對(duì)于階段j,流量的價(jià)值最大化,我們可以看作是上述的一個(gè)子問題。
假設(shè)是單調(diào)遞增的,但其對(duì)的導(dǎo)數(shù)是單調(diào)遞減的,也就是其價(jià)值會(huì)隨著配置資源的增加而越來越緩慢的增加。
2.2 示例說明
示例:用相關(guān)性精排階段的彈性候選集進(jìn)行舉例
假設(shè)將流量i細(xì)化成第i條Query,j階段則為具體篩選階段,增加一個(gè)維度k表示URL級(jí)別的參數(shù)和特征信息。在正排候選集篩選階段k信息表示為多個(gè)特征的分?jǐn)?shù)信息,authority_feature【權(quán)威性特征】、click_feature【點(diǎn)擊特征】...correlation_feature【相關(guān)性特征】。
則在正排候選集篩選階段請(qǐng)求i的第k條url的信息可以表示為:
流量i在彈性候選集下的折扣因子,可以看作是 1 - 刪掉URL數(shù)量在原本可出現(xiàn)在最終排序的Top40的概率,假如候選集合中完全沒有刪除的URL則無折扣損失,若是候選集合中刪除了URL,但對(duì)最終Top40的召回?zé)o影響,也可以看作是對(duì)總價(jià)值無折扣影響。
具體來說,針對(duì)第i條query的k條url的具體信息,我們采用多個(gè)維度的特征進(jìn)行考量。
其中
如果是0表示丟棄,1表示留下第k條url,希臘字母表示的是采取的閾值標(biāo)準(zhǔn),例如評(píng)分位于后x%。如果一個(gè)url的所有特征貢獻(xiàn)度排名都處于分布的末尾,則會(huì)將該url從候選集中剔除。
GEEK TALK
03
關(guān)鍵技術(shù)
過去傳統(tǒng)的調(diào)控方式下,既不知道上游階段做過哪些調(diào)控動(dòng)作,也不知道在自己的階段上做的調(diào)控動(dòng)作,下游是如何反饋的,只能追求自己的局部最優(yōu)。而我們認(rèn)為在搜索這種分層的級(jí)聯(lián)系統(tǒng)下,越往下流轉(zhuǎn)看到的特征和信號(hào)越多,調(diào)控動(dòng)作應(yīng)該隨著流轉(zhuǎn)過程發(fā)生狀態(tài)轉(zhuǎn)變,不應(yīng)該是靜態(tài)的。我們創(chuàng)新的采用彈性級(jí)聯(lián)調(diào)控框架將調(diào)控手段進(jìn)行組合,追求全局的最優(yōu)解,從全鏈路上提升算力投入產(chǎn)出的性價(jià)比。
具體做法,我們構(gòu)建的彈性級(jí)聯(lián)框架包含四個(gè)部分:
1、調(diào)控算子集合,將調(diào)控動(dòng)作按照Query級(jí)別、URL級(jí)別、Feature級(jí)別進(jìn)行劃分,調(diào)控算子擁有相同基類,接口規(guī)范統(tǒng)一;
2、計(jì)算中心,負(fù)責(zé)實(shí)時(shí)計(jì)算各種調(diào)控動(dòng)作所需的各類信號(hào)、以及流量?jī)r(jià)值的判斷、容量信號(hào)的獲取等;
3、參數(shù)集合,經(jīng)過計(jì)算中心產(chǎn)出的特征和信號(hào),固化超參數(shù),使得模塊內(nèi)超參數(shù)全局可見,跨模塊之間按照規(guī)定協(xié)議統(tǒng)一進(jìn)行交互;
4、調(diào)控決策器,主要負(fù)責(zé)根據(jù)參數(shù)集合,確定各個(gè)階段的調(diào)控檔位設(shè)置并調(diào)用算子集合里的算子進(jìn)行執(zhí)行,每個(gè)調(diào)控階段包含控制流(Control Level)和反饋流(FeedbackLevel),控制流能結(jié)合當(dāng)前階段看到的特征和信號(hào)給出它下游其他階段的調(diào)控檔位,反饋流是當(dāng)前階段參考其他階段給出的調(diào)控檔位建議和當(dāng)前階段看到的特征和信號(hào)確定實(shí)際執(zhí)行的調(diào)控檔位。通過這種方式,每個(gè)調(diào)控階段既能看到到其他階段實(shí)際執(zhí)行的調(diào)控狀態(tài),同時(shí)也能根據(jù)它們對(duì)當(dāng)前階段的指導(dǎo)建議進(jìn)行綜合判斷,最終在全鏈路上獲取全局最優(yōu)解。
如上圖左側(cè)可以看到整個(gè)彈性級(jí)聯(lián)框架的組成部分,右側(cè)是舉例正排階段的彈性候選集的實(shí)際計(jì)算過程,將各種維度的特征通過計(jì)算中心生成價(jià)值參數(shù),用于調(diào)控決策器進(jìn)行決策,然后給出實(shí)際的正排計(jì)算集合。我們不僅建立控制反饋流級(jí)聯(lián)自適應(yīng)調(diào)控系統(tǒng),而且還提供了一個(gè)全局視角的彈性算力分配控制中心。彈性算力系統(tǒng)主要通過對(duì)集群各種維度指標(biāo)的獲取、策略分析及周期性執(zhí)行最適合當(dāng)前機(jī)器負(fù)載狀態(tài)的策略組合參數(shù)來實(shí)現(xiàn)其核心彈性算力分配決策。
根據(jù)當(dāng)前搜索系統(tǒng),當(dāng)前智能彈性調(diào)參把系統(tǒng)定義和描述為下面4種狀態(tài):系統(tǒng)異常狀態(tài),負(fù)載峰值狀態(tài),彈性過渡狀態(tài),負(fù)載低谷狀態(tài),根據(jù)不同的系統(tǒng)狀態(tài),執(zhí)行當(dāng)前狀態(tài)的策略集合,從而使資源使用率及業(yè)務(wù)收益效果最優(yōu)。具體方案見下圖:
主要包含流程如下:
信息采集:自動(dòng)化的周期性采集業(yè)務(wù)日志(流量pv,流量分類,流量質(zhì)量)和機(jī)器狀態(tài)(CPU/MEM使用率)等信息。對(duì)于這些信息進(jìn)行深入挖掘分析,主要從以下幾個(gè)時(shí)間維度進(jìn)行采集:
1、峰值時(shí)間段模塊狀態(tài)信號(hào);
2、前n個(gè)采集周期模塊狀態(tài)信號(hào);
3、前一天同時(shí)刻前n個(gè)采集周期模塊狀態(tài)信號(hào);
4、前一周同時(shí)刻前n個(gè)采集周期模塊狀態(tài)信號(hào)。
系統(tǒng)狀態(tài)預(yù)估:對(duì)各種維度信息采集,之后通過人工規(guī)則,在線策略,離線預(yù)估等手段評(píng)估系統(tǒng)當(dāng)前狀態(tài),把目前系統(tǒng)劃分為系統(tǒng)異常狀態(tài),系統(tǒng)負(fù)載峰值狀態(tài),系統(tǒng)負(fù)載低谷狀態(tài),系統(tǒng)負(fù)載過渡狀態(tài)。下面是系統(tǒng)狀態(tài)定義規(guī)則,及狀態(tài)轉(zhuǎn)移圖:
系統(tǒng)異常狀態(tài):系統(tǒng)發(fā)生故障,例如系統(tǒng)可用性SLA,CPU負(fù)載率,結(jié)果空值率等不符合預(yù)期。
系統(tǒng)負(fù)載峰值狀態(tài):系統(tǒng)請(qǐng)求數(shù),CPU負(fù)載率等系統(tǒng)容量指標(biāo)大于指定閾值。
系統(tǒng)負(fù)載低谷狀態(tài):系統(tǒng)請(qǐng)求數(shù),CPU負(fù)載率等系統(tǒng)容量指標(biāo)小于指定閾值。
系統(tǒng)負(fù)載過渡狀態(tài):負(fù)載峰值和低谷之間的過渡狀態(tài)。
檔位判斷:根據(jù)系統(tǒng)狀態(tài)抽象成便于系統(tǒng)決策的系統(tǒng)檔位,及每個(gè)檔位內(nèi)需要關(guān)注的系統(tǒng)問題。
1、異常檔位:如何快速服務(wù)降級(jí),保證保證系統(tǒng)質(zhì)量。
2、峰值檔位:需要關(guān)注系統(tǒng)的穩(wěn)定性和響應(yīng)時(shí)間,以確保系統(tǒng)在高負(fù)載下依然能夠穩(wěn)定運(yùn)行。
3、低谷檔位:可以考慮優(yōu)化系統(tǒng)資源的分配,提升資源的投入產(chǎn)出比。在探測(cè)到系統(tǒng)出現(xiàn)異常故障狀態(tài)時(shí)。
4、過渡檔位:一種中間狀態(tài),它的主要作用是在系統(tǒng)從低負(fù)載狀態(tài)過渡到高負(fù)載狀態(tài),或從高負(fù)載狀態(tài)過渡到低負(fù)載狀態(tài)時(shí),提供一個(gè)緩沖階段,以避免系統(tǒng)狀態(tài)的突然跳變。過渡檔位不進(jìn)行策略的調(diào)整,而是保持系統(tǒng)在一個(gè)相對(duì)穩(wěn)定的狀態(tài)。這樣做的目的是為了避免頻繁的策略調(diào)整帶來的系統(tǒng)震動(dòng),保證系統(tǒng)的穩(wěn)定性。
方案決策執(zhí)行:
降級(jí)檔位主要應(yīng)對(duì)系統(tǒng)異常或重大風(fēng)險(xiǎn),其對(duì)應(yīng)的策略包括關(guān)閉被動(dòng)觸發(fā)流量,以及降低召回集合,降低復(fù)雜模型計(jì)算等策,通過這種方式降低系統(tǒng)的負(fù)載,保證核心業(yè)務(wù)的正常運(yùn)行。低谷檔位對(duì)應(yīng)的是彈性策略集,這些策略主要目的是在低谷期加強(qiáng)復(fù)雜策略的計(jì)算,提升搜索效果。而在峰值檔位,我們主要采用削峰策略,包括減少被動(dòng)觸發(fā)流量,以確保系統(tǒng)在高負(fù)載下依然能夠穩(wěn)定運(yùn)行。
示例:視頻搜索彈性擴(kuò)觸發(fā):
在系統(tǒng)資源容量低谷階段,根據(jù)指標(biāo)采集數(shù)據(jù)計(jì)算當(dāng)前系統(tǒng)容量資源冗余情況,基于冗余資源進(jìn)行擴(kuò)觸發(fā)比例計(jì)算,通過彈性算力決策模塊下發(fā)觸發(fā)信號(hào),利用閑時(shí)資源擴(kuò)大流量的觸發(fā)面。
GEEK TALK
04
總結(jié)與展望
通過基于彈性級(jí)聯(lián)框架的調(diào)控方式,提升了分層系統(tǒng)的效益比,對(duì)于每個(gè)用戶請(qǐng)求實(shí)施精細(xì)化、差異化的調(diào)控組合,在算力效能提升上取得了不錯(cuò)的成績(jī)。
算力分配是架構(gòu)研究的核心問題之一,未來會(huì)在以下兩個(gè)方面持續(xù)開展系統(tǒng)性工作:
1、結(jié)合AI大模型的推理能力在調(diào)控組合上可以做到更加精細(xì)化,在算力效能的提升上會(huì)帶來更大的挖掘空間; 2、通過自適應(yīng)的宏觀調(diào)控給系統(tǒng)穩(wěn)定性帶來了柔性降級(jí)能力,后續(xù)會(huì)在這個(gè)方向上持續(xù)深耕,不斷提升系統(tǒng)自動(dòng)化的處置能力。
編輯:黃飛
-
cpu
+關(guān)注
關(guān)注
68文章
10901瀏覽量
212714 -
gpu
+關(guān)注
關(guān)注
28文章
4768瀏覽量
129236 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5512瀏覽量
121428 -
算力
+關(guān)注
關(guān)注
1文章
1012瀏覽量
14914
原文標(biāo)題:百度搜索智能化算力調(diào)控分配方法
文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論