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 |
|