File size: 2,709 Bytes
54fdeab
845c238
54fdeab
 
66333bd
54fdeab
 
 
 
 
 
c604eb0
54fdeab
99b47fb
308ab1e
 
99b47fb
66333bd
530329e
66333bd
845c238
c604eb0
66333bd
c4887da
c604eb0
530329e
2472705
50c626b
2cd88e3
17c1bbe
7c72599
54fdeab
c604eb0
54fdeab
 
17c1bbe
54fdeab
c604eb0
a8e2f0c
5ab1e76
 
 
 
 
54fdeab
 
e72de6c
54fdeab
17c1bbe
 
 
54fdeab
17c1bbe
54fdeab
75afdc2
54fdeab
7552e97
54fdeab
 
1007cc7
54fdeab
 
75afdc2
54fdeab
 
2c3fe6c
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
import gradio as gr
from gradio_leaderboard import Leaderboard, SelectColumns, ColumnFilter
from pathlib import Path

from utils import LLM_BENCHMARKS_ABOUT_TEXT, LLM_BENCHMARKS_SUBMIT_TEXT, custom_css, jsonl_to_dataframe, add_average_column_to_df, apply_markdown_format_for_columns, submit, PART_LOGO, sort_dataframe_by_column



abs_path = Path(__file__).parent

# Any pandas-compatible data
leaderboard_df = jsonl_to_dataframe(str(abs_path / "leaderboard_data.jsonl"))


all_columns = ["Model", "Average Accuracy", "Precision", "#Params (B)", "Part Multiple Choice", "ARC Easy", "ARC Challenge", "MMLU Pro", "Multiple Choice Persian"]
columns_to_average = ["Part Multiple Choice", "ARC Easy", "ARC Challenge", "MMLU Pro", "Multiple Choice Persian"]

average_column_name = "Average Accuracy"

leaderboard_df = add_average_column_to_df(leaderboard_df, columns_to_average, index=3, average_column_name=average_column_name)

leaderboard_df = apply_markdown_format_for_columns(df=leaderboard_df, model_column_name="Model")
leaderboard_df = sort_dataframe_by_column(leaderboard_df, column_name=average_column_name)

columns_data_type = ["markdown" for i in range(len(leaderboard_df.columns))]
# "str", "number", "bool", "date", "markdown"
# columns_data_type[0] = "markdown"


with gr.Blocks(css=custom_css) as demo:
    # gr.HTML(PART_LOGO)
    gr.Markdown("""
    # Persian LLM Leaderboard
    """)

    with gr.Tab("πŸŽ–οΈ Persian Leaderboard"):
        Leaderboard(
        value=leaderboard_df,
        datatype=columns_data_type,
        select_columns=SelectColumns(
            default_selection=all_columns,
            cant_deselect=["Model"],
            label="Select Columns to Show",
        ),
        search_columns=["model_name_for_query"],
        hide_columns=["model_name_for_query",],
        filter_columns=["Precision", "#Params (B)"],
    )
    with gr.TabItem("πŸ“ About"):
        gr.Markdown(LLM_BENCHMARKS_ABOUT_TEXT)

    with gr.Tab("βœ‰οΈ Submit"):
        gr.Markdown(LLM_BENCHMARKS_SUBMIT_TEXT)
        model_name = gr.Textbox(label="Model name")
        model_id = gr.Textbox(label="username/space e.g PartAI/Dorna-Llama3-8B-Instruct")
        contact_email = gr.Textbox(label="Contact E-Mail")
        license = gr.Dropdown(choices=["llama2", "llama3", "llama3.1", "llama3.2", "cc-by-nc-4.0", "mit", "apache-2.0", "gemma", "cc-by-nc-sa-4.0", "other"], label="License")
        submit_btn = gr.Button("Submit")

        submit_btn.click(submit, inputs=[model_name, model_id, contact_email, license], outputs=[])

        gr.Markdown("""
        Please find more information about Part DP AI on [partdp.ai](https://partdp.ai)""")

if __name__ == "__main__":
    demo.launch()