共用方式為


Microsoft.Extensions.AI.Evaluation 程式庫

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

評估程式庫建置在 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 存放庫)。 這些範例的結構是單元測試的集合。 每個單元測試都會展示特定的概念或 API,並以先前單元測試中展示的概念和 API 為基礎。

另請參閱