Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
fix: fix the mean calculation for NAN values
Browse files- src/read_evals.py +8 -2
- src/utils.py +2 -1
src/read_evals.py
CHANGED
|
@@ -7,7 +7,6 @@ from typing import List
|
|
| 7 |
import pandas as pd
|
| 8 |
|
| 9 |
from src.benchmarks import get_safe_name
|
| 10 |
-
from src.display.formatting import has_no_nan_values
|
| 11 |
from src.display.utils import (
|
| 12 |
COL_NAME_RERANKING_MODEL,
|
| 13 |
COL_NAME_RETRIEVAL_MODEL,
|
|
@@ -27,6 +26,13 @@ from src.display.utils import (
|
|
| 27 |
from src.display.formatting import make_clickable_model
|
| 28 |
|
| 29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
@dataclass
|
| 31 |
class EvalResult:
|
| 32 |
"""
|
|
@@ -203,7 +209,7 @@ def get_leaderboard_df(raw_data: List[FullEvalResult], task: str, metric: str) -
|
|
| 203 |
_benchmark_cols = frozenset(benchmark_cols).intersection(frozenset(df.columns.to_list()))
|
| 204 |
|
| 205 |
# calculate the average score for selected benchmarks
|
| 206 |
-
df[COL_NAME_AVG] = df[list(_benchmark_cols)].
|
| 207 |
df.sort_values(by=[COL_NAME_AVG], ascending=False, inplace=True)
|
| 208 |
df.reset_index(inplace=True, drop=True)
|
| 209 |
|
|
|
|
| 7 |
import pandas as pd
|
| 8 |
|
| 9 |
from src.benchmarks import get_safe_name
|
|
|
|
| 10 |
from src.display.utils import (
|
| 11 |
COL_NAME_RERANKING_MODEL,
|
| 12 |
COL_NAME_RETRIEVAL_MODEL,
|
|
|
|
| 26 |
from src.display.formatting import make_clickable_model
|
| 27 |
|
| 28 |
|
| 29 |
+
def calculate_mean(row):
|
| 30 |
+
if pd.isna(row).any():
|
| 31 |
+
return 0
|
| 32 |
+
else:
|
| 33 |
+
return row.mean()
|
| 34 |
+
|
| 35 |
+
|
| 36 |
@dataclass
|
| 37 |
class EvalResult:
|
| 38 |
"""
|
|
|
|
| 209 |
_benchmark_cols = frozenset(benchmark_cols).intersection(frozenset(df.columns.to_list()))
|
| 210 |
|
| 211 |
# calculate the average score for selected benchmarks
|
| 212 |
+
df[COL_NAME_AVG] = df[list(_benchmark_cols)].apply(calculate_mean, axis=1).round(decimals=2)
|
| 213 |
df.sort_values(by=[COL_NAME_AVG], ascending=False, inplace=True)
|
| 214 |
df.reset_index(inplace=True, drop=True)
|
| 215 |
|
src/utils.py
CHANGED
|
@@ -11,7 +11,7 @@ from src.display.formatting import styled_message, styled_error
|
|
| 11 |
from src.display.utils import COLS_QA, TYPES_QA, COLS_LONG_DOC, TYPES_LONG_DOC, COL_NAME_RANK, COL_NAME_AVG, \
|
| 12 |
COL_NAME_RERANKING_MODEL, COL_NAME_RETRIEVAL_MODEL, COL_NAME_IS_ANONYMOUS, get_default_auto_eval_column_dict
|
| 13 |
from src.envs import API, SEARCH_RESULTS_REPO
|
| 14 |
-
from src.read_evals import FullEvalResult, get_leaderboard_df
|
| 15 |
|
| 16 |
|
| 17 |
def filter_models(df: pd.DataFrame, reranking_query: list) -> pd.DataFrame:
|
|
@@ -100,6 +100,7 @@ def select_columns(df: pd.DataFrame, domain_query: list, language_query: list, t
|
|
| 100 |
# We use COLS to maintain sorting
|
| 101 |
filtered_df = df[FIXED_COLS + selected_cols]
|
| 102 |
filtered_df[COL_NAME_AVG] = filtered_df[selected_cols].mean(axis=1, numeric_only=True).round(decimals=2)
|
|
|
|
| 103 |
filtered_df.sort_values(by=[COL_NAME_AVG], ascending=False, inplace=True)
|
| 104 |
filtered_df.reset_index(inplace=True, drop=True)
|
| 105 |
filtered_df[COL_NAME_RANK] = filtered_df[COL_NAME_AVG].rank(ascending=False, method="min")
|
|
|
|
| 11 |
from src.display.utils import COLS_QA, TYPES_QA, COLS_LONG_DOC, TYPES_LONG_DOC, COL_NAME_RANK, COL_NAME_AVG, \
|
| 12 |
COL_NAME_RERANKING_MODEL, COL_NAME_RETRIEVAL_MODEL, COL_NAME_IS_ANONYMOUS, get_default_auto_eval_column_dict
|
| 13 |
from src.envs import API, SEARCH_RESULTS_REPO
|
| 14 |
+
from src.read_evals import FullEvalResult, get_leaderboard_df, calculate_mean
|
| 15 |
|
| 16 |
|
| 17 |
def filter_models(df: pd.DataFrame, reranking_query: list) -> pd.DataFrame:
|
|
|
|
| 100 |
# We use COLS to maintain sorting
|
| 101 |
filtered_df = df[FIXED_COLS + selected_cols]
|
| 102 |
filtered_df[COL_NAME_AVG] = filtered_df[selected_cols].mean(axis=1, numeric_only=True).round(decimals=2)
|
| 103 |
+
filtered_df[COL_NAME_AVG] = filtered_df[selected_cols].apply(calculate_mean, axis=1).round(decimals=2)
|
| 104 |
filtered_df.sort_values(by=[COL_NAME_AVG], ascending=False, inplace=True)
|
| 105 |
filtered_df.reset_index(inplace=True, drop=True)
|
| 106 |
filtered_df[COL_NAME_RANK] = filtered_df[COL_NAME_AVG].rank(ascending=False, method="min")
|