Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
- 📦 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 semelhança do texto de resposta de um LLM com uma ou mais respostas de referência usando métricas de processamento de linguagem natural (NLP). Estes avaliadores não são baseados em LLM ou IA; eles usam técnicas tradicionais de PNL, como tokenização de texto e análise de n-gramas, para avaliar a semelhança do texto.
- 📦 Microsoft.Extensions.AI.Evaluation.Quality – Contém avaliadores que avaliam a qualidade das respostas LLM em um aplicativo de acordo com métricas como relevância e integridade. Estes avaliadores usam o LLM diretamente para realizar avaliações.
-
📦 Microsoft.Extensions.AI.Evaluation.Safety – Contém avaliadores, como o
ProtectedMaterialEvaluatoreContentHarmEvaluator, que utilizam o serviço Microsoft Foundry Evaluation para realizar 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 a partir desses dados.
- 📦 Microsoft.Extensions.AI.Evaluation.Reporting.Azure - Suporta a biblioteca de relatórios com uma implementação para armazenar em cache respostas LLM e armazenar os resultados da avaliação em um container de Armazenamento 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 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:
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.