Partilhar via


Bibliotecas Microsoft.Extensions.AI.Evaluation

As bibliotecas Microsoft.Extensions.AI.Evaluation simplificam o processo de avaliação da qualidade e segurança das respostas geradas por modelos de IA em aplicativos inteligentes .NET. Várias métricas de qualidade medem aspetos como relevância, veracidade, coerência e completude das respostas. As métricas de segurança medem aspetos como ódio e injustiça, violência e conteúdo sexual. As avaliações são cruciais nos testes, porque ajudam a garantir que o modelo de IA tenha o desempenho esperado e forneça resultados confiáveis e precisos.

As bibliotecas de avaliação, que são construídas sobre as abstrações Microsoft.Extensions.AI, são compostas pelos seguintes pacotes NuGet:

Integração de testes

As bibliotecas são projetadas para integração suave com aplicativos .NET existentes, permitindo que você aproveite as infraestruturas de teste existentes e a sintaxe familiar para avaliar aplicativos inteligentes. Você pode usar qualquer estrutura de teste (por exemplo, MSTest, xUnit ou NUnit) e fluxo de trabalho de teste (por exemplo, Test Explorer, dotnet test ou um pipeline de CI/CD). A biblioteca também oferece maneiras fáceis de fazer avaliações on-line de seu aplicativo, publicando pontuações de avaliação em painéis de telemetria e monitoramento.

Métricas de avaliação abrangentes

As bibliotecas de avaliação foram construídas em colaboração com pesquisadores de ciência de dados da Microsoft e do GitHub, e foram testadas em experiências populares do Microsoft Copilot. As seções a seguir mostram os avaliadores internos de qualidade, PNL e segurança e as métricas que eles medem.

Você também pode personalizar para adicionar suas próprias avaliações implementando a IEvaluator interface.

Avaliadores de qualidade

Os avaliadores de qualidade medem a qualidade da resposta. Eles usam um LLM para realizar a avaliação.

Tipo de avaliador Métrico Description
RelevanceEvaluator Relevance Avalia a relevância de uma resposta a uma consulta
CompletenessEvaluator Completeness Avalia o quão abrangente e precisa é uma resposta
RetrievalEvaluator Retrieval Avalia o desempenho na recuperação de informações para contexto adicional
FluencyEvaluator Fluency Avalia a precisão gramatical, o intervalo de vocabulário, a complexidade das frases e a legibilidade geral
CoherenceEvaluator Coherence Avalia a apresentação lógica e ordenada das ideias
EquivalenceEvaluator Equivalence Avalia a semelhança entre o texto gerado e sua verdade básica em relação a uma consulta
GroundednessEvaluator Groundedness Avalia o quão bem uma resposta gerada se alinha com o contexto dado
RelevanceTruthAndCompletenessEvaluator Relevance (RTC), Truth (RTC)e Completeness (RTC) Avalia o quão relevante, verdadeira e completa é uma resposta
IntentResolutionEvaluator Intent Resolution Avalia a eficácia de um sistema de IA na identificação e resolução da intenção do usuário (focado no agente)
TaskAdherenceEvaluator Task Adherence Avalia a eficácia de um sistema de IA em aderir à tarefa atribuída a ele (focado no agente)
ToolCallAccuracyEvaluator Tool Call Accuracy Avalia a eficácia de um sistema de IA no uso das ferramentas fornecidas a ele (focado no agente)

† Este avaliador é marcado como experimental.

Avaliadores de PNL

Os avaliadores de PNL avaliam a qualidade de uma resposta LLM comparando-a com uma resposta de referência usando técnicas de processamento de linguagem natural (NLP). Estes avaliadores não são baseados em LLM ou IA; em vez disso, eles usam técnicas mais antigas de PNL para realizar comparações de texto.

Tipo de avaliador Métrico Description
BLEUEvaluator BLEU Avalia uma resposta comparando-a com uma ou mais respostas de referência utilizando o algoritmo Bilingual Evaluation Understudy (BLEU). Este algoritmo é comumente usado para avaliar a qualidade de tarefas de tradução automática ou geração de texto.
GLEUEvaluator GLEU Mede a semelhança entre a resposta gerada e uma ou mais respostas de referência usando o algoritmo Google BLEU (GLEU), uma variante do algoritmo BLEU otimizada para avaliação em nível de frase.
F1Evaluator F1 Avalia uma resposta comparando-a com uma resposta de referência usando o algoritmo de pontuação F1 (a razão do número de palavras compartilhadas entre a resposta gerada e a resposta de referência).

Avaliadores de segurança

Os avaliadores de segurança verificam a presença de conteúdo prejudicial, inadequado ou inseguro em uma resposta. Dependem do serviço Foundry Evaluation, que utiliza um modelo afinado para realizar avaliações.

Tipo de avaliador Métrico Description
GroundednessProEvaluator Groundedness Pro Utiliza um modelo afinado alojado atrás do serviço de avaliação Foundry para avaliar quão bem uma resposta gerada se alinha com o contexto dado
ProtectedMaterialEvaluator Protected Material Avalia a resposta para a presença de material protegido
UngroundedAttributesEvaluator Ungrounded Attributes Avalia uma resposta para a presença de conteúdo que indica inferência infundada de atributos humanos
HateAndUnfairnessEvaluator Hate And Unfairness Avalia uma resposta para a presença de conteúdo odioso ou injusto
SelfHarmEvaluator Self Harm Avalia uma resposta para a presença de conteúdo que indique automutilação
ViolenceEvaluator Violence Avalia uma resposta para a presença de conteúdo violento
SexualEvaluator Sexual Avalia uma resposta para a presença de conteúdo sexual
CodeVulnerabilityEvaluator Code Vulnerability Avalia uma resposta para a presença de código vulnerável
IndirectAttackEvaluator Indirect Attack Avalia uma resposta para a presença de ataques indiretos, como conteúdo manipulado, intrusão e coleta de informações

† Além disso, o ContentHarmEvaluator fornece avaliação de captura única para as quatro métricas suportadas por HateAndUnfairnessEvaluator, SelfHarmEvaluator, ViolenceEvaluator, e SexualEvaluator.

Respostas armazenadas em cache

A biblioteca usa a funcionalidade de cache de resposta , o que significa que as respostas do modelo de IA são persistidas em um cache. Em execuções subsequentes, se os parâmetros de solicitação (prompt e modelo) estiverem inalterados, as respostas serão servidas do cache para permitir uma execução mais rápida e menor custo.

Elaboração de Relatórios

A biblioteca contém suporte para armazenar resultados de avaliação e gerar relatórios. A imagem a seguir mostra um relatório de exemplo em um pipeline de DevOps do Azure:

Captura de tela de um relatório de avaliação de IA em um pipeline de DevOps do Azure.

A dotnet aieval ferramenta, que é fornecida como parte do Microsoft.Extensions.AI.Evaluation.Console pacote, inclui funcionalidade para gerar relatórios e gerenciar os dados de avaliação armazenados e as respostas armazenadas em cache. Para obter mais informações, consulte Gerar um relatório.

Configuração

As bibliotecas foram concebidas para serem flexíveis. Você pode escolher os componentes que você precisa. Por exemplo, você pode desabilitar o cache de respostas ou personalizar os relatórios para funcionar melhor em seu ambiente. Você também pode personalizar e configurar suas avaliações, por exemplo, adicionando métricas personalizadas e opções de relatórios.

Samples

Para obter um tour mais abrangente das funcionalidades e APIs disponíveis nas bibliotecas Microsoft.Extensions.AI.Evaluation, consulte os exemplos de uso da API (dotnet/ai-samples repo). Estes exemplos são estruturados como uma coleção de testes de unidade. Cada teste de unidade mostra um conceito específico ou API e se baseia nos conceitos e APIs apresentados em testes de unidade anteriores.

Consulte também