解讀大模型應用的可觀測性
似乎在一夜之間,每個 IT 企業的待辦事項清單以及招聘啓事都包含了生成式 AI,基於大模型的應用已經在改變人們的工作、學習、寫作、設計、編碼、旅行和購物的方式,而且可能只是冰山一角。
大模型應用並不神祕,仍然是一種軟件系統。就像使用一個庫或者 web 服務,以及 SaaS 乃至雲計算服務,我們需要對庫、服務、SaaS 以及平臺進行評估、監控和追蹤,這可以被粗略地認爲是它們的可觀測性。對大模型應用而言,也是如此。
- 大模型應用的評估
如果評估一個傳統的機器學習模型,我門一般會檢查模型的輸出或預測的準確性。這通常會用很多衆所周知的度量指標來衡量,如準確率、精確率、 RMSE、 AUC、召回率等等,詳見《機器學習模型性能的 10 個指標》。在處理時間序列數據時,我們可能會使用特定於該領域的指標,如 MAE 或 MAPE。而對於自然語言處理任務,BLEU、ROUGE 或 Perplexity 等指標可能更爲適用。
但是,大模型的評估要複雜得多,這裏嘗試列出常見的幾種方法。
1.1 分類與迴歸度量
雖然大模型大模型在某些方面與傳統的機器學習模型有所不同,但在評估方法上仍然可以借鑑傳統機器學習模型的經驗。
大模型能夠生成數值預測或分類標籤,使得評估過程變得相對直接。在這種情況下,我們可以採用與傳統機器學習模型相同的評估方法。例如,對於二分類問題,我們可以計算模型的準確度、精確度、召回率和 F1 分數;對於多分類問題,我們可以使用每個類別的精確度、召回率和 F1 分數,以及整體的準確度;對於迴歸問題,我們可以使用 MSE、RMSE 和 MAE 等指標。
爲了提高評估效率,我們可以採用並行計算或分佈式計算等技術來加速評估過程。另外,由於大模型的輸出具有隨機性,即使在相同的輸入下,也可能得到不同的預測結果。因此,在評估大模型時,我們需要多次運行模型並計算平均值,以獲得更穩定和可靠的評估結果。
1.2 基於獨立文本的度量
在缺乏可靠數據來源的情況下,基於獨立文本的度量工具對於評估大型模型生成的文本輸出顯得尤爲重要。這類工具能夠從不同維度對文本的質量進行量化分析,幫助我們判斷模型輸出的可靠性和有效性。例如,Perplexity (https://huggingface.co/spaces/evaluate-metric/perplexity) 這個工具可以被用於測量模型生成輸入文本序列的可能性,並且可以被認爲是評估模型學習文本的效果,還包括了閱讀水平和非字母字符。
一個更復雜方法包括從模型輸出中提取嵌入並分析那些針對異常模式的嵌入。這可以通過檢查三維 圖像中的嵌入圖手動完成。通過性別、預測類別或困惑評分等關鍵領域的着色或比較,可以揭示 大模型 應用中潛在的問題,並提供偏見和可解釋性的度量。通過聚合嵌入向量,並將它們映射到三維空間,現有的一些軟件工具允許以這種方式可視化嵌入。例如 HDBSCAN 、UMAP 以及 K-means 等方法。
除了可視化方法,還可以在生成嵌入的過程中運行一個異常檢測算法來尋找異常值。
1.3 評估數據集
在評估大型語言模型的文本輸出質量時,一個可行的方法是使用帶有可信數據標籤的評估數據集來進行比較。這種方法的核心在於比較模型生成的文本與已知的、經過人工審覈的回覆之間的一致性和質量。
我們需要選擇一個合適的數據集,該數據集應該包含豐富多樣的文本示例,並且每個示例都有相應的數據標籤,這些標籤通常是由領域專家或經驗豐富的數據工程師給出的。這些標籤反映了文本的質量、準確性、風格等方面的標準,可以作爲我們評估模型文本輸出的依據。
一個衆所周知的例子是 ROUGE 指標。面對機器翻譯的場景,ROUGE 依賴於一個參考數據集,該數據集的答案將與被評估的大模型 進行比較。可以根據參考數據集計算相關性、準確性和大量其他指標。嵌入在該評估方法中起着關鍵的作用, J-S 距離、 Hellinger 距離、 KS 距離和 PSI 這樣的標準距離度量將 大模型 輸出嵌入與評估數據集的嵌入進行比較。
最後,還有一些被廣泛接受的 大模型 基準測試,斯坦福的 HELM 網站(https://crfm.stanford.edu/helm)提供了更多的參考信息。
1.4 基於大模型的評估器
使用一個大模型來評估另一個大模型,這種方式被許多人認爲是目前最好的方向之一,具體可以參考《大模型應用的 10 種架構模式》一文中的紅藍雙評架構模式。在這種模式下,兩個大模型相互獨立,一個作爲評估者,另一個作爲被評估的模型,通過比較兩者的輸出結果來衡量被評估模型的性能。這種模式的優勢在於,它可以充分利用大模型的強大能力,可能提供更加全面和深入的評估結果。
例如,我們依賴於一個大模型評估器來判斷一個大模型的輸出是否有 “毒”, 例如 Hugging Face 推薦使用的 roberta-hate-speech-dynabench-r4) 。在這裏,我們將“ 大模型 評估器” 的輸出作爲參考,評估數據集下面的所有指標都適用。
基於大模型的評估器可能會成爲大模型評估的主要方法之一,它不僅可以提供客觀公正的評估結果,還可以提高評估效率,降低評估成本。
1.5 人工反饋
前面四種評估方法的重點都放在可衡量的指標上,這些指標有助於我們快速瞭解模型的性能和效果。然而,人工反饋仍然在其中發揮着不可或缺的作用。與冷冰冰的數據不同,人工反饋能夠提供更多的維度,幫助我們更全面地瞭解模型的表現,發現潛在的問題和改進空間。
在構建大型機器學習模型應用的早期階段,數據科學家和工程師通常會使用人工反饋來輔助模型的調整和優化。他們可以通過觀察模型的輸出,與人工標註的結果進行對比,從而發現問題所在,並對模型進行相應的調整。這種人工反饋的方式雖然耗時耗力,但往往能夠獲得更爲準確和深入的評估結果。
爲了提高人工反饋的效率和便捷性,大模型的可觀測性軟件通常提供一個接口,用於收集和整理人工反饋。這個接口可以幫助數據科學家和工程師更方便地提交反饋,同時也使得反饋的過程更加標準化和規範化。通過這種方式,我們可以更好地利用人工反饋來優化模型的性能。
除了在早期的開發過程中使用人工反饋外,將人工反饋納入最終的評估過程也是一種最佳實踐。
- 大模型應用的追蹤
系統跟蹤作爲監控的前奏,對於大模型應用來說尤爲重要。通過深入跟蹤大模型的運行細節,我們能夠發現一些細微的差別,從而更準確地把握模型的性能和狀況。在實現系統跟蹤時,我們可以採用一種簡單而有效的方式,即捕獲請求數、響應時間、令牌使用、成本和錯誤率等關鍵指標。
這些指標雖然看似簡單,但卻能夠爲我們提供關於大模型運行狀態的重要信息。例如,請求數可以反映模型的訪問量和負載情況;響應時間則能夠衡量模型的處理速度和效率;令牌使用則涉及到模型的資源消耗情況;成本則直接關聯到模型的運行效益;錯誤率則能夠反映出模型的準確性和穩定性。
爲了實現對這些指標的有效跟蹤,我們可以結合使用標準的系統監控工具配合具體的大模型選項。標準的系統監控工具可以幫助我們瞭解系統的整體運行狀況,而針對大模型的特定選項則能夠更深入地分析模型的運行細節。
通過捕捉輸入提示與輸出響應,我們能夠洞察模型行爲,爲未來分析提供寶貴數據。這看似簡單,實則涉及被忽視的複雜性。在討論或記錄大型模型時,許多數據科學家常忽略這些細節。我們面對的是一個由一個或多個大型模型、預設的指令提示詞和協同工作的代理組成的應用程序。一些大型模型應用程序相對簡單,但許多應用高度複雜,且日益增加。在調試過程中,瞭解每一步的狀態及順序至關重要。因此,從業人員需藉助能揭示並解開這些複雜性的軟件工具。
- 大模型應用的監控
雖然大多數 大模型 應用至少經歷了某種形式的評估,但較少有實現了連續監視的應用。我們分解監視的組成部分,試圖構建一個面向大模型應用的監視系統,進而實現其完整的可觀測性。一個面向大型模型應用的監視系統應該能夠實時收集和分析模型的運行數據,包括輸入、輸出、性能指標等。這些數據可以幫助我們瞭解模型的實時狀態,發現潛在的問題和瓶頸。我們還需要建立一個完善的監控機制,以確保監視系統的正常運行和及時響應。這可能包括設置合理的監控指標和閾值、制定有效的警報和處理流程、以及建立定期審查和更新機制等。
在這裏,老碼農僅對需要監控的維度作簡要的探討。
3.1 功能性監控
爲了確保大型模型應用的性能和穩定性,我們應當具備持續監控關鍵性能指標的能力。這些指標包括了先前討論的請求數、響應時間、令牌使用量、成本以及錯誤率,它們都是能夠較爲容易地獲得的成果。通過對這些指標進行實時的監控,我們可以及時瞭解到系統的運行狀況,進而作出相應的調整和優化。
3.2 提示詞監控
在確保安全合規的前提下,我們還需對用戶在一定時間內提供的提示或輸入進行持續監控。其中,衡量用戶輸入與預設提示詞庫之間距離的指標尤爲重要。儘管大型模型應用能夠處理各種預料之外的提示詞,但瞭解客戶與應用之間的交互是新產品的創新點還是隨時間發生的變化仍然至關重要。
針對這一問題,我們有必要引入一個全新的評估類別——惡意提示詞注入。這一評估在初步的測試中往往被忽視。通過與已知的對抗性提示詞數據集進行比對,我們可能能夠識別出那些潛在的惡意參與者。同時,大型模型評估器也應具備區分惡意提示詞與非惡意提示詞的能力。
3.3 響應監控
當我們將大型模型應用所生成的內容與預期結果進行對比時,可以採用多種有效的檢查方法。例如,我們可以觀察模型是否對相關內容產生了適當的反應,或者它是否產生了幻覺;我們還可以檢查模型的輸出是否偏離了預期的話題;此外,我們還需判斷模型的響應是否正確,以及這些響應是否隨着時間的推移而發生了變化。
在部署大型模型應用的過程中,毒性和有害輸出始終是我們需要特別關注的問題。前面提到的嵌入可視化技術或許可以在 root cause 方面發揮重要作用。
此外,提示詞泄露也是潛在的風險之一。爲了防範這一問題,我們可以監控模型的響應,並將其與提示詞數據庫進行比對。通過衡量嵌入與提示詞之間的距離,我們能夠較爲有效地發現這類問題。一旦發現問題,我們就可以針對這些特定的提示詞對模型進行微調,以確保其正常運行。
3.4 閾值和警報
我們必須確保設定的閾值和警告系統不會頻繁觸發虛假報警。然而,到目前爲止,關於如何設定錯誤報警率或閾值的最佳實踐尚未出現。
許多監控系統提供了與 Slack、企業微信或釘釘等信息源的集成功能,這使得當輸入的提示詞觸發警報時,可以自動阻止響應。這種能力同樣適用於在將響應發送給用戶之前,篩選出可能涉及隱私信息泄露、有害內容或其他質量指標的問題。
此外,由於我們的大型模型應用可能具有獨特性,因此需要具備自定義度量標準的靈活性,以適應不同的場景和需求。
3.5 UI 監控
如果系統具備監控功能,那麼用戶界面上也應當展示度量指標的時間序列圖。這種 UI 設計能夠讓用戶深入研究警報趨勢,從而更準確地區分不同的根因分析。
一個成熟的產品應該能夠支持用戶、項目和團隊通過基於角色的訪問控制(RBAC)對監控數據進行分組管理。這樣的工具可以確保每位成員只能訪問到自己權限範圍內的數據,這在當今許多組織中是非常重要的。
- 小結
如果大模型應用的可觀察性未被置於產品規劃的核心位置,衆多利益相關方將面臨過高的風險。企業快速且持續地採納人工智能技術,可能成爲其成功與失敗的關鍵因素。一個成熟的人工智能框架,以及針對大模型應用制定的詳盡的可觀察性技術路線圖,爲我們提供了堅實的基礎,使我們能夠推出規模更大、效果更佳且更爲安全的產品。
本文這涉及的工具、技術和度量指標,或許可以視爲實現大模型應用可觀測性的基石。基於此,我們可以對每一個概念展開更加深入的研究與實踐。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/SZSasAURZez8Y5O7Lr5rVw