智慧體課程文件

AI 智慧體可觀測性和評估

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

AI 智慧體可觀測性和評估

🔎 什麼是可觀測性?

可觀測性是指透過檢視日誌、指標和跟蹤等外部訊號來了解 AI 智慧體內部發生的情況。對於 AI 智慧體而言,這意味著跟蹤動作、工具使用、模型呼叫和響應,以除錯和改進智慧體效能。

Observability dashboard

🔭 為什麼智慧體可觀測性很重要

如果沒有可觀測性,AI 智慧體就是“黑箱”。可觀測性工具使智慧體透明,讓您能夠

  • 瞭解成本和準確性之間的權衡
  • 測量延遲
  • 檢測有害語言和提示注入
  • 監控使用者反饋

換句話說,它讓您的演示智慧體為生產環境做好了準備!

🔨 可觀測性工具

常用的 AI 智慧體可觀測性工具包括 LangfuseArize 等平臺。這些工具有助於收集詳細的跟蹤並提供儀表板以即時監控指標,從而輕鬆檢測問題並最佳化效能。

可觀測性工具的功能和能力差異很大。有些工具是開源的,受益於龐大的社群,這些社群塑造了它們的路線圖和廣泛的整合。此外,某些工具專門針對 LLMOps 的特定方面——例如可觀測性、評估或提示管理——而另一些工具旨在覆蓋整個 LLMOps 工作流程。我們鼓勵您探索不同選項的文件,以選擇最適合您的解決方案。

許多智慧體框架(例如 smolagents)使用 OpenTelemetry 標準向可觀測性工具公開元資料。除此之外,可觀測性工具還構建了自定義檢測功能,以便在快速變化的 LLM 世界中提供更大的靈活性。您應該查閱您正在使用的工具的文件,以瞭解支援的功能。

🔬 跟蹤和跨度

可觀測性工具通常將智慧體執行表示為跟蹤和跨度。

  • 跟蹤表示從開始到結束的完整智慧體任務(例如處理使用者查詢)。
  • 跨度是跟蹤中的獨立步驟(例如呼叫語言模型或檢索資料)。

Example of a smolagent trace in Langfuse

📊 要監控的關鍵指標

以下是可觀測性工具監控的一些最常見指標

延遲:智慧體的響應速度有多快?長時間的等待會嚴重影響使用者體驗。您應該透過跟蹤智慧體執行來測量任務和單個步驟的延遲。例如,如果一個智慧體對所有模型呼叫的響應時間為 20 秒,則可以透過使用更快的模型或並行執行模型呼叫來加速。

成本:每次智慧體執行的費用是多少?AI 智慧體依賴於按令牌計費的 LLM 呼叫或外部 API。頻繁的工具使用或多次提示會迅速增加成本。例如,如果一個智慧體呼叫 LLM 五次以邊際提高質量,您必須評估成本是否合理,或者是否可以減少呼叫次數或使用更便宜的模型。即時監控還可以幫助識別意外峰值(例如,導致 API 迴圈過多的錯誤)。

請求錯誤:智慧體失敗了多少請求?這可能包括 API 錯誤或失敗的工具呼叫。為了使您的智慧體在生產環境中對這些錯誤更具魯棒性,您可以設定回退或重試。例如,如果 LLM 提供商 A 停機,則切換到 LLM 提供商 B 作為備份。

使用者反饋:實施直接使用者評估提供有價值的見解。這可以包括明確的評級(👍贊/👎踩,⭐1-5 星)或文字評論。持續的負面反饋應該提醒您,因為這表明智慧體沒有按預期工作。

隱式使用者反饋:即使沒有明確的評級,使用者行為也提供間接反饋。這可能包括立即重新措辭問題、重複查詢或點選重試按鈕。例如,如果您發現使用者重複問相同的問題,這表明智慧體沒有按預期工作。

準確性:智慧體生成正確或理想輸出的頻率如何?準確性定義各不相同(例如,解決問題的正確性、資訊檢索準確性、使用者滿意度)。第一步是定義您的智慧體的成功標準。您可以透過自動化檢查、評估分數或任務完成標籤來跟蹤準確性。例如,將跟蹤標記為“成功”或“失敗”。

自動化評估指標:您還可以設定自動化評估。例如,您可以使用 LLM 來評估智慧體的輸出,例如它是否有用、準確或不準確。還有一些開源庫可以幫助您評估智慧體的不同方面。例如,用於 RAG 智慧體的 RAGAS 或用於檢測有害語言或提示注入的 LLM Guard

實際上,這些指標的組合能夠最好地涵蓋 AI 智慧體的健康狀況。在本章的 示例筆記本 中,我們將向您展示這些指標在實際示例中的樣子,但首先,我們將瞭解典型的評估工作流程。

👍 評估 AI 智慧體

可觀測性為我們提供指標,但評估是分析資料(並執行測試)以確定 AI 智慧體表現如何以及如何改進的過程。換句話說,一旦您有了這些跟蹤和指標,您如何使用它們來判斷智慧體並做出決策?

定期評估很重要,因為 AI 智慧體通常是非確定性的,並且會演變(透過更新或模型行為漂移)——如果沒有評估,您就不會知道您的“智慧智慧體”是否真的做得很好,或者它是否已經退化。

AI 智慧體的評估分為兩類:線上評估離線評估。兩者都很有價值,並且相互補充。我們通常從離線評估開始,因為這是部署任何智慧體之前最必要的步驟。

🥷 離線評估

Dataset items in Langfuse

這涉及到在受控環境中評估智慧體,通常使用測試資料集,而不是即時使用者查詢。您使用經過整理的資料集,其中您知道預期的輸出或正確的行為是什麼,然後在該資料集上執行您的智慧體。

例如,如果您構建了一個數學文字問題智慧體,您可能有一個包含已知答案的 100 個問題的 測試資料集。離線評估通常在開發期間完成(並且可以是 CI/CD 管道的一部分),以檢查改進或防止退化。好處是它可重複,並且您可以獲得清晰的準確性指標,因為您擁有真實情況。您還可以模擬使用者查詢,並根據理想答案測量智慧體的響應,或者使用上述自動化指標。

離線評估的關鍵挑戰是確保您的測試資料集全面且保持相關性——智慧體可能在固定的測試集上表現良好,但在生產環境中遇到非常不同的查詢。因此,您應該使用新的邊緣案例和反映真實世界場景的示例來更新測試集。混合小型“冒煙測試”用例和大型評估集很有用:小型集用於快速檢查,大型集用於更廣泛的效能指標。

🔄 線上評估

這指的是在即時、真實世界環境中評估智慧體,即在生產環境中的實際使用期間。線上評估涉及監控智慧體在真實使用者互動中的效能並持續分析結果。

例如,您可以跟蹤即時流量的成功率、使用者滿意度分數或其他指標。線上評估的優勢在於它捕獲了您在實驗室環境中可能無法預料的事情——您可以觀察模型隨時間的漂移(如果智慧體的有效性隨著輸入模式的變化而降低)並捕獲測試資料中沒有的意外查詢或情況。它提供了智慧體在實際環境中的真實行為。

線上評估通常涉及收集隱式和顯式使用者反饋,如前所述,並可能執行影子測試或 A/B 測試(其中新版本的智慧體並行執行以與舊版本進行比較)。挑戰在於,為即時互動獲得可靠的標籤或分數可能很棘手——您可能依賴使用者反饋或下游指標(例如使用者是否點選了結果)。

🤝 兩者結合

實際上,成功的 AI 智慧體評估融合了線上離線方法。您可以定期執行離線基準測試以定量評估智慧體在已定義任務上的表現,並持續監控即時使用情況以捕獲基準測試遺漏的問題。例如,離線測試可以捕獲程式碼生成智慧體在已知問題集上的成功率是否正在提高,而線上監控可能會提醒您使用者已經開始提出智慧體難以處理的新類問題。兩者結合可以提供更全面的情況。

事實上,許多團隊採用了一種迴圈:離線評估 → 部署新智慧體版本 → 監控線上指標並收集新的故障示例 → 將這些示例新增到離線測試集 → 迭代。透過這種方式,評估是持續且不斷改進的。

🧑‍💻 讓我們看看這在實踐中如何運作

在下一節中,我們將看到如何使用可觀測性工具來監控和評估我們的智慧體的示例。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.