近年來,大數據加大模型成為了 AI 領域建模的標準範式。在廣告場景,大模型由於使用了更多的模型參數,利用更多的訓練數據,模型具備了更強的記憶能力和泛化能力,為廣告效果向上提升打開了更大的空間。但是大模型在訓練過程中所需要的資源也是成倍的成長,儲存以及運算上的壓力對機器學習平台都是巨大的挑戰。
騰訊太極機器學習平台持續探索降本增效方案,在廣告離線訓練場景利用混合部署資源大大降低了資源成本,每天為騰訊廣告提供 50W 核心廉價混合部署資源,幫助騰訊廣告離線模型訓練資源成本降低 30%,同時透過一系列最佳化手段使得混部資源穩定度和正常資源持平。
近年來, 隨著大模型在NLP 領域橫掃各種大數據磅單取得巨大成功之後,大數據加大模型成為了AI 領域建模的標準範式。搜尋、廣告、推薦的建模也不例外,動輒千億參數,上 T 大小的模型成為各大預估場景的標配,大模型能力也成為各大科技公司軍備競賽的焦點。
在廣告場景,大模型由於使用了更多的模型參數,利用更多的訓練數據,模型具備了更強的記憶能力和泛化能力,為廣告效果向上提升打開了更大的空間。但是大模型在訓練過程中所需要的資源也是成倍的成長,儲存以及運算上的壓力對機器學習平台都是巨大的挑戰。同時平台能夠支撐的試驗數量直接影響演算法迭代效率,如何用更小的成本,提供更多的試驗資源,是平台努力的重點方向。
騰訊太極機器學習平台持續探索降本增效方案,在廣告離線訓練場景利用混合部署資源大大降低了資源成本,每天為騰訊廣告提供50W 核心廉價混合部署資源,幫助騰訊廣告離線模型訓練資源成本降低30%,同時透過一系列最佳化手段使得混部資源穩定性和正常資源持平。
太極機器學習平台,致力於讓使用者更聚焦業務AI問題解決與應用,一站式的解決演算法工程師在AI 應用過程中特徵處理,模型訓練,模型服務等工程問題。目前支援公司內廣告,搜索,遊戲,騰訊會議,騰訊雲等重點業務。
太極廣告平台是太極為廣告系統設計的集模型訓練和線上推理的高效能機器學習平台,平台具備萬億參數模型的訓練和推理能力。目前該平台支援騰訊廣告召回,粗排,精排數十個模型訓練和線上推理;同時太極平台提供一站式特徵註冊,樣本補錄,模型訓練,模型評估以及上線試驗的能力,極大提升了開發者效率。
隨著太極平台的不斷發展,任務數和任務類型日益增多,資源需求也隨之增多。為了降本增效,太極平台一方面提昇平台效能,提升訓練速度;另一方面,我們也尋找更廉價的資源,以滿足不斷成長的資源需求。
峰巒-騰訊公司內部雲端原生大數據平台,利用雲端原生技術,升級公司整個大數據架構。為滿足大數據業務持續成長的資源需求,峰巒引入混部資源,在滿足資源需求的同時,可大幅降低資源成本。峰巒針對不同場景下的混部資源,提供了一系列的解決方案,把不穩定的混部資源變成對業務透明的穩定資源。峰巒混部能力支援3類混部資源:
同時,峰巒引入雲原生虛擬叢集技術,屏蔽底層混部資源來自不同的城市和地理所導致的分散性特性。太極平台直接對接峰巒租戶集群,該租戶集群對應底層多種混部資源,且租戶集群擁有獨立且完整的集群視角,太極平台也可無縫對接。
峰巒自研了Caelus 全場景在離線混部方案,透過將線上作業和離線作業混部的方式,充分挖掘線上機器的空閒資源,提升線上機器資源利用率,同時降低離線作業的資源成本。
如下圖所示,是 Caelus 的基本架構,各個元件和模組相互配合,從多方面保證了混部的品質。
首先,Caelus 全方位保證了線上作業的服務質量,這也是混部的重要前提之一,例如:透過快速的干擾檢測與處理機制,主動感知線上服務質量,及時進行處理,並且支援插件化的擴展方式支援業務的特定乾擾檢測需求;透過全維度的資源隔離、靈活的資源管理策略等,保證線上服務的高優先級。
其次,Caelus 從多方面保證了離線作業的SLO,例如:透過混部資源與離線作業畫像,為作業匹配合適的資源,避免資源競爭;優化離線作業驅逐策略,優先排序驅逐,支援優雅退出,策略靈活可控。與大數據離線作業大多是短作業(分鐘級甚至秒級)的特徵不同的是,太極作業的運行時間大多較長(小時級甚至天級)。透過長週期的資源預測與作業畫像更好地指導調度,為不同運行時長、不同資源需求的作業找到合適的資源,避免作業運行幾小時甚至幾天后被驅逐,導致作業狀態丟失,浪費資源與時間。當出現需要驅逐離線作業的情況時,會優先通過運行時熱遷移,將作業實例從一個機器遷移到另一個機器,並且保持內存狀態和IP等不變,作業幾乎無影響,極大地提升了作業的SLO。為了更好地把混部資源利用好,Caelus 還具備其他更多的能力,詳見Caelus 全場景在離線混部方案( https://www.php.cn/link/caaeb10544b465034f389991efc90877)。
大資料任務一般是白天任務量相對少,晚上任務量多,峰巒把白天部分空閒的大數據資源出讓給太極平台,夜間再回收這部分資源,我們把這種資源稱為潮汐資源。潮汐資源的特徵是節點上的大數據任務幾乎是完全退出的,但節點上還保留著大數據的儲存服務 HDFS,運行太極作業時不能影響到 HDFS 服務。太極平台使用潮汐資源時需要和峰巒平台協商一致,峰巒平台在固定時間點提前根據歷史數據篩選一批節點,待大數據任務優雅退出後,通知太極平台有新的節點加入,太極平台開始在峰巒租戶集群提交更多的任務。借用時間到達前,峰巒通知太極平台部分節點要回收,太極平台有序歸還節點。
如下圖所示,潮汐資源的挖掘、管理和使用涉及多個系統的分工配合:
#算力資源的特徵是給業務呈現的是一個獨佔的CVM,對業務方使用來說比較友善。然而,使用算力資源的挑戰在於雲母機層面低優CVM 的CPU 資源會隨時被線上CVM 壓制,導致算力資源非常不穩定:
為了解決算力資源的不穩定性問題,透過峰巒主控層擴展各項能力,從多面向對算力資源優化,提升算力穩定性:
#① 資源畫像與預測:探索與蒐集各種機器效能指標,生成聚合指標,預測低優CVM 未來一段時間的可用資源狀況,這些資訊用於調度器調度pod 和驅逐元件驅逐pod,滿足pod 的資源需求。
② 調度最佳化:為保證太極作業的服務質量,針對作業的需求和資源的特點,在調度策略上有較多的最佳化,將作業效能提升了2 倍以上。
#③ 運行時服務品質保證
④ 自回饋優化:透過資源畫像,週期性的替換掉性能差的機器,並且與底層平台打通,實現對CVM 的平滑抽離,讓峰巒有機會以對業務無影響的方式逐一遷移應用實例,降低對實例的影響。
⑤ 提升Flink 層的容災能力,支援單點重啟和層級式調度
TM(Task Manager)單點重啟能力避免Task 失敗導致整個DAG 失敗,可以更好適配算力搶佔式特性;分層調度避免gang scheduling 造成過長的作業等待,並且可以避免TM Pod 過度申請的浪費。
離線訓練任務要使用廉價資源一個大前提就是不能影響資源上原有任務的正常運行,所以混部資源有以下幾個關鍵挑戰:
為了確保在混部資源上任務可以穩定運行,平台使用三級容錯策略,具體解決方案如下:
透過業務層的容錯,運作在混部資源上的任務穩定性從最初的不到90% 提升到最終的99.5%,基本和普通獨佔資源上任務穩定性持平。
針對潮汐資源要求離線訓練任務只能在白天使用,晚上需要提供給線上業務使用,所以太極平台需要在白天時依資源到位狀況,自動啟動訓練任務;在晚上對任務做冷備,同時停止對應的訓練任務。同時透過任務管理佇列來管理每個任務排程的優先級,對於晚上新啟動的任務會自動進入排隊狀態,等到隔天早上再啟動新的任務。
透過這些優化能夠保證任務能穩定在潮汐資源上運行,對於業務層基本上是無感知。同時任務的運作速度不會受太大影響,由於任務啟動停止調度所帶來的額外開銷控制在 10% 以內。
太極在離線混佈最佳化方案在騰訊廣告場景落地,每天為騰訊廣告離線模型研究訓練提供30W 核全天候的混合部署資源,20W 核子潮汐資源,支援廣告召回,粗排,精排多場景模型訓練。在資源成本上,相同運算量任務上,混合部署資源成本是普通資源的 70%。經過優化系統穩定性和實體集群任務成功率基本持平。
後續一方面我們會繼續加大混合算力資源的使用,尤其會加大混合算力資源的應用;另一方面,公司在線業務在GPU 化,所以在混合資源應用上,除了傳統的CPU 資源之外,也會嘗試對線上GPU 資源在離線訓練時使用。
今天的分享就到這裡,謝謝大家。
以上是騰訊廣告模型基於'太極'的訓練成本優化實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!