Download src/about.py from Prosodia/Atlas: direct link, hf CLI and curl.
- Browser
- Download file 5.55 kB
-
https://huggingface.co/spaces/Prosodia/Atlas/resolve/main/src/about.py
- Command line
-
hf download hf://spaces/Prosodia/Atlas/src/about.py
-
curl -L -o about.py https://huggingface.co/spaces/Prosodia/Atlas/resolve/main/src/about.py
5.55 kB
| from dataclasses import dataclass | |
| from enum import Enum | |
| class Task: | |
| benchmark: str | |
| metric: str | |
| col_name: str | |
| # Select your tasks here | |
| # --------------------------------------------------- | |
| class Tasks(Enum): | |
| # task_key in the json file, metric_key in the json file, name to display in the leaderboard | |
| #task0 = Task("anli_r1", "acc", "ANLI") | |
| #task1 = Task("logiqa", "acc_norm", "LogiQA") | |
| tweetsent = Task("tweetsent", "acc", "tweetsent") | |
| oab_mcq = Task("oab_mcq", "acc", "oab_mcq") | |
| enem_mcq = Task("enem_mcq", "acc", "enem_mcq") | |
| bluex_mcq = Task("bluex_mcq", "acc", "bluex_mcq") | |
| hatebr = Task("hatebr", "acc", "hatebr") | |
| assin_rte_ptbr = Task("assin_rte_ptbr", "acc", "assin_rte_ptbr") | |
| faquad_rte_parq= Task("faquad_rte_parq","acc", "faquad_rte_parq") | |
| NUM_FEWSHOT = 0 # Change with your few shot | |
| # --------------------------------------------------- | |
| # Your leaderboard name | |
| TITLE = """<h1 align="center" id="space-title">Atlas Diagnóstico de Modelos de Linguagem</h1>""" | |
| # What does your leaderboard evaluate? | |
| INTRODUCTION_TEXT = """ | |
| Bem-vindo ao Atlas, uma avaliação de LLMs em português que prioriza conteúdo correto sobre formatação rígida, sendo ideal para modelos pequenos que possuem conhecimento mas não produzem templates perfeitos. | |
| Nossa abordagem usa parseamento heurístico tolerante, calibração automática e métricas desacopladas: o macro_score (0-1) mede capacidade semântica, enquanto a nonparse_rate avalia obediência às instruções separadamente. | |
| Isso permite diagnosticar claramente se um modelo falha por conhecimento insuficiente ou por dificuldades de formatação, oferecendo um diagnóstico robusto e prático de usabilidade real. Inspirado no EleutherAI Benchmark [lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness). | |
| Versão Atual: Pre-alpha | |
| """ | |
| # Which evaluations are you running? how can people reproduce what you have? | |
| LLM_BENCHMARKS_TEXT = f""" | |
| ## Como funciona | |
| O benchmark foi projetado para avaliar modelos de linguagem em português mantendo a precisão das golden labels, mas sem punir respostas que desviam de templates rígidos. Ele é especialmente amigável para modelos pequenos, que possuem conhecimento mas não conseguem seguir formatos ultra-restritos devido ao tamanho reduzido. A abordagem foca na pergunta: "com contexto e instruções claras, o modelo produz uma resposta correta e minimamente estruturada?", ao invés de exigir uma correspondência exata com um formato esperado. Isso preserva a capacidade informativa do modelo enquanto respeita sua natureza generativa e probabilística. | |
| Tecnicamente, o sistema extrai a intenção da resposta através de **parseamento heurístico tolerante**, que aceita verbosidade, ruído e variações mínimas para identificar a escolha do modelo (ex: letra da alternativa, "sim/não"). A **taxa de não-parseamento (nonparse_rate)** mede a fração de respostas que não puderam ser interpretadas, servindo como meta-métrica crucial de obediência às instruções de formato, sem penalizar o desempenho no score principal. Além disso, um sistema de **calibração automática** ajusta o mapeamento entre respostas textuais e rótulos numéricos para maximizar a acurácia, evitando que o modelo seja punido por detalhes arbitrários de codificação do dataset. | |
| As métricas variam por tipo de tarefa: similaridade semântica (STS) usa a média de correlações de Pearson/Spearman (intervalo [-1,1]); tarefas de múltiplas classes (CB, Fortuna) combinam accuracy e F1-macro em uma média; e tarefas binárias ou de múltipla escolha usam accuracy pura. O **macro_score** global é a média aritmética desses escores principais (s_task) de cada tarefa, teoricamente variando de -1 a 1, embora na prática fique entre 0 e 1 para modelos razoáveis. Importante: a nonparse_rate não entra nesse cálculo, permitindo separar claramente "capacidade de seguir formato" de "conhecimento semântico". | |
| Essa arquitetura oferece heurísticas poderosas para análise prática. Permite diagnosticar separadamente se um modelo falha por **problemas de conteúdo** (baixa accuracy/F1) ou de **formatação** (alta nonparse_rate). A calibração revela se o modelo "entende a intenção" das classes, independente da codificação específica. A média simples entre tarefas, apesar de dar peso igual a todas, produz um escore robusto e interpretável de versatilidade geral, monotonicamente relacionado ao desempenho em cada componente. Cada tarefa contribui uma vez com sua métrica mais representativa, evitando distorções. | |
| As principais **limitações** são teóricas: a mistura de escalas (correlação vs. accuracy) poderia desbalancear, mas na prática correlações negativas são raras em modelos úteis; e o peso igual entre tarefas reflete uma escolhe de priorizar versatilidade sobre especialização. Como toda heurística, não é um índice absoluto de "inteligência", mas um diagnóstico robusto de robustez e usabilidade real. O design equilibra simplicidade interpretativa, riqueza multidimensional (conhecimento, similaridade, multi-label) e tolerância às imperfeições dos modelos generativos. | |
| """ | |
| EVALUATION_QUEUE_TEXT = """ | |
| ## Submissão de modelo | |
| Escreva um e-mail para contato@prosodia.org e conversaremos sobre! | |
| """ | |
| CITATION_BUTTON_LABEL = "Copie a seguinte parte para citar o Atlas" | |
| CITATION_BUTTON_TEXT = "Feito e produzido por Prosodia, contaro@prosodia.org" | |