Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 2,688 Bytes
39acd70 3964afa 39acd70 3964afa a8a8975 39acd70 a8a8975 39acd70 a8a8975 39acd70 a8a8975 39acd70 3964afa 39acd70 3964afa a8a8975 39acd70 3964afa 39acd70 a8a8975 3964afa a8a8975 39acd70 3964afa 39acd70 a8a8975 39acd70 3964afa 39acd70 3964afa 39acd70 a8a8975 3964afa a8a8975 39acd70 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
#!/usr/bin/env python3
"""
Script for relaunching LightEval evaluation with a custom timeout
"""
import os
import sys
import argparse
import asyncio
from pathlib import Path
from datetime import datetime
# Import evaluation task
from tasks.evaluation_task import EvaluationTask, DEFAULT_EVALUATION_TIMEOUT
def log(message):
"""Affiche un message avec un timestamp"""
print(f"[{datetime.now().strftime('%H:%M:%S')}] {message}")
async def main(session_id, dataset_name, timeout=None):
"""
Relance l'évaluation avec un timeout personnalisé
Args:
session_id: ID de la session à traiter
dataset_name: Nom du dataset à évaluer
timeout: Timeout en secondes pour chaque évaluation de modèle (utilise la valeur par défaut si None)
"""
# Check that session folder exists
session_dir = Path(f"uploaded_files/{session_id}")
if not session_dir.exists():
log(f"Erreur: Le dossier de session {session_id} n'existe pas")
return 1
# Display used timeout
timeout_value = timeout if timeout is not None else DEFAULT_EVALUATION_TIMEOUT
log(f"Utilisation d'un timeout de {timeout_value} secondes pour l'évaluation")
# Create new evaluation task with specified timeout
log("Initialisation d'une nouvelle tâche d'évaluation")
evaluation_task = EvaluationTask(
session_uid=session_id,
dataset_name=dataset_name,
clean_old_results=True, # Automatically clean old results
timeout=timeout
)
# Run evaluation
log("Démarrage de l'évaluation...")
await evaluation_task.run()
# Check results
if evaluation_task.is_completed:
log("Évaluation terminée avec succès")
# Sort results by accuracy
results_sorted = sorted(evaluation_task.results, key=lambda x: x.get('accuracy', 0), reverse=True)
log(f"Résultats: {results_sorted}")
else:
log("L'évaluation n'a pas pu être terminée")
return 0
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Relancer l'évaluation LightEval avec un timeout personnalisé")
parser.add_argument("session_id", help="ID de la session à traiter")
parser.add_argument("dataset_name", help="Nom du dataset à évaluer")
parser.add_argument("--timeout", type=float, default=None,
help=f"Timeout en secondes pour chaque évaluation de modèle (défaut: {DEFAULT_EVALUATION_TIMEOUT})")
args = parser.parse_args()
# Run main function asynchronously
exit_code = asyncio.run(main(args.session_id, args.dataset_name, args.timeout))
sys.exit(exit_code) |