Microsoft.Extensions.AI.Evaluation 函式庫

Microsoft.Extensions.AI.評估庫簡化了評估 AI 模型在 .NET 智慧應用程式中產生的回應的品質和安全性的過程。 各種品質指標衡量回應的相關性、真實性、連貫性和完整性等方面。 安全指標衡量仇恨和不公平、暴力和色情內容等方面。 評估在測試中至關重要,因為它們有助於確保人工智慧模型按預期運行並提供可靠和準確的結果。

評估函式庫建立在 Microsoft.Extensions.AI 抽象架構,由以下 NuGet 套件組成:

測試整合

這些函式庫能順利整合現有的 .NET 應用程式,讓你能利用現有的測試基礎設施和熟悉的語法來評估智慧應用程式。 您可以使用任何測試架構 (例如 MSTestxUnitNUnit) 和測試工作流程 (例如, 測試總管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 還提供 HateAndUnfairnessEvaluatorSelfHarmEvaluatorViolenceEvaluatorSexualEvaluator 所支援的四個指標的單次評估。

快取回應

函式庫利用 回應快取 功能,將 AI 模型的回應持續保存在快取中。 在後續執行中,若請求參數(提示符與模型)不變,則會從快取中提供回應,以加快執行速度並降低成本。

報告

圖書館支援儲存評估結果及產生報告。 以下圖片展示了 Azure DevOps 管線中的一份範例報告:

Azure DevOps 流程中 AI 評估報告的截圖。

dotnet aieval 工具隨 Microsoft.Extensions.AI.Evaluation.Console 套件一併推出,包含產生報告及管理儲存的評估資料與快取回應的功能。 如需詳細資訊,請參閱 產生報告

設定

這些函式庫很彈性,你可以選擇需要的元件。 例如,關閉回應快取或調整報告以符合你的環境。 您也可以自訂和設定您的評估,例如,透過新增自訂指標和報告選項。

Samples

若要更全面地了解 Microsoft.Extensions.AI.Evaluation 函式庫的功能和 API,請參見 API 使用範例(dotnet/ai-samples repo)。 這些範例是一系列單元測試。 每個單元測試都會展示特定的概念或 API,並以先前單元測試中展示的概念和 API 為基礎。

另請參閱