從能力到效率,多管齊下提升大模型智慧體系統的智慧“密度”

(本文閱讀時間:18分鐘)
編者按:大模型的快速發展催生了智慧體系統(agentic system),為人類打開了語義處理的大門,徹底改變了人類與計算機的互動方式。而以大模型為關鍵元件的智慧體系統,集成了傳統程式語言編寫的原始碼,使相關研究變得複雜且充滿新的挑戰。近年來,微軟亞洲研究院首席研發經理楊玉慶及其團隊致力於大模型智慧體系統的研究與最佳化。在本文中,楊玉慶將分享他對提升大模型智慧體系統效率和效能的關鍵方向的見解,以及對其未來廣泛應用的展望。
大模型的快速發展,驅動了全新軟體系統——智慧體系統的誕生。由於其混合架構所帶來的高度互聯與動態的特性,我們需要關注智慧體系統的整體設計與執行,從不同方向提升效率、可靠性和適應性,充分釋放智慧體系統的巨大潛力。”
——楊玉慶
微軟亞洲研究院首席研發經理
大模型的發展已成為推動軟體形態鉅變的關鍵因素之一,它正在催生一種全新的軟體形態,即目前我們所理解的智慧體(AI agent)或智慧體系統(agentic system)。
不難想象,智慧體系統將會是大模型應用的普遍形式。它的效能表現和使用成本,對於大模型所能惠及的範圍具有決定性作用。因此,我們嘗試以這樣一種思路來最佳化智慧體系統:將其視為一個“資料加工”流程,並嘗試在不同環節為工作量做減法。換言之,我們在設法提升單位算力的智慧輸出,增加系統的智慧“密度”
從大模型快速發展中誕生的智慧體系統
人工智慧領域的突破性進展,尤其是大模型的出現,被認為“與微處理器、個人電腦、網際網路和手機的發明同等重要”。隨著各種大模型的湧現,我們見證了由大模型驅動的創新性軟體系統的誕生。與傳統軟體相比,這類系統有兩個顛覆性特點:
首先,大模型及其驅動的新型軟體系統,使可處理的資料體量呈爆炸式增長。傳統程式語言和工具只能在語法層面處理資料,操作的是原始的位元和位元組,無法理解資料中所包含的內容或意義。大規模基礎模型改變了這一傳統正規化,能夠理解和生成人類語言,解釋影像含義,甚至實現跨模態的資訊連線。這種處理和推理語義資訊的能力,極大地改變了我們與數字系統的互動方式和任務型別。
其次,大模型及其催生的軟體系統讓使用者能夠直接指定任務,無需像以前那樣逐步說明如何完成任務。這降低了使用者的專業能力門檻。使用者只需清楚定義任務結果即可,至於如何完成則交由系統進行處理。
大模型的這些特點來自於兩個關鍵能力:一是“推理與規劃能力”,讓大模型能夠對複雜任務進行推理,將其分解為可執行的步驟,並規劃行動順序,進一步體現大模型在呼叫工具和與環境互動時的能力;二是“世界知識”,即透過訓練吸收海量資料,覆蓋廣泛的人類知識。這兩種能力的結合,促使大模型在協助人類方面實現了重大突破。
我們將這種新型的軟體系統稱為“智慧體系統”,這一定義可以泛指所有涉及大模型的軟體系統。智慧體系統的核心特徵在於“混合架構”——結合了傳統程式語言編寫的原始碼和為大模型量身定製的指令(即“提示詞”,prompts)。這種混合架構賦予了智慧體系統從簡單自動化到複雜問題解決的廣泛適用性,成為軟體領域的重要創新方向。
三個方向提升智慧體系統的效率
在智慧體系統的混合架構中,大模型作為核心組成部分,處於更大的生態系統中,與其他程式、環境,甚至其他模型請求緊密相聯。通常,它會嵌入到一個複雜的工作流中,與傳統軟體元件互動,或與周圍環境進行通訊。智慧體系統有時還可能涉及多個模型的協作,形成動態且相互依賴的系統。
正是由於這種高度互聯且動態的特性,若想充分釋放智慧體系統的潛力,我們需要關注其整體設計與執行,而非僅僅是大模型本身,進而使整個系統能夠以更高效率、更強可靠性和更好適應性完成複雜的現實任務。
圖1:大語言模型的記憶層級
基於這樣的認識,我們從智慧體系統的“資料加工”流程入手,根據資料流動和相互關係,從三個方向探索了提升效率、可靠性和適應性的方法。
首先,研究面向大語言模型的程式設計,即如何高效組織和最佳化大模型的輸入,使其能夠準確實現開發者的意圖。我們特別關注外部資料的動態注入以及長上下文處理能力的提升,以增強模型的推理深度,提高計算效率。其次,探索如何驗證大模型的輸出。我們提出了語義驗證這一關鍵概念,並且已經在資料科學領域構建了一套系統化的驗證框架。目前,我們正在將驗證從離線擴充套件到執行時,並進一步研究如何讓模型從驗證結果中學習,形成閉環最佳化機制。最後,構建智慧體系統原生的服務系統。我們將整個智慧體系統視作最優級的核心架構進行設計,透過端到端的任務編排和最佳化框架,全面提升系統的效能和資源利用效率。
面向大語言模型的程式設計(Programming with LLMs)
大語言模型的響應質量很大程度上取決於其接收的輸入,即“提示詞”。最近的研究表明,提示詞的“內容”和“形式”會顯著影響大語言模型的輸出質量。雖然很多使用者對自然語義的互動方式已經十分熟悉,但撰寫有效的提示詞往往比預期的更加困難,需要大量試驗和反覆調整。
為了幫助開發者更輕鬆地設計有效的提示詞,微軟亞洲研究院開發了自動提示最佳化工具(Auto Prompt Optimization,APO)和提示壓縮工具(prompt compression)等工具與方法。我們希望藉助這些方法能夠減輕開發者設計提示詞的負擔,更重要的是讓大模型總能接收到精確且“友好”的資料。
具體而言,我們設計了大語言模型提示壓縮框架 LLMLingua 和 LongLLMLingua,以高效壓縮提示詞,在大幅加速大語言模型推理的同時保持模型的推理效能。透過動態分配壓縮比和迭代壓縮,LLMLingua 能夠在不同壓縮比下保持語義的完整性,為大語言模型的應用提供更高效且經濟的解決方案。該框架利用困惑度(perplexity)來評估每個詞或句子的資訊量,保留對模型推理最為關鍵的部分,並透過動態選擇和壓縮提示詞中的關鍵部分,減少資料冗餘,使提示詞更具結構化。在資料密集型任務中,LLMLingua 的優勢尤為明顯。透過多個數據集的測試,LLMLingua 不僅實現了高達20倍的壓縮比,還保持了優異的效能,顯著降低了推理成本。
除了提示詞內容的設計,“外部資料的注入”也是提升模型效能的重要手段。但選擇最相關和最有用的資料並將其融入提示詞並非易事,需要對任務需求和模型行為有深入的理解和精細的設計。當涉及“非純文字資料”時,挑戰便更加複雜。
對此,我們提出了一種“RAG 任務分類法”,將使用者對外部資料查詢的需求型別分為四個級別,並分析其難點和適用的技術手段:
  • Level-1 顯性事實查詢(explicit fact queries):指那些可直接從資料中提取明確存在的事實,無需額外推理。此時只需使用基礎的 RAG 方法,透過檢索增強來定位和提取資訊。
  • Level-2 隱性事實查詢(implicit fact queries):需要從資料中揭示隱含的事實,可能涉及常識推理或簡單的邏輯推斷。此時可能需要多步檢索,或基於圖/樹的檢索,甚至將自然語言問題轉換為 SQL 查詢,以從結構化資料中檢索資訊。
  • Level-3 可解釋推理查詢(interpretable rationale queries):要求模型理解並應用與資料背景密切相關的領域特定推理依據。我們需要將外部邏輯關係輸入大模型並確保其遵循這些邏輯來生成回應。
  • Level-4 隱式推理查詢(hidden rationale queries):這種情況下模型沒有明確的推理依據記錄,需要透過分析歷史資料中的模式和結果來推斷。此時,我們需要讓模型透過離線學習從資料中提取規則和原則,並進行上下文學習,以及利用監督學習將領域特定知識整合到模型中。
圖2:資料增強型大語言模型應用中不同查詢層級的主要技術總結
目前該 RAG 任務分類法已經在與專業醫療機構的合作中有所應用,使智慧體的行為邏輯和效能展現出明顯的優勢。我們相信這項研究可以幫助大模型更好地整合專有領域知識,在特定領域發揮更前沿的能力。
最後是關於長上下文的最佳化。實踐證明,將整個文件交給大模型處理,大模型不僅能夠對內容理解的更加全面準確,還可以在很大程度上降低軟體系統的複雜度、縮短開發調試周期。然而巨大的計算資源開銷是長文字處理繞不開的瓶頸,制約了長文字模型的廣泛應用。微軟亞洲研究院正在開發創新的演算法、架構和系統,以實現對大規模模型中長上下文處理的高效管理,進而提升單位算力的智慧輸出。過去一段時間,我們採用了演算法和系統協同創新的研究方法,並且收穫了超出預期的成果。
在演算法層面,我們提出了針對長上下文注意力機制的動態稀疏注意力演算法(dynamic sparse attention),並用於 MInference 1.0 推理加速演算法。MInference 的核心在於利用長上下文中注意力機制的動態稀疏性,透過離線確定每個注意力的最佳稀疏模式,而且在推理過程中動態構建稀疏索引,利用最佳化的 GPU 核心執行高效稀疏注意力計算。這種方法能夠將單卡 A100 GPU 上的預填充延遲降低多達10倍,同時在多種任務和模型上保持與全注意力相當甚至更優的精度。
動態稀疏注意力也被用於 RetrievalAttention——一種加速長文字語言模型推理速度的創新方法。該方法將大部分鍵值向量解除安裝到 CPU 記憶體,並透過向量搜尋實現動態稀疏注意力機制,選擇性地只計算那些“重要”元素之間的關係,在保證準確性的同時顯著降低計算成本和 GPU 記憶體佔用。實驗證明,RetrievalAttention 能使一個包含80億引數、128K標記的模型在單個24GB的 NVIDIA 4080 GPU 上執行。相關工作獲得了 NeurIPS ENSLP 2024 最佳論文獎。
在系統層面,我們進行了 GPU Kernel 的最佳化。常規的 GPU 計算假設每個資料塊是連續且同質的,但在處理動態稀疏資料時,這種假設不再成立。於是我們引入了平移不變性——透過重新排序稀疏資料,使資料塊在計算時更加連續,且不改變資料本身,只是調整了它們在記憶體中的位置,從而大大提高了計算效率。
驗證大模型的輸出
確保大模型輸出的質量,尤其是語義的正確性,是提升智慧體系統可靠性的關鍵。我們以大模型在資料科學智慧體(data science agent)場景中的應用為突破點,深入探索了語義檢驗的共性問題。資料科學智慧體涉及資料預處理、統計分析、機器學習模型開發以及多模態資料視覺化等任務。這些任務不僅需要技術上的準確性,還要求與使用者意圖在語義上保持一致。
為了評估資料科學智慧體在不同任務中的表現,我們從“資料”和“框架”兩個層面入手,構建了 “DSEval” 和 “VisEval” 兩個綜合性基準(benchmark)。DSEval 專注於資料科學智慧體的全生命週期評估,涵蓋資料預處理、分析推理和機器學習模型開發等任務,可以評估輸出結果的正確性,並且還關注可能出現的副作用,能更全面地反映智慧體系統在複雜任務中的表現。VisEval 則針對自然語言到資料視覺化(NL2VIS)的任務,透過採用有效性、合法性和可讀性等多維度的評估方法,系統地驗證智慧體生成的視覺化結果是否符合語義要求。
在構建這些基準的過程中,我們開發了“領域特定語言(DSEAL)”和一套內建的“校驗原語(validation primitives)”,以系統化地評估資料科學智慧體的全生命週期。例如,DSEval 中的校驗原語用於驗證副作用,確保智慧體不會意外修改原始資料;VisEval 中定義了多維度的評估指標,能全面衡量視覺化結果質量。這些校驗原語從多個角度對智慧體系統的輸出進行語義驗證,確保結果在技術正確的同時也能滿足使用者意圖。 
在效能評估之外,我們也在積極探索“離線評估向線上(執行時)檢驗”的轉變。在我們的最新工作 V-Droid 中,即時執行的驗證器(verifier)不僅能夠給當前的動作打分,還能夠指導移動裝置上的智慧體尋找到完成任務的最優路徑。憑藉其全新的“驗證器驅動”架構,V-Droid 不僅重新整理了移動裝置上任務自動化的任務完成率記錄,同時在決策響應速度上也實現了接近即時的表現,為移動端自動化控制開闢了全新局面。
圖3:V-Droid 全新驗證器驅動架構
無論是資料科學場景還是移動裝置任務自動化場景,高質量的標註資料都極為稀缺,所以我們也特別注重資料集生成的可擴充套件性和效率。我們在多個專案中都成功引入了人機聯合的“自舉式標註(bootstrapped annotation)”方法,極大地減少了人工投入,提升了資料的規模和覆蓋範圍。例如,在 V-Droid 中,系統初始階段由人工作業完成標註,隨後利用經過初步訓練的驗證器自動生成操作標註,再由人工稽核、修正。隨著迭代訓練的進行,驗證器的準確性不斷提升,人工介入比例逐漸下降,進而高效構建起一個涵蓋上萬條任務軌跡的資料集,為後續的大規模訓練提供了堅實基礎。
透過高質量的資料構建和強化學習,我們正在實現“讓模型從檢驗結果中學習”。當前,檢驗過程主要作為診斷工具,用於識別模型輸出中的錯誤或侷限性,但檢驗結果通常不能反饋到模型中促進其改進。我們的目標是將檢驗結果融入模型的學習過程,形成閉環。這將有望打造出能夠自我改進的智慧體,使其隨時間推移更好地適應使用者偏好和任務需求,提升語義理解和任務表現。
構建智慧體原生服務系統
當前,大多數基於大模型的應用都依賴於公共大語言模型服務,然而這些公共服務只能觀察到大量的單獨請求,無法瞭解應用級資訊。例如,它們無法判斷哪些請求屬於同一應用,不同請求之間如何連線,或是否存在相似性。這種資訊缺失使得公共服務只能盲目最佳化單個請求的效能,導致應用整體在端到端之間產生一系列效能次優問題,如網路延遲、排隊等額外開銷,出現最佳化排程錯位,以及重複提供常見的字首提示,造成計算、儲存等資源的巨大浪費。
我們設想打造一種能將請求間的各種關係“傳達”至服務後端的方法,即智慧體原生服務系統(agent-native serving systems)。在這個方法中,最佳化物件從單個請求轉變為整個智慧體系統,系統成為被最佳化的核心架構。基於這一思路,我們開發了 Parrot 服務系統。Parrot 引入了“語義變數(semantic variable)”這一核心抽象,用於標註請求提示中的輸入/輸出變數,並構建請求之間的資料管道,從而將應用級知識呈現給公共大語言模型服務。
“語義變數”是請求提示中的一個文字區域,具有特定的語義目的,如任務指令、輸入或輸出。透過分析語義變數,Parrot 可以構建請求之間的依賴關係圖(DAG),並透過分析 DAG 和最終輸出的效能目標,推匯出每個請求的排程偏好來最佳化排程。不僅如此,Parrot 還能透過分析提示結構,快速監測多個請求之間的公共字首,減少冗餘計算。
這些特徵使 Parrot 能夠大幅最佳化智慧體系統端到端的效能。以多智慧體程式設計任務為例,Parrot 透過識別任務組並最佳化排程策略,實現了高達11.7倍的效能提升。Parrot 的設計為未來構建原生的智慧體系統服務提供了一種新的視角與啟發。
圖4:Parrot 系統概覽
複合型團隊的跨領域協作推動智慧體系統發展
在智慧體系統的研究與最佳化中,我們深刻認識到,由於其“混合架構”的特徵,僅從某一方向進行最佳化的作用始終是有限的。智慧體系統的最佳化需要系統與演算法的協同創新,而這離不開跨領域的複合型團隊的貢獻與努力。
在微軟亞洲研究院,我們有幸匯聚了一支由多領域人才構成的團隊。這種跨領域的團隊協作模式為我們帶來了巨大的優勢。例如,在推進前文所述的演算法與系統協同創新的過程中,系統專家與演算法專家的緊密合作發揮了關鍵作用。
此外,我們所採用的“網狀”團隊合作模式極大地促進了創新與思維的碰撞。在這種模式下,具備不同專長的人才能夠在高頻次、緊密的合作中相互啟發,擴大彼此視野,讓我們更容易從全域性角度探索智慧體系統最佳化的突破口。
微軟亞洲研究院正在多角度開展針對大模型效率的研究,涵蓋從演算法編碼層對 token 的低位元量化,到系統架構層對大模型效能的最佳化,以及針對基礎模型和系統底層的研究——例如,微軟亞洲研究院開發的 YOCO 和 BitNet,進一步探索了模型本身的能力與效率邊界。這些研究方向相輔相成,從不同方向對智慧體系統形成“向心”最佳化,為智慧體系統在複雜現實任務中的廣泛應用奠定了堅實基礎。
對於智慧體系統這一源自人工智慧發展的產物,智慧水平固然重要,但如何以更低的成本和更少的資源獲得更大產出,造福於更多人,才是其創造社會價值的關鍵所在。隨著創新方法論的推進和驗證,我們相信智慧體系統普惠大眾的一天並不遙遠。
本文作者
楊玉慶博士現任微軟亞洲研究院首席研發經理,帶領微軟亞洲研究院(上海)系統與工程組專注於大模型系統和多模態系統的研究。他的研究興趣包括大模型的高效計算和智慧體系統的頂層設計等。相關研究成果多次發表於 OSDI、SOSP、EuroSys、ATC、CVPR、ICCV、NeurIPS 等國際頂級會議。
你也許還想看:

相關文章