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