Skip to main content

Como avaliar modelos de IA

Testar e comparar saídas de modelo de IA usando avaliadores e métricas de pontuação em GitHub Models.

Visão geral

          GitHub Models fornece um fluxo de trabalho de avaliação simples que ajuda os desenvolvedores a comparar LLMs (modelos de linguagem grandes), refinar prompts e tomar decisões controladas por dados dentro da GitHub plataforma. Você pode usar para experimentar GitHub Models novos recursos ou validar alterações de modelo analisando o desempenho, a precisão e o custo por meio de ferramentas de avaliação estruturadas.

Dica

Execute avaliações diretamente na linha de comando usando o comando gh models eval. Ele usa os mesmos avaliadores que a interface do usuário: correspondência de string, similaridade, avaliadores LLM-as-a-judge personalizados e muito mais, para que você possa testar seu arquivo .prompt.yml localmente ou em CI.

Casos de uso para GitHub Models

O comportamento do modelo pode variar muito com base no prompt, entrada ou configuração. GitHub Models ajuda você a:

  • Teste e compare vários LLMs em condições realistas de uso.
  • Otimizar o fraseado, a temperatura e outros parâmetros de prompt.
  • Avaliar saídas de modelo usando métricas estruturadas e repetíveis.
  • Faça do desenvolvimento de IA parte integrante do seu fluxo de trabalho de desenvolvimento.

Cenário de exemplo

Considere um cenário em que você está criando um recurso para resumir os comentários dos clientes enviados por meio de tíquetes de suporte. Esses resumos serão usados para gerar relatórios internos e tíquetes, portanto, a saída precisa ser clara, relevante e concisa.

Você deseja:

  • Experimente diferentes modelos e configurações de prompt.
  • Avalie a configuração de melhor desempenho com base na qualidade, na consistência e na eficiência.
  • Salve a configuração em seu repositório para reutilização e colaboração.

Teste de prompt no Playground

Para se familiarizar com como criar e gerenciar prompts GitHub Models, consulte Testar um prompt no Playground.

O Playground permite comparar modelos lado a lado, ajustar seus parâmetros e testar variações de prompt.

Nesta etapa, você configurará um modelo para gerar resumos para comentários de suporte ao cliente. Você definirá um prompt do sistema, o testará com uma entrada de exemplo e o refinará para garantir que a saída seja concisa e relevante.

Como definir o prompt do sistema

Defina o comportamento do modelo para sua meta atual. Nesse caso, a meta é resumir os comentários dos clientes. Em Parameters, insira o seguinte prompt do sistema:

You are a helpful assistant that summarizes support ticket responses into concise summaries.

Deixe as outras configurações com seus valores padrão.

Captura de tela do prompt do sistema. A entrada do prompt do sistema está realçada.

Como escrever um prompt de usuário

Agora que o modelo está configurado, insira os seguintes comentários do cliente na caixa de diálogo Prompt:

The app crashes every time I try to upload a PDF from my phone. It works on desktop but not on mobile.

O modelo pode gerar uma resposta como:

The user experiences consistent app crashes when attempting to upload a PDF from their phone. Uploading PDFs works normally on desktop. They request an investigation into the issue.

Usando variáveis em prompts

Observação

Esse recurso está atualmente em versão prévia pública e sujeito a alterações.

Neste ponto, a configuração gera um resumo claro e conciso. Na parte inferior das configurações de Parameters, clique em Create prompt.yml file para abrir a visualização do Prompt. O prompt do sistema será preenchido previamente de modo automático.

No campo Prompt do usuário, insira um prompt que inclua um ou mais espaços reservados para variáveis dentro de chaves duplas. Por exemplo:

Travel or shopping assistants using {{city}}, {{intent}}, and {{budget}} to tailor recommendations.

Cada variável listada no prompt aparecerá como um parâmetro no modo de comparação. Ao executar uma avaliação, você será solicitado a fornecer valores para cada variável. Isso permite que os prompts sejam reutilizados com entradas diferentes sem modificar o conteúdo do prompt.

Como alternativa, você pode adicionar variáveis em seu sistema de arquivos ou prompt de usuário do .prompt.yml para automatizar o processo de avaliação com várias variáveis no futuro. Consulte Como armazenar prompts em repositórios do GitHub.

Como adicionar entradas de teste

Na parte superior da visão Prompts, selecione Compare para alternar para a visão Comparisons. Essa exibição permite que você execute comparações estruturadas em vários prompts ou modelos e aplique avaliadores para medir o desempenho.

Captura de tela do alternador de comparação. A alternância de comparação está realçada.

Na exibição Comparisons, cada linha na tabela representa um único caso de teste, com uma entrada específica e uma saída esperada. Cada coluna apresenta uma configuração de prompt diferente para comparar como vários modelos ou estilos de prompt são executados usando avaliadores.

Clique em Add rows para inserir seus dados de teste. A entrada simula uma mensagem de suporte real e a saída esperada representa o resumo ideal que o modelo deve retornar. A tabela a seguir fornece amostras de entradas de teste e suas saídas esperadas correspondentes para avaliação.

| Linha | Entrada | Saída esperada | |-----|--------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------| | 1 | O aplicativo falha sempre que tento carregar um PDF do meu telefone. Ele funciona no desktop, mas não no celular. | O usuário relata que o aplicativo móvel falha sempre que tenta carregar um PDF, enquanto a versão para desktop funciona sem issues. | | 2 | Contatei o suporte há dois dias e não recebi resposta. Preciso de ajuda para recuperar minha conta o quanto antes. | O usuário está aguardando a resposta de suporte e precisa de assistência urgente para recuperar a conta. | | 3 | Adicione o modo escuro. É muito difícil de usar à noite. Meus olhos doem depois do uso prolongado. | O usuário solicita o modo escuro devido à tensão ocular durante o uso noturno. |

Ajustando parâmetros de modelo

À direita da tabela, clique para adicionar uma nova configuração de prompt.

Na nova configuração de prompt, você pode atualizar o modelo e ajustar seu comportamento usando as configurações de parâmetros disponíveis. Essas configurações controlam como o modelo gera texto, incluindo seu comprimento, aleatoriedade e repetição.

Configurando o modelo

Na lista suspensa Modelo, escolha PHI-4 para criar uma configuração distinta para comparação.

Você pode ajustar os seguintes parâmetros para influenciar a saída do modelo:

  •         **Max Tokens**: define o número máximo de tokens que o modelo pode retornar. Valores numéricos mais altos permitem saídas mais longas.
    
  •         **Temperature**: controla a aleatoriedade na resposta. Valores mais baixos (0,2–0,4) produzem saídas determinísticas mais focadas. Valores mais altos (0,8 a 1,0) introduzem mais variação e criatividade.
    
  •         **Top P**: controla a diversidade de saída selecionando em um pool das próximas palavras mais prováveis. Valores mais baixos reduzem a variabilidade, semelhante à redução da temperatura.
    
  •         **Penalidade de presença**: desencoraja o modelo a introduzir novos tópicos. Valores mais altos aplicam uma penalidade mais forte. Um valor de 0 costuma ser adequado para resumo.
    
  •         **Penalidade por frequência**: reduz a probabilidade de repetir palavras. Valores mais altos aplicam uma penalidade mais forte. Um valor entre 0 e 0,5 ajuda a manter os resumos limpos e livres de redundância.
    
  •         **Stop**: especifica uma ou mais cadeias de caracteres que, quando geradas, cortarão a resposta do modelo. Use isso para evitar saídas excessivamente longas ou impor regras de formatação.
    

A tabela a seguir fornece uma configuração de parâmetro para gerar resumos concisos durante a comparação de modelos.

ParâmetroValorMotivo
Tokens máximos128Mantém as respostas curtas e de acordo com o tópico
Temperatura0.3Garante saídas determinísticas e focadas
P superior1.0Permite vocabulário completo, mas mantém a seleção guiada
Penalidade de presença0Sem penalidade, os resumos não precisam de variação de tópico
Penalidade de frequência0.3Reduz fraseado repetido em resumos compactos
Parar(opcional)Use se quiser encerrar a saída após uma palavra-chave ou símbolo

Depois de aplicar os parâmetros, você pode adicionar colunas para comparar mais modelos ou configurações de prompt lado a lado.

Como avaliar saídas

Depois que o prompt for configurado, execute uma avaliação estruturada para comparar saídas de modelo usando dados reais e métricas repetíveis.

A avaliação de modelo ajuda você a entender como diferentes modelos e configurações de prompt são executadas entre entradas reais. No modo de exibição de Prompt, você pode aplicar avaliadores a diversos modelos lado a lado e examinar métricas como similaridade, fluência, coerência, relevância e embasamento.

Os seguintes avaliadores estão disponíveis:

  •         **Similaridade**: mede o quanto a saída de um modelo corresponde a uma resposta esperada ou de referência. É útil quando você deseja confirmar se o modelo retorna respostas consistentes e precisas alinhadas com um resultado conhecido. A pontuação varia de 0 a 1, com valores mais altos indicando maior semelhança.
    
  •         **Fluência**: avalia a qualidade linguística de uma resposta, incluindo gramática, coerência e legibilidade. Isso resulta em respostas linguisticamente corretas.
    
  •         **Coerência**: avalia a capacidade do LLM de gerar textos que sejam naturais, fluentes e semelhantes à linguagem humana em suas respostas. Use-a ao testar a legibilidade e a facilidade de uso das respostas geradas pelo modelo em aplicativos do mundo real.
    
  •         **Relevância**: refere-se à eficácia com que uma resposta aborda uma pergunta. Ela avalia a precisão, a integridade e a relevância direta da resposta com base apenas nas informações fornecidas. A pontuação varia de 0 a 1, com valores mais altos indicando um alinhamento mais forte com a intenção da entrada.
    
  •         **Embasamento**: mede o quanto uma resposta está ancorada no contexto fornecido, avaliando sua relevância, precisão e integridade com base exclusivamente nesse contexto. Avalia até que ponto a resposta aborda a pergunta de maneira completa, sem introduzir informações não relacionadas ou incorretas. A pontuação varia de 0 a 1, com valores mais altos indicando maior precisão.
    
  •         **Prompt personalizado**: permite que você defina seus próprios critérios de avaliação para um LLM avaliar a saída de outro. Isso permite que você avalie saídas de modelo com base em suas próprias diretrizes. Você pode escolher entre aprovação/falha ou avaliações pontuadas, tornando-o ideal para cenários em que as métricas padrão não capturam expectativas de teste.
    

Quando estiver pronto para avaliar, clique em Run para gerar e comparar as saídas em todas as configurações de prompt. Após a conclusão da execução, GitHub Models exibe a saída de cada configuração de prompt, juntamente com as pontuações do avaliador.

Captura de tela do conjunto de dados após a execução do avaliador.

Caso de teste: falha no upload de PDF

          **Entrada:**`The app crashes every time I try to upload a PDF from my phone. It works on desktop but not on mobile.`

As seguintes tabelas exibem a saída de cada modelo e suas pontuações do avaliador:

ModeloSaída
GPT-4.1O usuário relata que o aplicativo falha ao carregar um PDF do dispositivo móvel, embora o carregamento funcione no desktop.
DeepSeek-R1
          <think> Ok, o usuário está com problemas com a falha do aplicativo ao tentar carregar um PDF do telefone. Ele funciona no desktop, mas não no celular. Vou detalhar isso. Primeiro, o principal problema é que o aplicativo falha especificamente durante os envios de PDF em dispositivos móveis. O fato de funcionar em desktop sugere que é um problema específico do celular. As possíveis causas podem estar relacionadas à versão do aplicativo móvel, ao SO do telefone, aos limites de tamanho do arquivo em dispositivos móveis ou a issues de compatibilidade com determinados formatos PDF em dispositivos móveis. Preciso verificar se o resumo menciona a falha durante uploads de PDF no celular, observar que funciona em desktop e |

| Phi-4 | que o aplicativo falha ao tentar carregar um PDF do celular, embora funcione corretamente na versão para desktop. |

ModeloSimilaridadeRelevânciaFundamentaçãoTokens de entradaTokens de saídaLatência
GPT-4.1100%50%100%6120918 ms
DeepSeek-R150%50%75%521282.285 ms
Phi-475%100%100%61661.117 ms

Utilize as pontuações dos avaliadores para avaliar e comparar as respostas além das frases superficiais.

Similaridade

Avalie o quanto a saída de cada modelo se alinha ao resumo esperado. A tabela a seguir mostra as pontuações de relevância para cada modelo.

ModeloPontuação de similaridade
GPT-4.1100%
DeepSeek-R150%
Phi-475%

Embora todos os modelos incluam o conteúdo-chave da entrada, a pontuação de similaridade do DeepSeek-R1 é significativamente menor devido ao seu comentário interno detalhado, que se desvia do formato de resumo conciso esperado. Por outro lado, a resposta de GPT-4.1 corresponde à formulação e à estrutura da saída de referência.

Relevância

Avalie o quanto cada modelo captura a intenção principal da entrada. A tabela a seguir mostra as pontuações de relevância para cada modelo.

ModeloClassificação de relevância
GPT-4.150%
DeepSeek-R150%
Phi-4100%

Todos os três modelos reconheceram o principal problema do aplicativo falhar durante os uploads de PDF em dispositivos móveis. O Phi-4 obteve uma pontuação de relevância maior para refletir a perspectiva do usuário de modo mais completo. O DeepSeek-R1 perdeu pontos por introduzir causas técnicas especulativas não mencionadas na entrada original.

Fundamentação

Avalie se a saída de cada modelo permanece fiel à entrada sem introduzir informações não suportadas. A tabela a seguir mostra as pontuações de relevância para cada modelo.

ModeloPontuação de embasamento
GPT-4.1100%
DeepSeek-R175%
Phi-4100%

Embora o DeepSeek-R1 adicione comentários internos, ele não introduz fatos inventados. Sua frase resumida final reflete corretamente a entrada original.

Caso de teste: solicitação do modo escuro

          **Entrada:**`Please add dark mode. It's very hard to use at night. My eyes hurt after prolonged use.`

As seguintes tabelas exibem a saída de cada modelo e suas pontuações do avaliador:

ModeloSaída
GPT-4.1O usuário solicita a adição de um recurso de modo escuro devido ao desconforto e à tensão ocular ao usar o aplicativo à noite.
DeepSeek-R1
          <think> Ok, o usuário quer adicionar o modo escuro porque é difícil de usar à noite e seus olhos doem. Preciso fazer um resumo conciso. Vou começar com a solicitação principal: adicionar o modo escuro. Em seguida, mencionar o motivo: tensão ocular do uso prolongado à noite. Mantenha-o em uma frase. Talvez estruturá-lo como "Solicitar a implementação do modo escuro para reduzir a tensão ocular durante o uso noturno". Isso abrange os pontos-chave sem detalhes extras. Verifique se isso está abaixo do limite de caracteres. Sim, parece bom. </think> Resumo: solicitar a implementação do modo escuro para reduzir a tensão ocular causada pelo uso prolongado da noite. |

| Phi-4 | O cliente está solicitando a adição de um recurso de modo escuro para reduzir a tensão ocular ao usar o produto à noite. |

ModeloSimilaridadeRelevânciaFundamentaçãoTokens de entradaTokens de saídaLatência
GPT-4.1100%75%100%57181.286 ms
DeepSeek-R150%0%25%491281946 ms
Phi-4100%75%100%5820899 ms

Similaridade

Avalie o quanto a saída de cada modelo se alinha ao resumo esperado. A tabela a seguir mostra as pontuações de relevância para cada modelo.

ModeloPontuação de similaridade
GPT-4.1100%
DeepSeek-R150%
Phi-4100%

Embora todos os modelos incluam o conteúdo chave da entrada, a pontuação de similaridade do DeepSeek-R1 é novamente significativamente menor devido ao seu comentário interno detalhado.

Relevância

Avalie o quanto cada modelo captura a intenção principal da entrada. A tabela a seguir mostra as pontuações de relevância para cada modelo.

ModeloClassificação de relevância
GPT-4.175%
DeepSeek-R10%
Phi-475%
          GPT-4.1 e o Phi-4 capturaram a principal intenção da solicitação do usuário: a necessidade de modo escuro para reduzir a tensão ocular e melhorar a usabilidade à noite. O DeepSeek-R1 obteve 0% de relevância devido ao comentário interno verboso que desviou a atenção da saída real.

Fundamentação

Avalie se a saída de cada modelo permanece fiel à entrada sem introduzir informações não suportadas. A tabela a seguir mostra as pontuações de relevância para cada modelo.

ModeloPontuação de embasamento
GPT-4.1100%
DeepSeek-R125%
Phi-4100%

O DeepSeek-R1 teve uma pontuação menor devido ao seu bloco <think> prolixo, que incluiu raciocínio especulativo não presente na entrada original.

Salvar a configuração

Depois de concluir suas avaliações, a etapa final é escolher o modelo com o melhor desempenho para seu caso de uso específico. Nos exemplos acima, Phi-4 e GPT-4.1 entregaram resultados fortes e consistentes em todos os avaliadores. O DeepSeek-R1 obteve uma pontuação menor devido ao seu raciocínio prolixo e a saídas menos focadas.

Depois de selecionar o modelo preferencial e a configuração de prompt, adicione um nome descritivo ao arquivo de prompt e clique em Commit changes. Isso salvará o modelo, o prompt, as configurações de parâmetro e o conjunto de dados associado como um arquivo de configuração reutilizável em seu repositório.

Captura de tela do botão confirmar alterações. O botão confirmar alterações está realçado.

A confirmação da configuração de prompt facilita a reutilização, a colaboração e a iteração entre configurações de modelo. Isso torna mais fácil executar novamente as avaliações e acompanhar o desempenho da configuração do prompt ao longo do tempo.

Leitura adicional

  •         [AUTOTITLE](/github-models/use-github-models/storing-prompts-in-github-repositories)
    
  •         [AUTOTITLE](/github-models/use-github-models/integrating-ai-models-into-your-development-workflow)