As bibliotecas Microsoft.Extensions.AI.Evaluation

As bibliotecas Microsoft.Extensions.AI.Evaluation simplificam o processo de avaliar a qualidade e a segurança das respostas geradas por modelos de IA em aplicativos inteligentes .NET. Várias métricas de qualidade medem aspectos como relevância, veracidade, coerência e integridade das respostas. As métricas de segurança medem aspectos como ódio e injustiça, violência e conteúdo sexual. As avaliações são cruciais no teste, pois ajudam a garantir que o modelo de IA seja executado conforme o 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 teste

As bibliotecas se integram sem problemas aos aplicativos .NET existentes, permitindo que você use a infraestrutura de teste existente e a sintaxe familiar para avaliar aplicativos inteligentes. Você pode usar qualquer estrutura de teste (por exemplo, MSTest, xUnit ou NUnit) e o fluxo de trabalho de teste (por exemplo, Gerenciador de Testes, teste de dotnet ou um pipeline de CI/CD). A biblioteca também fornece maneiras fáceis de fazer avaliações online 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 criadas em colaboração com pesquisadores de ciência de dados de Microsoft e GitHub, e foram testadas em experiências populares de Microsoft Copilot. As seções a seguir mostram os avaliadores internos de qualidade, NLP e segurança e as métricas que eles medem.

Para adicionar suas próprias avaliações, implemente a IEvaluator interface.

Avaliadores de qualidade

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

Tipo de avaliador Métrica Description
RelevanceEvaluator Relevance Avalia o quão relevante é 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 da frase e a legibilidade geral
CoherenceEvaluator Coherence Avalia a apresentação lógica e ordenada de ideias
EquivalenceEvaluator Equivalence Avalia a similaridade 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 fornecido
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 (com foco no agente)
TaskAdherenceEvaluator Task Adherence Avalia a eficácia de um sistema de IA ao aderir à tarefa atribuída a ele (com foco no agente)
ToolCallAccuracyEvaluator Tool Call Accuracy Avalia a eficácia de um sistema de IA ao usar as ferramentas fornecidas a ele (com foco no agente)

† Esse avaliador está marcado como experimental.

Avaliadores de NLP

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

Tipo de avaliador Métrica Description
BLEUEvaluator BLEU Avalia uma resposta comparando-a a uma ou mais respostas de referência usando o algoritmo de subestudo de avaliação bilíngue (BLEU). Esse algoritmo geralmente é usado para avaliar a qualidade das tarefas de conversão de máquina ou geração de texto.
GLEUEvaluator GLEU Mede a similaridade entre a resposta gerada e uma ou mais respostas de referência usando o algoritmo GLEU (BLEU) do Google, uma variante do algoritmo BLEU otimizada para avaliação no nível da sentença.
F1Evaluator F1 Avalia uma resposta comparando-a a uma resposta de referência usando o algoritmo de pontuação F1 (a proporçã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 nocivo, inadequado ou não seguro em uma resposta. Eles dependem do serviço de Avaliação do Foundry, que usa um modelo ajustado para executar avaliações.

Tipo de avaliador Métrica Description
GroundednessProEvaluator Groundedness Pro Usa um modelo afinado hospedado atrás do serviço de Avaliação da Foundry para avaliar quão bem uma resposta gerada se alinha com o contexto fornecido.
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 não fundamentada 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 indica 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, ContentHarmEvaluator fornece uma avaliação única para as quatro métricas compatíveis com HateAndUnfairnessEvaluator, SelfHarmEvaluator e ViolenceEvaluator, SexualEvaluator.

Respostas armazenadas em cache

A biblioteca usa a funcionalidade de cache de resposta para persistir respostas do modelo de IA em um cache. Nas execuções subsequentes, se os parâmetros de solicitação (prompt e modelo) não forem alterados, ele fornecerá respostas do cache para execução mais rápida e menor custo.

Reportagem

A biblioteca dá suporte ao armazenamento de resultados de avaliação e à geração de relatórios. A imagem a seguir mostra um relatório de exemplo em um pipeline de Azure DevOps:

Captura de tela de um relatório de avaliação de Inteligência Artificial em um pipeline do Azure DevOps.

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

Configuração

As bibliotecas são flexíveis e você pode escolher os componentes necessários. Por exemplo, desabilite o cache de resposta ou adapte 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ório.

Samples

Para obter um tour mais abrangente da funcionalidade e das APIs nas bibliotecas Microsoft.Extensions.AI.Evaluation, consulte os exemplos de uso de API no repositório dotnet/ai-samples. Esses exemplos são uma coleção de testes de unidade. Cada teste de unidade mostra um conceito ou API específico e se baseia nos conceitos e APIs exibidos em testes de unidade anteriores.

Consulte também