RCAgent:以工具增強大型語言模型的自主代理進行雲端根因分析
原文:RCAgent: Cloud Root Cause Analysis by Autonomous Agents with Tool-Augmented Large Language Models。來源:2310.16340v3.pdf,共 9 頁。以下依原文章節逐段翻譯,保留公式、演算法、表格數值、圖說及書目。圖中的程式識別字與工具名稱保留原文;參考文獻保留英文。原文印刷或數值不一致之處照錄,不另行修正。本文沒有附錄。
作者與出版資訊
| 作者 | 機構/地點 | 電子郵件 |
|---|---|---|
| Zefan Wang* | 清華大學/中國北京 | wang-zf20@mails.tsinghua.edu.cn |
| Zichuan Liu* | 南京大學/中國南京 | zichuanliu@smail.nju.edu.cn |
| Yingying Zhang† | 阿里巴巴集團/中國杭州 | congrong.zyy@alibaba-inc.com |
| Aoxiao Zhong | Harvard University(原文作 Havard Univerrsity)/美國 Cambridge | aoxiaozhong@g.harvard.edu |
| Jihong Wang* | 西安交通大學/中國西安 | wang1946456505@stu.xjtu.edu.cn |
| Fengbin Yin | 阿里巴巴集團/中國杭州 | yinfengbin.yfb@alibaba-inc.com |
| Lunting Fan | 阿里巴巴集團/中國杭州 | lunting.fan@taobao.com |
| Lingfei Wu | Anytime AI/美國 New York | lwu@anytime-ai.com |
| Qingsong Wen† | Squirrel Ai Learning/美國 Bellevue | qingsongedu@gmail.com |
- 本研究主要於阿里巴巴集團實習期間完成。† 通訊作者。
ACM 引用格式: Zefan Wang*, Zichuan Liu*, Yingying Zhang†, Aoxiao Zhong, Jihong Wang*, Fengbin Yin, Lunting Fan, Lingfei Wu, and Qingsong Wen†. 2024. RCAgent: Cloud Root Cause Analysis by Autonomous Agents with Tool-Augmented Large Language Models. In Proceedings of the 33rd ACM International Conference on Information and Knowledge Management (CIKM ’24), October 21–25, 2024, Boise, ID, USA. ACM, New York, NY, USA, 9 pages. https://doi.org/10.1145/3627673.3680016
授權告示: 允許為個人或課堂用途免費製作本作品全部或部分的數位或紙本副本,條件是不得為營利或商業利益製作或散布,且副本首頁須保留本告示與完整引用。對於本作品中由作者以外人士持有著作權的部分,須尊重其著作權。允許在註明來源的情況下摘錄摘要。其他複製、再版、發布至伺服器或重新散布至郵件列表的行為,須事先取得特定許可及/或支付費用。請向 permissions@acm.org 申請許可。
CIKM ’24,2024 年 10 月 21–25 日,美國 Idaho 州 Boise。© 2024 著作權由所有權人/作者持有;出版權授予 ACM。ACM ISBN 979-8-4007-0436-9/24/10。DOI:10.1145/3627673.3680016。arXiv:2310.16340v3 [cs.SE],2024 年 8 月 2 日。
摘要
近期,人們積極探索大型語言模型(LLM)在雲端根因分析(RCA)中的應用。然而,目前的方法仍依賴人工設定工作流程,尚未充分發揮 LLM 的決策與環境互動能力。我們提出 RCAgent,這是一個以工具增強 LLM 的自主代理框架,旨在支援實際且重視隱私的工業 RCA 應用。RCAgent 使用內部部署的模型,而非 GPT 系列,能透過工具進行自由形式的資料蒐集與全面分析。我們的框架結合多種增強方法,包括針對動作軌跡的獨特 Self-Consistency 方法,以及一系列用於上下文管理、穩定化與導入領域知識的方法。自動化指標與人工評估均驗證:在 RCA 的各個面向,包括根因、解決方案、證據與責任的預測,以及現行規則能涵蓋或無法涵蓋的任務上,RCAgent 都明顯且一致地優於 ReAct。此外,RCAgent 已整合至阿里雲 Apache Flink 即時計算平台的診斷與問題發現流程。
CCS 概念: 計算方法 → 自然語言處理;軟體及其工程 → 雲端運算。
關鍵字: 根因分析、大型語言模型、雲端系統。
1 引言
近年來,雲端運算平台日益廣泛地用於部署應用程式與服務 [8, 29]。雲端運算系統中的異常,例如不可復原的故障與卡住的作業,會嚴重影響客戶體驗,並可能違反服務水準協議 [2, 58]。根因分析(Root Cause Analysis,RCA)[1, 31, 61] 是網站可靠性工程的核心組成部分,目前持續受到 Amazon、Microsoft、Google、Alibaba 等大型雲端運算企業的關注。為提升改善雲端服務可靠性的效率,一系列人工智慧維運(Artificial Intelligence for Operations,AIOps)方法 [9, 49, 59] 已廣泛用於 RCA,以縮短平均解決時間(mean time to resolve,MTTR)。雖然這些典型的 AIOps 方法有助於流程自動化,其應用仍面臨資料品質不佳、資料分布變動、資料標註費工,以及模型泛化能力有限等挑戰 [11]。
大型語言模型(LLM)的進展,尤其是 GPT [5, 32–34] 與 LLaMA [45, 46] 系列,展現了解決複雜推理任務的可期前景。近期研究展示了 LLM 在雲端 RCA 任務中的用途。[2, 17] 微調 GPT 模型來摘要根因。這些工作高度依賴運算成本高昂的監督式調適,以適應雲端系統任務,並未充分利用 LLM 的泛化與推理能力。一個可能的解法是在 LLM 上使用 few-shot RAG [22],代表性方法包括 RCACopilot [10]、PACE-LM [60] 與 Xpert [16]。然而,這些工作都建立在 GPT 系列與 Microsoft 內部場景之上,並未處理將 LLM 用於雲端系統資料時的資料隱私疑慮。此外,上述方法皆未利用 LLM 在資訊蒐集、決策與環境互動上的自主能力 [55]。
早期實驗 [6] 所展示的工具增強自主代理,進一步釋放了 LLM 在互動環境中的潛力。為 LLM 配備定義好的工具及相關文件,並透過函式呼叫或命令列輸入等機制促成工具調用,再執行工具並回傳環境回饋,便可讓 LLM 處理需要廣泛專業知識與能力的任務。自主代理領域中的代表性典範是 ReAct [55]:它是一種實現「思考—動作—觀察」循環的工作流程,並提供彈性擴充能力 [27]。然而,LLM 代理在 AIOps 領域的採用仍有限,尤其是在資料充滿雜訊且篇幅冗長時 [21, 28]。主要挑戰是動作有效性與上下文長度,兩者都提高了對 LLM 作為代理之能力的要求 [26]。此外,據我們所知,尚未有根據真實生產等級 RCA 問題建立、可供 LLM 代理操作的互動環境。
為此,我們提出 RCAgent,這是工具增強自主代理典範下,首個實用的 LLM RCA 框架。我們設計增強的提示循環骨架,以及結合外部知識與穩定化技術的互動環境,專門讓 LLM 代理處理多樣的資料類型。此外,我們設計針對動作軌跡與文字輸出的聚合方法,結合 LLM 產生的次佳結果。有別於 ReAct,我們的方法以軌跡層級的 zero-shot 方式運作,省去人工或自動產生動作範例的需要。進一步地,為便於普遍且安全的工業應用,我們放棄使用強大的外部 API 模型,改在本地部署模型上實作此框架,凸顯我們穩定化方法的效用。
RCAgent 的分析結果已用於阿里雲 Apache Flink 即時計算平台,以診斷現行方法無法涵蓋的異常串流處理作業。我們在公司內導入回饋機制,用來識別雲端系統 PaaS 與 IaaS 層的問題,為開發團隊提供洞察。
我們的貢獻概述如下:
- 提出 RCAgent,這是首個用於兼顧隱私之真實世界雲端 RCA 的 LLM 工具增強代理,釋放 LLM 在 AIOps 領域的決策能力。
- 提出一系列增強工具代理的方法,涵蓋提示框架、工具設定、穩定化與聚合方法。這些方法使基於本地部署 LLM 的代理,成為雲端系統等複雜環境中的可行解法。
- 透過阿里雲計算作業的真實世界實驗,展示 RCAgent 的實際應用。
2 挑戰
雖然工具增強的 LLM 代理為雲端 RCA 任務帶來新的可能性,包括自主決策,以及無須費工標註訓練資料便能處理未見過的異常,仍存在數項關鍵挑戰。
隱私。 基於安全考量,用於 RCA 及其他雲端 AIOps 任務的通用 LLM 方法應在內部託管。具體而言,將生產等級的機密資料傳送至外部 API 會引發隱私風險。這表示除了與其緊密合作的企業之外,不能使用 ChatGPT 等更強大的模型。在為安全性而犧牲模型能力時,我們需要能在某種程度上緩解能力差距的技術。
上下文長度。 在真實雲端環境中使用代理的根本問題之一是上下文長度,因為日誌、程式碼與資料庫查詢結果等各種資料往往極為龐大。即使 LLM 能外推至更長的上下文 [35],處理非必要的大量 token 仍非常沒有效率。
動作有效性。 對 LLM 而言,開放式動作生成極具挑戰,因為對齊不夠充分的 LLM 較容易生成無效動作 [26]。這些錯誤嚴重損害自主代理在綜合任務上的表現。隱私考量所造成的模型限制,以及雜訊繁多的雲端資料,使這個問題更加困難。
3 方法
為了有系統且可靠地將 LLM 提示為雲端 RCA 的工具增強自主代理,我們提出 RCAgent 這個增強的推理與動作框架。圖 1 顯示方法在決策循環層級的概觀。為避免混淆,接受「思考—動作—觀察」循環提示的 LLM 代理稱為控制器代理(controller agent),負責協調動作;RCAgent 另外將 LLM 用作工具,稱為專家代理(expert agents),提供特定領域的功能。
圖片遺失:圖 1 原圖
圖 1:RCAgent 動作循環概觀。 循環包含生成以文字表達的思考、採取動作,以及接收來自環境的觀察;這些內容與初始記憶一起記錄於提示中,以增強推理。此外,RCAgent 具有用於檢索觀察的鍵值儲存,使代理能操作冗長文字資料。解析動作之後,RCAgent 依動作類型直接執行,或呼叫專家代理。
圖中標籤翻譯:RCAgent 的動作循環;框架規則、任務需求、工具文件、few-shot 範例、控制器代理、記憶、觀察開頭(head)、快照(snapshot)、鍵值儲存、思考與動作、解析後的動作、錯誤處理、是否出錯、是否為代理、專家代理提示(快照轉為觀察)、實際觀察/錯誤追蹤、環境、日誌系統、資料庫、程式碼儲存庫。圖例:記憶流、LLM 生成、環境互動、鍵值儲存、LLM 代理。Y/N 分別表示是/否。
遵循 ReAct 工具代理提示框架的典型實作 [38],控制器代理注入三種基本提示:(i) 描述思考—動作—觀察循環的框架規則;(ii) 包含 RCA 任務指令與基本雲端知識的任務需求;(iii) 描述所有可呼叫工具的工具文件。由於 JSON 具有彈性且容易閱讀,我們選擇 JSON 作為 LLM 動作步驟中所有生成內容的資料交換格式。我們也定義名為 finalize 的工具,作為退出點,讓模型自由決定何時以可解析格式回報發現。請注意,由於上下文長度有限,相較於原始 ReAct,RCAgent 捨棄了 few-shot 範例。
我們從 ReAct 的工具代理版本出發,提出數項增強方法,以應對在雲端 RCA 中使用工具增強 LLM 代理的挑戰。為處理第 2 節的上下文長度挑戰,我們首先提出壓縮 token 使用量的觀察管理方法,詳見第 3.1 節。接著,由於 LLM 本身無法存取雲端系統,也缺乏足夠的領域專門知識,我們為 RCAgent 建立包含 LLM 增強工具在內的工具,設計詳見第 3.2 節。針對動作有效性問題,RCAgent 具有第 3.3 節介紹的穩定化方法。最後,由於我們使用能力較弱的本地託管 LLM,為改善 RCAgent 的表現,採用第 3.4 節描述的聚合方法。
3.1 觀察快照鍵(Observation Snapshot Key)
在完整雲端環境中建立自主代理的基本挑戰之一,是上下文長度 [10]。代理提示中最占篇幅的部分,是動作軌跡裡的觀察內容,其中含有大量日誌、資料表項目等。為克服截斷與摘要觀察造成的資訊損失,我們提出 OBservation Snapshot Key(OBSK,觀察快照鍵),這是在真實雲端任務中處理上下文長度問題的新方法。如圖 1 所示,OBSK 僅向控制器代理顯示觀察的開頭,並留下雜湊 ID(快照鍵)供後續使用。我們建立鍵值儲存,將快照鍵對應至實際觀察。因此,當解析後的動作中出現快照鍵時,RCAgent 便查詢鍵值儲存並回傳對應觀察。這確保以受控長度向控制器代理提供必要資訊,作為決策的輔助資訊。
3.2 工具準備
我們採用資料查詢函式作為資訊蒐集工具,以及基於 LLM 的專家代理作為分析工具,類似人類 SRE 進行資料蒐集與分析的過程。
3.2.1 資訊蒐集工具
資訊蒐集工具採容易使用的方式設計,隱藏存取雲端系統資料時所有不相關的細節。例如,我們不向 LLM 提供 SQL 介面與日誌查詢 API,而讓這些工具只接受實體 ID 等簡單參數。這種語義上精簡的工具設定,降低 LLM 採取有效動作的門檻,避免在大型資料倉儲中進行無用探索。另外,為避免代理進行無效分析,我們對相似資訊去重,並排除低於 WARNING 等級的訊息。
3.2.2 分析工具
我們提出分析工具,利用 LLM 的推理能力來擴展控制器代理的領域知識與能力。我們將這種分析工具命名為專家代理,如圖 1 所示。我們為 RCAgent 提供兩個專家代理,作為互補的知識工具,分別稱為程式碼分析工具與日誌分析工具。兩者皆透過 zero-shot Chain-of-Thought(CoT)[19] 與答案擷取指令的提示,生成分析與聚合結果。
程式碼分析工具。 程式碼分析工具以遞迴方式運作,如圖 2 所示。給定類別名稱後,它在程式碼儲存庫中搜尋對應檔案。LLM 閱讀並分析程式碼檔案之後,會收到提示,建議其他值得分析、可提供輔助資訊的類別。每輪閱讀程式碼所得的建議會存入任務佇列,用來管理所有待處理任務。透過此窮舉搜尋,當不再推薦其他感興趣的程式碼檔案,或剩下的推薦檔案全是外部相依項目時,程式碼分析工具停止解析。接著,我們使用 LLM 摘要所有程式碼檔案,並將結果作為觀察呈現給控制器代理。
圖片遺失:圖 2 原圖
圖 2:RCAgent 中的程式碼分析工具。 圖中文字逐項翻譯如下:
- 解析後的動作 →
JobConnectorSinkConnectionFailService:JobConnectorSinkConnectionFailService類別繼承RuleDecisionBase,並實作getDecisionValue方法……為完整分析這個類別的相關部分,閱讀FlinkLifecycleMapper與RuleDecisionBase類別會有幫助…… - 任務佇列 →
FlinkLifecycleMapper:FlinkLifecycleMapper介面是資料存取層,提供檢索 Flink 作業生命週期的方法。檢視包含FlinkLifecycle類別的程式碼檔案會有幫助…… - 任務佇列 →
RuleDecisionBase:RuleDecisionBase是實作RuleDecision介面的抽象類別,提供決策所需的基本資訊。它假設RuleDecisionBase本身是一個不依賴其他類別的獨立類別。因此,無須提出建議。 - 摘要/功能:檢查過去 300000 毫秒內,是否發生任何名稱以
SINK_CONN_ERROR結尾的FlinkLifecycle事件。 - 摘要/方法:繼承
RuleDecisionBase並實作getDecisionValue方法;該方法以DeploymentDto物件為輸入,回傳DecisionValueResult物件。此類別使用FlinkLifecycleMapper介面,根據部署 ID、作業 ID 與其他條件,檢索 Flink 作業的生命週期資訊。若找到此類事件,便將DecisionValueResult物件的 value 設為 1 並回傳;若未找到,則回傳空的DecisionValueResult物件。
日誌分析工具。 日誌分析工具採用 in-context RAG 典範,並針對冗長日誌資料做若干調適。完整機制見演算法 1。我們將日誌 分割成行 ,並在行與行之間建立邊,使用嵌入的餘弦相似度、再依文件距離進行指數衰減後的值作為權重 。如此得到加權無向稠密圖 ,將行視為頂點,描述行與行之間的關聯性;若中間插入其他行,關聯性便減弱。接著,使用 Louvain 社群偵測 [4] 對圖分群,透過貪婪地切換最少量的分群標籤來消除群集間的重疊。此分群作為語義分割,得到的日誌區塊 逐輪送入日誌代理,每輪一個區塊,以進行檢索增強生成(RAG)[22]。此外,我們指示專家代理直接複製日誌內容,輸出支援其分析的證據,以避免產生分析範例而非分割區塊的幻覺。若 LLM 列出的證據無法與區塊 模糊匹配,便捨棄分析結果。因此,我們確保能對冗長的非自然語言內容執行可靠的 RAG。
演算法 1:日誌專家代理的偽程式碼。
輸入需求:日誌 ;提示最大長度 。輸出:解釋 ;證據 。
1: S ← 使用分隔符(例如換行)切分 L
2: 對 S 中每個 s,v_s ← EmbeddingModel(s)
3: W = {w_ij},空權重矩陣
4: 對 S × S 中滿足 j − i ∈ (0, 200] 的每一對 (s_i, s_j):
5: d_ij ← L 中 s_i 與 s_j 的位置距離
6: w_ij ← CosSim(v_si, v_sj) × exp(−d_ij)
7: 結束迴圈
8: C ← LouvainClustering(S, W)
9: C′ ← GreedyOverlapRemoval(C)
10: P ← 依 C′ 的組成部分指示,從 L 取得分割區塊
11: R′, E′ ← 初始化為空的已篩選結果
12: 對 P 中每個分割區塊 p:
13: E, A ← 檢索並排序後的範例與答案
14: ICP ← E[0:N], A[0:N] ▷ in-context 提示
15: R, E ← LLMAnalysis(ICP, p)
16: 對 R, E 中每一對 (r, e):
17: 若 Levenshtein(e, p) < L(p) − L(e) × 0.9:
18: R′, E′ ← R′ ∪ r, E′ ∪ e ▷ 過濾幻覺
19: 結束條件
20: 結束迴圈
21: 結束迴圈
22: R̃, Ẽ ← LLMSummary(R′, E′)
3.3 穩定化
為克服雜訊資料與能力較弱的本地 LLM 所造成的動作有效性下降,我們引入兩種穩定化方法。
3.3.1 JSON 修復
工具增強 LLM 自主代理在真實世界應用中的重要問題之一,是生成可解析資料的結構化推論。據我們所知,尚無簡單無痛的方法能保證 LLM 代理與環境互動時使用特定資料格式,例如 JSON。雖然已有 Outlines [53] 與 TypeChat [15] 等結構輔助工具,它們不是無法在不損害生成品質的情況下生成包含大量跳脫字元的自由形式 JSON,就是僅依賴 LLM 的 token 錯誤更正能力。為解決此問題,我們採用一種直觀且有效的結構化交換資料生成方法,稱為 JsonRegen。
在 LLM 推論前,將所有可能對應 JSON 控制符號的敏感字元替換為不敏感字元,以得到乾淨的提示。當簡單清理仍無法讓類 JSON 字串被解析時,便執行重新生成程序。為強制 LLM 理解 JSON 結構,我們指示它將內容轉換為 YAML,再提示 LLM 重新生成結構與內容相同的 JSON。重新生成會進行數輪,或在成功解析有效 JSON 時停止。
3.3.2 錯誤處理
先前研究 [38] 顯示,LLM 在調用工具時傾向傳播錯誤,限制探索動作。對能力較弱的 LLM 而言,這些問題更為明顯。受 [42] 啟發,我們使用預先定義的準則,將有問題的動作或狀態標記為錯誤。如圖 1 所示,我們向控制器代理提供錯誤訊息與建議,包括下列情況:(i) 以相同引數集合重複調用無狀態工具;(ii) 提供給專家代理的輸入過於瑣碎;(iii) 未充分調查便過早結束。這些錯誤訊息可透過警示控制器代理,減少無意義動作的頻率。
3.4 Self-Consistency 聚合
Self-Consistency(SC,自我一致性)[50] 已證實在多種封閉式 NLP 任務上有效;然而,對 RCA 這類由 LLM 代理取樣產生的開放式多步生成進行聚合,仍未被充分探索。據我們所知,將 SC 用於 ReAct 類型軌跡,也尚未得到妥善定義。因此,我們提出在 LLM 自主代理主題中,將 SC 典範用於自由形式的生成。
3.4.1 文字資料的 Self-Consistency
為將 SC 應用於文字資料,我們在實驗中使用兩種方法:
以嵌入投票。 我們直接推廣未加權 SC(多數決)的概念,該方法在所有任務中表現最佳 [50]。投票可改寫為:
其中 為樣本數, 是代表第 個取樣結果的 one-hot 向量,每個位置表示一個候選選項或數值結果。我們直接將 替換為文字輸出的語義嵌入。直觀來說,就是選出最接近多數結果的文字結果。
以 LLM 聚合。 考量生成內容可能具有多樣性,我們提示 LLM 聚合候選結果,並以相似形式與長度輸出。
3.4.2 工具使用軌跡的 Self-Consistency
SC 已在 CoT 推理路徑上受到全面測試,自然也能用於 ReAct 類型的軌跡。然而,直接取樣多個思考—動作—觀察循環,成本可能很高。當某些動作(例如啟動專家代理)需要大量資源時,成本更高。此外,在沒有任何歷史動作或 few-shot 範例的情況下隨機取樣,會造成大量錯誤,例如連續呼叫不存在的工具。
因此,我們提出一種中途開始的取樣方法,稱為軌跡層級 Self-Consistency(Trajectory-level Self-Consistency,TSC),如圖 3 所示。具體而言,只有當控制器代理準備進入結束階段時才開始取樣。此取樣策略讓軌跡樣本共用大部分前期步驟,減少不必要的資源消耗。此外,貪婪解碼產生的較穩定動作歷史,可提供範例作用,無須額外消耗 few-shot 範例的上下文長度,進而抑制取樣造成的有效性下降。此方法在代理軌跡的全流程 SC 與單步 CoT SC 之間取得平衡。
圖片遺失:圖 3 原圖
圖 3:軌跡層級 Self-Consistency。 RCAgent 中每個「步驟」代表依序進行思考、動作與觀察的程序。圖中文字:RCAgent TSC、取樣(Sample)、貪婪(Greedy)、結合(Combine)、開始(Start)、思考(Thought)、結束(Finalize)、步驟(Step)、聚合(Aggregation)。
4 實驗
我們在阿里雲即時計算平台上開發與評估 RCAgent。此平台是基於 Apache Flink、能進行即時串流資料運算的企業級高效能系統,在尖峰時段每秒可處理 1 億筆資料記錄。
4.1 模型設定
我們的實作以 Vicuna-13B-V1.5-16K [62] 為基礎,使用 vLLM [20] 後端,在單張 NVIDIA A100 SXM4 GPU(80 GB)上運行。為提高可重現性與穩定性,預設使用貪婪解碼策略。Self-Consistency 需要隨機取樣時,使用 Vicuna 的預設設定。
我們使用的嵌入模型為 GTE-LARGE [24];它在 MTEB [30] 上的結果略優於 text-embedding-ada-002,並可作為能在內部部署的替代方案。
對 Self-Consistency 的結果,預設使用 10 個輸出樣本。我們採用逐步 Self-Consistency,以 SC 表示;它僅接受在貪婪解碼軌跡之後同步結束的樣本,不允許額外的動作步驟。
4.2 資料集準備
4.2.1 異常選取
為進行根因分析,我們從一個月的雲端系統歷史蒐集包含 15,616 個異常作業的資料集;這些作業不是發生不可復原的故障,就是無法在 6 分鐘內啟動。我們篩選資料後,取得約 5,000 個具有充分日誌內容、非瑣碎的異常作業。我們使用 Flink Advisor 知識庫來為這些作業產生分析結果;此知識庫是一套從資深 SRE 領域知識提煉而成的大型規則集。由於異常分布不均,也就是大量異常具有相同根因,我們將成功分析的作業縮減為含 161 個作業的離線資料集。縮減時施加類別平衡限制,使根因相同的作業不超過兩個。這些作業所需的標註包含四項:根因、解決方案、證據與責任判定。我們先以 LLM 摘要 Flink Advisor 的分析,並輸出上述四項內容,再由 SRE 團隊校對與標註目標輸出。
我們確保標註不會出現「這個異常的根因是……」等不提供資訊的模式;[2, 17] 發現這類模式會使某些語義分數不可信。
4.2.2 資料來源
我們據以為 LLM 代理建立資訊蒐集工具的可用資料來源,包括:
- 平台、執行時期與基礎設施三個層級的日誌資料,儲存於阿里雲 SLS(Simple Log Service)。
- 包含顧問服務歷史記錄的資料庫。
- 包含顧問服務程式碼的儲存庫。
對於日誌與資料庫項目,只能檢索異常偵測時間之前的資料,以避免分析未來資訊,並符合真實世界使用方式。
專家代理用於檢索的日誌資料庫,是 Flink Advisor 歷史資料的一個子集,與用於標註的內容沒有重疊。
4.3 評估指標
除 METEOR [3]、NUBIA [18](6 維)、BLEURT [41] 與 BARTScore [57](F-Score,CNNDM)等語義指標外,我們還使用額外的嵌入分數(EmbScore),即實驗中預設嵌入模型的餘弦相似度。
我們也遵循使用較強模型估計模型預測品質的常見做法 [12, 38, 62]。我們以貪婪解碼使用 gpt-4-0613,這是 GPT4 [33] 的凍結版本,可提高可重現性。我們提示模型評判根因與解決方案預測的準確性及有用性,分別標示為 G-Correctness 與 G-Helpfulness,並給予 的分數。
5 結果
5.1 有效性
表 1、2、3 呈現 RCAgent 在離線資料集上的有效性。RCAgent 在綜合 RCA 的各個面向,包括根因、解決方案與證據預測,都優於原始 ReAct。這種表現優勢在所有指標上都明顯且一致,包括相較 ReAct,根因與解決方案預測子任務的 METEOR 分別提高 8.71 與 6.52。
採用 LLM 摘要進行 TSC 聚合後,RCAgent 的整體表現進一步提升,尤其是解決方案預測:METEOR 提高 3.51、BLEURT 提高 4.50、G-Helpfulness 提高 2.28%。此改善可由解決方案取樣具有更廣泛的多樣性來解釋。
表 1:Flink 作業的根因預測結果。 前四欄是語義指標,最後一欄是 LLM 指標。w/o 表示移除,w/ 表示加入。
| 模型 | METEOR | EmbScore | BLEURT | BARTScore | G-Correctness |
|---|---|---|---|---|---|
| ReAct | 6.44 | 89.64 | 25.17 | -6.20 | 3.06 |
| RCAgent | 15.15 | 91.47 | 31.57 | -5.74 | 5.22 |
| 移除 LLM 專家 | 9.60 | 90.33 | 27.77 | -6.02 | 3.97 |
| 移除 JsonRegen | 13.89 | 90.74 | 27.72 | -5.84 | 4.19 |
| 移除 OBSK | 12.37 | 90.97 | 29.67 | -5.77 | 4.53 |
| 移除觀察開頭(Obs Head) | 12.27 | 91.30 | 30.47 | -5.87 | 4.98 |
| 加入摘要開頭(Summary Head) | 14.64 | 91.34 | 32.11 | -5.82 | 5.16 |
| 加入 SC(LLM) | 15.94±0.44 | 91.59±0.06 | 33.74±0.44 | -5.48±0.04 | 5.38±0.01 |
| 加入 TSC(LLM) | 16.49±0.09 | 91.67±0.03 | 34.43±0.59 | -5.40±0.01 | 5.47±0.06 |
表 2:Flink 作業的解決方案生成結果。 前三欄是語義指標,最後一欄是 LLM 指標。
| 模型 | METEOR | BLEURT | BARTScore | G-Helpfulness |
|---|---|---|---|---|
| ReAct | 6.42 | 26.97 | -4.90 | 3.41 |
| RCAgent | 12.94 | 34.68 | -4.17 | 5.48 |
| 移除 LLM 專家 | 8.46 | 30.46 | -4.63 | 4.13 |
| 移除 JsonRegen | 11.41 | 31.25 | -4.40 | 4.58 |
| 移除 OBSK | 10.34 | 32.13 | -4.37 | 4.68 |
| 加入 SC(LLM) | 15.27±0.19 | 37.94±0.03 | -4.00±0.00 | 5.55±0.03 |
| 加入 TSC(LLM) | 16.45±0.06 | 39.18±0.13 | -3.94±0.08 | 5.69±0.02 |
表 3:各方法所提供證據的語義分數。
| 模型 | METEOR | EmbScore | BARTScore |
|---|---|---|---|
| ReAct | 11.82 | 90.03 | -5.74 |
| RCAgent | 28.10 | 92.14 | -4.62 |
| 移除 LLM 專家 | 13.10 | 90.63 | -5.63 |
| 移除 OBSK | 17.79 | 91.12 | -5.13 |
| 加入摘要開頭(Summary Head) | 18.09 | 91.67 | -5.14 |
| 加入 SC(LLM) | 30.15±0.83 | 92.60±0.06 | -4.41±0.05 |
| 加入 TSC(LLM) | 30.84±0.43 | 92.78±0.02 | -4.29±0.02 |
5.2 消融研究
為衡量 RCAgent 各組成部分的貢獻,我們移除 RCAgent 引入的增強功能,包括 LLM 專家代理、JsonRegen 與 OBSK,進行消融研究。消融結果見表 1、2、3。
5.2.1 移除 LLM 專家代理
所有指標都大幅下降,例如根因預測相較 ReAct 的 METEOR 增幅,從 +8.71 降至 +3.16,僅留下相對 ReAct 的小幅改善。這顯示為 LLM 建立分析工具的力量,能減輕控制器代理直接分析複雜資料的負擔。
5.2.2 移除 JsonRegen
控制器與專家代理會產生更多格式錯誤的輸出,RCAgent 的表現因此大幅減損,主要原因是錯誤決策。
5.2.3 移除 OBSK
控制器代理不再能使用快照,只能在截斷資料上操作。移除快照會影響整體指標,例如根因預測的 BLEURT 下降 1.90、G-Correctness 下降 0.69,雖然下降幅度不如移除 LLM 專家那麼劇烈。這表示控制器仍能交由專家分析日誌,但大部分環境觀察會遺失。
此外,我們測試改變向控制器代理顯示的觀察開頭。當移除觀察開頭,只顯示快照(w/o Obs Head)時,表現略微下降,BLEURT 減少 1.10,說明快照機制帶來主要效益。當我們提示 LLM 摘要原始觀察,以此替代觀察開頭時,只觀察到極小的表現下降,包括 G-Correctness 減少 0.06。除 BLEURT 外的差異顯示,對控制器代理而言,截斷的觀察比摘要內容更有幫助。
5.3 穩定性
我們在表 4 中研究不同設定的動作軌跡。具備全部增強功能的 RCAgent,在 15 步內達到 99.38% 的通過率與 7.93% 的無效率,代表近乎完美的穩定性,且明顯優於 ReAct。由於生成問題動作的機率如此微小,RCAgent 能以較短軌跡,一致地提供更準確且更有幫助的 RCA 結果。
當移除 LLM 專家或 OBSK 時,控制器代理仍維持超過 90% 的通過率,但兩者的缺失都導致容易出錯的探索,使部分動作轉向多餘的工具調用。移除 JsonRegen 會因無效資料交換激增,而嚴重損害穩定性。
此外,將控制器代理的預設解碼策略改為 nucleus sampling(w/ Sampling)時,穩定性下降至 70.19% 通過率與 44.80% 無效率,伴隨大量錯誤動作與幻覺。此結果凸顯初始步驟中最佳解碼的重要性,也促使我們設計中途開始的 TSC,而非純粹的全流程 SC。
我們也測試以 SQL 與 SLS 查詢執行工具作為資訊蒐集工具組。提示中提供所有相關資料庫的完整描述。這種替換使通過率大幅降低 33.54%,差距主要來自 70.95% 的無效率。這清楚顯示,對本地託管的 LLM 提供語義上精簡的工具是必要的。
表 4:不同設定的軌跡統計。
| 模型 | 通過率(Pass Rate) | 軌跡長度(Trajectory Length) | 無效率(Invalid Rate) |
|---|---|---|---|
| ReAct | 86.33 | 7.48 | 22.82 |
| RCAgent | 99.38 | 6.78 | 7.93 |
| 移除 LLM 專家 | 92.55 | 6.93 | 16.24 |
| 移除 JsonRegen | 85.71 | 7.91 | 18.75 |
| 移除 OBSK | 96.89 | 7.21 | 18.34 |
| 加入取樣(Sampling) | 70.19 | 10.66 | 44.80 |
| 加入 SQL 工具 | 65.84 | 10.55 | 70.94 |
5.4 Self-Consistency
我們研究 SC 方法與樣本數的不同組合,每種組合進行 10 次不同的執行。結果詳見圖 4。為提高數值可讀性,我們將預測根因與解決方案串接後進行評估。
統計結果顯示,各種 SC 方法都一致改善 RCAgent 的 BARTScore 與 NUBIA 表現。當樣本數達到 20 時,這種改善似乎趨於平穩。在不同方法之中,TSC 因動作取樣較多樣而具有優勢。在所有指標上,LLM 聚合均優於嵌入投票,且差距隨樣本數增加而擴大,顯示當候選池增大時,LLM 聚合能提供更全面的結果。
圖片遺失:圖 4 原圖
圖 4:不同規模與方法下的 Self-Consistency 表現。 實線代表平均分數,陰影代表標準差。分數以串接後的解決方案與根因計算。圖中文字:取樣路徑數(#Sampled Paths)、BARTScore、NUBIA;SC(EMB,嵌入)、SC(LLM)、TSC(EMB,嵌入)、TSC(LLM)、貪婪解碼(Greedy)。
6 部署
RCAgent 已作為回饋機制整合至公司內部維運管理平台,協助偵測潛在的平台端錯誤與缺陷。具體而言,RCAgent 分析所有現有自動化 SRE 工具無法妥善處理的領域外(Out-of-Domain,OoD)作業。接著,將 RCAgent 標記為平台責任的作業及其 RCA 結果,交給 Apache Flink 的 SRE 團隊,以輔助人工診斷。此流程提升發現需 DevOps 團隊關注之異常的效率,也改善售後服務團隊的工作流程。
6.1 OoD 作業的表現
我們在系統部署後前兩週,評估 RCAgent 對 OoD 作業的表現。這些 OoD 作業樣本經過語義分群,全部超出現行規則的能力範圍,並由資深 SRE 標註,以供系統評估。我們指示 SRE 團隊使用一組 Likert 量表,給予 0–5 的 H-Helpfulness 分數,涵蓋從誤導到極有幫助的診斷。
結果見表 5。與所有 LLM 與語義指標一致,人工評估者給我們的方法 2.92 的 H-Helpfulness,表示對 RCA 提供中等程度的支援。Tukey HSD 檢定顯示,加入 TSC()與未加入 TSC()的方法,都顯著優於 ReAct。此外,配備 TSC(LLM)的 RCAgent,在責任判定上展現 82.06% 的精確率。
我們也比較非代理式 RCA 解法。我們使用作業所有可能類型的相關資料,若超過模型長度限制則截斷;分別使用文件嵌入訓練 XGBoost、微調 T5,以及將資料連同摘要指令送入 LLM。自主代理解法可能帶來各種不穩定性,這也許解釋了 ReAct 為何不如傳統方法;儘管如此,我們的設計仍優於非代理式方法,凸顯 LLM 自主決策的能力。
表 5:線上 OoD 異常的評估。 粗體表示最佳結果。前五項評估根因,Precision 評估責任,H-Helpfulness 為人工評估。
| 模型 | METEOR | NUBIA | BLEURT | BARTScore | G-Correctness | Precision | H-Helpfulness |
|---|---|---|---|---|---|---|---|
| XGBoost | - | - | - | - | - | 77.65 | - |
| 微調 T5 | 4.18 | 8.20 | 19.32 | -6.61 | 2.62 | 77.85 | - |
| LLM 摘要 | 7.88 | 14.57 | 25.40 | -6.00 | 3.58 | 77.21 | - |
| ReAct | 5.21 | 10.38 | 20.33 | -6.25 | 2.24 | 73.53 | 1.36±0.03 |
| RCAgent | 13.77 | 19.48 | 31.52 | -5.59 | 3.82 | 80.74 | 2.47±0.17 |
| 加入 TSC(LLM) | 15.72±0.61 | 26.79±2.54 | 35.72±0.58 | -5.29±0.03 | 4.36±0.01 | 82.06±0.42 | 2.92±0.21 |
6.2 運算可擴展性
圖 5 呈現部署期間,在不同作業所涵蓋資料量變化下,LLM 代理的表現與資源消耗統計。資料量是將所有呈現給控制器代理、或透過 OBSK 機制查詢的資料進行 tokenization 後計算。雖然使用更多資料、消耗更多資源,RCAgent 及其 TSC 增強版本仍明顯優於 ReAct。此外,隨著資料量增加,我們方法的資源消耗近乎線性成長(各種消耗類型的 Pearson 相關檢定 ),且沒有顯著的表現下降(Kruskal-Wallis H 檢定 )。這種對表現與消耗的細部分析,顯示 RCAgent 處理大量資料的有效性。
圖片遺失:圖 5 原圖
圖 5:不同資料規模下的表現與資源消耗。 圖中文字:ReAct、RCAgent、RCAgent 10 paths(SC/LLM,10 條路徑);BARTScore、提示 token 消耗量(Prompt Token Consumption)、生成 token 消耗量(Completion Token Consumption)、時間消耗(Time Consumption,秒);橫軸為資料量(Data Amount,token 數),標示為 2k、8k、18k、32k、50k。曲線座標與數值保留於原圖。
7 相關工作
7.1 作為自主代理的 LLM
隨著 LLM 展現令人印象深刻的能力 [32, 33, 52],一些文獻 [36, 44, 54] 利用這些模型建立 LLM 代理。一種熱門典範是自主代理 [36, 43, 48, 51, 56];在此典範下,LLM 代理無須人工介入與逐步指示,便能自行探索。它們以動作軌跡執行任務,並根據環境調整意圖與輸出 [25]。雖然自主代理已在多種玩具任務上實作與測試 [26, 63],RCAgent 是首個將自主 LLM 代理導入真實雲端 RCA 任務的工作。
7.2 工具增強的 LLM
近期研究 [37, 38, 40, 47] 展示了 LLM 在廣泛任務中調用工具與做決策的熟練程度。以簡單函式或外部 API 形式提供的工具,顯著擴展 LLM 的知識與能力 [6, 23, 39]。較強的 LLM 能輕易掌握工具並完成任務,而其他模型則可透過生成並篩選的軌跡來教導 [38, 40]。本文旨在以完整工具組增強代理,將工具使用典範擴展至真實世界的雲端 RCA。
7.3 使用 LLM 的雲端 RCA
大型雲端服務中的 RCA,是軟體工程社群的重要研究主題 [7, 13]。由於包含日誌分析等子任務,RCA 的很大一部分與 NLP 緊密結合 [14, 21, 28]。隨著 LLM 的發展,人們透過微調 [2, 17] 或 in-context learning [10, 16],將它們用於雲端 RCA 任務。然而,這些模型並不了解雲端 RCA 的工作流程,因此只是分析工具。於是,我們研究將工具增強 LLM 作為代理,以因應持續變化的雲端 RCA 環境。
8 結論
本文提出 RCAgent,這是一個專為雲端根因分析設計的工具增強 LLM 自主代理。RCAgent 使用內部部署模型,取代 ChatGPT 等強大的外部模型,確保 LLM 代理能在雲端系統中安全地供工業應用使用。我們的方法涵蓋多種增強功能,包括針對動作軌跡的獨特 Self-Consistency、完整的提示框架、專家代理與穩定化方法。此外,RCAgent 在阿里巴巴 Apache Flink 即時計算平台中的實際應用,展現了其有效性。整體而言,本研究開創了 LLM 代理在雲端 RCA 領域的真實世界應用。
參考文獻
以下完整保留原文書目資料;修復 PDF 雙欄擷取造成的換行,保留原文拼字。
[1] Pooja Aggarwal, Ajay Gupta, Prateeti Mohapatra, Seema Nagar, Atri Mandal, Qing Wang, and Amit Paradkar. 2020. Localization of operational faults in cloud applications by mining causal dependencies in logs using golden signals. In International Conference on Service-Oriented Computing. 137–149.
[2] Toufique Ahmed, Supriyo Ghosh, Chetan Bansal, Thomas Zimmermann, Xuchao Zhang, and Saravan Rajmohan. 2023. Recommending Root-Cause and Mitigation Steps for Cloud Incidents Using Large Language Models. In International Conference on Software Engineering. 1737–1749.
[3] Satanjeev Banerjee and Alon Lavie. 2005. METEOR: An automatic metric for MT evaluation with improved correlation with human judgments. In ACL workshop on Intrinsic and Extrinsic Evaluation Measures for Machine Translation and/or Summarization. 65–72.
[4] Vincent D Blondel, Jean-Loup Guillaume, Renaud Lambiotte, and Etienne Lefebvre. 2008. Fast unfolding of communities in large networks. Journal of statistical mechanics: theory and experiment 2008, 10 (2008), P10008.
[5] Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. 2020. Language models are few-shot learners. In Advances in Neural Information Processing Systems. 1877–1901.
[6] Sébastien Bubeck, Varun Chandrasekaran, Ronen Eldan, Johannes Gehrke, Eric Horvitz, Ece Kamar, Peter Lee, Yin Tat Lee, Yuanzhi Li, Scott Lundberg, et al. 2023. Sparks of artificial general intelligence: Early experiments with gpt-4. arXiv preprint arXiv:2303.12712 (2023).
[7] Haicheng Chen, Wensheng Dou, Yanyan Jiang, and Feng Qin. 2019. Understanding exception-related bugs in large-scale cloud systems. In International Conference on Automated Software Engineering. 339–351.
[8] Junjie Chen, Xiaoting He, Qingwei Lin, Yong Xu, Hongyu Zhang, Dan Hao, Feng Gao, Zhangwei Xu, Yingnong Dang, and Dongmei Zhang. 2019. An empirical investigation of incident triage for online service systems. In International Conference on Software Engineering: Software Engineering in Practice. 111–120.
[9] Pengfei Chen, Yong Qi, and Di Hou. 2016. CauseInfer: Automated end-to-end performance diagnosis with hierarchical causality graph in cloud environment. IEEE Transactions on Services Computing 12, 2 (2016), 214–230.
[10] Yinfang Chen, Huaibing Xie, Minghua Ma, Yu Kang, Xin Gao, Liu Shi, Yunjie Cao, Xuedong Gao, Hao Fan, Ming Wen, et al. 2023. Empowering Practical Root Cause Analysis by Large Language Models for Cloud Incidents. arXiv preprint arXiv:2305.15778 (2023).
[11] Qian Cheng, Doyen Sahoo, Amrita Saha, Wenzhuo Yang, Chenghao Liu, Gerald Woo, Manpreet Singh, Silvio Saverese, and Steven CH Hoi. 2023. AI for IT Operations (AIOps) on Cloud Platforms: Reviews, Opportunities and Challenges. arXiv preprint arXiv:2304.04661 (2023).
[12] Peng Gao, Jiaming Han, Renrui Zhang, Ziyi Lin, Shijie Geng, Aojun Zhou, Wei Zhang, Pan Lu, Conghui He, Xiangyu Yue, et al. 2023. Llama-adapter v2: Parameter-efficient visual instruction model. arXiv preprint arXiv:2304.15010 (2023).
[13] Supriyo Ghosh, Manish Shetty, Chetan Bansal, and Suman Nath. 2022. How to fight production incidents? an empirical study on a large-scale cloud service. In Symposium on Cloud Computing. 126–141.
[14] Haixuan Guo, Shuhan Yuan, and Xintao Wu. 2021. LogBERT: Log anomaly detection via bert. In International Joint Conference on Neural Networks. 1–8.
[15] Anders Hejlsberg, Steve Lucco, Daniel Rosenwasser, Pierce Boggan, Umesh Madan, Mike Hopcroft, , and Gayathri Chandrasekaran. 2023. Introducing TypeChat. https://microsoft.github.io/TypeChat/blog/introducing-typechat/
[16] Yuxuan Jiang, Chaoyun Zhang, Shilin He, Zhihao Yang, Minghua Ma, Si Qin, Yu Kang, Yingnong Dang, Saravan Rajmohan, Qingwei Lin, et al. 2023. Xpert: Empowering Incident Management with Query Recommendations via Large Language Models. arXiv preprint arXiv:2312.11988 (2023).
[17] Pengxiang Jin, Shenglin Zhang, Minghua Ma, Haozhe Li, Yu Kang, Liqun Li, Yudong Liu, Bo Qiao, Chaoyun Zhang, Pu Zhao, et al. 2023. Assess and Summarize: Improve Outage Understanding with Large Language Models. arXiv preprint arXiv:2305.18084 (2023).
[18] Hassan Kane, Muhammed Yusuf Kocyigit, Ali Abdalla, Pelkins Ajanoh, and Mohamed Coulibali. 2020. NUBIA: NeUral based interchangeability assessor for text generation. In ACL Workshop on Evaluating NLG Evaluation. 28–37.
[19] Takeshi Kojima, Shixiang Shane Gu, Machel Reid, Yutaka Matsuo, and Yusuke Iwasawa. 2022. Large language models are zero-shot reasoners. In Advances in Neural Information Processing Systems. 22199–22213.
[20] Woosuk Kwon, Zhuohan Li, Siyuan Zhuang, Ying Sheng, Lianmin Zheng, Cody Hao Yu, Joseph Gonzalez, Hao Zhang, and Ion Stoica. 2023. Efficient Memory Management for Large Language Model Serving with PagedAttention. In Symposium on Operating Systems Principles. 611–626.
[21] Van-Hoang Le and Hongyu Zhang. 2022. Log-based anomaly detection with deep learning: How far are we?. In International Conference on Software Engineering. 1356–1367.
[22] Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, et al. 2020. Retrieval-augmented generation for knowledge-intensive nlp tasks. In Advances in Neural Information Processing Systems. 9459–9474.
[23] Minghao Li, Feifan Song, Bowen Yu, Haiyang Yu, Zhoujun Li, Fei Huang, and Yongbin Li. 2023. API-Bank: A benchmark for tool-augmented llms. arXiv preprint arXiv:2304.08244 (2023).
[24] Zehan Li, Xin Zhang, Yanzhao Zhang, Dingkun Long, Pengjun Xie, and Meishan Zhang. 2023. Towards General Text Embeddings with Multi-stage Contrastive Learning. arXiv preprint arXiv:2308.03281 (2023).
[25] Ruibo Liu, Ruixin Yang, Chenyan Jia, Ge Zhang, Denny Zhou, Andrew M Dai, Diyi Yang, and Soroush Vosoughi. 2023. Training Socially Aligned Language Models in Simulated Human Society. arXiv preprint arXiv:2305.16960 (2023).
[26] Xiao Liu, Hao Yu, Hanchen Zhang, Yifan Xu, Xuanyu Lei, Hanyu Lai, Yu Gu, Hangliang Ding, Kaiwen Men, Kejuan Yang, et al. 2023. Agentbench: Evaluating llms as agents. arXiv preprint arXiv:2308.03688 (2023).
[27] Zhiwei Liu, Weiran Yao, Jianguo Zhang, Le Xue, Shelby Heinecke, Rithesh Murthy, Yihao Feng, Zeyuan Chen, Juan Carlos Niebles, Devansh Arpit, et al. 2023. BOLAA: Benchmarking and orchestrating LLM-augmented autonomous agents. arXiv preprint arXiv:2308.05960 (2023).
[28] Steven Locke, Heng Li, Tse-Hsun Peter Chen, Weiyi Shang, and Wei Liu. 2021. LogAssist: Assisting log analysis through log summarization. IEEE Transactions on Software Engineering 48, 9 (2021), 3227–3241.
[29] Minghua Ma, Yudong Liu, Yuang Tong, Haozhe Li, Pu Zhao, Yong Xu, Hongyu Zhang, Shilin He, Lu Wang, Yingnong Dang, et al. 2022. An empirical investigation of missing data handling in cloud node failure prediction. In ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 1453–1464.
[30] Niklas Muennighoff, Nouamane Tazi, Loïc Magne, and Nils Reimers. 2023. MTEB: Massive Text Embedding Benchmark. In European Chapter of the Association for Computational Linguistics. 2006–2029.
[31] Hiep Nguyen, Zhiming Shen, Yongmin Tan, and Xiaohui Gu. 2013. Fchain: Toward black-box online fault localization for cloud systems. In 2013 IEEE 33rd International Conference on Distributed Computing Systems. IEEE, 21–30.
[32] OpenAI. 2022. OpenAI: Introducing ChatGPT. https://openai.com/blog/chatgpt
[33] OpenAI. 2023. GPT-4 Technical Report. arXiv:2303.08774
[34] Long Ouyang, Jeffrey Wu, Xu Jiang, Diogo Almeida, Carroll Wainwright, Pamela Mishkin, Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray, et al. 2022. Training language models to follow instructions with human feedback. In Advances in Neural Information Processing Systems. 27730–27744.
[35] Arka Pal, Deep Karkhanis, Manley Roberts, Samuel Dooley, Arvind Sundararajan, and Siddartha Naidu. 2023. Giraffe: Adventures in Expanding Context Lengths in LLMs. arXiv preprint arXiv:2308.10882 (2023).
[36] Joon Sung Park, Joseph C O’Brien, Carrie J Cai, Meredith Ringel Morris, Percy Liang, and Michael S Bernstein. 2023. Generative agents: Interactive simulacra of human behavior. arXiv preprint arXiv:2304.03442 (2023).
[37] Yujia Qin, Shengding Hu, Yankai Lin, Weize Chen, Ning Ding, Ganqu Cui, Zheni Zeng, Yufei Huang, Chaojun Xiao, Chi Han, et al. 2023. Tool learning with foundation models. arXiv preprint arXiv:2304.08354 (2023).
[38] Yujia Qin, Shihao Liang, Yining Ye, Kunlun Zhu, Lan Yan, Yaxi Lu, Yankai Lin, Xin Cong, Xiangru Tang, Bill Qian, et al. 2023. Toolllm: Facilitating large language models to master 16000+ real-world apis. arXiv preprint arXiv:2307.16789 (2023).
[39] Jingqing Ruan, Yihong Chen, Bin Zhang, Zhiwei Xu, Tianpeng Bao, Guoqing Du, Shiwei Shi, Hangyu Mao, Xingyu Zeng, and Rui Zhao. 2023. TPTU: Task planning and tool usage of large language model-based AI agents. arXiv preprint arXiv:2308.03427 (2023).
[40] Timo Schick, Jane Dwivedi-Yu, Roberto Dessì, Roberta Raileanu, Maria Lomeli, Luke Zettlemoyer, Nicola Cancedda, and Thomas Scialom. 2023. Toolformer: Language models can teach themselves to use tools. arXiv preprint arXiv:2302.04761 (2023).
[41] Thibault Sellam, Dipanjan Das, and Ankur Parikh. 2020. BLEURT: Learning robust metrics for text generation. In Association for Computational Linguistics. 7881–7892.
[42] Noah Shinn, Federico Cassano, Edward Berman, Ashwin Gopinath, Karthik Narasimhan, and Shunyu Yao. 2023. Reflexion: Language Agents with Verbal Reinforcement Learning. In Advances in Neural Information Processing Systems.
[43] Significant-Gravitas. 2023. AutoGPT: the heart of the open-source agent ecosystem. https://github.com/Significant-Gravitas/Auto-GPT. GitHub repository.
[44] Theodore Sumers, Shunyu Yao, Karthik Narasimhan, and Thomas L Griffiths. 2023. Cognitive architectures for language agents. arXiv preprint arXiv:2309.02427 (2023).
[45] Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, Aurelien Rodriguez, Armand Joulin, Edouard Grave, and Guillaume Lample. 2023. LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971
[46] Hugo Touvron, Louis Martin, Kevin Stone, Peter Albert, Amjad Almahairi, Yasmine Babaei, Nikolay Bashlykov, Soumya Batra, Prajjwal Bhargava, Shruti Bhosale, et al. 2023. LLaMA 2: Open foundation and fine-tuned chat models. arXiv preprint arXiv:2307.09288 (2023).
[47] Sai Vemprala, Rogerio Bonatti, Arthur Bucker, and Ashish Kapoor. 2023. Chatgpt for robotics: Design principles and model abilities. Technical Report MSR-TR2023-8, Microsoft 2 (2023), 20.
[48] Lei Wang, Chen Ma, Xueyang Feng, Zeyu Zhang, Hao Yang, Jingsen Zhang, Zhiyuan Chen, Jiakai Tang, Xu Chen, Yankai Lin, et al. 2023. A survey on large language model based autonomous agents. arXiv preprint arXiv:2308.11432 (2023).
[49] Lingzhi Wang, Nengwen Zhao, Junjie Chen, Pinnong Li, Wenchi Zhang, and Kaixin Sui. 2020. Root-cause metric location for microservice systems via log anomaly detection. In International Conference on Web Services. 142–150.
[50] Xuezhi Wang, Jason Wei, Dale Schuurmans, Quoc V Le, Ed H. Chi, Sharan Narang, Aakanksha Chowdhery, and Denny Zhou. 2023. Self-Consistency Improves Chain of Thought Reasoning in Language Models. In International Conference on Learning Representations. 1–24.
[51] Zekun Wang, Ge Zhang, Kexin Yang, Ning Shi, Wangchunshu Zhou, Shaochun Hao, Guangzheng Xiong, Yizhi Li, Mong Yuan Sim, Xiuying Chen, et al. 2023. Interactive natural language processing. arXiv preprint arXiv:2305.13246 (2023).
[52] Jason Wei, Yi Tay, Rishi Bommasani, Colin Raffel, Barret Zoph, Sebastian Borgeaud, Dani Yogatama, Maarten Bosma, Denny Zhou, Donald Metzler, et al. 2022. Emergent Abilities of Large Language Models. Transactions on Machine Learning Research (2022), 1–30.
[53] Brandon T Willard and Rémi Louf. 2023. Efficient Guided Generation for Large Language Models. arXiv e-prints (2023), arXiv–2307.
[54] Zhiheng Xi, Wenxiang Chen, Xin Guo, Wei He, Yiwen Ding, Boyang Hong, Ming Zhang, Junzhe Wang, Senjie Jin, Enyu Zhou, et al. 2023. The rise and potential of large language model based agents: A survey. arXiv preprint arXiv:2309.07864 (2023).
[55] Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik R Narasimhan, and Yuan Cao. 2023. ReAct: Synergizing Reasoning and Acting in Language Models. In International Conference on Learning Representations. 1–33.
[56] yoheinakajima. 2023. BabyAgi. https://github.com/yoheinakajima/babyagi. GitHub repository.
[57] Weizhe Yuan, Graham Neubig, and Pengfei Liu. 2021. Bartscore: Evaluating generated text as text generation. In Advances in Neural Information Processing Systems, Vol. 34. 27263–27277.
[58] Chaoli Zhang, Tian Zhou, Qingsong Wen, and Liang Sun. 2022. TFAD: A decomposition time series anomaly detection architecture with time-frequency analysis. In Proceedings of the 31st ACM International Conference on Information & Knowledge Management. 2497–2507.
[59] Chaoli Zhang, Zhiqiang Zhou, Yingying Zhang, Linxiao Yang, Kai He, Qingsong Wen, and Liang Sun. 2022. NetRCA: an effective network fault cause localization algorithm. In IEEE International Conference on Acoustics, Speech and Signal Processing. 9316–9320.
[60] Dylan Zhang, Xuchao Zhang, Chetan Bansal, Pedro Las-Casas, Rodrigo Fonseca, and Saravan Rajmohan. 2023. PACE: Prompting and Augmentation for Calibrated Confidence Estimation with GPT-4 in Cloud Incident Root Cause Analysis. arXiv preprint arXiv:2309.05833 (2023).
[61] Yingying Zhang, Zhengxiong Guan, Huajie Qian, Leili Xu, Hengbo Liu, Qingsong Wen, Liang Sun, Junwei Jiang, Lunting Fan, and Min Ke. 2021. CloudRCA: A root cause analysis framework for cloud computing platforms. In ACM International Conference on Information & Knowledge Management. 4373–4382.
[62] Lianmin Zheng, Wei-Lin Chiang, Ying Sheng, Siyuan Zhuang, Zhanghao Wu, Yonghao Zhuang, Zi Lin, Zhuohan Li, Dacheng Li, Eric Xing, et al. 2023. Judging LLM-as-a-judge with MT-Bench and Chatbot Arena. arXiv preprint arXiv:2306.05685 (2023).
[63] Xuanhe Zhou, Guoliang Li, and Zhiyuan Liu. 2023. Llm as dba. arXiv preprint arXiv:2308.05481 (2023).