File size: 13,083 Bytes
6d0d847
7bbec6f
6d0d847
 
2115ef1
 
 
 
 
 
 
 
 
6d0d847
08d39e4
 
2115ef1
 
08d39e4
 
a40ee94
2115ef1
 
 
 
 
 
 
 
 
 
08d39e4
2115ef1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4a00668
729da04
 
 
 
4a00668
2115ef1
6d0d847
 
08d39e4
6d0d847
 
ab58981
 
 
 
 
 
6d0d847
08d39e4
 
 
 
 
 
 
 
ab58981
 
08d39e4
6d0d847
08d39e4
6d0d847
08d39e4
6d0d847
08d39e4
6d0d847
08d39e4
 
6d0d847
08d39e4
 
 
 
6d0d847
e9e9e4c
6d0d847
 
 
08d39e4
 
6d0d847
 
08d39e4
6d0d847
 
a40ee94
c7ff547
 
a40ee94
 
 
 
 
 
6d0d847
 
08d39e4
 
 
e9e9e4c
08d39e4
 
e9e9e4c
08d39e4
 
 
 
6d0d847
08d39e4
6d0d847
08d39e4
6d0d847
08d39e4
 
 
 
 
6d0d847
e9e9e4c
6d0d847
e9e9e4c
08d39e4
6d0d847
 
 
08d39e4
6d0d847
 
a40ee94
 
 
 
 
 
 
6d0d847
 
 
e9e9e4c
 
 
 
 
6d0d847
3c9a4bf
6d0d847
08d39e4
6d0d847
08d39e4
3c9a4bf
 
08d39e4
 
 
e9e9e4c
6d0d847
e9e9e4c
3c9a4bf
 
6d0d847
 
08d39e4
6d0d847
 
b767f30
 
 
a40ee94
 
6d0d847
 
 
e9e9e4c
 
 
 
6d0d847
 
3c9a4bf
6d0d847
08d39e4
6d0d847
08d39e4
3c9a4bf
 
08d39e4
 
 
e9e9e4c
6d0d847
e9e9e4c
3c9a4bf
 
6d0d847
 
08d39e4
6d0d847
 
a40ee94
 
 
 
6d0d847
 
 
e9e9e4c
 
6d0d847
3c9a4bf
6d0d847
08d39e4
6d0d847
08d39e4
3c9a4bf
 
 
08d39e4
 
 
e9e9e4c
6d0d847
e9e9e4c
3c9a4bf
6d0d847
 
08d39e4
6d0d847
 
a40ee94
 
 
 
 
6d0d847
 
 
e9e9e4c
 
 
6d0d847
3c9a4bf
6d0d847
08d39e4
6d0d847
08d39e4
3c9a4bf
6d0d847
 
 
 
08d39e4
3c9a4bf
 
 
08d39e4
 
e9e9e4c
6d0d847
e9e9e4c
3c9a4bf
 
6d0d847
 
08d39e4
6d0d847
 
 
 
 
 
e9e9e4c
 
 
 
 
 
 
 
 
6d0d847
3c9a4bf
6d0d847
08d39e4
6d0d847
08d39e4
3c9a4bf
 
08d39e4
 
 
e9e9e4c
6d0d847
e9e9e4c
3c9a4bf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
import streamlit as st
from app.draw_diagram import *

def dashboard():

    with st.container():
        st.title("SeaEval")
   
        st.markdown("""
            [gh]: https://github.com/SeaEval/SeaEval
            [![GitHub watchers](https://img.shields.io/github/watchers/SeaEval/SeaEval?style=social)][gh]
            [![GitHub Repo stars](https://img.shields.io/github/stars/SeaEval/SeaEval?style=social)][gh]
            """)

    st.markdown("#### News")
    st.markdown("Nov, 2024: Update layout and support comparison between models with similar model sizes.")

    st.divider()

    seaeval_url = "https://seaeval.github.io/"
    st.markdown("#### What is [SeaEval](%s)?" % seaeval_url)

    with st.container():
        left_co, cent_co,last_co = st.columns(3)
        with cent_co:
            st.image("./style/seaeval_overall.png", 
                    #  caption="SeaEval data range", 
                    width=500)
        st.markdown('''

                    ''')
        st.markdown("##### A benchmark for multilingual, multicultral foundation model evaluation consisting of >30 dataset and we are keep expanding over time.")
        st.markdown(''':star: How models understand and reason with natural language?    
                    :balloon: Languages: English, Chinese, Malay, Spainish, Indonedian, Vietnamese, Filipino.
                    ''')
        
        st.markdown(''':star: How models comprehend cultural practices, nuances and values?    
                    :balloon: 4 new datasets on Cultural Understanding.
                    ''')

        st.markdown(''':star: How models perform across languages in terms of consistency?    
                    :balloon: 2 new datasets with curated metrics for Cross-Linugal Consistency.
                    ''')
    with st.container():
        left_co, cent_co,last_co = st.columns(3)
        with cent_co:
            st.image("./style/consistency.png", 
                    #  caption="SeaEval data range", 
                    width=500)
        st.markdown("##### Evaluation with enhanced cross-lingual capabilities.")
        st.markdown(''':star: How models perform according to different (paraphrased) instructions?    
                    :balloon: Each dataset is equipped with 5 different prompts to avoid randomness introduced by instructions,
                    which is non-negligible..
                    ''')
        
        st.markdown(''':star: Multilingual accuracy and performance consistency across languages.    
                    :balloon: If you can answer the question in your native language, can you answer the same question 
                    correctly in your second/third language?
                    ''')

    st.divider()
    with st.container():
        st.markdown("##### Citations")

        st.markdown('''
                    :round_pushpin: SeaEval Paper \n
                        @article{SeaEval,
                        title={SeaEval for Multilingual Foundation Models: From Cross-Lingual Alignment to Cultural Reasoning},
                        author={Wang, Bin and Liu, Zhengyuan and Huang, Xin and Jiao, Fangkai and Ding, Yang and Aw, Ai Ti and Chen, Nancy F.},
                        journal={NAACL},
                        year={2024}
                        }
                    ''')

def cross_lingual_consistency():
    st.title("Task: Cross-Lingual Consistency")
    
    filters_levelone = ['Zero Shot', 'Few Shot']
    filters_leveltwo = [
                        'Cross-MMLU', 
                        'Cross-XQUAD', 
                        'Cross-LogiQA', 
                        'Cross-MMLU-No-Prompt',
                        ]
    
    category_one_dict = {
                        'Zero Shot': 'zero_shot',
                        'Few Shot' : 'few_shot'
                         }
    
    category_two_dict = {
                        'Cross-MMLU'  : 'cross_mmlu',
                        'Cross-XQUAD' : 'cross_xquad',
                        'Cross-LogiQA': 'cross_logiqa',
                        'Cross-MMLU-No-Prompt': 'cross_mmlu_no_prompt'
                         }

    left, center, middle, _, right = st.columns([0.2, 0.2, 0.2, 0.2 ,0.2])
    with left:
        category_one = st.selectbox('Zero or Few Shot', filters_levelone)
    with center:
        category_two = st.selectbox('Dataset', filters_leveltwo)
    with middle:
        model_size_range = st.selectbox('Model Size', ['All', '<10B', '10B-30B', '>30B'])

    with right:
        sort = st.selectbox('Sort (For Chart)', ['Accuracy','Cross-Lingual Consistency', 'AC3',
                                     'English', 'Chinese', 'Spanish', 'Vietnamese'])
       
    sortby = 'Ascending'

    if category_one or category_two or sort or sortby:
        category_one = category_one_dict[category_one]
        category_two = category_two_dict[category_two]
        
        draw('cross_lingual', category_one, category_two, sort, sortby, model_size_range)


def cultural_reasoning():
    st.title("Task: Cultural Reasoning")

    filters_levelone = ['Zero Shot', 'Few Shot']
    filters_leveltwo = [
                        'SG EVAL V2 MCQ',
                        'SG EVAL V2 Open Ended',
                        'SG EVAL', 
                        'SG EVAL V1 Cleaned',
                        'CN EVAL', 
                        'PH EVAL', 
                        'US EVAL'
                        ]
    
    category_one_dict = {'Zero Shot': 'zero_shot', 
                         'Few Shot': 'few_shot'
                         }
    
    category_two_dict = {'SG EVAL': 'sg_eval',
                         'SG EVAL V1 Cleaned'   : 'sg_eval_v1_cleaned',
                         'SG EVAL V2 MCQ'       : 'sg_eval_v2_mcq',
                         'SG EVAL V2 Open Ended': 'sg_eval_v2_open',
                         'US EVAL'              : 'us_eval',
                         'CN EVAL'              : 'cn_eval',
                         'PH EVAL'              : 'ph_eval'
                         }

    left, center, middle, _, right = st.columns([0.2, 0.2, 0.2, 0.2 ,0.2])
    with left:
        category_one = st.selectbox('Zero or Few Shot', filters_levelone)
    with center:
        category_two = st.selectbox('Dataset', filters_leveltwo)
    with middle:
        model_size_range = st.selectbox('Model Size', ['All', '<10B', '10B-30B', '>30B'])

    sortby = 'Ascending'
    
    if category_one or category_two or sortby:
        category_one = category_one_dict[category_one]
        category_two = category_two_dict[category_two]
        draw('cultural_reasoning', category_one, category_two, 'Accuracy', sortby, model_size_range)


def general_reasoning():
    st.title("Task: General Reasoning")

    filters_levelone = ['Zero Shot', 'Few Shot']
    filters_leveltwo = [
                        'MMLU', 
                        'CMMLU', 
                        'IndoMMLU',
                        'C Eval', 
                        'ZBench', 
                        ]
    
    category_one_dict = {'Zero Shot': 'zero_shot', 
                         'Few Shot': 'few_shot'}
    category_two_dict = {'MMLU': 'mmlu', 
                         'C Eval': 'c_eval', 
                         'CMMLU': 'cmmlu', 
                         'ZBench': 'zbench', 
                         'IndoMMLU': 'indommlu'}

    left, center, middle, _, right = st.columns([0.2, 0.2, 0.2, 0.2 ,0.2])
    with left:
        category_one = st.selectbox('Zero or Few Shot', filters_levelone)
    with center:
        category_two = st.selectbox('Dataset', filters_leveltwo)
    with middle:
        model_size_range = st.selectbox('Model Size', ['All', '<10B', '10B-30B', '>30B'])
    
    sortby = 'Ascending'

    if category_one or category_two or sortby:
        category_one = category_one_dict[category_one]
        category_two = category_two_dict[category_two]
        draw('general_reasoning', category_one, category_two, 'Accuracy', sortby, model_size_range)


def flores():
    st.title("Task: FLORES-Translation")

    filters_levelone = ['Zero Shot', 'Few Shot']
    filters_leveltwo = ['Indonesian to English', 
                        'Vitenamese to English', 
                        'Chinese to English', 
                        'Malay to English'
                        ]
    
    category_one_dict = {'Zero Shot': 'zero_shot', 
                         'Few Shot': 'few_shot'}
    category_two_dict = {'Indonesian to English': 'ind2eng', 
                         'Vitenamese to English': 'vie2eng', 
                         'Chinese to English': 'zho2eng', 
                         'Malay to English': 'zsm2eng'}
    

    left, center, middle, _, right = st.columns([0.2, 0.2, 0.2, 0.2 ,0.2])
    with left:
        category_one = st.selectbox('Zero or Few Shot', filters_levelone)
    with center:
        category_two = st.selectbox('Dataset', filters_leveltwo)
    with middle:
        model_size_range = st.selectbox('Model Size', ['All', '<10B', '10B-30B', '>30B'])

    sortby = 'Ascending'

    if category_one or category_two or sortby:
        category_one = category_one_dict[category_one]
        category_two = category_two_dict[category_two]
        draw('flores_translation', category_one, category_two, 'BLEU', sortby, model_size_range)


def emotion():
    st.title("Task: Emotion")

    filters_levelone = ['Zero Shot', 'Few Shot']
    filters_leveltwo = [
                        'Indonesian Emotion  Classification', 
                        'SST2',
                        ]
    
    category_one_dict = {'Zero Shot': 'zero_shot', 
                         'Few Shot': 'few_shot'}
    category_two_dict = {'Indonesian Emotion  Classification': 'ind_emotion', 
                             'SST2': 'sst2'}

    left, center, middle, _, right = st.columns([0.2, 0.2, 0.2, 0.2 ,0.2])
    with left:
        category_one = st.selectbox('Zero or Few Shot', filters_levelone)
    with center:
        category_two = st.selectbox('Dataset', filters_leveltwo)
    with middle:
        model_size_range = st.selectbox('Model Size', ['All', '<10B', '10B-30B', '>30B'])
    
    sortby = 'Ascending'


    if category_one or category_two or sortby:
        category_one = category_one_dict[category_one]
        category_two = category_two_dict[category_two]
        draw('emotion', category_one, category_two, 'Accuracy', sortby, model_size_range)

def dialogue():
    st.title("Task: Dialogue")

    filters_levelone = ['Zero Shot', 'Few Shot']
    filters_leveltwo = [
                        'DREAM', 
                        'SAMSum', 
                        'DialogSum',
                        ]
    
    category_one_dict = {'Zero Shot': 'zero_shot', 
                         'Few Shot': 'few_shot'}
    category_two_dict = {'DREAM': 'dream', 
                         'SAMSum': 'samsum', 
                         'DialogSum': 'dialogsum'}

    left, center, middle, _, right = st.columns([0.2, 0.2, 0.2, 0.2 ,0.2])
    with left:
        category_one = st.selectbox('Zero or Few Shot', filters_levelone)
    with center:
        category_two = st.selectbox('Dataset', filters_leveltwo)
    with right:
        if category_two == 'DREAM':
            sort = st.selectbox('Sort', ['Accuracy'])
        else:
            sort = st.selectbox('Sort', ['Average', 'ROUGE-1', 'ROUGE-2', 'ROUGE-L'])

    with middle:
        model_size_range = st.selectbox('Model Size', ['All', '<10B', '10B-30B', '>30B'])
    
    sortby = 'Ascending'

    if category_one or category_two or sort or sortby:
        category_one = category_one_dict[category_one]
        category_two = category_two_dict[category_two]
        draw('dialogue', category_one, category_two, sort, sortby, model_size_range)


def fundamental_nlp_tasks():
    st.title("Task: Fundamental NLP Tasks")

    filters_levelone = ['Zero Shot', 'Few Shot']
    filters_leveltwo = ['OCNLI', 'C3', 'COLA', 'QQP', 'MNLI', 'QNLI', 'WNLI', 'RTE', 'MRPC']
    
    category_one_dict = {'Zero Shot': 'zero_shot', 
                         'Few Shot': 'few_shot'}
    category_two_dict = {'OCNLI': 'ocnli', 
                        'C3': 'c3', 
                        'COLA': 'cola', 
                        'QQP': 'qqp', 
                        'MNLI': 'mnli', 
                        'QNLI': 'qnli', 
                        'WNLI': 'wnli', 
                        'RTE': 'rte', 
                        'MRPC': 'mrpc'}

    left, center, middle, _, right = st.columns([0.2, 0.2, 0.2, 0.2 ,0.2])
    with left:
        category_one = st.selectbox('Zero or Few Shot', filters_levelone)
    with center:
        category_two = st.selectbox('Dataset', filters_leveltwo)
    with middle:
        model_size_range = st.selectbox('Model Size', ['All', '<10B', '10B-30B', '>30B'])
    
    sortby = 'Ascending'

    if category_one or category_two or sortby:
        category_one = category_one_dict[category_one]
        category_two = category_two_dict[category_two]
        draw('fundamental_nlp_tasks', category_one, category_two, 'Accuracy', sortby, model_size_range)