{"id":1939,"date":"2025-03-03T16:19:53","date_gmt":"2025-03-03T18:19:53","guid":{"rendered":"https:\/\/sites.usp.br\/keml\/?page_id=1939"},"modified":"2025-05-12T17:44:18","modified_gmt":"2025-05-12T19:44:18","slug":"entrada-e-saida","status":"publish","type":"page","link":"https:\/\/sites.usp.br\/keml\/entrada-e-saida\/","title":{"rendered":"Entradas e sa\u00eddas"},"content":{"rendered":"<p><strong>HarpIA Lab<\/strong><\/p>\n<p>As ferramentas de avalia\u00e7\u00e3o oferecidas pelo HarpIA Lab assumem como entrada arquivos JSON, e geram como sa\u00edda arquivos JSON. O formato interno de cada arquivo depende da fun\u00e7\u00e3o que ele desempenha na avalia\u00e7\u00e3o, como \u00e9 explicado a seguir.<\/p>\n<p>Arquivo JSON de <strong>entrada<\/strong> para o subm\u00f3dulo <em>m\u00e9tricas (LLM)<\/em><\/p>\n<div id=\"attachment_1948\" style=\"width: 317px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/03\/entrada-LAB-formato-JSON-1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1948\" class=\"wp-image-1948\" src=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/03\/entrada-LAB-formato-JSON-1-221x300.jpg\" alt=\"\" width=\"307\" height=\"416\" srcset=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/03\/entrada-LAB-formato-JSON-1-221x300.jpg 221w, https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/03\/entrada-LAB-formato-JSON-1-756x1024.jpg 756w, https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/03\/entrada-LAB-formato-JSON-1-768x1040.jpg 768w, https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/03\/entrada-LAB-formato-JSON-1-400x542.jpg 400w, https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/03\/entrada-LAB-formato-JSON-1.jpg 990w\" sizes=\"auto, (max-width: 307px) 100vw, 307px\" \/><\/a><p id=\"caption-attachment-1948\" class=\"wp-caption-text\">Clique na imagem para aument\u00e1-la.<\/p><\/div>\n<p>Neste arquivo s\u00e3o especificadas a lista de inst\u00e2ncias e a lista de m\u00e9tricas que ser\u00e3o processadas pela ferramenta de avalia\u00e7\u00e3o do HarpIa Lab. A lista de inst\u00e2ncias cont\u00e9m os prompts submetidos para o grande modelo de linguagem (LLM) que est\u00e1 sendo avaliado, bem como as respostas geradas pelo LLM e as respostas esperadas pelo pesquisador a cada prompt. A lista de m\u00e9tricas cont\u00e9m a especifica\u00e7\u00e3o de cada m\u00e9trica (e seus par\u00e2metros) que o pesquisador deseja incluir no resultado da avalia\u00e7\u00e3o. \u00c9 importante destacar que o pesquisador pode usar a interface web do m\u00f3dulo HarpIA Lab para construir a lista de m\u00e9tricas, mas a lista de inst\u00e2ncias deve ser constru\u00edda fora da plataforma HarpIA, usando ferramentas da prefer\u00eancia do pesquisador.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Os campos que especificam uma inst\u00e2ncia no arquivo JSON de entrada s\u00e3o:<\/p>\n<ul>\n<li><em>id<\/em>: identificador \u00fanico da inst\u00e2ncia de teste (determinado pelo usu\u00e1rio);<\/li>\n<li><em>input<\/em>: o prompt submetido ao LLM sendo avaliado;<\/li>\n<li><em>actual-output<\/em>: a resposta gerada pelo LLM para o prompt submetido.<\/li>\n<li><em>expected-output<\/em>: uma lista de poss\u00edveis respostas ao prompt submetido, segundo o julgamento do pesquisador. Essas respostas s\u00e3o usadas como refer\u00eancia durante o c\u00e1lculo de m\u00e9tricas supervisionadas (mais detalhes abaixo).<\/li>\n<\/ul>\n<p>Os campos que especificam uma m\u00e9trica no arquivo JSON de entrada s\u00e3o:<\/p>\n<ul>\n<li><em>id<\/em>: identificador da m\u00e9trica (nome da m\u00e9trica no HarpIA Lab Library);<\/li>\n<li><em>enable<\/em>: flag (<em>true<\/em> ou <em>false<\/em>) que indica se a m\u00e9trica deve ou n\u00e3o ser executada (eventualmente, o pesquisador pode desejar reexecutar a avalia\u00e7\u00e3o sem que uma determinada m\u00e9trica seja calculada e inclu\u00edda nos resultados);<\/li>\n<li><em>parameters<\/em>: valores a serem usados como par\u00e2metros da m\u00e9trica.<\/li>\n<\/ul>\n<p>A figura a seguir mostra um exemplo de arquivo JSON de entrada para a avalia\u00e7\u00e3o de um LLM otimizado para desempenhar uma tarefa de tradu\u00e7\u00e3o:<\/p>\n<p><a href=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/05\/harpia-lab-input-json-panels.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2184\" src=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/05\/harpia-lab-input-json-panels.svg\" alt=\"\" width=\"1030\" height=\"611\" \/><\/a><\/p>\n<p>No exemplo, a inst\u00e2ncia de teste (<em>input<\/em>) \u00e9 uma frase em portugu\u00eas que foi submetida a um LLM instru\u00eddo para realizar a tarefa de tradu\u00e7\u00e3o para o ingl\u00eas. A resposta esperada (<em>expected-output<\/em>) habilita a execu\u00e7\u00e3o de m\u00e9tricas de avalia\u00e7\u00e3o supervisionadas. M\u00e9tricas dessa natureza necessitam de uma frase de refer\u00eancia (gold standard) que \u00e9 comparada com a resposta gerada pelo modelo de linguagem sendo avaliado. Mais de uma frase de refer\u00eancia pode ser fornecida e, neste caso, o c\u00e1lculo da m\u00e9trica leva em considera\u00e7\u00e3o todas as frase de refer\u00eancia antes de retornar o melhor resultado obtido (em favor do modelo sob avalia\u00e7\u00e3o). A resposta gerada pelo modelo aparece no \u00faltimo campo (<em>actual-output<\/em>).<\/p>\n<p>O arquivo de entrada no exemplo ilustra a sele\u00e7\u00e3o de duas m\u00e9tricas, e ambas est\u00e3o habilitadas para execu\u00e7\u00e3o (<em>enable: true<\/em>). A primeira da lista \u00e9 uma implementa\u00e7\u00e3o da m\u00e9trica BLEU usando recursos do pacote <a href=\"https:\/\/www.nltk.org\/\">NLTK<\/a>. Essa m\u00e9trica exige a espeficica\u00e7\u00e3o de tr\u00eas par\u00e2metros. A segunda \u00e9 uma implementa\u00e7\u00e3o da m\u00e9trica BERTSCORE usando recursos do pacote <a href=\"https:\/\/huggingface.co\/docs\/evaluate\/index\">Evaluate do Hugging Face<\/a>. Note que essa m\u00e9trica depende da especifica\u00e7\u00e3o de dez par\u00e2metros distintos.<\/p>\n<p>&nbsp;<\/p>\n<p>Arquivos JSON de <strong>sa\u00edda\u00a0<\/strong>gerado pelo subm\u00f3dulo <em>m\u00e9tricas (LLM)<\/em><\/p>\n<p><a href=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/05\/harpia-lab-output-json-sample.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2186\" src=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/05\/harpia-lab-output-json-sample.svg\" alt=\"\" width=\"515\" height=\"515\" \/><\/a><\/p>\n<p>O arquivo JSON gerado como sa\u00edda cont\u00e9m um objeto JSON para cada uma das m\u00e9tricas selecionadas pelo pesquisador no arquivo JSON de entrada. Em cada desses objetos, al\u00e9m da identifica\u00e7\u00e3o da m\u00e9trica, se encontram tamb\u00e9m os par\u00e2metros especificados no arquivo JSON de entrada que especificaram como a m\u00e9trica deveria ser aplicada. Os resultados agregados aparecem sob a chave \u201cscore\u201d. Note que, no exemplo, os valores retornados sob a chave \u201cscore\u201d podem variar de m\u00e9trica para m\u00e9trica. Por fim, note que o valor do campo \u201celapsed_time\u201d representa o tempo de execu\u00e7\u00e3o da m\u00e9trica sobre todas as inst\u00e2ncias especificadas no arquivo JSON de entrada.<\/p>\n<p>&nbsp;<\/p>\n<p>Arquivos de <strong>log<\/strong> gerado pelo subm\u00f3dulo <em>m\u00e9tricas (LLM)<\/em><\/p>\n<p><a href=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/05\/harpia-lab-log-json-sample.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2187\" src=\"https:\/\/sites.usp.br\/keml\/wp-content\/uploads\/sites\/1460\/2025\/05\/harpia-lab-log-json-sample.svg\" alt=\"\" width=\"515\" height=\"406\" \/><\/a><\/p>\n<p>O arquivo de log gerado como sa\u00edda cont\u00e9m um objeto JSON, como o ilustrado na figura, em cada linha. Esse objeto representa a aplica\u00e7\u00e3o de uma das m\u00e9tricas selecionadas pelo pesquisador a uma inst\u00e2ncia espec\u00edfica, identificada pelo valor da campo \u201cinstance_id\u201d. Os par\u00e2metros de execu\u00e7\u00e3o da m\u00e9trica, que foram especificados no arquivo JSON de entrada, s\u00e3o reproduzidos aqui. Al\u00e9m disso, note que a chave \u201cresult\u201d cont\u00e9m os valores retornados pela m\u00e9trica em um formato similar ao conte\u00fado da chave \u201cscore\u201d que aparece no arquivo JSON de sa\u00edda. Por fim, vale ressaltar que nem todas as m\u00e9tricas criam logs de execu\u00e7\u00e3o no n\u00edvel da inst\u00e2ncia.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>HarpIA Lab As ferramentas de avalia\u00e7\u00e3o oferecidas pelo HarpIA Lab assumem como entrada arquivos JSON, e geram como sa\u00edda arquivos JSON. O formato interno de cada arquivo depende da fun\u00e7\u00e3o que ele desempenha na avalia\u00e7\u00e3o, como \u00e9 explicado a seguir. Arquivo JSON de entrada para o subm\u00f3dulo m\u00e9tricas (LLM) Neste arquivo s\u00e3o especificadas a lista<a href=\"https:\/\/sites.usp.br\/keml\/entrada-e-saida\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":24022,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-1939","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sites.usp.br\/keml\/wp-json\/wp\/v2\/pages\/1939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.usp.br\/keml\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.usp.br\/keml\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.usp.br\/keml\/wp-json\/wp\/v2\/users\/24022"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.usp.br\/keml\/wp-json\/wp\/v2\/comments?post=1939"}],"version-history":[{"count":6,"href":"https:\/\/sites.usp.br\/keml\/wp-json\/wp\/v2\/pages\/1939\/revisions"}],"predecessor-version":[{"id":2244,"href":"https:\/\/sites.usp.br\/keml\/wp-json\/wp\/v2\/pages\/1939\/revisions\/2244"}],"wp:attachment":[{"href":"https:\/\/sites.usp.br\/keml\/wp-json\/wp\/v2\/media?parent=1939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}