CoolFace
Datasetpublic

Magurofg/ifeval-pt

IFEval-pt Benchmark de seguimento de instrução em português do Brasil, com 308 itens cuja verificação é feita por código — sem juiz LLM, sem GPU, sem opinião. Reproduzir custa alguns minutos de CPU. O que ele tem de diferente Já existem versões do IFEval em português: amalia-llm/IFEval-mt-pt (541 itens, pt-PT), Polygl0t/IFEval-PT (300), a fatia pt do facebook/Multi-IF (524) e akawaai/Portuguese-IFEval (618). Todas são tradução do conjunto em inglês — medem… See the full description on the dataset page: https://huggingface.co/datasets/Magurofg/ifeval-pt.

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes52downloads
Dataset Card

IFEval-pt

Benchmark de seguimento de instrução em português do Brasil, com 308 itens cuja verificação é feita por código — sem juiz LLM, sem GPU, sem opinião. Reproduzir custa alguns minutos de CPU.

O que ele tem de diferente

Já existem versões do IFEval em português: amalia-llm/IFEval-mt-pt (541 itens, pt-PT), Polygl0t/IFEval-PT (300), a fatia pt do facebook/Multi-IF (524) e akawaai/Portuguese-IFEval (618). Todas são tradução do conjunto em inglês — medem, portanto, inglês vertido para o português.

Este aqui testa restrições que só existem na língua portuguesa e que uma tradução não poderia conter:

RestriçãoExemplo de instrução
ptbr:crase / ptbr:sem_crase"Use crase pelo menos uma vez"
ptbr:mesoclise"Use uma mesóclise, como em 'dar-lhe-ei'"
ptbr:proclise"Use próclise depois de palavra atrativa, como em 'não me diga'"
ptbr:enclise"Use ênclise, como em 'diga-me'"
ptbr:porque_ambos"Use 'por que' e 'porque' na mesma resposta"
ptbr:cedilha"Use pelo menos três palavras com ç"
ptbr:sem_til"Escreva sem usar nenhum til (ã, õ)"
ptbr:so_voce"Trate o leitor por 'você' e nunca por 'tu'"
ptbr:sem_diacritico"Escreva sem nenhum acento ou cedilha"
ptbr:sem_digito"Escreva os números por extenso"
ptbr:agudo_e_circunflexo"Use uma palavra com agudo e uma com circunflexo"

A de próclise é a mais direta: a regra gramatical é o próprio teste — próclise é obrigatória depois de palavra atrativa, então o verificador procura exatamente atrativo + pronome + verbo.

Além dessas, há as restrições genéricas herdadas do IFEval original (número de frases, número de palavras, palavra obrigatória, palavra proibida, começar/terminar com, caixa baixa).

Formato

Mesmas quatro colunas do google/IFEval, para ser compatível de imediato com quem já avalia o original:

json
{"key": 11,
 "prompt": "Explique o que é reciclagem. Use crase pelo menos uma vez na resposta.",
 "instruction_id_list": ["ptbr:crase"],
 "kwargs": [{}]}

308 itens = 14 tarefas-base × 22 restrições. O número foi escolhido por itens por restrição (14), não pelo total: é o que permite reportar taxa por restrição com intervalo de confiança utilizável (±5,5 pontos a 95%, contra ±9,5 se fossem 100 itens).

Duas notas, como no original

  • —estrita: a restrição vale no texto exatamente como veio.
  • —frouxa: vale depois de remover marcação de markdown, aspas e espaço sobrando — modelo pequeno erra por embrulhar a resposta, não por desobedecer.

Como rodar

bash
python ifeval_pt.py --url http://SEU-ENDPOINT/v1 --modelo NOME --saida resultado.json

Qualquer endpoint compatível com a API da OpenAI serve. O script está no mesmo repositório e não depende de nada além da biblioteca padrão.

Resultado de referência

ModeloEstritaFrouxa
Pocket-LM 269M (pré-instrução)32,8%32,8%

O padrão que aparece nesse resultado vale como aviso a quem for usar o benchmark: restrições passivas ("não use crase") são satisfeitas por acidente quando a resposta é curta — 12/14 — enquanto as ativas ("use crase") falham — 1/14. Ao comparar modelos, olhar a tabela por restrição, não só a média.

Armadilhas de medição já tratadas

  • —Abreviações comuns ("Sr.", "etc.", "p.ex.") não contam como fim de frase — sem isso a contagem infla e o modelo é reprovado por erro do medidor.
  • —Palavra proibida é detectada com e sem acento: pedir para não usar "você" pega também "voce".
  • —Contagem de palavras aceita caracteres acentuados.

Licença e citação

Apache 2.0. Se usar, cite este repositório. Construído como parte do projeto Pocket-LM, um modelo de linguagem pt-BR de 269M treinado do zero para rodar offline no celular.