Skip to main content
Uma suíte de avaliação é um manifesto reutilizável. Ela descreve o que executar, como renderizar prompts, como pré-processar linhas, como extrair saídas do modelo e qual avaliador Python deve pontuar cada amostra ou lote de tarefas. Esta página aborda a superfície do manifesto. Para o fluxo completo de execução, comece com Executar avaliações. Para contratos de pontuação em Python, consulte Escrever avaliadores de avaliação em Python.

Estrutura do manifesto

Cada versão da suíte armazena um manifesto.
Limites do manifesto:

Tipos de tarefa

type identifica a tarefa para pessoas e relatórios downstream. A pontuação não é codificada de forma fixa pelo tipo de tarefa. O avaliador Python determina o comportamento real da métrica. Rótulos de tarefa compatíveis: Use metadata nas tarefas e execuções para seus próprios identificadores de experimento. As chaves de metadados podem ter até 64 caracteres e os valores até 512 caracteres.

Conjuntos de dados enviados

Use arquivos enviados para conjuntos de dados controlados e reproduzíveis. Envie-os por /files com purpose=evals e, em seguida, faça referência ao ID do arquivo na tarefa.
format pode ser jsonl ou csv. Se você omiti-lo, o gateway infere o formato a partir do nome do arquivo enviado. As linhas JSONL devem ser objetos:
eval.jsonl
Os arquivos CSV usam a primeira linha como cabeçalhos:
eval.csv

Conjuntos de dados do Hugging Face

Use o Hugging Face quando sua avaliação precisar ser executada a partir de um conjunto de dados público ou privado pré-configurado. O gateway carrega linhas do servidor de conjuntos de dados do Hugging Face.
Campos: Conjuntos de dados privados do Hugging Face exigem um token do Hugging Face configurado para o ambiente do gateway. O token não é fornecido no manifesto de avaliação. Entre em contato com a MKA1 se sua equipe precisar de acesso a conjuntos de dados privados ou restritos do Hugging Face.

Builders json e csv do Hugging Face

Para path: "json" ou path: "csv", forneça data_files. Somente URLs HTTP(S) são permitidas, e hosts de rede local/privada são rejeitados.
Você também pode colocar data_files em dataset_kwargs.data_files.

Modelos

prompt_template e target_template são renderizados com valores da linha atual do conjunto de dados.
Comportamento dos modelos: Valores ausentes são renderizados como uma string vazia. Objetos e arrays são renderizados como JSON.

Exemplos few-shot

Os exemplos few-shot são renderizados antes do prompt avaliado. Use num_fewshot para manifestos no estilo lm-eval ou o objeto fewshot expandido quando precisar de mais controle.
Forma expandida:
Campos de few-shot: A linha atual é excluída quando exemplos few-shot são extraídos da mesma lista de linhas em memória.

Pré-processadores Python

Use pré-processadores para normalizar linhas do conjunto de dados antes da renderização do prompt. Eles são executados no sandbox Python com as mesmas regras de escopo de arquivo dos avaliadores.
Contratos: Os pré-processadores podem retornar: Se o pré-processamento falhar, a execução falhará antes da execução de amostras para essa tarefa.

Extração de saída

A extração de saída transforma o texto bruto do modelo em extracted_output. O avaliador recebe tanto sample["output_text"] quanto sample["extracted_output"]. Exemplos:
Os padrões regex são verificados quanto à segurança. Entradas regex muito grandes e contagens excessivas de correspondências são limitadas.

Métricas

As métricas declaram quais chaves de pontuação devem ser agregadas. Os avaliadores Python produzem os valores de pontuação.
Campos: Se um avaliador por amostra retornar um único float, o MKA1 o armazena no metric_id do avaliador, cujo padrão é score. Se uma tarefa por amostra omitir metrics, o MKA1 adiciona uma métrica padrão para esse metric_id. Avaliadores agregados em lote podem fornecer métricas finais da tarefa por meio de grade_batch.

Configurações de geração

A generation em nível de execução controla chamadas ao modelo candidato. Ela inclui campos normalizados de Responses, aliases do lm-eval, campos de passagem direta do provedor e controles de execução de avaliação.
Campos normalizados: Campos de passagem direta do provedor: A passagem direta do provedor é enviada somente para upstreams não OpenAI compatíveis com OpenAI. Upstreams OpenAI reais recebem apenas campos compatíveis. Controles de execução:

Exemplo: tarefa de múltipla escolha do Hugging Face

Exemplo: tarefa few-shot com uma divisão de treinamento separada

Orientações de versionamento

Crie uma nova versão da suíte quando alterar qualquer comportamento que afete os resultados:
  • Arquivo do conjunto de dados ou caminho/configuração/divisão do Hugging Face.
  • Prompt, alvo, few-shot, pré-processamento ou extração de saída.
  • IDs de métricas ou comportamento de agregação.
  • Código-fonte ou ID do arquivo do avaliador Python.
Armazene escolhas específicas da execução na execução:
  • Modelos candidatos.
  • Modelo avaliador.
  • Modelo de embedding.
  • Configurações de geração.
  • Concorrência e limites de amostras.
Isso mantém a suíte reutilizável, ao mesmo tempo que preserva exatamente o que cada execução realizou.