File size: 2,205 Bytes
6b85865
f9b88e9
88c2b27
 
 
 
f9b88e9
 
627b779
66e2e92
 
 
 
 
 
f9b88e9
93fe92a
f9b88e9
 
 
88c2b27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6b85865
88c2b27
 
3a8762c
88c2b27
93fe92a
903d653
6b85865
88c2b27
ffdb8d3
f9b88e9
 
903d653
f9b88e9
 
 
 
 
 
22725f7
f9b88e9
cee6ea9
627b779
546eedf
f9b88e9
22725f7
f9b88e9
 
 
 
 
 
 
 
66e2e92
f9b88e9
66e2e92
22725f7
f9b88e9
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
import gradio as gr
import pandas as pd
import os
import fnmatch
import json


class MultiURLData:
    def __init__(self):
        self.data = self.process_data()

    
    def get_data(self):
        return self.data
    

    def process_data(self):

        dataframes = []

        def find_files(directory, pattern):
            for root, dirs, files in os.walk(directory):
                for basename in files:
                    if fnmatch.fnmatch(basename, pattern):
                        filename = os.path.join(root, basename)
                        yield filename

        for filename in find_files('results', 'results*.json'):
            model_name = filename.split('/')[2]
            with open(filename) as f:
                data = json.load(f)
                df = pd.DataFrame(data['results']).T

                # Rename 'acc' column to respective file names
                df = df.rename(columns={'acc': model_name})

                # Remove 'hendrycksTest-' from the index
                df.index = df.index.str.replace('hendrycksTest-', '')

                # Remove'harness|' from the index
                df.index = df.index.str.replace('harness\\|', '')


                dataframes.append(df[[model_name]])  # keep only the column of interest

        # Merge the dataframes on index
        data = pd.concat(dataframes, axis=1)

        # Transpose the dataframe to swap rows and columns
        data = data.transpose()
        data['Model Name'] = data.index
        cols = data.columns.tolist()
        cols = cols[-1:] + cols[:-1]
        data = data[cols]

        return data

data_provider = MultiURLData()

block = gr.Blocks()

with block:    
    gr.Markdown("""Leaderboard""")
    with gr.Tabs():
        with gr.TabItem("Leaderboard"):
            with gr.Row():
                data = gr.outputs.Dataframe(type="pandas")
            with gr.Row():
                data_run = gr.Button("Refresh")
                data_run.click(data_provider.get_data, inputs=None, outputs=data)
    # running the function on page load in addition to when the button is clicked
    block.load(data_provider.get_data, inputs=None, outputs=data)               

block.launch()