Update app.py
Browse files
app.py
CHANGED
@@ -28,6 +28,16 @@ head_style = """
|
|
28 |
|
29 |
DATA_URL_BASE = "http://opencompass.oss-cn-shanghai.aliyuncs.com/dev-assets/hf-research/"
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
def findfile():
|
33 |
model_meta_info = 'model-meta-info'
|
@@ -46,18 +56,13 @@ def findfile():
|
|
46 |
model_info, results = findfile()
|
47 |
|
48 |
|
49 |
-
MAIN_LEADERBOARD_DESCRIPTION = """## Compass Academic Leaderboard
|
50 |
-
--WIP--
|
51 |
-
|
52 |
-
"""
|
53 |
-
Initial_title = 'Compass Academic Leaderboard'
|
54 |
|
55 |
|
56 |
|
57 |
def make_results_tab(model_info, results):
|
58 |
models_list, datasets_list = [], []
|
59 |
for i in model_info:
|
60 |
-
models_list.append(
|
61 |
for i in results.keys():
|
62 |
datasets_list.append(i)
|
63 |
|
@@ -66,10 +71,12 @@ def make_results_tab(model_info, results):
|
|
66 |
for model in models_list:
|
67 |
this_result = {}
|
68 |
this_result['Index'] = index
|
69 |
-
this_result['Model Name'] = model[
|
|
|
|
|
70 |
index += 1
|
71 |
for dataset in datasets_list:
|
72 |
-
this_result[dataset] = results[dataset][model[
|
73 |
result_list.append(this_result)
|
74 |
|
75 |
df = pd.DataFrame(result_list)
|
@@ -93,7 +100,10 @@ def show_results_tab(df):
|
|
93 |
|
94 |
|
95 |
def filter_df(model_name):
|
|
|
96 |
newdf = make_results_tab(model_info, results)
|
|
|
|
|
97 |
default_val = 'Input the Model Name'
|
98 |
if model_name != default_val:
|
99 |
method_names = [x.split('</a>')[0].split('>')[-1].lower() for x in newdf['Model Name']]
|
@@ -103,9 +113,46 @@ def show_results_tab(df):
|
|
103 |
newdf.pop('TEMP')
|
104 |
for i in range(len(newdf)):
|
105 |
df.loc[i, 'Index'] = i+1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
return newdf
|
107 |
-
|
108 |
|
|
|
109 |
with gr.Row():
|
110 |
with gr.Column():
|
111 |
model_name = gr.Textbox(
|
@@ -139,17 +186,17 @@ def show_results_tab(df):
|
|
139 |
|
140 |
model_name.submit(
|
141 |
fn=filter_df,
|
142 |
-
inputs=model_name,
|
143 |
outputs=table
|
144 |
)
|
145 |
size_filter.change(
|
146 |
-
fn=
|
147 |
-
inputs=[size_filter, type_filter],
|
148 |
outputs=table,
|
149 |
)
|
150 |
type_filter.change(
|
151 |
-
fn=
|
152 |
-
inputs=[size_filter, type_filter],
|
153 |
outputs=table,
|
154 |
)
|
155 |
|
|
|
28 |
|
29 |
DATA_URL_BASE = "http://opencompass.oss-cn-shanghai.aliyuncs.com/dev-assets/hf-research/"
|
30 |
|
31 |
+
MAIN_LEADERBOARD_DESCRIPTION = """## Compass Academic Leaderboard
|
32 |
+
--WIP--
|
33 |
+
|
34 |
+
"""
|
35 |
+
Initial_title = 'Compass Academic Leaderboard'
|
36 |
+
|
37 |
+
MODEL_SIZE = ['<10B', '10B-70B', '>70B', 'Unknown']
|
38 |
+
MODEL_TYPE = ['API', 'OpenSource']
|
39 |
+
|
40 |
+
|
41 |
|
42 |
def findfile():
|
43 |
model_meta_info = 'model-meta-info'
|
|
|
56 |
model_info, results = findfile()
|
57 |
|
58 |
|
|
|
|
|
|
|
|
|
|
|
59 |
|
60 |
|
61 |
|
62 |
def make_results_tab(model_info, results):
|
63 |
models_list, datasets_list = [], []
|
64 |
for i in model_info:
|
65 |
+
models_list.append(i)
|
66 |
for i in results.keys():
|
67 |
datasets_list.append(i)
|
68 |
|
|
|
71 |
for model in models_list:
|
72 |
this_result = {}
|
73 |
this_result['Index'] = index
|
74 |
+
this_result['Model Name'] = model['display_name']
|
75 |
+
this_result['Parameters'] = model['num_param']
|
76 |
+
this_result['Opensource'] = model['release_type']
|
77 |
index += 1
|
78 |
for dataset in datasets_list:
|
79 |
+
this_result[dataset] = results[dataset][model['abbr']]
|
80 |
result_list.append(this_result)
|
81 |
|
82 |
df = pd.DataFrame(result_list)
|
|
|
100 |
|
101 |
|
102 |
def filter_df(model_name):
|
103 |
+
|
104 |
newdf = make_results_tab(model_info, results)
|
105 |
+
|
106 |
+
# search model name
|
107 |
default_val = 'Input the Model Name'
|
108 |
if model_name != default_val:
|
109 |
method_names = [x.split('</a>')[0].split('>')[-1].lower() for x in newdf['Model Name']]
|
|
|
113 |
newdf.pop('TEMP')
|
114 |
for i in range(len(newdf)):
|
115 |
df.loc[i, 'Index'] = i+1
|
116 |
+
|
117 |
+
# filter size
|
118 |
+
if size_ranges:
|
119 |
+
def get_size_in_B(param):
|
120 |
+
if param == 'N/A':
|
121 |
+
return None
|
122 |
+
try:
|
123 |
+
return float(param.replace('B', ''))
|
124 |
+
except:
|
125 |
+
return None
|
126 |
+
|
127 |
+
newdf['size_in_B'] = newdf['Parameters'].apply(get_size_in_B)
|
128 |
+
mask = pd.Series(False, index=newdf.index)
|
129 |
+
|
130 |
+
for size_range in size_ranges:
|
131 |
+
if size_range == '<10B':
|
132 |
+
mask |= (newdf['size_in_B'] < 10) & (newdf['size_in_B'].notna())
|
133 |
+
elif size_range == '10B-70B':
|
134 |
+
mask |= (newdf['size_in_B'] >= 10) & (newdf['size_in_B'] < 70)
|
135 |
+
elif size_range == '>70B':
|
136 |
+
mask |= newdf['size_in_B'] >= 70
|
137 |
+
elif size_range == 'Unknown':
|
138 |
+
mask |= newdf['size_in_B'].isna()
|
139 |
+
|
140 |
+
newdf = newdf[mask]
|
141 |
+
newdf.drop('size_in_B', axis=1, inplace=True)
|
142 |
+
|
143 |
+
# filter opensource
|
144 |
+
if model_types:
|
145 |
+
type_mask = pd.Series(False, index=newdf.index)
|
146 |
+
for model_type in model_types:
|
147 |
+
if model_type == 'API':
|
148 |
+
type_mask |= newdf['Opensource'] == 'No'
|
149 |
+
elif model_type == 'Opensource':
|
150 |
+
type_mask |= filtered_df['Opensource'] == 'Yes'
|
151 |
+
newdf = newdf[type_mask]
|
152 |
+
|
153 |
return newdf
|
|
|
154 |
|
155 |
+
|
156 |
with gr.Row():
|
157 |
with gr.Column():
|
158 |
model_name = gr.Textbox(
|
|
|
186 |
|
187 |
model_name.submit(
|
188 |
fn=filter_df,
|
189 |
+
inputs=[model_name, size_filter, type_filter],
|
190 |
outputs=table
|
191 |
)
|
192 |
size_filter.change(
|
193 |
+
fn=filter_df,
|
194 |
+
inputs=[model_name, size_filter, type_filter],
|
195 |
outputs=table,
|
196 |
)
|
197 |
type_filter.change(
|
198 |
+
fn=filter_df,
|
199 |
+
inputs=[model_name, size_filter, type_filter],
|
200 |
outputs=table,
|
201 |
)
|
202 |
|