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 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:
- 📦 Microsoft. Extensions.AI.Evaluation – Define as abstrações e tipos centrais para apoiar a 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 utilizando métricas de processamento de linguagem natural (PLN). 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 de LLM numa aplicação com base em métricas como relevância e completude. 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 de avaliação Microsoft Foundry para realizar avaliações. - 📦 Microsoft. Extensions.AI.Evaluation.Reporting – Contém suporte para armazenamento em cache de respostas do LLM, armazenamento dos resultados de avaliações e geração de 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 as respostas do LLM e guardar os resultados da avaliação num contêiner Armazenamento do Azure.
- 📦 Microsoft. Extensions.AI.Evaluation.Console – Uma ferramenta de linha de comandos para gerar relatórios e gerir dados de avaliação.
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:
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.