Spaces:
Running
Running
from dataclasses import dataclass | |
from enum import Enum | |
from typing import Dict, List | |
from src.evaluation.questions import EXAM_QUESTIONS | |
from src.envs import QUEUE_REPO, RESULTS_REPO, REPO_ID, EXAM_QUESTIONS_REPO, HF_DATASETS_BASE_URL | |
class Task: | |
benchmark: str | |
metric: str | |
col_name: str | |
display_name: str | |
def create_tasks_enum(): | |
"""Create Tasks enum dynamically from dataset themes""" | |
task_dict = {} | |
for sanitized_theme, questions in EXAM_QUESTIONS.items(): | |
original_theme = questions[0]['theme'] | |
task_dict[sanitized_theme] = Task( | |
benchmark=sanitized_theme, | |
metric="accuracy", | |
col_name=f"{original_theme} Test", | |
display_name=original_theme | |
) | |
# Add overall score | |
task_dict['overall'] = Task( | |
benchmark="overall", | |
metric="accuracy", | |
col_name="Overall Score", | |
display_name="Overall Score" | |
) | |
return Enum('Tasks', task_dict) | |
Tasks = create_tasks_enum() | |
NUM_FEWSHOT = 0 | |
TITLE = """<h1 align="center" id="space-title">馃弳 SAS Opposition Exam Leaderboard</h1>""" | |
INTRODUCTION_TEXT = """ | |
Este leaderboard eval煤a modelos de lenguaje natural simulando la experiencia real de un opositor al Servicio Andaluz de Salud (SAS). | |
Al igual que un alumno opositor, los modelos deben responder a preguntas tipo test del temario oficial, demostrando su comprensi贸n y conocimiento de las materias evaluadas. | |
""" | |
LLM_BENCHMARKS_TEXT = f""" | |
## C贸mo funciona | |
Los modelos son evaluados exactamente igual que un opositor real: respondiendo preguntas tipo test del temario oficial del SAS, sin acceso a material de consulta durante la prueba. | |
Para consultar el temario completo y el proceso de oposici贸n, puede visitar la [p谩gina oficial del SAS](https://www.sspa.juntadeandalucia.es/servicioandaluzdesalud/profesionales/ofertas-de-empleo/oferta-de-empleo-publico-puestos-base/oep-extraordinaria-decreto-ley-122022-centros-sas/cuadro-de-evolucion-concurso-oposicion-centros-sas). | |
## Datasets del Proyecto | |
El proyecto utiliza tres datasets principales, todos disponibles en Hugging Face: | |
- [Dataset de Preguntas de Examen]({HF_DATASETS_BASE_URL}/{EXAM_QUESTIONS_REPO}): Contiene las preguntas tipo test utilizadas para la evaluaci贸n | |
- [Dataset de Solicitudes]({HF_DATASETS_BASE_URL}/{QUEUE_REPO}): Almacena las solicitudes de evaluaci贸n de modelos | |
- [Dataset de Resultados]({HF_DATASETS_BASE_URL}/{RESULTS_REPO}): Contiene los resultados de las evaluaciones realizadas | |
## Proceso de Evaluaci贸n | |
- Cada modelo se enfrenta a preguntas tipo test, similar al examen real de oposici贸n | |
- Las preguntas son de opci贸n m煤ltiple con una 煤nica respuesta correcta | |
- La puntuaci贸n se calcula como porcentaje de aciertos, igual que en la oposici贸n real | |
## Reproducibilidad | |
El c贸digo de evaluaci贸n est谩 disponible en este repositorio. Para reproducir resultados: | |
1. Env铆a tu modelo a trav茅s de la pesta帽a "Submit here!" | |
2. Puedes usar modelos de Hugging Face Hub o de OpenRouter | |
3. Los resultados se calcular谩n autom谩ticamente y se a帽adir谩n al leaderboard | |
""" | |
EVALUATION_QUEUE_TEXT = """ | |
## Opciones para evaluar tu modelo | |
### 1) Usando Hugging Face Hub: | |
- Aseg煤rate de que tu modelo est谩 disponible en el Hub | |
- El modelo debe poder cargarse usando AutoModelForCausalLM y AutoTokenizer | |
- Necesitar谩s proporcionar el nombre del modelo y la revisi贸n | |
### 2) Usando OpenRouter: | |
- Necesitar谩s una API key de OpenRouter | |
- Proporciona el nombre exacto del modelo como aparece en OpenRouter | |
- No necesitas hospedar el modelo, OpenRouter se encarga de eso | |
### Requisitos generales: | |
- Los modelos deben poder generar texto en espa帽ol | |
- Deben poder entender y responder preguntas de opci贸n m煤ltiple | |
- Se recomienda usar modelos con capacidad de razonamiento general | |
""" | |
CITATION_BUTTON_LABEL = "Citar estos resultados" | |
CITATION_BUTTON_TEXT = r""" | |
@misc{sas-exam-leaderboard, | |
title={SAS Opposition Exam Leaderboard}, | |
year={2025}, | |
url={https://huggingface.co/spaces/alberti/leaderboard} | |
} | |
""" | |