LLMZSZL_Leaderboard / src /structures /leaderboard_structure.py
michal
round params
7318493
import pandas as pd
from pathlib import Path
abs_path = Path(__file__).parent.parent.parent
ORDER_LIST = ["Name", "Lang", "Score", "Parameters (B)", "Date"]
COLUMN_HEADERS = ["Name", "Language", "Score", "Parameters (B)", "Date"]
DATA_TYPES = ["markdown", "str", "number", "number", "str"]
def filter_data(selected_columns, search_query):
df = LB_LLMZSZL[selected_columns]
if search_query:
df = df[df['Name'].str.contains(search_query, case=False, na=False)]
return df
def filter_row(language):
if language:
return LB_LLMZSZL[LB_LLMZSZL["Lang"] == language]
return LB_LLMZSZL
def filter_columns(column_choices):
selected_columns = [col for col in ORDER_LIST if col in column_choices]
return LB_LLMZSZL[selected_columns]
def load_json_data(file_path, order_list):
LB_LLMZSZL = pd.read_json(file_path)
for column in LB_LLMZSZL.columns:
if LB_LLMZSZL[column].apply(type).eq(dict).any():
LB_LLMZSZL[column] = LB_LLMZSZL[column].apply(str)
LB_LLMZSZL["Name"] = LB_LLMZSZL["Name"].apply(
lambda name: f"[{name}](https://huggingface.co/{name})"
)
lang_replacements = {
'E': 'English',
'P': 'Polish',
'm': 'Multilingual'
}
LB_LLMZSZL["Lang"] = LB_LLMZSZL["Lang"].apply(
lambda lang_code: lang_replacements.get(lang_code, lang_code) # Replace using the dictionary, keep original if not found
)
if "Parameters (B)" in LB_LLMZSZL.columns:
LB_LLMZSZL["Parameters (B)"] = LB_LLMZSZL["Parameters (B)"].astype(float).round(1)
ordered_columns = [col for col in order_list if col in LB_LLMZSZL.columns]
LB_LLMZSZL = LB_LLMZSZL[ordered_columns]
LB_LLMZSZL = LB_LLMZSZL.sort_values(by="Score", ascending=False)
return LB_LLMZSZL
file_path = str(abs_path / "leaderboards/llmzszl.json")
LB_LLMZSZL = load_json_data(file_path, ORDER_LIST)