File size: 5,524 Bytes
6efebdc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
from pathlib import Path
from utils import load_json_results
import gradio as gr
from leaderboard_tab import search_leaderboard, update_columns_to_show, create_leaderboard_tab

# Constants
LLM_IN_CONTEXT_ABOUT_SECTION = """"""

# Global variables
llm_in_context_df = None

def load_reranking_leaderboard():
    """Load and prepare the reranking leaderboard data"""
    global llm_in_context_df
    
    dataframe_path = Path(__file__).parent / "results" / "llm_in_context_results.json"
    
    # Prepare dataframe
    llm_in_context_df = load_json_results(
        dataframe_path,
        prepare_for_display=True,
        sort_col="Overall Score",
        drop_cols=["Revision", "Precision", "Task"]
    )
    llm_in_context_df.insert(0, "Rank", range(1, 1 + len(llm_in_context_df)))
    llm_in_context_df.rename(columns={"nDCG": "nDCG@10", "MRR": "MRR@10"}, inplace=True)
    
    return llm_in_context_df

def reranking_search_leaderboard(model_name, columns_to_show):
    """Search function for reranking leaderboard"""
    return search_leaderboard(llm_in_context_df, model_name, columns_to_show)

def update_reranker_columns_to_show(columns_to_show):
    """Update displayed columns for reranking leaderboard"""
    return update_columns_to_show(llm_in_context_df, columns_to_show)

def create_llm_in_context_tab():
    """Create the complete reranking leaderboard tab"""
    global llm_in_context_df
    
    # Load data if not already loaded
    if (llm_in_context_df is None):
        llm_in_context_df = load_reranking_leaderboard()
    
    # Define default columns to show
    default_columns = ["Rank", "Model", "Overall Score", "Model Parameters (in Millions)", 
                      "Embedding Dimensions", "Downloads Last Month", "MRR@10", "nDCG@10", "MAP"]
    
    columns_widths = [80 if col == "Rank" else 400 if col == "Model" else 150 for col in initial_columns_to_show]
    
    with gr.Tabs() as tabs:
        with gr.Tab("πŸ‘‘ Context Dependant Leaderboard"):
            with gr.Column():
                with gr.Row(equal_height=True):
                    search_box = gr.Textbox(
                        placeholder="Search for models...", 
                        label="Search (You can also press Enter to search)", 
                        scale=5
                    )
                    search_button = gr.Button(
                        value="Search",
                        variant="primary",
                        scale=1
                    )
                columns_to_show_input = gr.CheckboxGroup(
                    label="Columns to Show",
                    choices=llm_in_context_df.columns.tolist(),
                    value=initial_columns_to_show,
                    scale=4
                )

            leaderboard = gr.Dataframe(
                value=llm_in_context_df.loc[:, initial_columns_to_show],
                datatype="markdown",
                wrap=False,
                show_fullscreen_button=True,
                interactive=False,
                column_widths=columns_widths
            )
            
            # Connect events
            search_box.submit(
                search_function,
                inputs=[search_box, columns_to_show_input],
                outputs=leaderboard
            )
            columns_to_show_input.select(
                update_function,
                inputs=columns_to_show_input,
                outputs=leaderboard
            )
            search_button.click(
                search_function,
                inputs=[search_box, columns_to_show_input],
                outputs=leaderboard
            )
        
        with gr.Tab("πŸ’Ž Context About Leaderboard"):
            with gr.Column():
                with gr.Row(equal_height=True):
                    search_box = gr.Textbox(
                        placeholder="Search for models...", 
                        label="Search (You can also press Enter to search)", 
                        scale=5
                    )
                    search_button = gr.Button(
                        value="Search",
                        variant="primary",
                        scale=1
                    )
                columns_to_show_input = gr.CheckboxGroup(
                    label="Columns to Show",
                    choices=llm_in_context_df.columns.tolist(),
                    value=initial_columns_to_show,
                    scale=4
                )

            leaderboard = gr.Dataframe(
                value=llm_in_context_df.loc[:, initial_columns_to_show],
                datatype="markdown",
                wrap=False,
                show_fullscreen_button=True,
                interactive=False,
                column_widths=columns_widths
            )
            
            # Connect events
            search_box.submit(
                search_function,
                inputs=[search_box, columns_to_show_input],
                outputs=leaderboard
            )
            columns_to_show_input.select(
                update_function,
                inputs=columns_to_show_input,
                outputs=leaderboard
            )
            search_button.click(
                search_function,
                inputs=[search_box, columns_to_show_input],
                outputs=leaderboard
            )

        with gr.Tab("🏡️ Submit"):
            submit_gradio_module(task_type)

        with gr.Tab("ℹ️ About"):
            gr.Markdown(about_section)
    
    return tabs