File size: 3,480 Bytes
54fdeab
845c238
54fdeab
 
2c3fe6c
54fdeab
 
 
 
 
 
d779abf
62afa83
54fdeab
99b47fb
9f3376e
 
99b47fb
530329e
845c238
 
 
c4887da
 
 
530329e
 
 
 
2cd88e3
17c1bbe
54fdeab
17c1bbe
54fdeab
 
17c1bbe
 
 
54fdeab
 
17c1bbe
a8e2f0c
5ab1e76
 
 
 
 
54fdeab
 
e72de6c
54fdeab
17c1bbe
e72de6c
 
54fdeab
 
17c1bbe
a8e2f0c
845c238
 
 
 
 
54fdeab
 
e72de6c
54fdeab
17c1bbe
 
 
54fdeab
17c1bbe
54fdeab
75afdc2
54fdeab
75afdc2
7552e97
54fdeab
 
75afdc2
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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_clickable_model, submit



abs_path = Path(__file__).parent

# Any pandas-compatible data
persian_df = jsonl_to_dataframe(str(abs_path / "leaderboard_persian.jsonl"))
base_df = jsonl_to_dataframe(str(abs_path / "leaderboard_base.jsonl"))


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


base_df = add_average_column_to_df(base_df, columns_to_average, index=3)
persian_df = add_average_column_to_df(persian_df, columns_to_average, index=3)

base_df = apply_clickable_model(df=base_df, column_name="Model")
persian_df = apply_clickable_model(df=persian_df, column_name="Model")

columns_data_type = ["str" for i in range(len(persian_df.columns))]
# "str", "number", "bool", "date", "markdown"
# set model name link as markdown because of hyperlink selection
columns_data_type[0] = "markdown"

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

    with gr.Tab("πŸŽ–οΈ Persian Leaderboard"):
        gr.Markdown("""## Persian LLM Leaderboard
                Evaluating Persian Fine-Tuned models 
                """)
        Leaderboard(
        value=persian_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.Tab("πŸ₯‡ Base Leaderboard"):
        gr.Markdown("""## Base LLM Leaderboard
                Evaluating Base Models
                """)
        Leaderboard(
        value=base_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")
        section = gr.Radio(choices=["Persian", "Base"], label="Section")
        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, section, license], outputs=[])

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

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