Spaces:
AIR-Bench
/
Running on CPU Upgrade

File size: 4,200 Bytes
f766ce9
 
 
729aa2a
f766ce9
 
 
 
 
8b7a945
f766ce9
 
 
 
 
 
 
 
8b7a945
df659d0
9134169
729aa2a
 
 
 
 
 
 
 
 
 
 
8b7a945
ec8e2d4
 
 
729aa2a
 
 
 
 
 
ec8e2d4
df659d0
 
ec8e2d4
 
 
729aa2a
 
 
 
 
 
ec8e2d4
9134169
1a2dba5
729aa2a
 
 
 
 
 
 
 
 
 
1a2dba5
 
729aa2a
 
 
 
 
 
 
 
 
 
 
 
 
 
1a2dba5
9134169
ec8e2d4
 
 
729aa2a
 
 
 
 
 
ec8e2d4
df659d0
 
ec8e2d4
 
 
729aa2a
 
 
 
 
 
ec8e2d4
2edd122
9400714
729aa2a
 
 
 
 
 
 
 
 
 
9400714
df659d0
 
9400714
32ee53f
df659d0
649e0fb
7845083
9134169
 
 
f766ce9
9134169
 
 
 
7845083
 
729aa2a
 
7845083
 
 
 
 
 
98e75e7
 
 
 
 
 
 
 
 
 
 
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
from dataclasses import dataclass, make_dataclass


def _fields(raw_class):
    return [v for k, v in raw_class.__dict__.items() if k[:2] != "__" and k[-2:] != "__"]


# These classes are for user facing column names,
# to avoid having to change them all around the code
# when a modification is needed
@dataclass
class ColumnContent:
    name: str
    type: str
    displayed_by_default: bool
    hidden: bool = False
    never_hidden: bool = False


def get_default_auto_eval_column_dict():
    auto_eval_column_dict = []
    auto_eval_column_dict.append(
        [
            "rank",
            ColumnContent,
            ColumnContent(
                COL_NAME_RANK,
                "number",
                True
            )
        ]
    )
    auto_eval_column_dict.append(
        [
            "retrieval_model",
            ColumnContent,
            ColumnContent(
                COL_NAME_RETRIEVAL_MODEL,
                "markdown",
                True,
                never_hidden=True
            )
        ]
    )
    auto_eval_column_dict.append(
        [
            "reranking_model",
            ColumnContent,
            ColumnContent(
                COL_NAME_RERANKING_MODEL,
                "markdown",
                True,
                never_hidden=True
            )
        ]
    )
    auto_eval_column_dict.append(
        [
            "revision",
            ColumnContent,
            ColumnContent(
                COL_NAME_REVISION,
                "markdown",
                True,
                never_hidden=True
            )
        ]
    )
    auto_eval_column_dict.append(
        [
            "timestamp",
            ColumnContent,
            ColumnContent(
                COL_NAME_TIMESTAMP, "date", True, never_hidden=True
            )
        ]
    )
    auto_eval_column_dict.append(
        [
            "average",
            ColumnContent,
            ColumnContent(COL_NAME_AVG, "number", True)
        ]
    )
    auto_eval_column_dict.append(
        [
            "retrieval_model_link",
            ColumnContent,
            ColumnContent(
                COL_NAME_RETRIEVAL_MODEL_LINK,
                "markdown",
                False,
                hidden=True,
            )
        ]
    )
    auto_eval_column_dict.append(
        [
            "reranking_model_link",
            ColumnContent,
            ColumnContent(
                COL_NAME_RERANKING_MODEL_LINK,
                "markdown",
                False,
                hidden=True,
            )
        ]
    )
    auto_eval_column_dict.append(
        [
            "is_anonymous",
            ColumnContent,
            ColumnContent(
                COL_NAME_IS_ANONYMOUS,
                "bool",
                False,
                hidden=True
            )
        ]
    )
    return auto_eval_column_dict


def make_autoevalcolumn(cls_name, benchmarks):
    auto_eval_column_dict = get_default_auto_eval_column_dict()
    # Leaderboard columns
    for benchmark in list(benchmarks.value):
        auto_eval_column_dict.append(
            [benchmark.name, ColumnContent, ColumnContent(benchmark.value.col_name, "number", True)]
        )

    # We use make dataclass to dynamically fill the scores from Tasks
    return make_dataclass(cls_name, auto_eval_column_dict, frozen=True)


def get_default_col_names_and_types(benchmarks):
    AutoEvalColumn = make_autoevalcolumn("AutoEvalColumn", benchmarks)
    col_names = [c.name for c in _fields(AutoEvalColumn) if not c.hidden]
    col_types = [c.type for c in _fields(AutoEvalColumn) if not c.hidden]
    return col_names, col_types


def get_fixed_col_names_and_types():
    fixed_cols = get_default_auto_eval_column_dict()[:-3]
    return [c.name for _, _, c in fixed_cols], [c.type for _, _, c in fixed_cols]


COL_NAME_AVG = "Average ⬆️"
COL_NAME_RETRIEVAL_MODEL = "Retrieval Method"
COL_NAME_RERANKING_MODEL = "Reranking Model"
COL_NAME_RETRIEVAL_MODEL_LINK = "Retrieval Model LINK"
COL_NAME_RERANKING_MODEL_LINK = "Reranking Model LINK"
COL_NAME_RANK = "Rank 🏆"
COL_NAME_REVISION = "Revision"
COL_NAME_TIMESTAMP = "Submission Date"
COL_NAME_IS_ANONYMOUS = "Anonymous Submission"