File size: 2,624 Bytes
54fdeab
845c238
54fdeab
 
b9dac59
54fdeab
 
 
 
 
 
c604eb0
54fdeab
99b47fb
9f3376e
 
99b47fb
530329e
c604eb0
845c238
c604eb0
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
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
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



abs_path = Path(__file__).parent

# Any pandas-compatible data
leaderboard_df = jsonl_to_dataframe(str(abs_path / "leaderboard_data.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"]


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

leaderboard_df = apply_markdown_format_for_columns(df=leaderboard_df, model_column_name="Model")

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")
        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()