Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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:
- 📦 Microsoft. Extensions.AI.Evaluation – define as abstrações principais e os tipos para dar suporte à avaliação.
- 📦 Microsoft.Extensions.AI.Evaluation.NLP - Contém avaliadores que avaliam a similaridade do texto de resposta de uma LLM a uma ou mais respostas de referência usando métricas de processamento de linguagem natural (NLP). Esses avaliadores não são baseados em LLM ou IA; eles usam técnicas tradicionais de NLP, como tokenização de texto e análise de n-grama para avaliar a similaridade de texto.
- 📦 Microsoft.Extensions.AI.Evaluation.Quality – contém os avaliadores que avaliam a qualidade das respostas LLM em um aplicativo de acordo com métricas como relevância e integralidade. Esses avaliadores usam o LLM diretamente para executar avaliações.
-
📦 Microsoft.Extensions.AI.Evaluation.Safety – contém avaliadores, como o
ProtectedMaterialEvaluatoreContentHarmEvaluator, que usam o serviço de avaliação da Microsoft Foundry para executar avaliações. - 📦 Microsoft. Extensions.AI.Evaluation.Reporting – contém suporte para armazenar em cache respostas LLM, armazenar os resultados das avaliações e gerar relatórios desses dados.
- 📦 Microsoft.Extensions.AI.Evaluation.Reporting.Azure - Suporta a biblioteca de relatórios com uma implementação para cachear respostas de LLM e armazenar os resultados da avaliação em um contêiner Armazenamento do Azure.
- 📦 Microsoft. Extensions.AI.Evaluation.Console – uma ferramenta de linha de comando para gerar relatórios e gerenciar dados de avaliação.
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.