babilong / app.py
yurakuratov's picture
rename avg->avg(qa1-5) and pin model_name column
43b9e03
import streamlit as st
from draw_utils import PAGE_MARKDOWN, PAGE_INFO, LENGTHS
from draw_utils import load_results, style_dataframe
st.set_page_config(layout="wide", page_title="Leaderboard App")
st.markdown(PAGE_MARKDOWN, unsafe_allow_html=True)
def draw_leaderboard():
df = load_results()
tasks = ['avg(qa1-5)'] + [f"qa{i}" for i in range(1, 11)]
columns = ["model_name", "≀32k", "≀128k"] + LENGTHS
st.title("πŸ”ŽπŸ“šπŸͺ‘πŸ“šβ“ BABILong Leaderboard πŸ†")
st.markdown(PAGE_INFO)
st.subheader("Evaluation results:")
st.text('Each tab corresponds to a task, avg - averaged scores over qa1-5 tasks.')
st.markdown('Predictions of all evaluated models: '
'[BABILong evals](https://huggingface.co/datasets/RMT-team/babilong_evals)')
search_term = st.text_input("Search models:", "")
tabs = st.tabs(tasks)
for i, tab in enumerate(tabs):
with tab:
task_df = df[df.task == tasks[i]][columns]
if i == 0: # do not dispay models with no evals ≀1k for avg task
task_df = task_df.loc[~task_df[task_df.columns[:5]].isna().any(axis=1)]
if search_term:
task_df = task_df[task_df['model_name'].str.contains(search_term, case=False)]
task_df.reset_index(drop=True, inplace=True)
row_height = 35
height = (len(task_df) + 1) * row_height
styled_df = style_dataframe(task_df).format(precision=1)
st.dataframe(
styled_df,
width=1070,
height=height,
column_config={
"model_name": st.column_config.Column(width=260, pinned=True)
}
)
if __name__ == "__main__":
draw_leaderboard()