myhs commited on
Commit
9c5799a
·
verified ·
1 Parent(s): 6a6cccd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +61 -14
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([i['abbr'], i['display_name']])
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[1]
 
 
70
  index += 1
71
  for dataset in datasets_list:
72
- this_result[dataset] = results[dataset][model[0]]
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=update_table,
147
- inputs=[size_filter, type_filter],
148
  outputs=table,
149
  )
150
  type_filter.change(
151
- fn=update_table,
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