Microsoft.Extensions.AI.Evaluation 라이브러리

Microsoft. Extensions.AI.Evaluation 라이브러리는 .NET 지능형 앱에서 AI 모델에서 생성된 응답의 품질과 안전성을 평가하는 프로세스를 간소화합니다. 다양한 품질 메트릭은 응답의 관련성, 진실성, 일관성 및 완전성과 같은 측면을 측정합니다. 안전 메트릭은 증오와 불공정, 폭력 및 성적 콘텐츠와 같은 측면을 측정합니다. 평가는 AI 모델이 예상대로 수행되고 안정적이고 정확한 결과를 제공하는 데 도움이 되므로 테스트에 매우 중요합니다.

Microsoft.Extensions.AI 추상화 기반으로 빌드되는 평가 라이브러리는 다음 NuGet 패키지로 구성됩니다.

테스트 통합

라이브러리는 기존 .NET 앱과 원활하게 통합되므로 기존 테스트 인프라 및 친숙한 구문을 사용하여 지능형 앱을 평가할 수 있습니다. 모든 테스트 프레임워크(예: MSTest, xUnit 또는 NUnit) 및 테스트 워크플로(예: 테스트 탐색기, dotnet 테스트 또는 CI/CD 파이프라인)를 사용할 수 있습니다. 또한 라이브러리는 평가 점수를 원격 분석에 게시하고 대시보드를 모니터링하여 애플리케이션의 온라인 평가를 쉽게 수행할 수 있는 방법을 제공합니다.

포괄적인 평가 메트릭

평가 라이브러리는 Microsoft 및 GitHub 데이터 과학 연구원과 공동으로 빌드되었으며 인기 있는 Microsoft Copilot 환경에서 테스트되었습니다. 다음 섹션에서는 기본 제공 품질, NLP안전 평가자와 측정한 메트릭을 보여 줍니다.

자신만의 평가를 추가하려면 IEvaluator 인터페이스를 구현하십시오.

품질 평가자

품질 평가자는 응답 품질을 측정합니다. LLM을 사용하여 평가를 수행합니다.

평가자 유형 Metric 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 또는 AI 기반이 아닙니다. 대신 이전 NLP 기술을 사용하여 텍스트 비교를 수행합니다.

평가자 유형 Metric Description
BLEUEvaluator BLEU BLEU(이중 언어 평가 언더스터디) 알고리즘을 사용하여 하나 이상의 참조 응답과 비교하여 응답을 평가합니다. 이 알고리즘은 일반적으로 기계 번역 또는 텍스트 생성 작업의 품질을 평가하는 데 사용됩니다.
GLEUEvaluator GLEU 문장 수준 평가에 최적화된 BLEU 알고리즘의 변형인 Google BLEU(GLEU) 알고리즘을 사용하여 생성된 응답과 하나 이상의 참조 응답 간의 유사성을 측정합니다.
F1Evaluator F1 F1 점수 매기기 알고리즘(생성된 응답과 참조 응답 간의 공유 단어 수 비율)을 사용하여 응답을 참조 응답과 비교하여 응답을 평가합니다.

안전 평가자

안전 평가자는 응답에서 유해하거나 부적절하거나 안전하지 않은 콘텐츠가 있는지 확인합니다. 이 서비스는 평가를 수행하기 위해 미세 조정된 모델을 사용하는 Foundry 평가 서비스를 사용합니다.

평가자 유형 Metric 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 조작된 콘텐츠, 침입 및 정보 수집과 같은 간접 공격의 존재에 대한 응답을 평가합니다.

ContentHarmEvaluatorHateAndUnfairnessEvaluator, SelfHarmEvaluator, ViolenceEvaluator, SexualEvaluator에서 지원하는 네 가지 메트릭에 대해 일괄 평가 기능을 제공합니다.

캐시된 응답

라이브러리는 응답 캐싱 기능을 사용하여 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를 기반으로 합니다.

참고하십시오