Microsoft.Extensions.AI.評估庫簡化了評估 AI 模型在 .NET 智慧應用程式中產生的回應的品質和安全性的過程。 各種品質指標衡量回應的相關性、真實性、連貫性和完整性等方面。 安全指標衡量仇恨和不公平、暴力和色情內容等方面。 評估在測試中至關重要,因為它們有助於確保人工智慧模型按預期運行並提供可靠和準確的結果。
評估函式庫建立在 Microsoft.Extensions.AI 抽象架構,由以下 NuGet 套件組成:
- 📦 Microsoft。Extensions.AI.Evaluation – 定義支援評估的核心抽象與類型。
- 📦Microsoft.Extensions.AI.Evaluation.NLP - 包含評測器,利用自然語言處理(NLP)指標評估LLM的回應文本與一個或多個參考回應的相似度。 這些評估者不是基於 LLM 或 AI 的;他們使用傳統的 NLP 技術(例如文字標記化和 n-gram 分析)來評估文字相似性。
- 📦 Microsoft。Extensions.AI.Evaluation.Quality – 包含評估器根據相關性與完整性等指標評估應用程式中LLM回應的品質。 這些評估人員直接使用 LLM 來執行評估。
-
📦 Microsoft.Extensions.AI.Evaluation.Safety – 包含一些評估器,例如 和
ProtectedMaterialEvaluator,這些評估器使用ContentHarmEvaluator評估服務進行評估。 - 📦 Microsoft.Extensions.AI.Evaluation.Reporting – 包含對大型語言模型回應的快取支援、評估結果的儲存,並能從這些資料生成報告。
- 📦 Microsoft.Extensions.AI.Evaluation.Reporting.Azure - 支援報告函式庫,提供快取 LLM 回應及將評估結果儲存在 Azure 儲存體 容器中的實作。
- 📦 Microsoft。Extensions.AI.Evaluation.Console – 用於產生報告和管理評估資料的命令列工具。
測試整合
這些函式庫能順利整合現有的 .NET 應用程式,讓你能利用現有的測試基礎設施和熟悉的語法來評估智慧應用程式。 您可以使用任何測試架構 (例如 MSTest、 xUnit 或 NUnit) 和測試工作流程 (例如, 測試總管、 dotnet test 或 CI/CD 管線) 。 程式庫也提供簡單的方法,藉由將評估分數發佈至遙測和監視儀錶板,對應用程式進行線上評估。
綜合評估指標
這些評估函式庫是與 Microsoft 和 GitHub 的資料科學研究人員合作打造,並在熱門的 Microsoft Copilot 體驗中進行測試。 下列各節顯示內建 品質、 NLP和安全評估 器,以及它們所測量的指標。
要加入你自己的評估,請實作介面 IEvaluator 。
品質評估員
品質評估員衡量回應品質。 他們使用 LLM 來執行評估。
| 評估器類型 | 計量 | Description |
|---|---|---|
| RelevanceEvaluator | Relevance |
評估回應與查詢的相關性 |
| CompletenessEvaluator | Completeness |
評估回應的全面性和準確性 |
| RetrievalEvaluator | Retrieval |
評估檢索資訊以提供附加背景的效能 |
| FluencyEvaluator | Fluency |
評估語法準確性、詞彙範圍、句子複雜性和整體可讀性 |
| CoherenceEvaluator | Coherence |
評估想法的邏輯和有序的表達 |
| EquivalenceEvaluator | Equivalence |
評估產生的文字與其查詢的基本事實之間的相似性 |
| GroundednessEvaluator | Groundedness |
評估生成的回應與給定上下文的一致性 |
| RelevanceTruthAndCompletenessEvaluator† |
Relevance (RTC)、Truth (RTC) 和 Completeness (RTC) |
評估回應的相關性、真實性和完整性 |
| IntentResolutionEvaluator | Intent Resolution |
評估 AI 系統在識別和解決用戶意圖方面的有效性(以代理為中心) |
| TaskAdherenceEvaluator | Task Adherence |
評估 AI 系統在遵守分配給它的任務方面的有效性(以代理為中心) |
| ToolCallAccuracyEvaluator | Tool Call Accuracy |
評估 AI 系統使用提供給其的工具的有效性(以代理為中心) |
† 此評估器被標記為 實驗性。
NLP 評估員
NLP 評估者透過使用自然語言處理 (NLP) 技術將 LLM 回應與參考回應進行比較來評估 LLM 回應的品質。 這些評估者不是基於 LLM 或 AI 的;相反,他們使用較舊的 NLP 技術來執行文字比較。
| 評估器類型 | 計量 | Description |
|---|---|---|
| BLEUEvaluator | BLEU |
使用雙語評估替代(BLEU)演算法,將一個回應與一個或多個參考回應進行比較,以評估回應。 此演算法通常用於評估機器翻譯或文字產生任務的品質。 |
| GLEUEvaluator | GLEU |
使用 Google BLEU (GLEU) 演算法來測量產生的回應與一或多個參考回應之間的相似性,這是 BLEU 演算法的變體,針對句子層級評估進行了最佳化。 |
| F1Evaluator | F1 |
使用 F1 評分演算法 (產生的回應與參考回應之間的共用字數之比) 將回應與參考回應進行比較,以評估回應。 |
安全評估員
安全評估員會檢查回應中是否存在有害、不當或不安全的內容。 他們依賴 Foundry 評估服務,該服務使用經過微調的模型來執行評估。
| 評估器類型 | 計量 | Description |
|---|---|---|
| GroundednessProEvaluator | Groundedness Pro |
使用由 Foundry 評估服務背後託管的微調模型,評估生成的回應與特定情境的契合程度 |
| ProtectedMaterialEvaluator | Protected Material |
評估反應中是否存在受保護材料 |
| UngroundedAttributesEvaluator | Ungrounded Attributes |
評估回應中是否存在指示無根據的人類屬性推論的內容 |
| HateAndUnfairnessEvaluator† | Hate And Unfairness |
評估回應是否存在仇恨或不公平的內容 |
| SelfHarmEvaluator† | Self Harm |
評估回應內容是否顯示自殘傾向 |
| ViolenceEvaluator† | Violence |
評估回應中是否存在暴力內容 |
| SexualEvaluator† | Sexual |
評估回應中的色情內容是否存在 |
| CodeVulnerabilityEvaluator | Code Vulnerability |
評估回應是否存在易受攻擊的程式碼 |
| IndirectAttackEvaluator | Indirect Attack |
評估回應中是否存在間接攻擊,例如內容操控、入侵和資訊蒐集。 |
† 此外,ContentHarmEvaluator 還提供 HateAndUnfairnessEvaluator、SelfHarmEvaluator、ViolenceEvaluator 和 SexualEvaluator 所支援的四個指標的單次評估。
快取回應
函式庫利用 回應快取 功能,將 AI 模型的回應持續保存在快取中。 在後續執行中,若請求參數(提示符與模型)不變,則會從快取中提供回應,以加快執行速度並降低成本。
報告
圖書館支援儲存評估結果及產生報告。 以下圖片展示了 Azure DevOps 管線中的一份範例報告:
dotnet aieval 工具隨 Microsoft.Extensions.AI.Evaluation.Console 套件一併推出,包含產生報告及管理儲存的評估資料與快取回應的功能。 如需詳細資訊,請參閱 產生報告。
設定
這些函式庫很彈性,你可以選擇需要的元件。 例如,關閉回應快取或調整報告以符合你的環境。 您也可以自訂和設定您的評估,例如,透過新增自訂指標和報告選項。
Samples
若要更全面地了解 Microsoft.Extensions.AI.Evaluation 函式庫的功能和 API,請參見 API 使用範例(dotnet/ai-samples repo)。 這些範例是一系列單元測試。 每個單元測試都會展示特定的概念或 API,並以先前單元測試中展示的概念和 API 為基礎。