David Pomerenke
commited on
Commit
·
430bde6
1
Parent(s):
5bcc69a
Nicer layout for datasets table and other tables
Browse files- data/datasets.json +43 -6
- evals/main.py +1 -1
- frontend/package-lock.json +7 -0
- frontend/package.json +1 -0
- frontend/public/results.json +0 -0
- frontend/src/App.js +2 -1
- frontend/src/components/DatasetTable.js +64 -13
- frontend/src/components/LanguageTable.js +2 -3
- frontend/src/components/ModelTable.js +1 -23
data/datasets.json
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
{
|
3 |
"name": "FLORES+",
|
4 |
"author": "Meta",
|
|
|
5 |
"url": "https://huggingface.co/datasets/openlanguagedata/flores_plus",
|
6 |
"n_languages": 200,
|
7 |
"tasks": [
|
@@ -16,6 +17,7 @@
|
|
16 |
{
|
17 |
"name": "FLEURS",
|
18 |
"author": "Meta",
|
|
|
19 |
"url": "https://huggingface.co/datasets/google/fleurs",
|
20 |
"n_languages": 102,
|
21 |
"tasks": [
|
@@ -28,6 +30,7 @@
|
|
28 |
{
|
29 |
"name": "CommonVoice",
|
30 |
"author": "Mozilla",
|
|
|
31 |
"url": "https://huggingface.co/datasets/mozilla-foundation/common_voice_17_0",
|
32 |
"n_languages": 124,
|
33 |
"tasks": [
|
@@ -38,6 +41,7 @@
|
|
38 |
{
|
39 |
"name": "MMMLU",
|
40 |
"author": "OpenAI",
|
|
|
41 |
"url": "https://huggingface.co/datasets/openai/MMMLU",
|
42 |
"n_languages": "14",
|
43 |
"tasks": [
|
@@ -49,6 +53,7 @@
|
|
49 |
{
|
50 |
"name": "AfriMMLU",
|
51 |
"author": "Masakhane",
|
|
|
52 |
"url": "https://huggingface.co/datasets/masakhane/afrimmlu",
|
53 |
"n_languages": "17",
|
54 |
"tasks": [
|
@@ -59,7 +64,8 @@
|
|
59 |
},
|
60 |
{
|
61 |
"name": "Okapi MMLU",
|
62 |
-
"author": "
|
|
|
63 |
"url": "https://huggingface.co/datasets/jon-tow/okapi_mmlu",
|
64 |
"n_languages": 16,
|
65 |
"tasks": [
|
@@ -71,6 +77,7 @@
|
|
71 |
{
|
72 |
"name": "Global MMLU",
|
73 |
"author": "Cohere",
|
|
|
74 |
"url": "https://huggingface.co/datasets/CohereForAI/Global-MMLU",
|
75 |
"n_languages": 42,
|
76 |
"tasks": [
|
@@ -82,6 +89,7 @@
|
|
82 |
{
|
83 |
"name": "MGSM",
|
84 |
"author": "Google",
|
|
|
85 |
"url": "https://huggingface.co/datasets/juletxara/mgsm",
|
86 |
"n_languages": 10,
|
87 |
"tasks": [
|
@@ -93,6 +101,7 @@
|
|
93 |
{
|
94 |
"name": "AfriMGSM",
|
95 |
"author": "Masakhane",
|
|
|
96 |
"url": "https://huggingface.co/datasets/masakhane/afrimgsm",
|
97 |
"n_languages": 18,
|
98 |
"tasks": [
|
@@ -103,7 +112,8 @@
|
|
103 |
},
|
104 |
{
|
105 |
"name": "Okapi ARC Challenge",
|
106 |
-
"author": "
|
|
|
107 |
"url": "https://huggingface.co/datasets/jon-tow/okapi_arc_challenge",
|
108 |
"n_languages": 31,
|
109 |
"tasks": [
|
@@ -115,6 +125,7 @@
|
|
115 |
{
|
116 |
"name": "Uhuru ARC Easy",
|
117 |
"author": "Masakhane",
|
|
|
118 |
"url": "https://huggingface.co/datasets/masakhane/uhura-arc-easy",
|
119 |
"n_languages": 6,
|
120 |
"tasks": [
|
@@ -125,7 +136,8 @@
|
|
125 |
},
|
126 |
{
|
127 |
"name": "Okapi TruthfulQA",
|
128 |
-
"author": "
|
|
|
129 |
"url": "https://huggingface.co/datasets/jon-tow/okapi_truthfulqa/tree/main/data",
|
130 |
"n_languages": 31,
|
131 |
"tasks": [
|
@@ -137,6 +149,7 @@
|
|
137 |
{
|
138 |
"name": "Uhura TruthfulQA",
|
139 |
"author": "Masakhane",
|
|
|
140 |
"url": "https://huggingface.co/datasets/masakhane/uhura-truthfulqa",
|
141 |
"n_languages": 6,
|
142 |
"tasks": [
|
@@ -148,6 +161,7 @@
|
|
148 |
{
|
149 |
"name": "XNLI",
|
150 |
"author": "Meta",
|
|
|
151 |
"url": "https://huggingface.co/datasets/facebook/xnli",
|
152 |
"n_languages": 14,
|
153 |
"tasks": [
|
@@ -159,6 +173,7 @@
|
|
159 |
{
|
160 |
"name": "AfriXNLI",
|
161 |
"author": "Masakhane",
|
|
|
162 |
"url": "https://huggingface.co/datasets/masakhane/afrixnli",
|
163 |
"n_languages": 18,
|
164 |
"tasks": [
|
@@ -169,7 +184,8 @@
|
|
169 |
},
|
170 |
{
|
171 |
"name": "Okapi HellaSwag",
|
172 |
-
"author": "
|
|
|
173 |
"url": "https://huggingface.co/datasets/jon-tow/okapi_hellaswag",
|
174 |
"n_languages": 31,
|
175 |
"tasks": [
|
@@ -181,6 +197,7 @@
|
|
181 |
{
|
182 |
"name": "WikiANN / PAN-X",
|
183 |
"author": "Academic",
|
|
|
184 |
"url": "https://huggingface.co/datasets/unimelb-nlp/wikiann",
|
185 |
"n_languages": 176,
|
186 |
"tasks": [
|
@@ -191,6 +208,7 @@
|
|
191 |
{
|
192 |
"name": "MSVAMP",
|
193 |
"author": "Microsoft",
|
|
|
194 |
"url": "https://huggingface.co/datasets/Mathoctopus/MSVAMP",
|
195 |
"n_languages": 10,
|
196 |
"tasks": [
|
@@ -201,6 +219,7 @@
|
|
201 |
{
|
202 |
"name": "XLSUM",
|
203 |
"author": "Academic",
|
|
|
204 |
"url": "https://huggingface.co/datasets/csebuetnlp/xlsum",
|
205 |
"n_languages": 45,
|
206 |
"tasks": [
|
@@ -211,6 +230,7 @@
|
|
211 |
{
|
212 |
"name": "SEA-IFEVAL",
|
213 |
"author": "AI Singapore",
|
|
|
214 |
"url": "https://huggingface.co/datasets/aisingapore/instruction_following-ifeval",
|
215 |
"n_languages": 7,
|
216 |
"tasks": [
|
@@ -222,6 +242,7 @@
|
|
222 |
{
|
223 |
"name": "XTREME",
|
224 |
"author": "Google",
|
|
|
225 |
"url": "https://huggingface.co/datasets/google/xtreme",
|
226 |
"n_languages": 40,
|
227 |
"tasks": [
|
@@ -235,6 +256,7 @@
|
|
235 |
{
|
236 |
"name": "XGLUE",
|
237 |
"author": "Microsoft",
|
|
|
238 |
"url": "https://huggingface.co/datasets/microsoft/xglue",
|
239 |
"n_languages": 18,
|
240 |
"tasks": [
|
@@ -246,6 +268,7 @@
|
|
246 |
{
|
247 |
"name": "IndicGLUE",
|
248 |
"author": "AI4Bharat",
|
|
|
249 |
"url": "https://huggingface.co/datasets/ai4bharat/indic_glue",
|
250 |
"n_languages": 11,
|
251 |
"tasks": [
|
@@ -257,6 +280,7 @@
|
|
257 |
{
|
258 |
"name": "Opus Gnome",
|
259 |
"author": "Helsinki NLP",
|
|
|
260 |
"url": "https://huggingface.co/datasets/Helsinki-NLP/opus_gnome",
|
261 |
"n_languages": 187,
|
262 |
"tasks": [
|
@@ -267,6 +291,7 @@
|
|
267 |
{
|
268 |
"name": "Opus Paracrawl",
|
269 |
"author": "Helsinki NLP",
|
|
|
270 |
"url": "https://huggingface.co/datasets/Helsinki-NLP/opus_paracrawl",
|
271 |
"n_languages": 43,
|
272 |
"tasks": [
|
@@ -277,6 +302,7 @@
|
|
277 |
{
|
278 |
"name": "CCAligned",
|
279 |
"author": "Meta",
|
|
|
280 |
"url": "https://huggingface.co/datasets/ahelk/ccaligned_multilingual",
|
281 |
"n_languages": 137,
|
282 |
"tasks": [
|
@@ -287,7 +313,8 @@
|
|
287 |
{
|
288 |
"name": "OPUS Collection",
|
289 |
"author": "Helsinki NLP",
|
290 |
-
"
|
|
|
291 |
"n_languages": 747,
|
292 |
"tasks": [
|
293 |
"translation"
|
@@ -297,6 +324,7 @@
|
|
297 |
{
|
298 |
"name": "MasakhaNER",
|
299 |
"author": "Masakhane",
|
|
|
300 |
"url": "https://huggingface.co/datasets/masakhane/masakhaner",
|
301 |
"n_languages": 10,
|
302 |
"tasks": [
|
@@ -306,6 +334,8 @@
|
|
306 |
},
|
307 |
{
|
308 |
"name": "Multilingual Sentiments",
|
|
|
|
|
309 |
"url": "https://huggingface.co/datasets/tyqiangz/multilingual-sentiments",
|
310 |
"n_languages": 12,
|
311 |
"tasks": [
|
@@ -316,6 +346,7 @@
|
|
316 |
{
|
317 |
"name": "CulturaX",
|
318 |
"author": "Academic",
|
|
|
319 |
"url": "https://huggingface.co/datasets/uonlp/CulturaX",
|
320 |
"n_languages": 167,
|
321 |
"tasks": [
|
@@ -326,6 +357,7 @@
|
|
326 |
{
|
327 |
"name": "Tülu 3 SFT Mixture",
|
328 |
"author": "AllenAI",
|
|
|
329 |
"url": "https://huggingface.co/datasets/allenai/tulu-3-sft-mixture",
|
330 |
"n_languages": 70,
|
331 |
"tasks": [
|
@@ -336,6 +368,7 @@
|
|
336 |
{
|
337 |
"name": "xP3",
|
338 |
"author": "BigScience",
|
|
|
339 |
"url": "https://huggingface.co/datasets/bigscience/xP3",
|
340 |
"n_languages": 46,
|
341 |
"tasks": [
|
@@ -346,6 +379,7 @@
|
|
346 |
{
|
347 |
"name": "Aya",
|
348 |
"author": "Cohere",
|
|
|
349 |
"url": "https://huggingface.co/datasets/CohereForAI/aya_dataset",
|
350 |
"n_languages": 65,
|
351 |
"tasks": [
|
@@ -356,6 +390,7 @@
|
|
356 |
{
|
357 |
"name": "Lanfrica",
|
358 |
"author": "Lanfrica",
|
|
|
359 |
"url": "https://lanfrica.com/records?language=yor&task=machine%20translation",
|
360 |
"n_languages": 2200,
|
361 |
"tasks": [
|
@@ -366,6 +401,7 @@
|
|
366 |
{
|
367 |
"name": "HuggingFace Languages",
|
368 |
"author": "HuggingFace",
|
|
|
369 |
"url": "https://huggingface.co/languages",
|
370 |
"n_languages": 4680,
|
371 |
"tasks": [
|
@@ -377,8 +413,9 @@
|
|
377 |
{
|
378 |
"name": "HuggingFace Multilingual Datasets",
|
379 |
"author": "HuggingFace",
|
|
|
380 |
"url": "https://huggingface.co/datasets?other=multilinguality:multilingual",
|
381 |
-
"n_languages":
|
382 |
"tasks": [
|
383 |
"datasets"
|
384 |
],
|
|
|
2 |
{
|
3 |
"name": "FLORES+",
|
4 |
"author": "Meta",
|
5 |
+
"author_url": "https://ai.meta.com",
|
6 |
"url": "https://huggingface.co/datasets/openlanguagedata/flores_plus",
|
7 |
"n_languages": 200,
|
8 |
"tasks": [
|
|
|
17 |
{
|
18 |
"name": "FLEURS",
|
19 |
"author": "Meta",
|
20 |
+
"author_url": "https://ai.meta.com",
|
21 |
"url": "https://huggingface.co/datasets/google/fleurs",
|
22 |
"n_languages": 102,
|
23 |
"tasks": [
|
|
|
30 |
{
|
31 |
"name": "CommonVoice",
|
32 |
"author": "Mozilla",
|
33 |
+
"author_url": "https://mozilla.ai",
|
34 |
"url": "https://huggingface.co/datasets/mozilla-foundation/common_voice_17_0",
|
35 |
"n_languages": 124,
|
36 |
"tasks": [
|
|
|
41 |
{
|
42 |
"name": "MMMLU",
|
43 |
"author": "OpenAI",
|
44 |
+
"author_url": "https://openai.com",
|
45 |
"url": "https://huggingface.co/datasets/openai/MMMLU",
|
46 |
"n_languages": "14",
|
47 |
"tasks": [
|
|
|
53 |
{
|
54 |
"name": "AfriMMLU",
|
55 |
"author": "Masakhane",
|
56 |
+
"author_url": "https://www.masakhane.io",
|
57 |
"url": "https://huggingface.co/datasets/masakhane/afrimmlu",
|
58 |
"n_languages": "17",
|
59 |
"tasks": [
|
|
|
64 |
},
|
65 |
{
|
66 |
"name": "Okapi MMLU",
|
67 |
+
"author": "Academic",
|
68 |
+
"author_url": null,
|
69 |
"url": "https://huggingface.co/datasets/jon-tow/okapi_mmlu",
|
70 |
"n_languages": 16,
|
71 |
"tasks": [
|
|
|
77 |
{
|
78 |
"name": "Global MMLU",
|
79 |
"author": "Cohere",
|
80 |
+
"author_url": "https://cohere.com",
|
81 |
"url": "https://huggingface.co/datasets/CohereForAI/Global-MMLU",
|
82 |
"n_languages": 42,
|
83 |
"tasks": [
|
|
|
89 |
{
|
90 |
"name": "MGSM",
|
91 |
"author": "Google",
|
92 |
+
"author_url": "https://google.com",
|
93 |
"url": "https://huggingface.co/datasets/juletxara/mgsm",
|
94 |
"n_languages": 10,
|
95 |
"tasks": [
|
|
|
101 |
{
|
102 |
"name": "AfriMGSM",
|
103 |
"author": "Masakhane",
|
104 |
+
"author_url": "https://www.masakhane.io",
|
105 |
"url": "https://huggingface.co/datasets/masakhane/afrimgsm",
|
106 |
"n_languages": 18,
|
107 |
"tasks": [
|
|
|
112 |
},
|
113 |
{
|
114 |
"name": "Okapi ARC Challenge",
|
115 |
+
"author": "Academic",
|
116 |
+
"author_url": null,
|
117 |
"url": "https://huggingface.co/datasets/jon-tow/okapi_arc_challenge",
|
118 |
"n_languages": 31,
|
119 |
"tasks": [
|
|
|
125 |
{
|
126 |
"name": "Uhuru ARC Easy",
|
127 |
"author": "Masakhane",
|
128 |
+
"author_url": "https://www.masakhane.io",
|
129 |
"url": "https://huggingface.co/datasets/masakhane/uhura-arc-easy",
|
130 |
"n_languages": 6,
|
131 |
"tasks": [
|
|
|
136 |
},
|
137 |
{
|
138 |
"name": "Okapi TruthfulQA",
|
139 |
+
"author": "Academic",
|
140 |
+
"author_url": null,
|
141 |
"url": "https://huggingface.co/datasets/jon-tow/okapi_truthfulqa/tree/main/data",
|
142 |
"n_languages": 31,
|
143 |
"tasks": [
|
|
|
149 |
{
|
150 |
"name": "Uhura TruthfulQA",
|
151 |
"author": "Masakhane",
|
152 |
+
"author_url": "https://www.masakhane.io",
|
153 |
"url": "https://huggingface.co/datasets/masakhane/uhura-truthfulqa",
|
154 |
"n_languages": 6,
|
155 |
"tasks": [
|
|
|
161 |
{
|
162 |
"name": "XNLI",
|
163 |
"author": "Meta",
|
164 |
+
"author_url": "https://ai.meta.com",
|
165 |
"url": "https://huggingface.co/datasets/facebook/xnli",
|
166 |
"n_languages": 14,
|
167 |
"tasks": [
|
|
|
173 |
{
|
174 |
"name": "AfriXNLI",
|
175 |
"author": "Masakhane",
|
176 |
+
"author_url": "https://www.masakhane.io",
|
177 |
"url": "https://huggingface.co/datasets/masakhane/afrixnli",
|
178 |
"n_languages": 18,
|
179 |
"tasks": [
|
|
|
184 |
},
|
185 |
{
|
186 |
"name": "Okapi HellaSwag",
|
187 |
+
"author": "Academic",
|
188 |
+
"author_url": null,
|
189 |
"url": "https://huggingface.co/datasets/jon-tow/okapi_hellaswag",
|
190 |
"n_languages": 31,
|
191 |
"tasks": [
|
|
|
197 |
{
|
198 |
"name": "WikiANN / PAN-X",
|
199 |
"author": "Academic",
|
200 |
+
"author_url": null,
|
201 |
"url": "https://huggingface.co/datasets/unimelb-nlp/wikiann",
|
202 |
"n_languages": 176,
|
203 |
"tasks": [
|
|
|
208 |
{
|
209 |
"name": "MSVAMP",
|
210 |
"author": "Microsoft",
|
211 |
+
"author_url": "https://microsoft.com",
|
212 |
"url": "https://huggingface.co/datasets/Mathoctopus/MSVAMP",
|
213 |
"n_languages": 10,
|
214 |
"tasks": [
|
|
|
219 |
{
|
220 |
"name": "XLSUM",
|
221 |
"author": "Academic",
|
222 |
+
"author_url": null,
|
223 |
"url": "https://huggingface.co/datasets/csebuetnlp/xlsum",
|
224 |
"n_languages": 45,
|
225 |
"tasks": [
|
|
|
230 |
{
|
231 |
"name": "SEA-IFEVAL",
|
232 |
"author": "AI Singapore",
|
233 |
+
"author_url": "https://aisingapore.org",
|
234 |
"url": "https://huggingface.co/datasets/aisingapore/instruction_following-ifeval",
|
235 |
"n_languages": 7,
|
236 |
"tasks": [
|
|
|
242 |
{
|
243 |
"name": "XTREME",
|
244 |
"author": "Google",
|
245 |
+
"author_url": "https://google.com",
|
246 |
"url": "https://huggingface.co/datasets/google/xtreme",
|
247 |
"n_languages": 40,
|
248 |
"tasks": [
|
|
|
256 |
{
|
257 |
"name": "XGLUE",
|
258 |
"author": "Microsoft",
|
259 |
+
"author_url": "https://microsoft.com",
|
260 |
"url": "https://huggingface.co/datasets/microsoft/xglue",
|
261 |
"n_languages": 18,
|
262 |
"tasks": [
|
|
|
268 |
{
|
269 |
"name": "IndicGLUE",
|
270 |
"author": "AI4Bharat",
|
271 |
+
"author_url": "https://models.ai4bharat.org",
|
272 |
"url": "https://huggingface.co/datasets/ai4bharat/indic_glue",
|
273 |
"n_languages": 11,
|
274 |
"tasks": [
|
|
|
280 |
{
|
281 |
"name": "Opus Gnome",
|
282 |
"author": "Helsinki NLP",
|
283 |
+
"author_url": null,
|
284 |
"url": "https://huggingface.co/datasets/Helsinki-NLP/opus_gnome",
|
285 |
"n_languages": 187,
|
286 |
"tasks": [
|
|
|
291 |
{
|
292 |
"name": "Opus Paracrawl",
|
293 |
"author": "Helsinki NLP",
|
294 |
+
"author_url": null,
|
295 |
"url": "https://huggingface.co/datasets/Helsinki-NLP/opus_paracrawl",
|
296 |
"n_languages": 43,
|
297 |
"tasks": [
|
|
|
302 |
{
|
303 |
"name": "CCAligned",
|
304 |
"author": "Meta",
|
305 |
+
"author_url": "https://ai.meta.com",
|
306 |
"url": "https://huggingface.co/datasets/ahelk/ccaligned_multilingual",
|
307 |
"n_languages": 137,
|
308 |
"tasks": [
|
|
|
313 |
{
|
314 |
"name": "OPUS Collection",
|
315 |
"author": "Helsinki NLP",
|
316 |
+
"author_url": null,
|
317 |
+
"url": "https://opus.nlpl.eu",
|
318 |
"n_languages": 747,
|
319 |
"tasks": [
|
320 |
"translation"
|
|
|
324 |
{
|
325 |
"name": "MasakhaNER",
|
326 |
"author": "Masakhane",
|
327 |
+
"author_url": "https://www.masakhane.io",
|
328 |
"url": "https://huggingface.co/datasets/masakhane/masakhaner",
|
329 |
"n_languages": 10,
|
330 |
"tasks": [
|
|
|
334 |
},
|
335 |
{
|
336 |
"name": "Multilingual Sentiments",
|
337 |
+
"author": "Academic",
|
338 |
+
"author_url": null,
|
339 |
"url": "https://huggingface.co/datasets/tyqiangz/multilingual-sentiments",
|
340 |
"n_languages": 12,
|
341 |
"tasks": [
|
|
|
346 |
{
|
347 |
"name": "CulturaX",
|
348 |
"author": "Academic",
|
349 |
+
"author_url": null,
|
350 |
"url": "https://huggingface.co/datasets/uonlp/CulturaX",
|
351 |
"n_languages": 167,
|
352 |
"tasks": [
|
|
|
357 |
{
|
358 |
"name": "Tülu 3 SFT Mixture",
|
359 |
"author": "AllenAI",
|
360 |
+
"author_url": "https://allenai.org",
|
361 |
"url": "https://huggingface.co/datasets/allenai/tulu-3-sft-mixture",
|
362 |
"n_languages": 70,
|
363 |
"tasks": [
|
|
|
368 |
{
|
369 |
"name": "xP3",
|
370 |
"author": "BigScience",
|
371 |
+
"author_url": "https://bigscience.huggingface.co",
|
372 |
"url": "https://huggingface.co/datasets/bigscience/xP3",
|
373 |
"n_languages": 46,
|
374 |
"tasks": [
|
|
|
379 |
{
|
380 |
"name": "Aya",
|
381 |
"author": "Cohere",
|
382 |
+
"author_url": "https://cohere.com",
|
383 |
"url": "https://huggingface.co/datasets/CohereForAI/aya_dataset",
|
384 |
"n_languages": 65,
|
385 |
"tasks": [
|
|
|
390 |
{
|
391 |
"name": "Lanfrica",
|
392 |
"author": "Lanfrica",
|
393 |
+
"author_url": "https://lanfrica.com",
|
394 |
"url": "https://lanfrica.com/records?language=yor&task=machine%20translation",
|
395 |
"n_languages": 2200,
|
396 |
"tasks": [
|
|
|
401 |
{
|
402 |
"name": "HuggingFace Languages",
|
403 |
"author": "HuggingFace",
|
404 |
+
"author_url": "https://huggingface.co",
|
405 |
"url": "https://huggingface.co/languages",
|
406 |
"n_languages": 4680,
|
407 |
"tasks": [
|
|
|
413 |
{
|
414 |
"name": "HuggingFace Multilingual Datasets",
|
415 |
"author": "HuggingFace",
|
416 |
+
"author_url": "https://huggingface.co",
|
417 |
"url": "https://huggingface.co/datasets?other=multilinguality:multilingual",
|
418 |
+
"n_languages": 2012,
|
419 |
"tasks": [
|
420 |
"datasets"
|
421 |
],
|
evals/main.py
CHANGED
@@ -104,7 +104,7 @@ def make_language_table(df):
|
|
104 |
for row in [*task_metrics, "average"]:
|
105 |
df[row] = df[row].round(2)
|
106 |
df = pd.merge(languages, df, on="bcp_47", how="outer")
|
107 |
-
df = df.sort_values(by="
|
108 |
df = df[["language_name", "speakers", "family", "average", "in_benchmark", *task_metrics]]
|
109 |
return df
|
110 |
|
|
|
104 |
for row in [*task_metrics, "average"]:
|
105 |
df[row] = df[row].round(2)
|
106 |
df = pd.merge(languages, df, on="bcp_47", how="outer")
|
107 |
+
df = df.sort_values(by="speakers", ascending=False)
|
108 |
df = df[["language_name", "speakers", "family", "average", "in_benchmark", *task_metrics]]
|
109 |
return df
|
110 |
|
frontend/package-lock.json
CHANGED
@@ -12,6 +12,7 @@
|
|
12 |
"@testing-library/jest-dom": "^6.6.3",
|
13 |
"@testing-library/react": "^16.2.0",
|
14 |
"@testing-library/user-event": "^13.5.0",
|
|
|
15 |
"primereact": "^10.9.3",
|
16 |
"react": "^19.0.0",
|
17 |
"react-dom": "^19.0.0",
|
@@ -13595,6 +13596,12 @@
|
|
13595 |
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
13596 |
}
|
13597 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
13598 |
"node_modules/primereact": {
|
13599 |
"version": "10.9.3",
|
13600 |
"resolved": "https://registry.npmjs.org/primereact/-/primereact-10.9.3.tgz",
|
|
|
12 |
"@testing-library/jest-dom": "^6.6.3",
|
13 |
"@testing-library/react": "^16.2.0",
|
14 |
"@testing-library/user-event": "^13.5.0",
|
15 |
+
"primeicons": "^7.0.0",
|
16 |
"primereact": "^10.9.3",
|
17 |
"react": "^19.0.0",
|
18 |
"react-dom": "^19.0.0",
|
|
|
13596 |
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
13597 |
}
|
13598 |
},
|
13599 |
+
"node_modules/primeicons": {
|
13600 |
+
"version": "7.0.0",
|
13601 |
+
"resolved": "https://registry.npmjs.org/primeicons/-/primeicons-7.0.0.tgz",
|
13602 |
+
"integrity": "sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw==",
|
13603 |
+
"license": "MIT"
|
13604 |
+
},
|
13605 |
"node_modules/primereact": {
|
13606 |
"version": "10.9.3",
|
13607 |
"resolved": "https://registry.npmjs.org/primereact/-/primereact-10.9.3.tgz",
|
frontend/package.json
CHANGED
@@ -7,6 +7,7 @@
|
|
7 |
"@testing-library/jest-dom": "^6.6.3",
|
8 |
"@testing-library/react": "^16.2.0",
|
9 |
"@testing-library/user-event": "^13.5.0",
|
|
|
10 |
"primereact": "^10.9.3",
|
11 |
"react": "^19.0.0",
|
12 |
"react-dom": "^19.0.0",
|
|
|
7 |
"@testing-library/jest-dom": "^6.6.3",
|
8 |
"@testing-library/react": "^16.2.0",
|
9 |
"@testing-library/user-event": "^13.5.0",
|
10 |
+
"primeicons": "^7.0.0",
|
11 |
"primereact": "^10.9.3",
|
12 |
"react": "^19.0.0",
|
13 |
"react-dom": "^19.0.0",
|
frontend/public/results.json
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
frontend/src/App.js
CHANGED
@@ -67,7 +67,8 @@ function App () {
|
|
67 |
alignItems: 'center',
|
68 |
width: '100%',
|
69 |
height: '100%',
|
70 |
-
justifyContent: 'center'
|
|
|
71 |
}}
|
72 |
>
|
73 |
<div
|
|
|
67 |
alignItems: 'center',
|
68 |
width: '100%',
|
69 |
height: '100%',
|
70 |
+
justifyContent: 'center',
|
71 |
+
paddingBottom: '5vh'
|
72 |
}}
|
73 |
>
|
74 |
<div
|
frontend/src/components/DatasetTable.js
CHANGED
@@ -2,24 +2,66 @@ import { DataTable } from 'primereact/datatable'
|
|
2 |
import { Column } from 'primereact/column'
|
3 |
import { FilterMatchMode } from 'primereact/api'
|
4 |
import { useState } from 'react'
|
|
|
|
|
5 |
|
6 |
const DatasetTable = ({ data }) => {
|
7 |
const [filters, setFilters] = useState({
|
8 |
-
name: { value: null, matchMode: FilterMatchMode.CONTAINS },
|
9 |
-
author: { value: null, matchMode: FilterMatchMode.IN },
|
10 |
n_languages: { value: null, matchMode: FilterMatchMode.BETWEEN },
|
11 |
tasks: { value: null, matchMode: FilterMatchMode.IN },
|
12 |
parallel: { value: null, matchMode: FilterMatchMode.EQUALS },
|
13 |
base: { value: null, matchMode: FilterMatchMode.IN },
|
14 |
-
implemented: { value: null, matchMode: FilterMatchMode.EQUALS },
|
15 |
})
|
16 |
const table = data.dataset_table
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
const nameBodyTemplate = rowData => {
|
19 |
return <div style={{ fontWeight: 'bold' }}>{rowData.name}</div>
|
20 |
}
|
21 |
|
|
|
|
|
|
|
|
|
|
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
return (
|
24 |
<DataTable
|
25 |
value={table}
|
@@ -27,43 +69,52 @@ const DatasetTable = ({ data }) => {
|
|
27 |
removableSort
|
28 |
filters={filters}
|
29 |
filterDisplay='menu'
|
|
|
30 |
scrollable
|
31 |
scrollHeight='600px'
|
32 |
id='dataset-table'
|
33 |
>
|
34 |
-
|
35 |
field='implemented'
|
36 |
-
header=
|
37 |
-
|
38 |
-
style={{
|
39 |
-
|
|
|
40 |
<Column
|
41 |
field='author'
|
42 |
header='Author'
|
43 |
-
filter
|
44 |
showFilterMatchModes={false}
|
45 |
style={{ minWidth: '5rem' }}
|
|
|
46 |
/>
|
47 |
<Column
|
48 |
field='name'
|
49 |
header='Name'
|
50 |
body={nameBodyTemplate}
|
51 |
-
filter
|
52 |
style={{ minWidth: '5rem' }}
|
53 |
frozen
|
54 |
/>
|
|
|
|
|
|
|
|
|
|
|
55 |
<Column
|
56 |
field='tasks'
|
57 |
header='Tasks'
|
58 |
filter
|
59 |
-
|
|
|
|
|
|
|
60 |
/>
|
61 |
<Column
|
62 |
field='n_languages'
|
63 |
-
header='
|
64 |
filter
|
65 |
sortable
|
66 |
-
style={{ minWidth: '10rem' }}
|
67 |
/>
|
68 |
</DataTable>
|
69 |
)
|
|
|
2 |
import { Column } from 'primereact/column'
|
3 |
import { FilterMatchMode } from 'primereact/api'
|
4 |
import { useState } from 'react'
|
5 |
+
import { MultiSelect } from 'primereact/multiselect'
|
6 |
+
import 'primeicons/primeicons.css'
|
7 |
|
8 |
const DatasetTable = ({ data }) => {
|
9 |
const [filters, setFilters] = useState({
|
|
|
|
|
10 |
n_languages: { value: null, matchMode: FilterMatchMode.BETWEEN },
|
11 |
tasks: { value: null, matchMode: FilterMatchMode.IN },
|
12 |
parallel: { value: null, matchMode: FilterMatchMode.EQUALS },
|
13 |
base: { value: null, matchMode: FilterMatchMode.IN },
|
|
|
14 |
})
|
15 |
const table = data.dataset_table
|
16 |
|
17 |
+
const implementedBodyTemplate = rowData => {
|
18 |
+
return <div style={{ display: 'flex', alignItems: 'center' }}>
|
19 |
+
<div style={{ width: '16px', height: '16px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>{rowData.implemented ? <i className='pi pi-check' title='This dataset has been used for evaluation in this benchmark.' /> : <></>}</div>
|
20 |
+
</div>
|
21 |
+
}
|
22 |
+
|
23 |
+
const authorBodyTemplate = rowData => {
|
24 |
+
const url = rowData.author_url?.replace('https://', '')
|
25 |
+
const img = url ? <img src={`https://favicone.com/${url}`} style={{borderRadius: '50%'}}/> : <></>
|
26 |
+
return <div style={{ display: 'flex', alignItems: 'center' }}>
|
27 |
+
<div style={{ width: '16px', height: '16px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>{img}</div>
|
28 |
+
<div style={{ marginLeft: '0.5rem' }}>{rowData.author}</div>
|
29 |
+
</div>
|
30 |
+
}
|
31 |
+
|
32 |
const nameBodyTemplate = rowData => {
|
33 |
return <div style={{ fontWeight: 'bold' }}>{rowData.name}</div>
|
34 |
}
|
35 |
|
36 |
+
const tasksBodyTemplate = rowData => {
|
37 |
+
return <div style={{ display: 'flex', flexWrap: 'wrap', gap: '0.5rem' }}>
|
38 |
+
{rowData.tasks.map(task => <div key={task} style={{ backgroundColor: '#f0f0f0', padding: '0.25rem 0.5rem', borderRadius: '0.25rem' }}>{task}</div>)}
|
39 |
+
</div>
|
40 |
+
}
|
41 |
|
42 |
+
const linkBodyTemplate = rowData => {
|
43 |
+
return <a href={rowData.url} target='_blank' style={{ textDecoration: 'none', color: 'inherit' }}><i className='pi pi-external-link' style={{ fontSize: '0.8rem' }} /></a>
|
44 |
+
}
|
45 |
+
|
46 |
+
const tasks = [...new Set(table.flatMap(item => item.tasks))].sort()
|
47 |
+
const tasksRowFilterTemplate = options => {
|
48 |
+
return (
|
49 |
+
<MultiSelect
|
50 |
+
value={options.value}
|
51 |
+
options={tasks}
|
52 |
+
onChange={e => {
|
53 |
+
options.filterApplyCallback(e.value)
|
54 |
+
setFilters(prevFilters => ({
|
55 |
+
...prevFilters,
|
56 |
+
tasks: { value: e.value, matchMode: FilterMatchMode.IN }
|
57 |
+
}))
|
58 |
+
}}
|
59 |
+
placeholder='All tasks'
|
60 |
+
/>
|
61 |
+
)
|
62 |
+
}
|
63 |
+
|
64 |
+
console.log(table)
|
65 |
return (
|
66 |
<DataTable
|
67 |
value={table}
|
|
|
69 |
removableSort
|
70 |
filters={filters}
|
71 |
filterDisplay='menu'
|
72 |
+
sortField='implemented'
|
73 |
scrollable
|
74 |
scrollHeight='600px'
|
75 |
id='dataset-table'
|
76 |
>
|
77 |
+
<Column
|
78 |
field='implemented'
|
79 |
+
header={null}
|
80 |
+
sortable
|
81 |
+
style={{ maxWidth: '5rem' }}
|
82 |
+
body={implementedBodyTemplate}
|
83 |
+
/>
|
84 |
<Column
|
85 |
field='author'
|
86 |
header='Author'
|
|
|
87 |
showFilterMatchModes={false}
|
88 |
style={{ minWidth: '5rem' }}
|
89 |
+
body={authorBodyTemplate}
|
90 |
/>
|
91 |
<Column
|
92 |
field='name'
|
93 |
header='Name'
|
94 |
body={nameBodyTemplate}
|
|
|
95 |
style={{ minWidth: '5rem' }}
|
96 |
frozen
|
97 |
/>
|
98 |
+
<Column
|
99 |
+
field='link'
|
100 |
+
header={null}
|
101 |
+
body={linkBodyTemplate}
|
102 |
+
/>
|
103 |
<Column
|
104 |
field='tasks'
|
105 |
header='Tasks'
|
106 |
filter
|
107 |
+
filterElement={tasksRowFilterTemplate}
|
108 |
+
showFilterMatchModes={false}
|
109 |
+
style={{ minWidth: '10rem', maxWidth: '15rem' }}
|
110 |
+
body={tasksBodyTemplate}
|
111 |
/>
|
112 |
<Column
|
113 |
field='n_languages'
|
114 |
+
header='Languages'
|
115 |
filter
|
116 |
sortable
|
117 |
+
style={{ minWidth: '5rem', maxWidth: '10rem' }}
|
118 |
/>
|
119 |
</DataTable>
|
120 |
)
|
frontend/src/components/LanguageTable.js
CHANGED
@@ -99,7 +99,7 @@ const LanguageTable = ({ data }) => {
|
|
99 |
|
100 |
const speakerBodyTemplate = rowData => {
|
101 |
const populationStr = formatPopulation(rowData.speakers)
|
102 |
-
return <div>{populationStr}</div>
|
103 |
}
|
104 |
|
105 |
const languageBodyTemplate = rowData => {
|
@@ -131,8 +131,6 @@ const LanguageTable = ({ data }) => {
|
|
131 |
field='language_name'
|
132 |
header='Language'
|
133 |
body={languageBodyTemplate}
|
134 |
-
filter
|
135 |
-
showFilterMatchModes={false}
|
136 |
style={{ minWidth: '5rem' }}
|
137 |
frozen
|
138 |
/>
|
@@ -143,6 +141,7 @@ const LanguageTable = ({ data }) => {
|
|
143 |
filter
|
144 |
filterElement={speakerFilterTemplate}
|
145 |
showFilterMatchModes={false}
|
|
|
146 |
style={{ minWidth: '5rem' }}
|
147 |
/>
|
148 |
<Column
|
|
|
99 |
|
100 |
const speakerBodyTemplate = rowData => {
|
101 |
const populationStr = formatPopulation(rowData.speakers)
|
102 |
+
return <div style={{ textAlign: 'right' }}>{populationStr}</div>
|
103 |
}
|
104 |
|
105 |
const languageBodyTemplate = rowData => {
|
|
|
131 |
field='language_name'
|
132 |
header='Language'
|
133 |
body={languageBodyTemplate}
|
|
|
|
|
134 |
style={{ minWidth: '5rem' }}
|
135 |
frozen
|
136 |
/>
|
|
|
141 |
filter
|
142 |
filterElement={speakerFilterTemplate}
|
143 |
showFilterMatchModes={false}
|
144 |
+
sortable
|
145 |
style={{ minWidth: '5rem' }}
|
146 |
/>
|
147 |
<Column
|
frontend/src/components/ModelTable.js
CHANGED
@@ -19,23 +19,6 @@ const ModelTable = ({ data }) => {
|
|
19 |
return <Medal rank={rowData.rank} />
|
20 |
}
|
21 |
|
22 |
-
const providers = [...new Set(table.map(item => item.provider))]
|
23 |
-
const providerRowFilterTemplate = options => {
|
24 |
-
return (
|
25 |
-
<MultiSelect
|
26 |
-
value={options.value}
|
27 |
-
options={providers}
|
28 |
-
onChange={e => {
|
29 |
-
options.filterApplyCallback(e.value)
|
30 |
-
setFilters(prevFilters => ({
|
31 |
-
...prevFilters,
|
32 |
-
provider: { value: e.value, matchMode: FilterMatchMode.IN }
|
33 |
-
}))
|
34 |
-
}}
|
35 |
-
placeholder='All providers'
|
36 |
-
/>
|
37 |
-
)
|
38 |
-
}
|
39 |
const typeRowFilterTemplate = options => {
|
40 |
return (
|
41 |
<MultiSelect
|
@@ -120,7 +103,7 @@ const ModelTable = ({ data }) => {
|
|
120 |
|
121 |
const sizeBodyTemplate = rowData => {
|
122 |
const sizeStr = formatSize(rowData.size)
|
123 |
-
return <div>{sizeStr}</div>
|
124 |
}
|
125 |
|
126 |
const modelBodyTemplate = rowData => {
|
@@ -152,16 +135,11 @@ const ModelTable = ({ data }) => {
|
|
152 |
<Column
|
153 |
field='provider'
|
154 |
header='Provider'
|
155 |
-
filter
|
156 |
-
filterElement={providerRowFilterTemplate}
|
157 |
-
showFilterMatchModes={false}
|
158 |
style={{ minWidth: '5rem' }}
|
159 |
/>
|
160 |
<Column
|
161 |
field='model'
|
162 |
header='Model'
|
163 |
-
filter
|
164 |
-
showFilterMatchModes={false}
|
165 |
style={{ minWidth: '10rem' }}
|
166 |
body={modelBodyTemplate}
|
167 |
frozen
|
|
|
19 |
return <Medal rank={rowData.rank} />
|
20 |
}
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
const typeRowFilterTemplate = options => {
|
23 |
return (
|
24 |
<MultiSelect
|
|
|
103 |
|
104 |
const sizeBodyTemplate = rowData => {
|
105 |
const sizeStr = formatSize(rowData.size)
|
106 |
+
return <div style={{ textAlign: 'right' }}>{sizeStr}</div>
|
107 |
}
|
108 |
|
109 |
const modelBodyTemplate = rowData => {
|
|
|
135 |
<Column
|
136 |
field='provider'
|
137 |
header='Provider'
|
|
|
|
|
|
|
138 |
style={{ minWidth: '5rem' }}
|
139 |
/>
|
140 |
<Column
|
141 |
field='model'
|
142 |
header='Model'
|
|
|
|
|
143 |
style={{ minWidth: '10rem' }}
|
144 |
body={modelBodyTemplate}
|
145 |
frozen
|