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