As 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 aplicações .NET inteligentes. 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 se baseiam nas abstrações Microsoft.Extensions.AI, são compostas pelos seguintes pacotes NuGet:

Integração de testes

As bibliotecas integram-se de forma fluida com aplicações .NET existentes, permitindo-lhe usar a infraestrutura de testes existente e a sintaxe familiar para avaliar aplicações 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 investigadores de ciência de dados da Microsoft e GitHub, e 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.

Para adicionar as suas próprias avaliações, implemente 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 numa resposta. Dependem do serviço Foundry Evaluation, que utiliza um modelo finamente ajustado 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 utiliza funcionalidade de cache de respostas para persistir respostas do modelo de IA numa cache. Nas execuções subsequentes, se os parâmetros do pedido (prompt e modelo) não forem alterados, fornece respostas a partir da cache para uma execução mais rápida e menor custo.

Elaboração de Relatórios

A biblioteca suporta o armazenamento de resultados de avaliação e a geração de relatórios. A imagem seguinte mostra um relatório de exemplo num pipeline Azure DevOps:

Captura de ecrã de um relatório de avaliação de IA num pipeline de Azure DevOps.

A ferramenta dotnet aieval, que é incluída no pacote Microsoft.Extensions.AI.Evaluation.Console, inclui funcionalidades para gerar relatórios e gerir os dados de avaliação armazenados e respostas em cache. Para obter mais informações, consulte Gerar um relatório.

Configuração

As bibliotecas são flexíveis e podes escolher os componentes de que precisas. Por exemplo, desative o cache de respostas ou adapte os relatórios para funcionar melhor no 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 uma visita mais abrangente às funcionalidades e APIs nas bibliotecas Microsoft.Extensions.AI.Evaluation, veja os exemplos de utilização de API no repositório dotnet/ai-samples. Estes exemplos são uma coleção de testes unitários. 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