:如今計算機系統(tǒng)承載的服務和算法邏輯日益復雜,理解、設計并改進計算機系統(tǒng)已成為核心挑戰(zhàn)。面對系統(tǒng)復雜度和規(guī)模的指數(shù)級增長,以及新的大模型驅(qū)動場景下的分布式系統(tǒng)形態(tài)的涌現(xiàn),人們亟需創(chuàng)新方法與技術來應對。在計算機系統(tǒng)發(fā)展的新篇章里,現(xiàn)代系統(tǒng)應當是一個不斷自我進化的結果。機器學習和大模型的崛起使得現(xiàn)代計算機系統(tǒng)迎來了新的智能化機遇,即學習增強系統(tǒng)(learning-augmented systems)。微軟亞洲研究院創(chuàng)新地從兩個核心方向,來思考系統(tǒng)應如何不斷自我學習和自我進化:“模塊化”機器學習模型,與“系統(tǒng)化”大模型的推理思維。目標在于使得模型能夠?qū)R復雜多變的系統(tǒng)環(huán)境和需求,并且推理思維能夠?qū)R計算機系統(tǒng)時間和空間上的行為。相關論文 Autothrottle: A Practical Bi-Level Approach to Resource Management for SLO-Targeted Microservices 獲評 NSDI 2024 杰出論文獎。
隨著技術的不斷進步,計算機系統(tǒng)不僅承擔著人們生活中眾多服務的重任,還包含著許多復雜的算法邏輯。用戶需求的多樣化與場景的增加,也使得計算機系統(tǒng)的復雜性和規(guī)模持續(xù)增長。從搜索、購物、聊天到新聞推薦、串流媒體和人工智能服務,這些系統(tǒng)的復雜性不只是龐大的代碼量,更體現(xiàn)在背后成百上千工程師在設計、開發(fā)及維護上所付出的巨大工作量。與此同時,新類型的場景(比如大模型驅(qū)動?co-pilots?和?AI agents)也帶來了新興的分布式系統(tǒng)形態(tài)。如何理解、設計并作出改進成為了現(xiàn)代計算機系統(tǒng)的核心挑戰(zhàn)。然而,系統(tǒng)復雜度和規(guī)模的指數(shù)級增長,使得這些挑戰(zhàn)已經(jīng)無法完全依賴人的直覺和經(jīng)驗去解決。
幸運的是,計算機科學的技術更新迭代為計算機系統(tǒng)帶來了新的機遇。其中,學習增強系統(tǒng)(learning-augmented systems)正逐漸成為以智能化來重塑計算機系統(tǒng)的新趨勢。學習增強系統(tǒng)通常采用三種不同的實現(xiàn)路徑:一是通過機器學習技術來輔助增強現(xiàn)有計算機系統(tǒng)中啟發(fā)式算法和決策規(guī)則的性能;二是利用機器學習技術對啟發(fā)式算法和決策規(guī)則進行優(yōu)化和重新設計;三是用機器學習模型取代原有的啟發(fā)式算法和決策規(guī)則,進而推動系統(tǒng)的全面智能化升級。
為此,微軟亞洲研究院的研究員們開展了一系列學習增強系統(tǒng)的工作。研究重點聚焦于兩個關鍵方面:第一,"模塊化"機器學習模型,與計算機系統(tǒng)行為進行對齊;第二,"系統(tǒng)化"大模型推理思維,賦予計算機系統(tǒng)自我進化的能力。
"模塊化"機器學習模型,與計算機系統(tǒng)行為對齊
機器學習擅長于從數(shù)據(jù)中提取規(guī)律和模式,并利用這些規(guī)律進行建模和數(shù)值優(yōu)化,以驅(qū)動預測和決策過程。現(xiàn)代計算機系統(tǒng)普遍具有完善的行為和性能監(jiān)測機制,因此可以作為模型訓練的數(shù)據(jù)來源。在以往的研究中(Metis [1]和 AutoSys [2]),研究員們曾探討過如何利用機器學習技術優(yōu)化計算機系統(tǒng)中的系統(tǒng)參數(shù)。但實際經(jīng)驗證明,構建學習增強系統(tǒng)不單單是應用現(xiàn)有的機器學習算法,它還面臨著現(xiàn)代計算機系統(tǒng)與機器學習協(xié)同設計的關鍵研究挑戰(zhàn)。
具體而言,由于現(xiàn)代計算機系統(tǒng)具有高度的規(guī)模性(例如,有著上百個分布式微服務的集群)和動態(tài)性(例如,集群里的微服務可以被獨立開發(fā)、部署和擴容),在未來,利用強大的模型來學習整個系統(tǒng)是否還能成為一個可持續(xù)的方法?當系統(tǒng)部署與環(huán)境發(fā)生變化(例如,系統(tǒng)擴容導致集群規(guī)模改變),機器學習模型對于任務之前的一些假設可能不再成立。因此,如果不重新訓練模型,模型驅(qū)動決策的正確性就會受到影響。但現(xiàn)代計算機系統(tǒng)的高動態(tài)性和高復雜度,又會使得機器學習在持續(xù)學習復雜任務上仍面臨著昂貴的數(shù)據(jù)采集和資源開銷成本。
"模塊化"是將機器學習融入計算機系統(tǒng)基礎的一大關鍵。雖然現(xiàn)代計算機系統(tǒng)具有高度的規(guī)模性和復雜度,但它們實際上是由多個子組件或服務組合而成,其動態(tài)性也就有規(guī)律可循。以一個由多個微服務組成的云系統(tǒng)為例,如果更新了其中的一個微服務,那么可能會影響到整個系統(tǒng)的端到端性能。但是,從系統(tǒng)架構上來看,這種更新只是更改了某個獨立服務的編碼配置。同理,系統(tǒng)的擴容,即系統(tǒng)里的某個服務被獨立復制并部署了多份,也是如此。因此,如果機器學習模型也只需要相應地修改變化部分,那相比于持續(xù)訓練整個模型,就將大大地減少學習增強系統(tǒng)的維護成本。
研究員們提出的利用模塊化學習模擬端到端系統(tǒng)延遲的框架 Fluxion [3],是在學習增強系統(tǒng)中應用模塊化學習(modularized learning)的第一步。在預測微服務系統(tǒng)延遲的任務上,隨著個別服務的持續(xù)擴容和部署,F(xiàn)luxion 顯著減低了延遲預測模型的維護成本。通過引入新的學習抽象,F(xiàn)luxion 允許對單個系統(tǒng)子組件進行獨立建模,并且通過操作可將多個子組件的模型組合成一個推理圖。推理圖的輸出即為系統(tǒng)的端到端延遲。此外,推理圖可以動態(tài)地被調(diào)整,進而與計算機系統(tǒng)的實際部署進行對齊。這一做法與直接對整個系統(tǒng)進行端到端延遲建模的方法有顯著區(qū)別。相關論文 On Modular Learning of Distributed Systems for Predicting End-to-End Latency 發(fā)表于?NSDI 2023。