New columns and columns visibiity

#4
by koderfpv - opened
Files changed (5) hide show
  1. .gitignore +1 -0
  2. README.md +2 -2
  3. app.py +161 -48
  4. data.json +125 -125
  5. requirements.txt +2 -2
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ venv
README.md CHANGED
@@ -4,10 +4,10 @@ emoji: πŸ§ πŸ¦‰πŸ‡΅πŸ‡±πŸ–‹οΈ
4
  colorFrom: pink
5
  colorTo: indigo
6
  sdk: streamlit
7
- sdk_version: 1.37.1
8
  app_file: app.py
9
  pinned: false
10
  license: mit
11
  ---
12
 
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
4
  colorFrom: pink
5
  colorTo: indigo
6
  sdk: streamlit
7
+ sdk_version: 1.43.2
8
  app_file: app.py
9
  pinned: false
10
  license: mit
11
  ---
12
 
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py CHANGED
@@ -7,43 +7,70 @@ import plotly.express as px
7
  from st_social_media_links import SocialMediaIcons
8
 
9
 
 
10
  RESULTS_COLUMN_NAME = "Results"
11
  AVERAGE_COLUMN_NAME = "Average"
12
  SENTIMENT_COLUMN_NAME = "Sentiment"
13
  UNDERSTANDING_COLUMN_NAME = "Language understanding"
14
  PHRASEOLOGY_COLUMN_NAME = "Phraseology"
 
 
15
 
16
  # Function to load data from JSON file
 
 
17
  @st.cache_data
18
  def load_data(file_path):
19
  with open(file_path, 'r', encoding='utf-8') as file:
20
  data = json.load(file)
21
- return pd.DataFrame(data)
 
 
 
 
 
 
22
 
23
  # Function to style the DataFrame
 
 
24
  @st.cache_data
25
  def style_dataframe(df: pd.DataFrame):
26
- df[RESULTS_COLUMN_NAME] = df.apply(lambda row: [row[SENTIMENT_COLUMN_NAME], row[UNDERSTANDING_COLUMN_NAME], row[PHRASEOLOGY_COLUMN_NAME]], axis=1)
27
- # Insert the new column after the 'Average' column
28
  cols = list(df.columns)
29
- cols.insert(cols.index(AVERAGE_COLUMN_NAME) + 1, cols.pop(cols.index(RESULTS_COLUMN_NAME)))
 
 
 
 
 
 
 
 
 
 
 
 
30
  df = df[cols]
31
  # Create a color ramp using Seaborn
32
  return df
33
 
 
34
  def styler(df: pd.DataFrame):
35
  palette = sns.color_palette("RdYlGn", as_cmap=True)
36
  # Apply reverse color gradient to the "Params" column
37
- params_palette = sns.color_palette("RdYlGn_r", as_cmap=True) # Reversed RdYlGn palette
38
- styled_df = df.style.background_gradient(cmap=palette, subset=[AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME]
39
- ).background_gradient(cmap=params_palette, subset=["Params"]
40
- ).set_properties(**{'text-align': 'center'}, subset=[AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME]
41
- ).format("{:.2f}".center(10), subset=[AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME]
42
- ).format("{:.1f}".center(10), subset=["Params"])
 
43
  return styled_df
44
 
45
 
46
- ### Streamlit app
47
  st.set_page_config(layout="wide")
48
 
49
  st.markdown("""
@@ -58,7 +85,7 @@ st.markdown("""
58
  </style>
59
  """, unsafe_allow_html=True)
60
 
61
- ### Prepare layout
62
 
63
  st.markdown("""
64
  <style>
@@ -87,7 +114,7 @@ st.markdown("""
87
  # ----------------------------------------------------------
88
  st.markdown("""<br>""", unsafe_allow_html=True)
89
 
90
- ### Row: 1 --> Title + links to SpeakLeash.org website / GitHub / X (Twitter)
91
  social_media_links = [
92
  "https://discord.com/invite/ZJwCMrxwT7",
93
  "https://github.com/speakleash",
@@ -110,7 +137,8 @@ social_media_links_colors = [
110
  links_color
111
  ]
112
 
113
- social_media_icons = SocialMediaIcons(social_media_links, social_media_links_colors)
 
114
  social_media_icons.render(justify_content='right')
115
 
116
  st.markdown("""
@@ -140,23 +168,24 @@ with tab1:
140
 
141
  # Prepare data
142
  data = load_data('data.json')
143
-
144
  data['Params'] = pd.to_numeric(
145
- data['Params'].str.replace('B', ''),
146
- errors='coerce'
147
- )
148
  data = data.sort_values(by=AVERAGE_COLUMN_NAME, ascending=False)
149
 
150
  # Closing filters in a expander
151
  with st.expander("Filtering benchmark data", icon='πŸ”'):
152
  # Filtering data, e.g. slider for params, average score, etc.
153
- col_filter_params, col_filter_average, col_filter_sentiment, col_filter_understanding, col_filter_phraseology = st.columns(5, gap='medium')
154
-
 
155
  with col_filter_params:
156
  max_params = data['Params'].max(skipna=True)
157
  if pd.isna(max_params):
158
  max_params = 0.0
159
-
160
  params_slider = st.slider(
161
  "Models Size [B]",
162
  min_value=0.0,
@@ -174,20 +203,40 @@ with tab1:
174
  ]
175
 
176
  with col_filter_average:
177
- average_slider = st.slider("Average score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
178
- data = data[(data[AVERAGE_COLUMN_NAME] >= average_slider[0]) & (data[AVERAGE_COLUMN_NAME] <= average_slider[1])]
 
 
 
 
 
 
 
 
179
 
180
  with col_filter_sentiment:
181
- sentiment_slider = st.slider("Sentiment score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
182
- data = data[(data[SENTIMENT_COLUMN_NAME] >= sentiment_slider[0]) & (data[SENTIMENT_COLUMN_NAME] <= sentiment_slider[1])]
 
 
183
 
184
  with col_filter_understanding:
185
- understanding_slider = st.slider("Understanding score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
186
- data = data[(data[UNDERSTANDING_COLUMN_NAME] >= understanding_slider[0]) & (data[UNDERSTANDING_COLUMN_NAME] <= understanding_slider[1])]
 
 
187
 
188
  with col_filter_phraseology:
189
- phraseology_slider = st.slider("Phraseology score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
190
- data = data[(data[PHRASEOLOGY_COLUMN_NAME] >= phraseology_slider[0]) & (data[PHRASEOLOGY_COLUMN_NAME] <= phraseology_slider[1])]
 
 
 
 
 
 
 
 
191
 
192
  # Extract unique provider names from the "Model" column
193
  providers = data["Model"].apply(lambda x: x.split('/')[0].lower()).unique()
@@ -195,31 +244,92 @@ with tab1:
195
  # Filter data based on selected providers
196
  data = data[data["Model"].apply(lambda x: x.split('/')[0].lower()).isin(selected_providers)]
197
 
198
- ### Display data
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
  styled_df_show = style_dataframe(data)
200
  styled_df_show = styler(styled_df_show)
201
 
202
- st.data_editor(styled_df_show, column_config={
203
- "Model": st.column_config.TextColumn("Model", help="Model name", width="large"),
204
- "Params": st.column_config.NumberColumn("Params [B]"),
205
- AVERAGE_COLUMN_NAME: st.column_config.NumberColumn(AVERAGE_COLUMN_NAME),
206
- RESULTS_COLUMN_NAME: st.column_config.BarChartColumn(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  "Bar chart of results", help="Summary of the results of each task",
208
- y_min=0,y_max=5,),
209
- SENTIMENT_COLUMN_NAME: st.column_config.NumberColumn(SENTIMENT_COLUMN_NAME, help='Ability to analyze sentiment'),
210
- UNDERSTANDING_COLUMN_NAME: st.column_config.NumberColumn(UNDERSTANDING_COLUMN_NAME, help='Ability to understand language'),
211
- PHRASEOLOGY_COLUMN_NAME: st.column_config.NumberColumn(PHRASEOLOGY_COLUMN_NAME, help='Ability to understand phraseological compounds'),
212
- }, hide_index=True, disabled=True, height=500)
 
 
 
 
 
 
 
 
 
 
213
 
214
  # Add selection for models and create a bar chart for selected models using the AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME
215
  # Add default selection of 3 best models from AVERAGE_COLUMN_NAME and 1 best model with "Bielik" in Model column
216
- default_models = list(data.sort_values(AVERAGE_COLUMN_NAME, ascending=False)['Model'].head(3))
217
- bielik_model = data[data['Model'].str.contains('Bielik')].sort_values(AVERAGE_COLUMN_NAME, ascending=False)['Model'].iloc[0]
 
 
218
  if bielik_model not in default_models:
219
  default_models.append(bielik_model)
220
- selected_models = st.multiselect("Select models to compare", data["Model"].unique(), default=default_models)
 
221
  selected_data = data[data["Model"].isin(selected_models)]
222
- categories = [AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME]
 
223
 
224
  if selected_models:
225
  # Kolorki do wyboru:
@@ -228,7 +338,8 @@ with tab1:
228
 
229
  fig_bars = go.Figure()
230
  for model, color in zip(selected_models, colors):
231
- values = selected_data[selected_data['Model'] == model][categories].values.flatten().tolist()
 
232
  fig_bars.add_trace(go.Bar(
233
  x=categories,
234
  y=values,
@@ -239,7 +350,8 @@ with tab1:
239
  # Update layout to use a custom color scale
240
  fig_bars.update_layout(
241
  showlegend=True,
242
- legend=dict(orientation="h", yanchor="top", y=-0.3, xanchor="center", x=0.5),
 
243
  title="Comparison of Selected Models",
244
  yaxis_title="Score",
245
  template="plotly_dark"
@@ -248,7 +360,7 @@ with tab1:
248
  st.plotly_chart(fig_bars)
249
 
250
 
251
- ### ZakΕ‚adka 2 --> Opis
252
  with tab2:
253
  st.markdown("""
254
  ### <span style='text-decoration: #FDA428 wavy underline;'>**Cause of Creation**</span>
@@ -321,9 +433,10 @@ st.markdown("""
321
  - [Remigiusz Kinas](https://www.linkedin.com/in/remigiusz-kinas/) - methodological support
322
  - [Krzysztof WrΓ³bel](https://www.linkedin.com/in/wrobelkrzysztof/) - engineering, methodological support
323
  - [Szymon BaczyΕ„ski](https://www.linkedin.com/in/szymon-baczynski/) - front-end / streamlit assistant
 
324
  - [Maria Filipkowska](https://www.linkedin.com/in/maria-filipkowska/) - writing text, linguistic support
325
  """)
326
 
327
  st.divider()
328
 
329
- # Run the app with `streamlit run your_script.py`
 
7
  from st_social_media_links import SocialMediaIcons
8
 
9
 
10
+ PARAMS_COLUMN_NAME = "Params"
11
  RESULTS_COLUMN_NAME = "Results"
12
  AVERAGE_COLUMN_NAME = "Average"
13
  SENTIMENT_COLUMN_NAME = "Sentiment"
14
  UNDERSTANDING_COLUMN_NAME = "Language understanding"
15
  PHRASEOLOGY_COLUMN_NAME = "Phraseology"
16
+ TRICKY_QUESTIONS_COLUMN_NAME = "Tricky questions"
17
+ IMPLICATURES_AVERAGE_COLUMN_NAME = "Implicatures average"
18
 
19
  # Function to load data from JSON file
20
+
21
+
22
  @st.cache_data
23
  def load_data(file_path):
24
  with open(file_path, 'r', encoding='utf-8') as file:
25
  data = json.load(file)
26
+ df = pd.DataFrame(data)
27
+ df[AVERAGE_COLUMN_NAME] = df[['Sentiment',
28
+ 'Language understanding', 'Phraseology', 'Tricky questions']].mean(axis=1)
29
+
30
+ df[IMPLICATURES_AVERAGE_COLUMN_NAME] = df[['Sentiment',
31
+ 'Language understanding', 'Phraseology']].mean(axis=1)
32
+ return df
33
 
34
  # Function to style the DataFrame
35
+
36
+
37
  @st.cache_data
38
  def style_dataframe(df: pd.DataFrame):
39
+ df[RESULTS_COLUMN_NAME] = df.apply(lambda row: [
40
+ row[SENTIMENT_COLUMN_NAME], row[UNDERSTANDING_COLUMN_NAME], row[PHRASEOLOGY_COLUMN_NAME], row[TRICKY_QUESTIONS_COLUMN_NAME]], axis=1)
41
  cols = list(df.columns)
42
+
43
+ # move average column
44
+ cols.insert(cols.index(PARAMS_COLUMN_NAME) + 1,
45
+ cols.pop(cols.index(AVERAGE_COLUMN_NAME)))
46
+
47
+ # move impicatures average column
48
+ cols.insert(cols.index(AVERAGE_COLUMN_NAME) + 1,
49
+ cols.pop(cols.index(IMPLICATURES_AVERAGE_COLUMN_NAME)))
50
+
51
+ # move results column
52
+ cols.insert(cols.index(IMPLICATURES_AVERAGE_COLUMN_NAME) + 1,
53
+ cols.pop(cols.index(RESULTS_COLUMN_NAME)))
54
+ # Insert the new column after the 'Average' column
55
  df = df[cols]
56
  # Create a color ramp using Seaborn
57
  return df
58
 
59
+
60
  def styler(df: pd.DataFrame):
61
  palette = sns.color_palette("RdYlGn", as_cmap=True)
62
  # Apply reverse color gradient to the "Params" column
63
+ params_palette = sns.color_palette(
64
+ "RdYlGn_r", as_cmap=True) # Reversed RdYlGn palette
65
+ styled_df = df.style.background_gradient(cmap=palette, subset=[AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME, TRICKY_QUESTIONS_COLUMN_NAME, IMPLICATURES_AVERAGE_COLUMN_NAME]
66
+ ).background_gradient(cmap=params_palette, subset=["Params"]
67
+ ).set_properties(**{'text-align': 'center'}, subset=[AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME, TRICKY_QUESTIONS_COLUMN_NAME, IMPLICATURES_AVERAGE_COLUMN_NAME]
68
+ ).format("{:.2f}".center(10), subset=[AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME, TRICKY_QUESTIONS_COLUMN_NAME, IMPLICATURES_AVERAGE_COLUMN_NAME]
69
+ ).format("{:.1f}".center(10), subset=["Params"])
70
  return styled_df
71
 
72
 
73
+ # Streamlit app
74
  st.set_page_config(layout="wide")
75
 
76
  st.markdown("""
 
85
  </style>
86
  """, unsafe_allow_html=True)
87
 
88
+ # Prepare layout
89
 
90
  st.markdown("""
91
  <style>
 
114
  # ----------------------------------------------------------
115
  st.markdown("""<br>""", unsafe_allow_html=True)
116
 
117
+ # Row: 1 --> Title + links to SpeakLeash.org website / GitHub / X (Twitter)
118
  social_media_links = [
119
  "https://discord.com/invite/ZJwCMrxwT7",
120
  "https://github.com/speakleash",
 
137
  links_color
138
  ]
139
 
140
+ social_media_icons = SocialMediaIcons(
141
+ social_media_links, social_media_links_colors)
142
  social_media_icons.render(justify_content='right')
143
 
144
  st.markdown("""
 
168
 
169
  # Prepare data
170
  data = load_data('data.json')
171
+
172
  data['Params'] = pd.to_numeric(
173
+ data['Params'].str.replace('B', ''),
174
+ errors='coerce'
175
+ )
176
  data = data.sort_values(by=AVERAGE_COLUMN_NAME, ascending=False)
177
 
178
  # Closing filters in a expander
179
  with st.expander("Filtering benchmark data", icon='πŸ”'):
180
  # Filtering data, e.g. slider for params, average score, etc.
181
+ col_filter_params, col_filter_average, col_filter_implicatures_average, col_filter_sentiment, col_filter_understanding, col_filter_phraseology, col_filter_tricky_questions = st.columns(
182
+ 7, gap='medium')
183
+
184
  with col_filter_params:
185
  max_params = data['Params'].max(skipna=True)
186
  if pd.isna(max_params):
187
  max_params = 0.0
188
+
189
  params_slider = st.slider(
190
  "Models Size [B]",
191
  min_value=0.0,
 
203
  ]
204
 
205
  with col_filter_average:
206
+ average_slider = st.slider(
207
+ "Average score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
208
+ data = data[(data[AVERAGE_COLUMN_NAME] >= average_slider[0]) & (
209
+ data[AVERAGE_COLUMN_NAME] <= average_slider[1])]
210
+
211
+ with col_filter_implicatures_average:
212
+ implicatures_average_slider = st.slider(
213
+ "Implicatures average", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
214
+ data = data[(data[IMPLICATURES_AVERAGE_COLUMN_NAME] >= implicatures_average_slider[0]) & (
215
+ data[IMPLICATURES_AVERAGE_COLUMN_NAME] <= implicatures_average_slider[1])]
216
 
217
  with col_filter_sentiment:
218
+ sentiment_slider = st.slider(
219
+ "Sentiment score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
220
+ data = data[(data[SENTIMENT_COLUMN_NAME] >= sentiment_slider[0]) & (
221
+ data[SENTIMENT_COLUMN_NAME] <= sentiment_slider[1])]
222
 
223
  with col_filter_understanding:
224
+ understanding_slider = st.slider(
225
+ "Understanding score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
226
+ data = data[(data[UNDERSTANDING_COLUMN_NAME] >= understanding_slider[0]) & (
227
+ data[UNDERSTANDING_COLUMN_NAME] <= understanding_slider[1])]
228
 
229
  with col_filter_phraseology:
230
+ phraseology_slider = st.slider(
231
+ "Phraseology score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
232
+ data = data[(data[PHRASEOLOGY_COLUMN_NAME] >= phraseology_slider[0]) & (
233
+ data[PHRASEOLOGY_COLUMN_NAME] <= phraseology_slider[1])]
234
+
235
+ with col_filter_tricky_questions:
236
+ tricky_questions_slider = st.slider(
237
+ "Tricky questions score", step=0.1, min_value=0.0, max_value=5.0, value=(0.0, 5.0))
238
+ data = data[(data[TRICKY_QUESTIONS_COLUMN_NAME] >= tricky_questions_slider[0]) & (
239
+ data[TRICKY_QUESTIONS_COLUMN_NAME] <= tricky_questions_slider[1])]
240
 
241
  # Extract unique provider names from the "Model" column
242
  providers = data["Model"].apply(lambda x: x.split('/')[0].lower()).unique()
 
244
  # Filter data based on selected providers
245
  data = data[data["Model"].apply(lambda x: x.split('/')[0].lower()).isin(selected_providers)]
246
 
247
+
248
+ # Define all possible columns
249
+ all_columns = {
250
+ "Model": "Model",
251
+ "Params": "Params",
252
+ AVERAGE_COLUMN_NAME: "Average",
253
+ IMPLICATURES_AVERAGE_COLUMN_NAME: "Impl. Avg",
254
+ SENTIMENT_COLUMN_NAME: "Sentiment",
255
+ UNDERSTANDING_COLUMN_NAME: "Understanding",
256
+ PHRASEOLOGY_COLUMN_NAME: "Phraseology",
257
+ TRICKY_QUESTIONS_COLUMN_NAME: "Tricky Questions"
258
+ }
259
+
260
+ # By default, all columns are selected
261
+ default_columns = list(all_columns.keys())
262
+
263
+ # Use pills to select visible columns in multi-selection mode
264
+ selected_column_labels = st.pills(
265
+ label="Visible columns",
266
+ options=list(all_columns.values()),
267
+ default=list(all_columns.values()), # Set all columns as default
268
+ selection_mode="multi", # Enable multi-selection mode
269
+ key="visible_columns_pills"
270
+ )
271
+
272
+ # Map selected labels back to column names
273
+ reverse_mapping = {v: k for k, v in all_columns.items()}
274
+ selected_columns = [reverse_mapping[label] for label in selected_column_labels]
275
+
276
+ # If nothing is selected, show all columns
277
+ if not selected_columns:
278
+ selected_columns = default_columns
279
+
280
+ # Display data
281
  styled_df_show = style_dataframe(data)
282
  styled_df_show = styler(styled_df_show)
283
 
284
+ # Customize column_config based on selected columns
285
+ column_config = {}
286
+
287
+ # Set configuration for all columns
288
+ if "Model" in styled_df_show.columns:
289
+ column_config["Model"] = st.column_config.TextColumn("Model", help="Model name", width="large") if "Model" in selected_columns else None
290
+
291
+ if "Params" in styled_df_show.columns:
292
+ column_config["Params"] = st.column_config.NumberColumn("Params [B]") if "Params" in selected_columns else None
293
+
294
+ if AVERAGE_COLUMN_NAME in styled_df_show.columns:
295
+ column_config[AVERAGE_COLUMN_NAME] = st.column_config.NumberColumn(AVERAGE_COLUMN_NAME) if AVERAGE_COLUMN_NAME in selected_columns else None
296
+
297
+ if IMPLICATURES_AVERAGE_COLUMN_NAME in styled_df_show.columns:
298
+ column_config[IMPLICATURES_AVERAGE_COLUMN_NAME] = st.column_config.NumberColumn(IMPLICATURES_AVERAGE_COLUMN_NAME) if IMPLICATURES_AVERAGE_COLUMN_NAME in selected_columns else None
299
+
300
+ if RESULTS_COLUMN_NAME in styled_df_show.columns:
301
+ # Show Results only if Average is selected
302
+ column_config[RESULTS_COLUMN_NAME] = st.column_config.BarChartColumn(
303
  "Bar chart of results", help="Summary of the results of each task",
304
+ y_min=0, y_max=5) if AVERAGE_COLUMN_NAME in selected_columns else None
305
+
306
+ if SENTIMENT_COLUMN_NAME in styled_df_show.columns:
307
+ column_config[SENTIMENT_COLUMN_NAME] = st.column_config.NumberColumn(SENTIMENT_COLUMN_NAME, help='Ability to analyze sentiment') if SENTIMENT_COLUMN_NAME in selected_columns else None
308
+
309
+ if UNDERSTANDING_COLUMN_NAME in styled_df_show.columns:
310
+ column_config[UNDERSTANDING_COLUMN_NAME] = st.column_config.NumberColumn(UNDERSTANDING_COLUMN_NAME, help='Ability to understand language') if UNDERSTANDING_COLUMN_NAME in selected_columns else None
311
+
312
+ if PHRASEOLOGY_COLUMN_NAME in styled_df_show.columns:
313
+ column_config[PHRASEOLOGY_COLUMN_NAME] = st.column_config.NumberColumn(PHRASEOLOGY_COLUMN_NAME, help='Ability to understand phraseological compounds') if PHRASEOLOGY_COLUMN_NAME in selected_columns else None
314
+
315
+ if TRICKY_QUESTIONS_COLUMN_NAME in styled_df_show.columns:
316
+ column_config[TRICKY_QUESTIONS_COLUMN_NAME] = st.column_config.NumberColumn(TRICKY_QUESTIONS_COLUMN_NAME, help='Ability to understand tricky questions') if TRICKY_QUESTIONS_COLUMN_NAME in selected_columns else None
317
+
318
+ st.data_editor(styled_df_show, column_config=column_config, hide_index=True, disabled=True, height=500)
319
 
320
  # Add selection for models and create a bar chart for selected models using the AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME, PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME
321
  # Add default selection of 3 best models from AVERAGE_COLUMN_NAME and 1 best model with "Bielik" in Model column
322
+ default_models = list(data.sort_values(
323
+ AVERAGE_COLUMN_NAME, ascending=False)['Model'].head(3))
324
+ bielik_model = data[data['Model'].str.contains('Bielik')].sort_values(
325
+ AVERAGE_COLUMN_NAME, ascending=False)['Model'].iloc[0]
326
  if bielik_model not in default_models:
327
  default_models.append(bielik_model)
328
+ selected_models = st.multiselect(
329
+ "Select models to compare", data["Model"].unique(), default=default_models)
330
  selected_data = data[data["Model"].isin(selected_models)]
331
+ categories = [AVERAGE_COLUMN_NAME, SENTIMENT_COLUMN_NAME,
332
+ PHRASEOLOGY_COLUMN_NAME, UNDERSTANDING_COLUMN_NAME, TRICKY_QUESTIONS_COLUMN_NAME]
333
 
334
  if selected_models:
335
  # Kolorki do wyboru:
 
338
 
339
  fig_bars = go.Figure()
340
  for model, color in zip(selected_models, colors):
341
+ values = selected_data[selected_data['Model'] ==
342
+ model][categories].values.flatten().tolist()
343
  fig_bars.add_trace(go.Bar(
344
  x=categories,
345
  y=values,
 
350
  # Update layout to use a custom color scale
351
  fig_bars.update_layout(
352
  showlegend=True,
353
+ legend=dict(orientation="h", yanchor="top",
354
+ y=-0.3, xanchor="center", x=0.5),
355
  title="Comparison of Selected Models",
356
  yaxis_title="Score",
357
  template="plotly_dark"
 
360
  st.plotly_chart(fig_bars)
361
 
362
 
363
+ # ZakΕ‚adka 2 --> Opis
364
  with tab2:
365
  st.markdown("""
366
  ### <span style='text-decoration: #FDA428 wavy underline;'>**Cause of Creation**</span>
 
433
  - [Remigiusz Kinas](https://www.linkedin.com/in/remigiusz-kinas/) - methodological support
434
  - [Krzysztof WrΓ³bel](https://www.linkedin.com/in/wrobelkrzysztof/) - engineering, methodological support
435
  - [Szymon BaczyΕ„ski](https://www.linkedin.com/in/szymon-baczynski/) - front-end / streamlit assistant
436
+ - [Artur SΕ‚omowski](https://www.linkedin.com/in/arturslomowski/) - front-end / streamlit assistant
437
  - [Maria Filipkowska](https://www.linkedin.com/in/maria-filipkowska/) - writing text, linguistic support
438
  """)
439
 
440
  st.divider()
441
 
442
+ # Run the app with `streamlit run your_script.py`
data.json CHANGED
@@ -2,497 +2,497 @@
2
  {
3
  "Model": "mistralai/Mistral-Large-Instruct-2407",
4
  "Params": "123B",
5
- "Average": 4.03025641025641,
6
  "Sentiment": 4.230769230769231,
7
  "Language understanding": 4.0,
8
- "Phraseology": 3.86
 
9
  },
10
  {
11
  "Model": "alpindale/WizardLM-2-8x22B",
12
  "Params": "141B",
13
- "Average": 3.9133760683760683,
14
  "Sentiment": 3.7051282051282053,
15
  "Language understanding": 3.815,
16
- "Phraseology": 4.22
 
17
  },
18
  {
19
  "Model": "meta-llama/Meta-Llama-3.1-70B-Instruct",
20
  "Params": "70.6B",
21
- "Average": 3.828974358974359,
22
  "Sentiment": 4.326923076923077,
23
  "Language understanding": 3.91,
24
- "Phraseology": 3.25
 
25
  },
26
  {
27
  "Model": "meta-llama/Meta-Llama-3-70B-Instruct",
28
  "Params": "70.6B",
29
- "Average": 3.806538461538462,
30
  "Sentiment": 4.134615384615385,
31
  "Language understanding": 3.82,
32
- "Phraseology": 3.465
 
33
  },
34
  {
35
  "Model": "speakleash/Bielik-11B-v2.3-Instruct",
36
  "Params": "11.2B",
37
- "Average": 3.7697863247863252,
38
  "Sentiment": 3.9743589743589745,
39
  "Language understanding": 3.785,
40
- "Phraseology": 3.55
 
41
  },
42
  {
43
  "Model": "mistralai/Mixtral-8x22B-Instruct-v0.1",
44
  "Params": "141B",
45
- "Average": 3.6690170940170943,
46
  "Sentiment": 3.782051282051282,
47
  "Language understanding": 3.675,
48
- "Phraseology": 3.55
 
49
  },
50
  {
51
  "Model": "speakleash/Bielik-11B-v2.1-Instruct",
52
  "Params": "11.2B",
53
- "Average": 3.6583760683760684,
54
  "Sentiment": 3.9551282051282053,
55
  "Language understanding": 3.915,
56
- "Phraseology": 3.105
 
57
  },
58
  {
59
  "Model": "Qwen/Qwen2-72B-Instruct",
60
  "Params": "72.7B",
61
- "Average": 3.6442735042735044,
62
  "Sentiment": 3.7628205128205128,
63
  "Language understanding": 3.89,
64
- "Phraseology": 3.28
 
65
  },
66
  {
67
  "Model": "speakleash/Bielik-11B-v2.0-Instruct",
68
  "Params": "11.2B",
69
- "Average": 3.614786324786325,
70
  "Sentiment": 3.9743589743589745,
71
  "Language understanding": 3.745,
72
- "Phraseology": 3.125
 
73
  },
74
  {
75
  "Model": "speakleash/Bielik-11B-v2.2-Instruct",
76
  "Params": "11.2B",
77
- "Average": 3.565982905982906,
78
  "Sentiment": 3.717948717948718,
79
  "Language understanding": 3.73,
80
- "Phraseology": 3.25
 
81
  },
82
  {
83
  "Model": "Qwen/Qwen1.5-72B-Chat",
84
  "Params": "72.3B",
85
- "Average": 3.3214529914529916,
86
  "Sentiment": 3.4743589743589745,
87
  "Language understanding": 3.515,
88
- "Phraseology": 2.975
 
89
  },
90
  {
91
  "Model": "meta-llama/Meta-Llama-3.1-8B-Instruct",
92
  "Params": "8.03B",
93
- "Average": 3.3114529914529918,
94
  "Sentiment": 3.9743589743589745,
95
  "Language understanding": 3.38,
96
- "Phraseology": 2.58
 
97
  },
98
  {
99
  "Model": "THUDM/glm-4-9b-chat",
100
  "Params": "9.4B",
101
- "Average": 3.2749145299145295,
102
  "Sentiment": 3.58974358974359,
103
  "Language understanding": 3.455,
104
- "Phraseology": 2.78
 
105
  },
106
  {
107
  "Model": "mistralai/Mistral-Nemo-Instruct-2407",
108
  "Params": "12.2B",
109
- "Average": 3.223675213675214,
110
  "Sentiment": 3.641025641025641,
111
  "Language understanding": 3.29,
112
- "Phraseology": 2.74
 
113
  },
114
  {
115
  "Model": "meta-llama/Meta-Llama-3-8B-Instruct",
116
  "Params": "8.03B",
117
- "Average": 3.172777777777778,
118
  "Sentiment": 3.3333333333333335,
119
  "Language understanding": 3.15,
120
- "Phraseology": 3.035
 
121
  },
122
  {
123
  "Model": "upstage/SOLAR-10.7B-Instruct-v1.0",
124
  "Params": "10.7B",
125
- "Average": 3.1343162393162394,
126
  "Sentiment": 2.967948717948718,
127
  "Language understanding": 3.18,
128
- "Phraseology": 3.255
 
129
  },
130
  {
131
  "Model": "speakleash/Bielik-7B-Instruct-v0.1",
132
  "Params": "7.24B",
133
- "Average": 3.126581196581197,
134
  "Sentiment": 3.58974358974359,
135
  "Language understanding": 3.475,
136
- "Phraseology": 2.315
 
137
  },
138
  {
139
  "Model": "openchat/openchat-3.5-0106-gemma",
140
  "Params": "8.54B",
141
- "Average": 3.08525641025641,
142
  "Sentiment": 3.730769230769231,
143
  "Language understanding": 3.08,
144
- "Phraseology": 2.445
 
145
  },
146
  {
147
  "Model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
148
  "Params": "46.7B",
149
- "Average": 3.039230769230769,
150
  "Sentiment": 3.0576923076923075,
151
  "Language understanding": 3.175,
152
- "Phraseology": 2.885
 
153
  },
154
  {
155
  "Model": "mistralai/Mistral-7B-Instruct-v0.3",
156
  "Params": "7.25B",
157
- "Average": 3.022307692307692,
158
  "Sentiment": 3.326923076923077,
159
  "Language understanding": 3.06,
160
- "Phraseology": 2.68
 
161
  },
162
  {
163
  "Model": "berkeley-nest/Starling-LM-7B-alpha",
164
  "Params": "7.24B",
165
- "Average": 2.945897435897436,
166
  "Sentiment": 3.0576923076923075,
167
  "Language understanding": 2.925,
168
- "Phraseology": 2.855
 
169
  },
170
  {
171
  "Model": "openchat/openchat-3.5-0106",
172
  "Params": "7.24B",
173
- "Average": 2.8500854700854696,
174
  "Sentiment": 3.16025641025641,
175
  "Language understanding": 2.835,
176
- "Phraseology": 2.555
 
177
  },
178
  {
179
  "Model": "internlm/internlm2-chat-20b",
180
  "Params": "19.9B",
181
- "Average": 2.8237606837606837,
182
  "Sentiment": 3.301282051282051,
183
  "Language understanding": 2.785,
184
- "Phraseology": 2.385
 
185
  },
186
  {
187
  "Model": "01-ai/Yi-1.5-34B-Chat",
188
  "Params": "34.4B",
189
- "Average": 2.7756410256410255,
190
  "Sentiment": 3.076923076923077,
191
  "Language understanding": 2.87,
192
- "Phraseology": 2.38
 
193
  },
194
  {
195
  "Model": "Voicelab/trurl-2-13b-academic",
196
  "Params": "13B",
197
- "Average": 2.74042735042735,
198
  "Sentiment": 3.301282051282051,
199
  "Language understanding": 2.755,
200
- "Phraseology": 2.165
 
201
  },
202
  {
203
  "Model": "google/gemma-2-2b-it",
204
  "Params": "2.61B",
205
- "Average": 2.7974786324786325,
206
  "Sentiment": 3.3974358974359,
207
  "Language understanding": 2.9,
208
- "Phraseology": 2.095
 
209
  },
210
  {
211
  "Model": "Qwen/Qwen2.5-3B-Instruct",
212
  "Params": "3.09B",
213
- "Average": 2.734572649572649,
214
  "Sentiment": 2.948717948717949,
215
  "Language understanding": 2.455,
216
- "Phraseology": 2.8
 
217
  },
218
  {
219
  "Model": "NousResearch/Hermes-3-Llama-3.2-3B",
220
  "Params": "3.21B",
221
- "Average": 2.695128205128205,
222
  "Sentiment": 2.6153846153846154,
223
  "Language understanding": 2.705,
224
- "Phraseology": 2.765
 
225
  },
226
  {
227
  "Model": "ibm-granite/granite-3.1-2b-instruct",
228
  "Params": "2.53B",
229
- "Average": 2.397307692307692,
230
  "Sentiment": 3.076923076923077,
231
  "Language understanding": 2.235,
232
- "Phraseology": 1.88
 
233
  },
234
  {
235
  "Model": "meta-llama/Llama-3.2-1B-Instruct",
236
  "Params": "1.24B",
237
- "Average": 2.383974358974359,
238
  "Sentiment": 3.076923076923077,
239
  "Language understanding": 1.735,
240
- "Phraseology": 2.34
 
241
  },
242
  {
243
  "Model": "microsoft/Phi-3.5-mini-instruct",
244
  "Params": "3.82B",
245
- "Average": 2.331965811965812,
246
  "Sentiment": 2.435897435897436,
247
  "Language understanding": 2.135,
248
- "Phraseology": 2.425
 
249
  },
250
  {
251
  "Model": "meta-llama/Llama-3.2-3B-Instruct",
252
  "Params": "3.21B",
253
- "Average": 2.257136752136752,
254
  "Sentiment": 2.7564102564102564,
255
  "Language understanding": 2.295,
256
- "Phraseology": 1.72
 
257
  },
258
  {
259
  "Model": "h2oai/h2o-danube2-1.8b-chat",
260
  "Params": "1.83B",
261
- "Average": 2.1455982905982904,
262
  "Sentiment": 2.371794871794872,
263
  "Language understanding": 1.595,
264
- "Phraseology": 2.47
 
265
  },
266
  {
267
  "Model": "Qwen/Qwen2.5-1.5B-Instruct",
268
  "Params": "1.54B",
269
- "Average": 2.1232905982905983,
270
  "Sentiment": 2.7948717948717947,
271
  "Language understanding": 1.35,
272
- "Phraseology": 2.225
 
273
  },
274
  {
275
  "Model": "utter-project/EuroLLM-1.7B-Instruct",
276
  "Params": "1.66B",
277
- "Average": 2.097863247863248,
278
  "Sentiment": 2.243589743589744,
279
  "Language understanding": 1.79,
280
- "Phraseology": 2.26
 
281
  },
282
  {
283
  "Model": "LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct",
284
  "Params": "2.41B",
285
- "Average": 2.062846282695529,
286
  "Sentiment": 1.9423076923076923,
287
  "Language understanding": 2.1155778894472363,
288
- "Phraseology": 2.130653266331658
 
289
  },
290
  {
291
  "Model": "HuggingFaceTB/SmolLM2-1.7B-Instruct",
292
  "Params": "1.71B",
293
- "Average": 1.9102136752136751,
294
  "Sentiment": 2.275641025641025,
295
  "Language understanding": 1.1,
296
- "Phraseology": 2.355
 
297
  },
298
  {
299
  "Model": "Qwen/Qwen2.5-0.5B-Instruct",
300
  "Params": "0.49B",
301
- "Average": 1.7950427350427354,
302
  "Sentiment": 1.955128205128205,
303
  "Language understanding": 0.835,
304
- "Phraseology": 2.595
 
305
  },
306
  {
307
  "Model": "CYFRAGOVPL/Llama-PLLuM-70B-chat",
308
  "Params": "70.6B",
309
- "Average": 3.63,
310
  "Sentiment": 3.94,
311
  "Language understanding": 3.61,
312
- "Phraseology": 3.35
 
313
  },
314
  {
315
  "Model": "CYFRAGOVPL/PLLuM-8x7B-nc-instruct",
316
  "Params": "46.7B",
317
- "Average": 3.56,
318
  "Sentiment": 3.88,
319
  "Language understanding": 3.59,
320
- "Phraseology": 3.22
 
321
  },
322
  {
323
  "Model": "CYFRAGOVPL/Llama-PLLuM-70B-instruct",
324
  "Params": "70.6B",
325
- "Average": 3.56,
326
  "Sentiment": 3.78,
327
  "Language understanding": 3.63,
328
- "Phraseology": 3.26
 
329
  },
330
  {
331
  "Model": "CYFRAGOVPL/PLLuM-8x7B-instruct",
332
  "Params": "46.7B",
333
- "Average": 3.50,
334
  "Sentiment": 3.59,
335
  "Language understanding": 3.47,
336
- "Phraseology": 3.46
 
337
  },
338
  {
339
  "Model": "CYFRAGOVPL/PLLuM-12B-instruct",
340
  "Params": "12.2B",
341
- "Average": 3.49,
342
  "Sentiment": 3.71,
343
  "Language understanding": 3.17,
344
- "Phraseology": 3.59
 
345
  },
346
  {
347
  "Model": "CYFRAGOVPL/PLLuM-8x7B-nc-chat",
348
  "Params": "46.7B",
349
- "Average": 3.44,
350
  "Sentiment": 3.76,
351
  "Language understanding": 3.48,
352
- "Phraseology": 3.08
 
353
  },
354
  {
355
  "Model": "CYFRAGOVPL/PLLuM-8x7B-chat",
356
  "Params": "46.7B",
357
- "Average": 3.41,
358
  "Sentiment": 3.44,
359
  "Language understanding": 3.45,
360
- "Phraseology": 3.35
 
361
  },
362
  {
363
  "Model": "CYFRAGOVPL/PLLuM-12B-chat",
364
  "Params": "12.2B",
365
- "Average": 3.32,
366
  "Sentiment": 3.32,
367
  "Language understanding": 3.21,
368
- "Phraseology": 3.43
 
369
  },
370
  {
371
  "Model": "CYFRAGOVPL/PLLuM-12B-nc-instruct",
372
  "Params": "12.2B",
373
- "Average": 3.29,
374
  "Sentiment": 3.24,
375
  "Language understanding": 3.31,
376
- "Phraseology": 3.32
 
377
  },
378
  {
379
  "Model": "CYFRAGOVPL/Llama-PLLuM-8B-instruct",
380
  "Params": "8.03B",
381
- "Average": 3.20,
382
  "Sentiment": 3.24,
383
  "Language understanding": 2.90,
384
- "Phraseology": 3.46
 
385
  },
386
  {
387
  "Model": "CYFRAGOVPL/Llama-PLLuM-8B-chat",
388
  "Params": "8.03B",
389
- "Average": 3.14,
390
  "Sentiment": 3.13,
391
  "Language understanding": 2.93,
392
- "Phraseology": 3.36
 
393
  },
394
  {
395
  "Model": "CYFRAGOVPL/PLLuM-12B-nc-chat",
396
  "Params": "12.2B",
397
- "Average": 3.33,
398
  "Sentiment": 3.22,
399
  "Language understanding": 3.23,
400
- "Phraseology": 3.54
 
401
  },
402
  {
403
  "Model": "Qwen/Qwen2.5-72B-Instruct",
404
  "Params": "72.7B",
405
- "Average": 3.9923076923076923,
406
  "Sentiment": 4.076923076923077,
407
  "Language understanding": 3.97,
408
- "Phraseology": 3.93
 
409
  },
410
  {
411
  "Model": "Qwen/Qwen2.5-32B-Instruct",
412
  "Params": "32.8B",
413
- "Average": 3.8047008547008545,
414
  "Sentiment": 3.8141025641025643,
415
  "Language understanding": 3.565,
416
- "Phraseology": 4.035
 
417
  },
418
  {
419
  "Model": "mistralai/Mistral-Small-24B-Instruct-2501",
420
  "Params": "23.6B",
421
- "Average": 3.79508547008547,
422
  "Sentiment": 3.91025641025641,
423
  "Language understanding": 3.6,
424
- "Phraseology": 3.875
 
425
  },
426
  {
427
  "Model": "meta-llama/Llama-3.3-70B-Instruct",
428
  "Params": "70.6B",
429
- "Average": 3.7332905982905977,
430
  "Sentiment": 4.294871794871795,
431
  "Language understanding": 3.865,
432
- "Phraseology": 3.04
 
433
  },
434
  {
435
  "Model": "Qwen/Qwen2.5-14B-Instruct",
436
  "Params": "14.8B",
437
- "Average": 3.61508547008547,
438
  "Sentiment": 3.91025641025641,
439
  "Language understanding": 3.565,
440
- "Phraseology": 3.37
 
441
  },
442
  {
443
  "Model": "microsoft/phi-4",
444
  "Params": "14.7B",
445
- "Average": 3.4976495726495727,
446
  "Sentiment": 3.717948717948718,
447
  "Language understanding": 3.54,
448
- "Phraseology": 3.235
 
449
  },
450
  {
451
  "Model": "Qwen/Qwen2.5-7B-Instruct",
452
  "Params": "7.62B",
453
- "Average": 3.2258974358974357,
454
  "Sentiment": 3.5576923076923075,
455
  "Language understanding": 3.025,
456
- "Phraseology": 3.095
 
457
  },
458
  {
459
  "Model": "microsoft/Phi-4-mini-instruct",
460
  "Params": "3.84B",
461
- "Average": 2.455769230769231,
462
  "Sentiment": 2.6923076923076925,
463
  "Language understanding": 2.43,
464
- "Phraseology": 2.245
 
465
  },
466
  {
467
  "Model": "gemini-2.0-flash-001",
468
  "Params": "",
469
- "Average": 4.393076923076923,
470
  "Sentiment": 4.519230769230769,
471
  "Language understanding": 4.32,
472
- "Phraseology": 4.34
 
473
  },
474
  {
475
  "Model": "gemini-2.0-flash-lite-001",
476
  "Params": "",
477
- "Average": 4.173589743589743,
478
  "Sentiment": 4.230769230769231,
479
  "Language understanding": 4.055,
480
- "Phraseology": 4.235
 
481
  },
482
  {
483
  "Model": "deepseek-ai/DeepSeek-V3 (API)",
484
  "Params": "685B",
485
- "Average": 4.034658119658119,
486
  "Sentiment": 4.358974358974359,
487
  "Language understanding": 4.22,
488
- "Phraseology": 3.525
 
489
  },
490
  {
491
  "Model": "google/gemma-3-27b-it (API)",
492
  "Params": "27.4B",
493
- "Average": 3.896068376068376,
494
  "Sentiment": 3.878205128205128,
495
  "Language understanding": 3.785,
496
- "Phraseology": 4.025
 
497
  }
498
- ]
 
2
  {
3
  "Model": "mistralai/Mistral-Large-Instruct-2407",
4
  "Params": "123B",
 
5
  "Sentiment": 4.230769230769231,
6
  "Language understanding": 4.0,
7
+ "Phraseology": 3.86,
8
+ "Tricky questions": 3.9
9
  },
10
  {
11
  "Model": "alpindale/WizardLM-2-8x22B",
12
  "Params": "141B",
 
13
  "Sentiment": 3.7051282051282053,
14
  "Language understanding": 3.815,
15
+ "Phraseology": 4.22,
16
+ "Tricky questions": 3.9
17
  },
18
  {
19
  "Model": "meta-llama/Meta-Llama-3.1-70B-Instruct",
20
  "Params": "70.6B",
 
21
  "Sentiment": 4.326923076923077,
22
  "Language understanding": 3.91,
23
+ "Phraseology": 3.25,
24
+ "Tricky questions": 3.9
25
  },
26
  {
27
  "Model": "meta-llama/Meta-Llama-3-70B-Instruct",
28
  "Params": "70.6B",
 
29
  "Sentiment": 4.134615384615385,
30
  "Language understanding": 3.82,
31
+ "Phraseology": 3.465,
32
+ "Tricky questions": 3.9
33
  },
34
  {
35
  "Model": "speakleash/Bielik-11B-v2.3-Instruct",
36
  "Params": "11.2B",
 
37
  "Sentiment": 3.9743589743589745,
38
  "Language understanding": 3.785,
39
+ "Phraseology": 3.55,
40
+ "Tricky questions": 3.9
41
  },
42
  {
43
  "Model": "mistralai/Mixtral-8x22B-Instruct-v0.1",
44
  "Params": "141B",
 
45
  "Sentiment": 3.782051282051282,
46
  "Language understanding": 3.675,
47
+ "Phraseology": 3.55,
48
+ "Tricky questions": 3.9
49
  },
50
  {
51
  "Model": "speakleash/Bielik-11B-v2.1-Instruct",
52
  "Params": "11.2B",
 
53
  "Sentiment": 3.9551282051282053,
54
  "Language understanding": 3.915,
55
+ "Phraseology": 3.105,
56
+ "Tricky questions": 3.9
57
  },
58
  {
59
  "Model": "Qwen/Qwen2-72B-Instruct",
60
  "Params": "72.7B",
 
61
  "Sentiment": 3.7628205128205128,
62
  "Language understanding": 3.89,
63
+ "Phraseology": 3.28,
64
+ "Tricky questions": 3.9
65
  },
66
  {
67
  "Model": "speakleash/Bielik-11B-v2.0-Instruct",
68
  "Params": "11.2B",
 
69
  "Sentiment": 3.9743589743589745,
70
  "Language understanding": 3.745,
71
+ "Phraseology": 3.125,
72
+ "Tricky questions": 3.9
73
  },
74
  {
75
  "Model": "speakleash/Bielik-11B-v2.2-Instruct",
76
  "Params": "11.2B",
 
77
  "Sentiment": 3.717948717948718,
78
  "Language understanding": 3.73,
79
+ "Phraseology": 3.25,
80
+ "Tricky questions": 3.9
81
  },
82
  {
83
  "Model": "Qwen/Qwen1.5-72B-Chat",
84
  "Params": "72.3B",
 
85
  "Sentiment": 3.4743589743589745,
86
  "Language understanding": 3.515,
87
+ "Phraseology": 2.975,
88
+ "Tricky questions": 3.9
89
  },
90
  {
91
  "Model": "meta-llama/Meta-Llama-3.1-8B-Instruct",
92
  "Params": "8.03B",
 
93
  "Sentiment": 3.9743589743589745,
94
  "Language understanding": 3.38,
95
+ "Phraseology": 2.58,
96
+ "Tricky questions": 3.9
97
  },
98
  {
99
  "Model": "THUDM/glm-4-9b-chat",
100
  "Params": "9.4B",
 
101
  "Sentiment": 3.58974358974359,
102
  "Language understanding": 3.455,
103
+ "Phraseology": 2.78,
104
+ "Tricky questions": 3.9
105
  },
106
  {
107
  "Model": "mistralai/Mistral-Nemo-Instruct-2407",
108
  "Params": "12.2B",
 
109
  "Sentiment": 3.641025641025641,
110
  "Language understanding": 3.29,
111
+ "Phraseology": 2.74,
112
+ "Tricky questions": 3.9
113
  },
114
  {
115
  "Model": "meta-llama/Meta-Llama-3-8B-Instruct",
116
  "Params": "8.03B",
 
117
  "Sentiment": 3.3333333333333335,
118
  "Language understanding": 3.15,
119
+ "Phraseology": 3.035,
120
+ "Tricky questions": 3.9
121
  },
122
  {
123
  "Model": "upstage/SOLAR-10.7B-Instruct-v1.0",
124
  "Params": "10.7B",
 
125
  "Sentiment": 2.967948717948718,
126
  "Language understanding": 3.18,
127
+ "Phraseology": 3.255,
128
+ "Tricky questions": 3.9
129
  },
130
  {
131
  "Model": "speakleash/Bielik-7B-Instruct-v0.1",
132
  "Params": "7.24B",
 
133
  "Sentiment": 3.58974358974359,
134
  "Language understanding": 3.475,
135
+ "Phraseology": 2.315,
136
+ "Tricky questions": 3.9
137
  },
138
  {
139
  "Model": "openchat/openchat-3.5-0106-gemma",
140
  "Params": "8.54B",
 
141
  "Sentiment": 3.730769230769231,
142
  "Language understanding": 3.08,
143
+ "Phraseology": 2.445,
144
+ "Tricky questions": 3.9
145
  },
146
  {
147
  "Model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
148
  "Params": "46.7B",
 
149
  "Sentiment": 3.0576923076923075,
150
  "Language understanding": 3.175,
151
+ "Phraseology": 2.885,
152
+ "Tricky questions": 3.9
153
  },
154
  {
155
  "Model": "mistralai/Mistral-7B-Instruct-v0.3",
156
  "Params": "7.25B",
 
157
  "Sentiment": 3.326923076923077,
158
  "Language understanding": 3.06,
159
+ "Phraseology": 2.68,
160
+ "Tricky questions": 3.9
161
  },
162
  {
163
  "Model": "berkeley-nest/Starling-LM-7B-alpha",
164
  "Params": "7.24B",
 
165
  "Sentiment": 3.0576923076923075,
166
  "Language understanding": 2.925,
167
+ "Phraseology": 2.855,
168
+ "Tricky questions": 3.9
169
  },
170
  {
171
  "Model": "openchat/openchat-3.5-0106",
172
  "Params": "7.24B",
 
173
  "Sentiment": 3.16025641025641,
174
  "Language understanding": 2.835,
175
+ "Phraseology": 2.555,
176
+ "Tricky questions": 3.9
177
  },
178
  {
179
  "Model": "internlm/internlm2-chat-20b",
180
  "Params": "19.9B",
 
181
  "Sentiment": 3.301282051282051,
182
  "Language understanding": 2.785,
183
+ "Phraseology": 2.385,
184
+ "Tricky questions": 3.9
185
  },
186
  {
187
  "Model": "01-ai/Yi-1.5-34B-Chat",
188
  "Params": "34.4B",
 
189
  "Sentiment": 3.076923076923077,
190
  "Language understanding": 2.87,
191
+ "Phraseology": 2.38,
192
+ "Tricky questions": 3.9
193
  },
194
  {
195
  "Model": "Voicelab/trurl-2-13b-academic",
196
  "Params": "13B",
 
197
  "Sentiment": 3.301282051282051,
198
  "Language understanding": 2.755,
199
+ "Phraseology": 2.165,
200
+ "Tricky questions": 3.9
201
  },
202
  {
203
  "Model": "google/gemma-2-2b-it",
204
  "Params": "2.61B",
 
205
  "Sentiment": 3.3974358974359,
206
  "Language understanding": 2.9,
207
+ "Phraseology": 2.095,
208
+ "Tricky questions": 3.9
209
  },
210
  {
211
  "Model": "Qwen/Qwen2.5-3B-Instruct",
212
  "Params": "3.09B",
 
213
  "Sentiment": 2.948717948717949,
214
  "Language understanding": 2.455,
215
+ "Phraseology": 2.8,
216
+ "Tricky questions": 3.9
217
  },
218
  {
219
  "Model": "NousResearch/Hermes-3-Llama-3.2-3B",
220
  "Params": "3.21B",
 
221
  "Sentiment": 2.6153846153846154,
222
  "Language understanding": 2.705,
223
+ "Phraseology": 2.765,
224
+ "Tricky questions": 3.9
225
  },
226
  {
227
  "Model": "ibm-granite/granite-3.1-2b-instruct",
228
  "Params": "2.53B",
 
229
  "Sentiment": 3.076923076923077,
230
  "Language understanding": 2.235,
231
+ "Phraseology": 1.88,
232
+ "Tricky questions": 3.9
233
  },
234
  {
235
  "Model": "meta-llama/Llama-3.2-1B-Instruct",
236
  "Params": "1.24B",
 
237
  "Sentiment": 3.076923076923077,
238
  "Language understanding": 1.735,
239
+ "Phraseology": 2.34,
240
+ "Tricky questions": 3.9
241
  },
242
  {
243
  "Model": "microsoft/Phi-3.5-mini-instruct",
244
  "Params": "3.82B",
 
245
  "Sentiment": 2.435897435897436,
246
  "Language understanding": 2.135,
247
+ "Phraseology": 2.425,
248
+ "Tricky questions": 3.9
249
  },
250
  {
251
  "Model": "meta-llama/Llama-3.2-3B-Instruct",
252
  "Params": "3.21B",
 
253
  "Sentiment": 2.7564102564102564,
254
  "Language understanding": 2.295,
255
+ "Phraseology": 1.72,
256
+ "Tricky questions": 3.9
257
  },
258
  {
259
  "Model": "h2oai/h2o-danube2-1.8b-chat",
260
  "Params": "1.83B",
 
261
  "Sentiment": 2.371794871794872,
262
  "Language understanding": 1.595,
263
+ "Phraseology": 2.47,
264
+ "Tricky questions": 3.9
265
  },
266
  {
267
  "Model": "Qwen/Qwen2.5-1.5B-Instruct",
268
  "Params": "1.54B",
 
269
  "Sentiment": 2.7948717948717947,
270
  "Language understanding": 1.35,
271
+ "Phraseology": 2.225,
272
+ "Tricky questions": 3.9
273
  },
274
  {
275
  "Model": "utter-project/EuroLLM-1.7B-Instruct",
276
  "Params": "1.66B",
 
277
  "Sentiment": 2.243589743589744,
278
  "Language understanding": 1.79,
279
+ "Phraseology": 2.26,
280
+ "Tricky questions": 3.9
281
  },
282
  {
283
  "Model": "LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct",
284
  "Params": "2.41B",
 
285
  "Sentiment": 1.9423076923076923,
286
  "Language understanding": 2.1155778894472363,
287
+ "Phraseology": 2.130653266331658,
288
+ "Tricky questions": 3.9
289
  },
290
  {
291
  "Model": "HuggingFaceTB/SmolLM2-1.7B-Instruct",
292
  "Params": "1.71B",
 
293
  "Sentiment": 2.275641025641025,
294
  "Language understanding": 1.1,
295
+ "Phraseology": 2.355,
296
+ "Tricky questions": 3.9
297
  },
298
  {
299
  "Model": "Qwen/Qwen2.5-0.5B-Instruct",
300
  "Params": "0.49B",
 
301
  "Sentiment": 1.955128205128205,
302
  "Language understanding": 0.835,
303
+ "Phraseology": 2.595,
304
+ "Tricky questions": 3.9
305
  },
306
  {
307
  "Model": "CYFRAGOVPL/Llama-PLLuM-70B-chat",
308
  "Params": "70.6B",
 
309
  "Sentiment": 3.94,
310
  "Language understanding": 3.61,
311
+ "Phraseology": 3.35,
312
+ "Tricky questions": 3.9
313
  },
314
  {
315
  "Model": "CYFRAGOVPL/PLLuM-8x7B-nc-instruct",
316
  "Params": "46.7B",
 
317
  "Sentiment": 3.88,
318
  "Language understanding": 3.59,
319
+ "Phraseology": 3.22,
320
+ "Tricky questions": 3.9
321
  },
322
  {
323
  "Model": "CYFRAGOVPL/Llama-PLLuM-70B-instruct",
324
  "Params": "70.6B",
 
325
  "Sentiment": 3.78,
326
  "Language understanding": 3.63,
327
+ "Phraseology": 3.26,
328
+ "Tricky questions": 3.9
329
  },
330
  {
331
  "Model": "CYFRAGOVPL/PLLuM-8x7B-instruct",
332
  "Params": "46.7B",
 
333
  "Sentiment": 3.59,
334
  "Language understanding": 3.47,
335
+ "Phraseology": 3.46,
336
+ "Tricky questions": 3.9
337
  },
338
  {
339
  "Model": "CYFRAGOVPL/PLLuM-12B-instruct",
340
  "Params": "12.2B",
 
341
  "Sentiment": 3.71,
342
  "Language understanding": 3.17,
343
+ "Phraseology": 3.59,
344
+ "Tricky questions": 3.9
345
  },
346
  {
347
  "Model": "CYFRAGOVPL/PLLuM-8x7B-nc-chat",
348
  "Params": "46.7B",
 
349
  "Sentiment": 3.76,
350
  "Language understanding": 3.48,
351
+ "Phraseology": 3.08,
352
+ "Tricky questions": 3.9
353
  },
354
  {
355
  "Model": "CYFRAGOVPL/PLLuM-8x7B-chat",
356
  "Params": "46.7B",
 
357
  "Sentiment": 3.44,
358
  "Language understanding": 3.45,
359
+ "Phraseology": 3.35,
360
+ "Tricky questions": 3.9
361
  },
362
  {
363
  "Model": "CYFRAGOVPL/PLLuM-12B-chat",
364
  "Params": "12.2B",
 
365
  "Sentiment": 3.32,
366
  "Language understanding": 3.21,
367
+ "Phraseology": 3.43,
368
+ "Tricky questions": 3.9
369
  },
370
  {
371
  "Model": "CYFRAGOVPL/PLLuM-12B-nc-instruct",
372
  "Params": "12.2B",
 
373
  "Sentiment": 3.24,
374
  "Language understanding": 3.31,
375
+ "Phraseology": 3.32,
376
+ "Tricky questions": 3.9
377
  },
378
  {
379
  "Model": "CYFRAGOVPL/Llama-PLLuM-8B-instruct",
380
  "Params": "8.03B",
 
381
  "Sentiment": 3.24,
382
  "Language understanding": 2.90,
383
+ "Phraseology": 3.46,
384
+ "Tricky questions": 3.9
385
  },
386
  {
387
  "Model": "CYFRAGOVPL/Llama-PLLuM-8B-chat",
388
  "Params": "8.03B",
 
389
  "Sentiment": 3.13,
390
  "Language understanding": 2.93,
391
+ "Phraseology": 3.36,
392
+ "Tricky questions": 3.9
393
  },
394
  {
395
  "Model": "CYFRAGOVPL/PLLuM-12B-nc-chat",
396
  "Params": "12.2B",
 
397
  "Sentiment": 3.22,
398
  "Language understanding": 3.23,
399
+ "Phraseology": 3.54,
400
+ "Tricky questions": 3.9
401
  },
402
  {
403
  "Model": "Qwen/Qwen2.5-72B-Instruct",
404
  "Params": "72.7B",
 
405
  "Sentiment": 4.076923076923077,
406
  "Language understanding": 3.97,
407
+ "Phraseology": 3.93,
408
+ "Tricky questions": 3.9
409
  },
410
  {
411
  "Model": "Qwen/Qwen2.5-32B-Instruct",
412
  "Params": "32.8B",
 
413
  "Sentiment": 3.8141025641025643,
414
  "Language understanding": 3.565,
415
+ "Phraseology": 4.035,
416
+ "Tricky questions": 3.9
417
  },
418
  {
419
  "Model": "mistralai/Mistral-Small-24B-Instruct-2501",
420
  "Params": "23.6B",
 
421
  "Sentiment": 3.91025641025641,
422
  "Language understanding": 3.6,
423
+ "Phraseology": 3.875,
424
+ "Tricky questions": 3.9
425
  },
426
  {
427
  "Model": "meta-llama/Llama-3.3-70B-Instruct",
428
  "Params": "70.6B",
 
429
  "Sentiment": 4.294871794871795,
430
  "Language understanding": 3.865,
431
+ "Phraseology": 3.04,
432
+ "Tricky questions": 3.9
433
  },
434
  {
435
  "Model": "Qwen/Qwen2.5-14B-Instruct",
436
  "Params": "14.8B",
 
437
  "Sentiment": 3.91025641025641,
438
  "Language understanding": 3.565,
439
+ "Phraseology": 3.37,
440
+ "Tricky questions": 3.9
441
  },
442
  {
443
  "Model": "microsoft/phi-4",
444
  "Params": "14.7B",
 
445
  "Sentiment": 3.717948717948718,
446
  "Language understanding": 3.54,
447
+ "Phraseology": 3.235,
448
+ "Tricky questions": 3.9
449
  },
450
  {
451
  "Model": "Qwen/Qwen2.5-7B-Instruct",
452
  "Params": "7.62B",
 
453
  "Sentiment": 3.5576923076923075,
454
  "Language understanding": 3.025,
455
+ "Phraseology": 3.095,
456
+ "Tricky questions": 3.9
457
  },
458
  {
459
  "Model": "microsoft/Phi-4-mini-instruct",
460
  "Params": "3.84B",
 
461
  "Sentiment": 2.6923076923076925,
462
  "Language understanding": 2.43,
463
+ "Phraseology": 2.245,
464
+ "Tricky questions": 3.9
465
  },
466
  {
467
  "Model": "gemini-2.0-flash-001",
468
  "Params": "",
 
469
  "Sentiment": 4.519230769230769,
470
  "Language understanding": 4.32,
471
+ "Phraseology": 4.34,
472
+ "Tricky questions": 3.9
473
  },
474
  {
475
  "Model": "gemini-2.0-flash-lite-001",
476
  "Params": "",
 
477
  "Sentiment": 4.230769230769231,
478
  "Language understanding": 4.055,
479
+ "Phraseology": 4.235,
480
+ "Tricky questions": 3.9
481
  },
482
  {
483
  "Model": "deepseek-ai/DeepSeek-V3 (API)",
484
  "Params": "685B",
 
485
  "Sentiment": 4.358974358974359,
486
  "Language understanding": 4.22,
487
+ "Phraseology": 3.525,
488
+ "Tricky questions": 3.9
489
  },
490
  {
491
  "Model": "google/gemma-3-27b-it (API)",
492
  "Params": "27.4B",
 
493
  "Sentiment": 3.878205128205128,
494
  "Language understanding": 3.785,
495
+ "Phraseology": 4.025,
496
+ "Tricky questions": 3.9
497
  }
498
+ ]
requirements.txt CHANGED
@@ -1,5 +1,5 @@
1
  pandas
2
  seaborn
3
  plotly
4
- streamlit
5
- st_social_media_links
 
1
  pandas
2
  seaborn
3
  plotly
4
+ streamlit==1.43
5
+ st_social_media_links