百度搜尋智慧化算力調控分配方法
GEEK TALK
01
問題與挑戰
網際網路行業十餘年的蓬勃發展及硬體效能的持續攀升,使得 Ranking相關演算法進入到了深度學習時代,模型、技術創新層出不窮。但隨著技術逐步進入到深水區,在同樣的算力需求下對效果的增長邊際已經非常明顯。
同時伴隨當前宏觀經濟影響,大規模算力的需求供給也持續遭遇瓶頸,如何在有限的算力資源內不斷創造出更大的效果價值是一項非常有挑戰性的工作。
為此我們不斷探索根據流量價值及系統狀態自適應的進行算力分配,使得總體投入產出比不斷提升。
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
總結與展望
透過基於彈性級聯框架的調控方式,提升了分層系統的效益比,對於每個使用者請求實施精細化、差異化的調控組合,在算力效能提升上取得了不錯的成績。
算力分配是架構研究的核心問題之一,未來會在以下兩個方面持續開展系統性工作:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027828/viewspace-2995601/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 百度搜尋下拉詞優化有哪些方法的效果比較好?優化
- 百度搜尋萬億規模特徵計算系統實踐特徵
- windows10系統將小娜搜尋的方式換成百度搜尋的方法Windows
- 2021年全球智慧駕駛產業鏈巡:從馬力到算力,All In智慧化時刻來臨產業
- 百度搜尋深度學習模型業務及最佳化實踐深度學習模型
- 記憶體壓力及IO壓力調整方法記憶體
- 如何看待百度搜尋支援全站https?HTTP
- 百度搜尋:藍易雲【SpringBoot—jasypt加解密庫的使用方法。】Spring Boot解密
- 人工智慧算力出租,如何合理定價?人工智慧
- 實現站內百度搜尋跳轉效果
- 人工智慧三駕馬車:演算法,算力,算據人工智慧演算法
- 百度搜尋驚雷演算法3.0DSQ演算法
- 百度搜尋內容HTAP表格儲存系統
- 百度搜尋結果右側模組修改小技巧
- [計算化學]分子動力學筆記筆記
- 探尋多機任務分配機制
- Oracle記憶體分配與調整Oracle記憶體
- 百度搜尋 “Java面試題” 前200頁(面試必看)Java面試題
- 手機百度搜尋歷史記錄刪除教程
- 百度搜尋:藍易雲【Dockerfile 部署 Java 服務教程。】DockerJava
- 顯示卡鎖算力和不鎖算力的區別 顯示卡鎖算力和不鎖算力的哪個好
- 不明惡意攻擊致<搜狗搜尋><搜尋結果>跳轉<百度搜尋>技術原理分析
- 搜尋引擎優化內容及方法優化
- 合同審查自動化-智慧化尋找合同問題
- AI依賴算力,而算力依賴能源AI
- IBM收購紅帽交易完成 尋求發力雲端計算業務IBM
- 人工智慧導論——智慧計算(進化演算法+群智慧優化)人工智慧演算法優化
- 網站被百度搜尋攔截 解封處理方案分享網站
- win10系統百度搜尋刪不掉如何解決Win10
- jsonp跨域獲取資料實現百度搜尋JSON跨域
- 在網頁中加入百度搜尋框例項程式碼網頁
- 百度搜尋:藍易雲【GaussDB整體效能慢分析教程。】
- 百度搜尋:藍易雲【SSH遠端直連Docker容器教程。】Docker
- 美團外賣廣告智慧算力的探索與實踐(二)
- 智慧時代,企業需要怎樣的計算力支撐?
- 智慧能源一體化管控平臺
- Ambi Climate智慧空調遙控器 它知道幾度更合適
- 達觀NLP文字理解技術賦能企業輿情風控,推進盡調業務智慧化