Spaces:
Running
Running
| from functools import cmp_to_key | |
| class ModelCompare: | |
| def __init__(self, tasks, ranks: dict = None): | |
| self.current_task = None | |
| self.ranks = ranks | |
| self.tasks = tasks | |
| def compare_models(self, model_a, model_b): | |
| if not self.ranks: | |
| raise Exception("Missing model rankings") | |
| res = self.ranks[model_a][model_b][self.current_task] | |
| if res: | |
| return 1 | |
| elif not res: | |
| return -1 | |
| else: | |
| return -1 | |
| def get_tasks_ranks(self, ranks: dict) -> dict: | |
| """Order models based on the significance improvement""" | |
| self.ranks = ranks | |
| tasks_ranks = {} | |
| models = ranks.keys() | |
| for task in self.tasks: | |
| self.current_task = task | |
| tasks_ranks[task] = sorted(models, key=cmp_to_key(self.compare_models)) | |
| return tasks_ranks | |