|
|
from dataclasses import dataclass, make_dataclass |
|
|
from enum import Enum |
|
|
import pandas as pd |
|
|
|
|
|
from src.about import Tasks |
|
|
|
|
|
def fields(raw_class): |
|
|
return [ |
|
|
v for k, v in raw_class.__dict__.items() |
|
|
if not (k.startswith("__") and k.endswith("__")) |
|
|
] |
|
|
|
|
|
@dataclass |
|
|
class ColumnContent: |
|
|
name: str |
|
|
type: str |
|
|
displayed_by_default: bool |
|
|
hidden: bool = False |
|
|
never_hidden: bool = False |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
auto_eval_column_dict = [] |
|
|
|
|
|
|
|
|
auto_eval_column_dict.append(["rank", ColumnContent, ColumnContent("Rank", "number", True, never_hidden=True)]) |
|
|
auto_eval_column_dict.append(["model", ColumnContent, ColumnContent("Model", "markdown", True, never_hidden=True)]) |
|
|
auto_eval_column_dict.append(["badge", ColumnContent, ColumnContent("Badge", "str", True)]) |
|
|
|
|
|
|
|
|
|
|
|
for task in Tasks: |
|
|
dataset_name = task.name |
|
|
col_base = task.value.col_name |
|
|
|
|
|
auto_eval_column_dict.append([ |
|
|
f"{dataset_name}_per", |
|
|
ColumnContent, |
|
|
ColumnContent(f"{col_base} ({dataset_name})", "number", True), |
|
|
]) |
|
|
auto_eval_column_dict.append([ |
|
|
f"{dataset_name}_avg_duration", |
|
|
ColumnContent, |
|
|
ColumnContent(f"Avg Duration (s) ({dataset_name})", "number", True), |
|
|
]) |
|
|
|
|
|
|
|
|
auto_eval_column_dict.append([ |
|
|
"average", ColumnContent, ColumnContent("Avg PER ⬇️ (All)", "number", True) |
|
|
]) |
|
|
|
|
|
|
|
|
auto_eval_column_dict.append(["model_type", ColumnContent, ColumnContent("Type", "str", False)]) |
|
|
auto_eval_column_dict.append(["architecture", ColumnContent, ColumnContent("Architecture", "str", False)]) |
|
|
auto_eval_column_dict.append(["weight_type", ColumnContent, ColumnContent("Weight type", "str", False, True)]) |
|
|
auto_eval_column_dict.append(["precision", ColumnContent, ColumnContent("Precision", "str", False)]) |
|
|
auto_eval_column_dict.append(["license", ColumnContent, ColumnContent("Hub License", "str", False)]) |
|
|
auto_eval_column_dict.append(["params", ColumnContent, ColumnContent("#Params (B)", "number", False)]) |
|
|
auto_eval_column_dict.append(["likes", ColumnContent, ColumnContent("Hub ❤️", "number", False)]) |
|
|
auto_eval_column_dict.append(["still_on_hub", ColumnContent, ColumnContent("Available on the hub", "bool", False)]) |
|
|
auto_eval_column_dict.append(["revision", ColumnContent, ColumnContent("Model sha", "str", False, False)]) |
|
|
|
|
|
|
|
|
AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict, frozen=True) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
COLS = [c.name for c in fields(AutoEvalColumn) if not c.hidden] |
|
|
|
|
|
df = pd.DataFrame(columns=[c.name for c in fields(AutoEvalColumn)]) |
|
|
|