Entradas e saídas

03/03/2025

HarpIA Lab

As ferramentas de avaliação oferecidas pelo HarpIA Lab assumem como entrada arquivos JSON, e geram como saída arquivos JSON. O formato interno de cada arquivo depende da função que ele desempenha na avaliação, como é explicado a seguir.

Arquivo JSON de entrada para o submódulo métricas (LLM)

Clique na imagem para aumentá-la.

Neste arquivo são especificadas a lista de instâncias e a lista de métricas que serão processadas pela ferramenta de avaliação do HarpIa Lab. A lista de instâncias contém os prompts submetidos para o grande modelo de linguagem (LLM) que está sendo avaliado, bem como as respostas geradas pelo LLM e as respostas esperadas pelo pesquisador a cada prompt. A lista de métricas contém a especificação de cada métrica (e seus parâmetros) que o pesquisador deseja incluir no resultado da avaliação. É importante destacar que o pesquisador pode usar a interface web do módulo HarpIA Lab para construir a lista de métricas, mas a lista de instâncias deve ser construída fora da plataforma HarpIA, usando ferramentas da preferência do pesquisador.

 

 

Os campos que especificam uma instância no arquivo JSON de entrada são:

  • id: identificador único da instância de teste (determinado pelo usuário);
  • input: o prompt submetido ao LLM sendo avaliado;
  • actual-output: a resposta gerada pelo LLM para o prompt submetido.
  • expected-output: uma lista de possíveis respostas ao prompt submetido, segundo o julgamento do pesquisador. Essas respostas são usadas como referência durante o cálculo de métricas supervisionadas (mais detalhes abaixo).

Os campos que especificam uma métrica no arquivo JSON de entrada são:

  • id: identificador da métrica (nome da métrica no HarpIA Lab Library);
  • enable: flag (true ou false) que indica se a métrica deve ou não ser executada (eventualmente, o pesquisador pode desejar reexecutar a avaliação sem que uma determinada métrica seja calculada e incluída nos resultados);
  • parameters: valores a serem usados como parâmetros da métrica.

A figura a seguir mostra um exemplo de arquivo JSON de entrada para a avaliação de um LLM otimizado para desempenhar uma tarefa de tradução:

No exemplo, a instância de teste (input) é uma frase em português que foi submetida a um LLM instruído para realizar a tarefa de tradução para o inglês. A resposta esperada (expected-output) habilita a execução de métricas de avaliação supervisionadas. Métricas dessa natureza necessitam de uma frase de referência (gold standard) que é comparada com a resposta gerada pelo modelo de linguagem sendo avaliado. Mais de uma frase de referência pode ser fornecida e, neste caso, o cálculo da métrica leva em consideração todas as frase de referência antes de retornar o melhor resultado obtido (em favor do modelo sob avaliação). A resposta gerada pelo modelo aparece no último campo (actual-output).

O arquivo de entrada no exemplo ilustra a seleção de duas métricas, e ambas estão habilitadas para execução (enable: true). A primeira da lista é uma implementação da métrica BLEU usando recursos do pacote NLTK. Essa métrica exige a espeficicação de três parâmetros. A segunda é uma implementação da métrica BERTSCORE usando recursos do pacote Evaluate do Hugging Face. Note que essa métrica depende da especificação de dez parâmetros distintos.

 

Arquivos JSON de saída gerado pelo submódulo métricas (LLM)

O arquivo JSON gerado como saída contém um objeto JSON para cada uma das métricas selecionadas pelo pesquisador no arquivo JSON de entrada. Em cada desses objetos, além da identificação da métrica, se encontram também os parâmetros especificados no arquivo JSON de entrada que especificaram como a métrica deveria ser aplicada. Os resultados agregados aparecem sob a chave “score”. Note que, no exemplo, os valores retornados sob a chave “score” podem variar de métrica para métrica. Por fim, note que o valor do campo “elapsed_time” representa o tempo de execução da métrica sobre todas as instâncias especificadas no arquivo JSON de entrada.

 

Arquivos de log gerado pelo submódulo métricas (LLM)

O arquivo de log gerado como saída contém um objeto JSON, como o ilustrado na figura, em cada linha. Esse objeto representa a aplicação de uma das métricas selecionadas pelo pesquisador a uma instância específica, identificada pelo valor da campo “instance_id”. Os parâmetros de execução da métrica, que foram especificados no arquivo JSON de entrada, são reproduzidos aqui. Além disso, note que a chave “result” contém os valores retornados pela métrica em um formato similar ao conteúdo da chave “score” que aparece no arquivo JSON de saída. Por fim, vale ressaltar que nem todas as métricas criam logs de execução no nível da instância.