EuroEval 15.12.0__py3-none-any.whl → 16.7.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- euroeval/__init__.py +32 -14
- euroeval/benchmark_config_factory.py +92 -180
- euroeval/benchmark_modules/base.py +49 -39
- euroeval/benchmark_modules/fresh.py +35 -21
- euroeval/benchmark_modules/hf.py +280 -244
- euroeval/benchmark_modules/litellm.py +752 -312
- euroeval/benchmark_modules/vllm.py +570 -268
- euroeval/benchmarker.py +651 -528
- euroeval/caching_utils.py +79 -0
- euroeval/callbacks.py +5 -7
- euroeval/cli.py +49 -38
- euroeval/constants.py +44 -25
- euroeval/data_loading.py +111 -55
- euroeval/data_models.py +490 -323
- euroeval/dataset_configs/__init__.py +26 -4
- euroeval/dataset_configs/bosnian.py +39 -0
- euroeval/dataset_configs/bulgarian.py +56 -0
- euroeval/dataset_configs/croatian.py +56 -0
- euroeval/dataset_configs/czech.py +75 -0
- euroeval/dataset_configs/danish.py +78 -50
- euroeval/dataset_configs/dutch.py +74 -44
- euroeval/dataset_configs/english.py +71 -36
- euroeval/dataset_configs/estonian.py +111 -0
- euroeval/dataset_configs/faroese.py +25 -18
- euroeval/dataset_configs/finnish.py +63 -26
- euroeval/dataset_configs/french.py +65 -32
- euroeval/dataset_configs/german.py +77 -36
- euroeval/dataset_configs/greek.py +64 -0
- euroeval/dataset_configs/icelandic.py +68 -57
- euroeval/dataset_configs/italian.py +68 -36
- euroeval/dataset_configs/latvian.py +87 -0
- euroeval/dataset_configs/lithuanian.py +64 -0
- euroeval/dataset_configs/norwegian.py +98 -72
- euroeval/dataset_configs/polish.py +96 -0
- euroeval/dataset_configs/portuguese.py +63 -40
- euroeval/dataset_configs/serbian.py +64 -0
- euroeval/dataset_configs/slovak.py +55 -0
- euroeval/dataset_configs/slovene.py +56 -0
- euroeval/dataset_configs/spanish.py +68 -34
- euroeval/dataset_configs/swedish.py +82 -41
- euroeval/dataset_configs/ukrainian.py +64 -0
- euroeval/enums.py +12 -6
- euroeval/exceptions.py +21 -1
- euroeval/finetuning.py +34 -26
- euroeval/generation.py +76 -41
- euroeval/generation_utils.py +169 -34
- euroeval/languages.py +1020 -188
- euroeval/logging_utils.py +268 -0
- euroeval/metrics/__init__.py +6 -0
- euroeval/metrics/base.py +85 -0
- euroeval/metrics/huggingface.py +216 -0
- euroeval/metrics/llm_as_a_judge.py +260 -0
- euroeval/metrics/pipeline.py +289 -0
- euroeval/metrics/speed.py +48 -0
- euroeval/model_cache.py +40 -21
- euroeval/model_config.py +4 -5
- euroeval/model_loading.py +3 -0
- euroeval/prompt_templates/__init__.py +2 -0
- euroeval/prompt_templates/classification.py +206 -0
- euroeval/prompt_templates/linguistic_acceptability.py +157 -22
- euroeval/prompt_templates/multiple_choice.py +159 -17
- euroeval/prompt_templates/named_entity_recognition.py +318 -21
- euroeval/prompt_templates/reading_comprehension.py +207 -16
- euroeval/prompt_templates/sentiment_classification.py +205 -22
- euroeval/prompt_templates/summarization.py +122 -22
- euroeval/prompt_templates/token_classification.py +279 -0
- euroeval/scores.py +20 -9
- euroeval/speed_benchmark.py +11 -12
- euroeval/task_group_utils/multiple_choice_classification.py +21 -12
- euroeval/task_group_utils/question_answering.py +101 -73
- euroeval/task_group_utils/sequence_classification.py +144 -61
- euroeval/task_group_utils/text_to_text.py +33 -12
- euroeval/task_group_utils/token_classification.py +86 -89
- euroeval/tasks.py +75 -16
- euroeval/tokenisation_utils.py +603 -0
- euroeval/types.py +17 -11
- euroeval/utils.py +332 -137
- euroeval-16.7.1.dist-info/METADATA +623 -0
- euroeval-16.7.1.dist-info/RECORD +84 -0
- {euroeval-15.12.0.dist-info → euroeval-16.7.1.dist-info}/entry_points.txt +0 -1
- euroeval/human_evaluation.py +0 -737
- euroeval/metrics.py +0 -452
- euroeval/tokenization_utils.py +0 -498
- euroeval-15.12.0.dist-info/METADATA +0 -285
- euroeval-15.12.0.dist-info/RECORD +0 -63
- {euroeval-15.12.0.dist-info → euroeval-16.7.1.dist-info}/WHEEL +0 -0
- {euroeval-15.12.0.dist-info → euroeval-16.7.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,18 +1,63 @@
|
|
|
1
1
|
"""Templates for the Summarization task."""
|
|
2
2
|
|
|
3
|
+
import typing as t
|
|
4
|
+
|
|
3
5
|
from ..data_models import PromptConfig
|
|
4
|
-
from ..languages import
|
|
6
|
+
from ..languages import (
|
|
7
|
+
BOSNIAN,
|
|
8
|
+
CZECH,
|
|
9
|
+
DANISH,
|
|
10
|
+
DUTCH,
|
|
11
|
+
ENGLISH,
|
|
12
|
+
ESTONIAN,
|
|
13
|
+
FINNISH,
|
|
14
|
+
FRENCH,
|
|
15
|
+
GERMAN,
|
|
16
|
+
GREEK,
|
|
17
|
+
ICELANDIC,
|
|
18
|
+
ITALIAN,
|
|
19
|
+
LATVIAN,
|
|
20
|
+
LITHUANIAN,
|
|
21
|
+
NORWEGIAN,
|
|
22
|
+
NORWEGIAN_BOKMÅL,
|
|
23
|
+
NORWEGIAN_NYNORSK,
|
|
24
|
+
POLISH,
|
|
25
|
+
PORTUGUESE,
|
|
26
|
+
SERBIAN,
|
|
27
|
+
SPANISH,
|
|
28
|
+
SWEDISH,
|
|
29
|
+
UKRAINIAN,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
if t.TYPE_CHECKING:
|
|
33
|
+
from ..languages import Language
|
|
5
34
|
|
|
6
35
|
# TODO: Missing Faroese
|
|
7
|
-
SUMM_TEMPLATES = {
|
|
8
|
-
|
|
36
|
+
SUMM_TEMPLATES: dict["Language", PromptConfig] = {
|
|
37
|
+
BOSNIAN: PromptConfig(
|
|
38
|
+
default_prompt_prefix=("Slijede dokumenti s priloženim sažecima."),
|
|
39
|
+
default_prompt_template=("Dokument: {text}\nSažetak: {target_text}"),
|
|
40
|
+
default_instruction_prompt=(
|
|
41
|
+
"Dokument: {text}\n\nNapišite sažetak gornjeg dokumenta."
|
|
42
|
+
),
|
|
43
|
+
default_prompt_label_mapping=dict(),
|
|
44
|
+
),
|
|
45
|
+
CZECH: PromptConfig(
|
|
46
|
+
default_prompt_prefix=("Následující jsou dokumenty s přiloženými souhrny."),
|
|
47
|
+
default_prompt_template=("Dokument: {text}\nSouhrn: {target_text}"),
|
|
48
|
+
default_instruction_prompt=(
|
|
49
|
+
"Dokument: {text}\n\nNapište souhrn výše uvedeného dokumentu."
|
|
50
|
+
),
|
|
51
|
+
default_prompt_label_mapping=dict(),
|
|
52
|
+
),
|
|
53
|
+
DANISH: PromptConfig(
|
|
9
54
|
default_prompt_prefix="Følgende er dokumenter med tilhørende resuméer.",
|
|
10
55
|
default_prompt_template="Dokument: {text}\nResumé: {target_text}",
|
|
11
56
|
default_instruction_prompt="Dokument: {text}\n\nSkriv et resumé af ovenstående "
|
|
12
57
|
"dokument.",
|
|
13
58
|
default_prompt_label_mapping=dict(),
|
|
14
59
|
),
|
|
15
|
-
|
|
60
|
+
GERMAN: PromptConfig(
|
|
16
61
|
default_prompt_prefix="Nachstehend finden Sie Dokumente mit zugehörigen "
|
|
17
62
|
"Zusammenfassungen.",
|
|
18
63
|
default_prompt_template="Dokument: {text}\nZusammenfassung: {target_text}",
|
|
@@ -20,7 +65,14 @@ SUMM_TEMPLATES = {
|
|
|
20
65
|
"Zusammenfassung des oben genannten Dokuments.",
|
|
21
66
|
default_prompt_label_mapping=dict(),
|
|
22
67
|
),
|
|
23
|
-
|
|
68
|
+
GREEK: PromptConfig(
|
|
69
|
+
default_prompt_prefix="Ακολουθούν έγγραφα με συνοδευτικές περιλήψεις.",
|
|
70
|
+
default_prompt_template="Έγγραφο: {text}\nΠερίληψη: {target_text}",
|
|
71
|
+
default_instruction_prompt="Έγγραφο: {text}\n\nΓράψτε μια περίληψη του "
|
|
72
|
+
"παραπάνω εγγράφου.",
|
|
73
|
+
default_prompt_label_mapping=dict(),
|
|
74
|
+
),
|
|
75
|
+
ENGLISH: PromptConfig(
|
|
24
76
|
default_prompt_prefix="The following are documents with accompanying "
|
|
25
77
|
"summaries.",
|
|
26
78
|
default_prompt_template="Document: {text}\nSummary: {target_text}",
|
|
@@ -28,22 +80,28 @@ SUMM_TEMPLATES = {
|
|
|
28
80
|
"document.",
|
|
29
81
|
default_prompt_label_mapping=dict(),
|
|
30
82
|
),
|
|
31
|
-
|
|
83
|
+
SPANISH: PromptConfig(
|
|
32
84
|
default_prompt_prefix="A continuación se presentan documentos con resúmenes "
|
|
33
85
|
"adjuntos.",
|
|
34
86
|
default_prompt_template="Documento: {text}\nResumen: {target_text}",
|
|
35
|
-
default_instruction_prompt="Documento: {text}\n\
|
|
36
|
-
|
|
87
|
+
default_instruction_prompt="Documento: {text}\n\n",
|
|
88
|
+
default_prompt_label_mapping=dict(),
|
|
89
|
+
),
|
|
90
|
+
ESTONIAN: PromptConfig(
|
|
91
|
+
default_prompt_prefix="Allpool on dokumendid koos kokkuvõtetega.",
|
|
92
|
+
default_prompt_template="Dokument: {text}\nKokkuvõte: {target_text}",
|
|
93
|
+
default_instruction_prompt="Dokument: {text}\n\nKoosta ülaltoodud dokumendi "
|
|
94
|
+
"kokkuvõte.",
|
|
37
95
|
default_prompt_label_mapping=dict(),
|
|
38
96
|
),
|
|
39
|
-
|
|
97
|
+
PORTUGUESE: PromptConfig(
|
|
40
98
|
default_prompt_prefix="Abaixo encontras documentos com resumos associados.",
|
|
41
99
|
default_prompt_template="Documento: {text}\nResumo: {target_text}",
|
|
42
100
|
default_instruction_prompt="Documento: {text}\n\nEscreve um resumo do "
|
|
43
101
|
"documento anterior.",
|
|
44
102
|
default_prompt_label_mapping=dict(),
|
|
45
103
|
),
|
|
46
|
-
|
|
104
|
+
FINNISH: PromptConfig(
|
|
47
105
|
default_prompt_prefix="Seuraavassa on artikkeleita ja niihin liittyviä "
|
|
48
106
|
"tiivistelmiä.",
|
|
49
107
|
default_prompt_template="Uutisartikkeli: {text}\nTiivistelmä: {target_text}",
|
|
@@ -51,21 +109,33 @@ SUMM_TEMPLATES = {
|
|
|
51
109
|
"yllä olevasta artikkelista.",
|
|
52
110
|
default_prompt_label_mapping=dict(),
|
|
53
111
|
),
|
|
54
|
-
|
|
112
|
+
FRENCH: PromptConfig(
|
|
55
113
|
default_prompt_prefix="Les documents suivants sont accompagnés d'un résumé.",
|
|
56
114
|
default_prompt_template="Document: {text}\nRésumé: {target_text}",
|
|
57
115
|
default_instruction_prompt="Document: {text}\n\nRédigez un résumé du "
|
|
58
116
|
"document ci-dessus.",
|
|
59
117
|
default_prompt_label_mapping=dict(),
|
|
60
118
|
),
|
|
61
|
-
|
|
62
|
-
default_prompt_prefix="
|
|
63
|
-
default_prompt_template="
|
|
64
|
-
default_instruction_prompt=
|
|
65
|
-
|
|
119
|
+
LATVIAN: PromptConfig(
|
|
120
|
+
default_prompt_prefix="Tālāk ir dokumenti ar pievienotām kopsavilkumiem.",
|
|
121
|
+
default_prompt_template="Dokuments: {text}\nKopsavilkums: {target_text}",
|
|
122
|
+
default_instruction_prompt=(
|
|
123
|
+
"Dokuments: {text}\n\n"
|
|
124
|
+
"Uzrakstiet kopsavilkumu par iepriekš minēto dokumentu."
|
|
125
|
+
),
|
|
66
126
|
default_prompt_label_mapping=dict(),
|
|
67
127
|
),
|
|
68
|
-
|
|
128
|
+
LITHUANIAN: PromptConfig(
|
|
129
|
+
default_prompt_prefix=(
|
|
130
|
+
"Žemiau pateikiami dokumentai su pridėtomis santraukomis."
|
|
131
|
+
),
|
|
132
|
+
default_prompt_template=("Dokumentas: {text}\nSantrauka: {target_text}"),
|
|
133
|
+
default_instruction_prompt=(
|
|
134
|
+
"Dokumentas: {text}\n\nParašykite aukščiau pateikto dokumento santrauką."
|
|
135
|
+
),
|
|
136
|
+
default_prompt_label_mapping=dict(),
|
|
137
|
+
),
|
|
138
|
+
ITALIAN: PromptConfig(
|
|
69
139
|
default_prompt_prefix="Di seguito sono riportati i documenti con le relative "
|
|
70
140
|
"sintesi.",
|
|
71
141
|
default_prompt_template="Documento: {text}\nSintesi: {target_text}",
|
|
@@ -73,14 +143,21 @@ SUMM_TEMPLATES = {
|
|
|
73
143
|
"documento di cui sopra.",
|
|
74
144
|
default_prompt_label_mapping=dict(),
|
|
75
145
|
),
|
|
76
|
-
|
|
146
|
+
ICELANDIC: PromptConfig(
|
|
147
|
+
default_prompt_prefix="Eftirfarandi eru skjöl með meðfylgjandi samantektum.",
|
|
148
|
+
default_prompt_template="Skjal: {text}\nSamantekt: {target_text}",
|
|
149
|
+
default_instruction_prompt="Skjal: {text}\n\nSkrifaðu samantekt á ofangreindu "
|
|
150
|
+
"skjali.",
|
|
151
|
+
default_prompt_label_mapping=dict(),
|
|
152
|
+
),
|
|
153
|
+
NORWEGIAN_BOKMÅL: PromptConfig(
|
|
77
154
|
default_prompt_prefix="Nedenfor følger dokumenter med tilhørende sammendrag.",
|
|
78
155
|
default_prompt_template="Dokument: {text}\nSammendrag: {target_text}",
|
|
79
156
|
default_instruction_prompt="Dokument: {text}\n\nSkriv et sammendrag av "
|
|
80
157
|
"dokumentet ovenfor.",
|
|
81
158
|
default_prompt_label_mapping=dict(),
|
|
82
159
|
),
|
|
83
|
-
|
|
160
|
+
DUTCH: PromptConfig(
|
|
84
161
|
default_prompt_prefix="Hieronder volgen documenten met bijbehorende "
|
|
85
162
|
"samenvattingen.",
|
|
86
163
|
default_prompt_template="Document: {text}\nSamenvatting: {target_text}",
|
|
@@ -88,25 +165,48 @@ SUMM_TEMPLATES = {
|
|
|
88
165
|
"het bovenstaande document.",
|
|
89
166
|
default_prompt_label_mapping=dict(),
|
|
90
167
|
),
|
|
91
|
-
|
|
168
|
+
NORWEGIAN_NYNORSK: PromptConfig(
|
|
92
169
|
default_prompt_prefix="Nedenfor følger dokumenter med tilhørende sammendrag.",
|
|
93
170
|
default_prompt_template="Dokument: {text}\nSammendrag: {target_text}",
|
|
94
171
|
default_instruction_prompt="Dokument: {text}\n\nSkriv et sammendrag av "
|
|
95
172
|
"dokumentet ovenfor.",
|
|
96
173
|
default_prompt_label_mapping=dict(),
|
|
97
174
|
),
|
|
98
|
-
|
|
175
|
+
NORWEGIAN: PromptConfig(
|
|
99
176
|
default_prompt_prefix="Nedenfor følger dokumenter med tilhørende sammendrag.",
|
|
100
177
|
default_prompt_template="Dokument: {text}\nSammendrag: {target_text}",
|
|
101
178
|
default_instruction_prompt="Dokument: {text}\n\nSkriv et sammendrag av "
|
|
102
179
|
"dokumentet ovenfor.",
|
|
103
180
|
default_prompt_label_mapping=dict(),
|
|
104
181
|
),
|
|
105
|
-
|
|
182
|
+
POLISH: PromptConfig(
|
|
183
|
+
default_prompt_prefix="Poniżej znajdują się artykuły z towarzyszącymi "
|
|
184
|
+
"im streszczeniami.",
|
|
185
|
+
default_prompt_template="Artykuł: {text}\nStreszczenie: {target_text}",
|
|
186
|
+
default_instruction_prompt="Artykuł: {text}\n\nNapisz streszczenie "
|
|
187
|
+
"powyższego artykułu.",
|
|
188
|
+
default_prompt_label_mapping=dict(),
|
|
189
|
+
),
|
|
190
|
+
SERBIAN: PromptConfig(
|
|
191
|
+
default_prompt_prefix="Slede dokumenti sa odgovarajućim sažecima.",
|
|
192
|
+
default_prompt_template="Dokument: {text}\nSažetak: {target_text}",
|
|
193
|
+
default_instruction_prompt="Dokument: {text}\n\nNapišite sažetak "
|
|
194
|
+
"gorenavedenog dokumenta.",
|
|
195
|
+
default_prompt_label_mapping=dict(),
|
|
196
|
+
),
|
|
197
|
+
SWEDISH: PromptConfig(
|
|
106
198
|
default_prompt_prefix="Nedan följer dokument med tillhörande sammanfattningar.",
|
|
107
199
|
default_prompt_template="Dokument: {text}\nSammanfattning: {target_text}",
|
|
108
200
|
default_instruction_prompt="Dokument: {text}\n\nSkriv en sammanfattning av "
|
|
109
201
|
"ovanstående dokument.",
|
|
110
202
|
default_prompt_label_mapping=dict(),
|
|
111
203
|
),
|
|
204
|
+
UKRAINIAN: PromptConfig(
|
|
205
|
+
default_prompt_prefix="Нижче наведено документи з супровідними резюме.",
|
|
206
|
+
default_prompt_template="Документ: {text}\nРезюме: {target_text}",
|
|
207
|
+
default_instruction_prompt=(
|
|
208
|
+
"Документ: {text}\n\nНапишіть резюме наведеного вище документа."
|
|
209
|
+
),
|
|
210
|
+
default_prompt_label_mapping=dict(),
|
|
211
|
+
),
|
|
112
212
|
}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
"""Templates for the token classification task."""
|
|
2
|
+
|
|
3
|
+
import typing as t
|
|
4
|
+
|
|
5
|
+
from ..data_models import PromptConfig
|
|
6
|
+
from ..languages import (
|
|
7
|
+
BULGARIAN,
|
|
8
|
+
CZECH,
|
|
9
|
+
DANISH,
|
|
10
|
+
DUTCH,
|
|
11
|
+
ENGLISH,
|
|
12
|
+
ESTONIAN,
|
|
13
|
+
FAROESE,
|
|
14
|
+
FINNISH,
|
|
15
|
+
FRENCH,
|
|
16
|
+
GERMAN,
|
|
17
|
+
GREEK,
|
|
18
|
+
ICELANDIC,
|
|
19
|
+
ITALIAN,
|
|
20
|
+
LATVIAN,
|
|
21
|
+
LITHUANIAN,
|
|
22
|
+
NORWEGIAN,
|
|
23
|
+
NORWEGIAN_BOKMÅL,
|
|
24
|
+
NORWEGIAN_NYNORSK,
|
|
25
|
+
POLISH,
|
|
26
|
+
PORTUGUESE,
|
|
27
|
+
SLOVAK,
|
|
28
|
+
SPANISH,
|
|
29
|
+
SWEDISH,
|
|
30
|
+
UKRAINIAN,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
if t.TYPE_CHECKING:
|
|
34
|
+
from ..languages import Language
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
TOKEN_CLASSIFICATION_TEMPLATES: dict["Language", PromptConfig] = {
|
|
38
|
+
ENGLISH: PromptConfig(
|
|
39
|
+
default_prompt_prefix="Below are texts and JSON dictionaries with the "
|
|
40
|
+
"categories that occur in the given text.",
|
|
41
|
+
default_prompt_template="Text: {text}\nCategories: {label}",
|
|
42
|
+
default_instruction_prompt="Text: {text}\n\nIdentify the categories in "
|
|
43
|
+
"the text. You should output this as a JSON dictionary with the keys being "
|
|
44
|
+
"{labels_str}. The values should be lists of the spans of that category, "
|
|
45
|
+
"exactly as they appear in the text.",
|
|
46
|
+
default_prompt_label_mapping="auto",
|
|
47
|
+
),
|
|
48
|
+
BULGARIAN: PromptConfig(
|
|
49
|
+
default_prompt_prefix="По-долу са текстове и JSON речници с категориите, "
|
|
50
|
+
"които се срещат в дадения текст.",
|
|
51
|
+
default_prompt_template="Текст: {text}\nКатегории: {label}",
|
|
52
|
+
default_instruction_prompt="Текст: {text}\n\nИдентифицирайте категориите "
|
|
53
|
+
"в текста. Трябва да изведете това като JSON речник, като ключовете са "
|
|
54
|
+
"{labels_str}. Стойностите трябва да бъдат списъци с откъсите от тази "
|
|
55
|
+
"категория, точно както се появяват в текста.",
|
|
56
|
+
default_prompt_label_mapping="auto",
|
|
57
|
+
),
|
|
58
|
+
CZECH: PromptConfig(
|
|
59
|
+
default_prompt_prefix="Níže jsou texty a JSON slovníky s kategoriemi, "
|
|
60
|
+
"které se v daném textu vyskytují.",
|
|
61
|
+
default_prompt_template="Text: {text}\nKategorie: {label}",
|
|
62
|
+
default_instruction_prompt="Text: {text}\n\nIdentifikujte kategorie v "
|
|
63
|
+
"textu. Měli byste to vypsat jako JSON slovník, kde klíče jsou "
|
|
64
|
+
"{labels_str}. Hodnoty by měly být seznamy úseků dané kategorie, přesně "
|
|
65
|
+
"tak, jak se objevují v textu.",
|
|
66
|
+
default_prompt_label_mapping="auto",
|
|
67
|
+
),
|
|
68
|
+
DANISH: PromptConfig(
|
|
69
|
+
default_prompt_prefix="Nedenfor er tekster og JSON-ordbøger med de "
|
|
70
|
+
"kategorier, der forekommer i den givne tekst.",
|
|
71
|
+
default_prompt_template="Tekst: {text}\nKategorier: {label}",
|
|
72
|
+
default_instruction_prompt="Tekst: {text}\n\nIdentificer kategorierne i "
|
|
73
|
+
"teksten. Du skal udskrive dette som en JSON-ordbog, hvor nøglerne er "
|
|
74
|
+
"{labels_str}. Værdierne skal være lister over uddrag af den kategori, "
|
|
75
|
+
"præcis som de optræder i teksten.",
|
|
76
|
+
default_prompt_label_mapping="auto",
|
|
77
|
+
),
|
|
78
|
+
GERMAN: PromptConfig(
|
|
79
|
+
default_prompt_prefix="Unten sind Texte und JSON-Wörterbücher mit den "
|
|
80
|
+
"Kategorien, die im jeweiligen Text vorkommen.",
|
|
81
|
+
default_prompt_template="Text: {text}\nKategorien: {label}",
|
|
82
|
+
default_instruction_prompt="Text: {text}\n\nIdentifiziere die Kategorien "
|
|
83
|
+
"im Text. Du solltest dies als ein JSON-Wörterbuch ausgeben, wobei die "
|
|
84
|
+
"Schlüssel {labels_str} sind. Die Werte sollten Listen der Ausschnitte "
|
|
85
|
+
"dieser Kategorie sein, genau so, wie sie im Text erscheinen.",
|
|
86
|
+
default_prompt_label_mapping="auto",
|
|
87
|
+
),
|
|
88
|
+
GREEK: PromptConfig(
|
|
89
|
+
default_prompt_prefix="Παρακάτω είναι κείμενα και JSON λεξικά με τις "
|
|
90
|
+
"κατηγορίες που εμφανίζονται στο δεδομένο κείμενο.",
|
|
91
|
+
default_prompt_template="Κείμενο: {text}\nΚατηγορίες: {label}",
|
|
92
|
+
default_instruction_prompt="Κείμενο: {text}\n\nΑναγνωρίστε τις "
|
|
93
|
+
"κατηγορίες στο κείμενο. Θα πρέπει να το εκτυπώσετε ως ένα JSON "
|
|
94
|
+
"λεξικό με τα κλειδιά να είναι {labels_str}. Οι τιμές θα πρέπει να "
|
|
95
|
+
"είναι λίστες με τα αποσπάσματα αυτής της κατηγορίας, ακριβώς όπως "
|
|
96
|
+
"εμφανίζονται στο κείμενο.",
|
|
97
|
+
default_prompt_label_mapping="auto",
|
|
98
|
+
),
|
|
99
|
+
SPANISH: PromptConfig(
|
|
100
|
+
default_prompt_prefix="A continuación se presentan textos y diccionarios "
|
|
101
|
+
"JSON con las categorías que aparecen en el texto dado.",
|
|
102
|
+
default_prompt_template="Texto: {text}\nCategorías: {label}",
|
|
103
|
+
default_instruction_prompt="Texto: {text}\n\nIdentifica las categorías "
|
|
104
|
+
"en el texto. Debes imprimir esto como un diccionario JSON con las "
|
|
105
|
+
"claves siendo {labels_str}. Los valores deben ser listas de los "
|
|
106
|
+
"fragmentos de esa categoría, tal como aparecen en el texto.",
|
|
107
|
+
default_prompt_label_mapping="auto",
|
|
108
|
+
),
|
|
109
|
+
ESTONIAN: PromptConfig(
|
|
110
|
+
default_prompt_prefix="Allpool on tekstid ja JSON-sõnastikud kategooriatega, "
|
|
111
|
+
"mis esinevad antud tekstis.",
|
|
112
|
+
default_prompt_template="Tekst: {text}\nKategooriad: {label}",
|
|
113
|
+
default_instruction_prompt="Tekst: {text}\n\nTuvastage tekstis "
|
|
114
|
+
"kategooriad. Te peate selle väljatrükkima JSON-sõnastikuna, kus "
|
|
115
|
+
"võtmed on {labels_str}. Väärtused peaksid olema selle kategooria "
|
|
116
|
+
"lõikude loendid, täpselt nii, nagu need tekstis esinevad.",
|
|
117
|
+
default_prompt_label_mapping="auto",
|
|
118
|
+
),
|
|
119
|
+
FINNISH: PromptConfig(
|
|
120
|
+
default_prompt_prefix="Alla on tekstejä ja JSON-sanakirjoja, joissa on "
|
|
121
|
+
"kategorioita, jotka esiintyvät annetussa tekstissä.",
|
|
122
|
+
default_prompt_template="Teksti: {text}\nKategoriat: {label}",
|
|
123
|
+
default_instruction_prompt="Teksti: {text}\n\nTunnista tekstin "
|
|
124
|
+
"kategoriat. Sinun tulee tulostaa tämä JSON-sanakirjana, jossa "
|
|
125
|
+
"avaimet ovat {labels_str}. Arvojen tulee olla kyseisen kategorian "
|
|
126
|
+
"pätkien listoja, täsmälleen niin kuin ne esiintyvät tekstissä.",
|
|
127
|
+
default_prompt_label_mapping="auto",
|
|
128
|
+
),
|
|
129
|
+
FAROESE: PromptConfig(
|
|
130
|
+
default_prompt_prefix="Niðanfyri eru tekstir og JSON orðabøkur við "
|
|
131
|
+
"bólkum, ið eru í givna tekstinum.",
|
|
132
|
+
default_prompt_template="Tekstur: {text}\nBólkar: {label}",
|
|
133
|
+
default_instruction_prompt="Tekstur: {text}\n\nKenn aftur bólkarnar "
|
|
134
|
+
"í tekstinum. Tú skalt prenta hetta sum ein JSON orðabók, har "
|
|
135
|
+
"lyklarnir eru {labels_str}. Virðini skulu vera listar yvir "
|
|
136
|
+
"brotini av tí bólkinum, beint sum tey síggjast í tekstinum.",
|
|
137
|
+
default_prompt_label_mapping="auto",
|
|
138
|
+
),
|
|
139
|
+
FRENCH: PromptConfig(
|
|
140
|
+
default_prompt_prefix="Ci-dessous se trouvent des textes et des dictionnaires "
|
|
141
|
+
"JSON avec les catégories qui apparaissent dans le texte donné.",
|
|
142
|
+
default_prompt_template="Texte : {text}\nCatégories : {label}",
|
|
143
|
+
default_instruction_prompt="Texte : {text}\n\nIdentifiez les catégories "
|
|
144
|
+
"dans le texte. Vous devez l'imprimer sous la forme d'un dictionnaire JSON "
|
|
145
|
+
"avec pour clés {labels_str}. Les valeurs doivent être des listes des "
|
|
146
|
+
"extraits de cette catégorie, exactement comme ils apparaissent dans le texte.",
|
|
147
|
+
default_prompt_label_mapping="auto",
|
|
148
|
+
),
|
|
149
|
+
ICELANDIC: PromptConfig(
|
|
150
|
+
default_prompt_prefix="Hér fyrir neðan eru textar og JSON orðabækur með "
|
|
151
|
+
"flokkum sem koma fyrir í tilteknum texta.",
|
|
152
|
+
default_prompt_template="Texti: {text}\nFlokkar: {label}",
|
|
153
|
+
default_instruction_prompt="Texti: {text}\n\nFinndu flokkana í "
|
|
154
|
+
"textanum. Þú átt að prenta þetta sem JSON orðabók þar sem lyklar "
|
|
155
|
+
"eru {labels_str}. Gildin eiga að vera listar yfir brot af þeim "
|
|
156
|
+
"flokki, nákvæmlega eins og þau koma fyrir í textanum.",
|
|
157
|
+
default_prompt_label_mapping="auto",
|
|
158
|
+
),
|
|
159
|
+
ITALIAN: PromptConfig(
|
|
160
|
+
default_prompt_prefix="Di seguito sono riportati testi e dizionari JSON "
|
|
161
|
+
"con le categorie che compaiono nel testo dato.",
|
|
162
|
+
default_prompt_template="Testo: {text}\nCategorie: {label}",
|
|
163
|
+
default_instruction_prompt="Testo: {text}\n\nIdentifica le categorie "
|
|
164
|
+
"nel testo. Devi stampare questo come un dizionario JSON con le chiavi "
|
|
165
|
+
"che sono {labels_str}. I valori devono essere liste dei brani di "
|
|
166
|
+
"quella categoria, esattamente come appaiono nel testo.",
|
|
167
|
+
default_prompt_label_mapping="auto",
|
|
168
|
+
),
|
|
169
|
+
LITHUANIAN: PromptConfig(
|
|
170
|
+
default_prompt_prefix="Žemiau pateikti tekstai ir JSON žodynai su "
|
|
171
|
+
"kategorijomis, kurios pasitaiko nurodytame tekste.",
|
|
172
|
+
default_prompt_template="Tekstas: {text}\nKategorijos: {label}",
|
|
173
|
+
default_instruction_prompt="Tekstas: {text}\n\nNustatykite kategorijas "
|
|
174
|
+
"tekste. Turite tai atspausdinti kaip JSON žodyną, kur raktai yra "
|
|
175
|
+
"{labels_str}. Reikšmės turėtų būti tos kategorijos ištraukų sąrašai, "
|
|
176
|
+
"tiksliai taip, kaip jos pateikiamos tekste.",
|
|
177
|
+
default_prompt_label_mapping="auto",
|
|
178
|
+
),
|
|
179
|
+
LATVIAN: PromptConfig(
|
|
180
|
+
default_prompt_prefix="Zemāk ir teksti un JSON vārdnīcas ar kategorijām, "
|
|
181
|
+
"kas parādās dotajā tekstā.",
|
|
182
|
+
default_prompt_template="Teksts: {text}\nKategorijas: {label}",
|
|
183
|
+
default_instruction_prompt="Teksts: {text}\n\nIdentificējiet "
|
|
184
|
+
"kategorijas tekstā. Jums tas jāizdrukā kā JSON vārdnīca, kur "
|
|
185
|
+
"atslēgas ir {labels_str}. Vērtībām jābūt šo kategoriju "
|
|
186
|
+
"izvilkumu sarakstiem, tieši tā, kā tās parādās tekstā.",
|
|
187
|
+
default_prompt_label_mapping="auto",
|
|
188
|
+
),
|
|
189
|
+
NORWEGIAN_BOKMÅL: PromptConfig(
|
|
190
|
+
default_prompt_prefix="Nedenfor er tekster og JSON-ordbøker med de "
|
|
191
|
+
"kategoriene som forekommer i den gitte teksten.",
|
|
192
|
+
default_prompt_template="Tekst: {text}\nKategorier: {label}",
|
|
193
|
+
default_instruction_prompt="Tekst: {text}\n\nIdentifiser kategoriene "
|
|
194
|
+
"i teksten. Du skal skrive dette ut som en JSON-ordbok med nøklene "
|
|
195
|
+
"som er {labels_str}. Verdiene skal være lister over utdragene av "
|
|
196
|
+
"den kategorien, akkurat som de vises i teksten.",
|
|
197
|
+
default_prompt_label_mapping="auto",
|
|
198
|
+
),
|
|
199
|
+
DUTCH: PromptConfig(
|
|
200
|
+
default_prompt_prefix="Hieronder volgen teksten en JSON-woordenboeken "
|
|
201
|
+
"met de categorieën die in de gegeven tekst voorkomen.",
|
|
202
|
+
default_prompt_template="Tekst: {text}\nCategorieën: {label}",
|
|
203
|
+
default_instruction_prompt="Tekst: {text}\n\nIdentificeer de "
|
|
204
|
+
"categorieën in de tekst. Je moet dit afdrukken als een JSON-woordenboek "
|
|
205
|
+
"met de sleutels zijnde {labels_str}. De waarden moeten lijsten zijn van "
|
|
206
|
+
"de fragmenten van die categorie, precies zoals ze in de tekst voorkomen.",
|
|
207
|
+
default_prompt_label_mapping="auto",
|
|
208
|
+
),
|
|
209
|
+
NORWEGIAN_NYNORSK: PromptConfig(
|
|
210
|
+
default_prompt_prefix="Nedanfor er tekstar og JSON-ordbøker med dei "
|
|
211
|
+
"kategoriane som førekjem i den gitte teksten.",
|
|
212
|
+
default_prompt_template="Tekst: {text}\nKategoriar: {label}",
|
|
213
|
+
default_instruction_prompt="Tekst: {text}\n\nIdentifiser kategoriane "
|
|
214
|
+
"i teksten. Du skal skrive dette ut som ein JSON-ordbok med nøklane "
|
|
215
|
+
"som er {labels_str}. Verdiane skal vere lister over utdraga av den "
|
|
216
|
+
"kategorien, akkurat som dei viser seg i teksten.",
|
|
217
|
+
default_prompt_label_mapping="auto",
|
|
218
|
+
),
|
|
219
|
+
NORWEGIAN: PromptConfig(
|
|
220
|
+
default_prompt_prefix="Nedenfor er tekster og JSON-ordbøker med de "
|
|
221
|
+
"kategoriene som forekommer i den gitte teksten.",
|
|
222
|
+
default_prompt_template="Tekst: {text}\nKategorier: {label}",
|
|
223
|
+
default_instruction_prompt="Tekst: {text}\n\nIdentifiser kategoriene "
|
|
224
|
+
"i teksten. Du skal skrive dette ut som en JSON-ordbok med nøklene "
|
|
225
|
+
"som er {labels_str}. Verdiene skal være lister over utdragene av "
|
|
226
|
+
"den kategorien, akkurat som de vises i teksten.",
|
|
227
|
+
default_prompt_label_mapping="auto",
|
|
228
|
+
),
|
|
229
|
+
POLISH: PromptConfig(
|
|
230
|
+
default_prompt_prefix="Poniżej znajdują się teksty i słowniki JSON z "
|
|
231
|
+
"kategoriami występującymi w danym tekście.",
|
|
232
|
+
default_prompt_template="Tekst: {text}\nKategorie: {label}",
|
|
233
|
+
default_instruction_prompt="Tekst: {text}\n\nZidentyfikuj kategorie "
|
|
234
|
+
"w tekście. Należy to wydrukować jako słownik JSON, w którym kluczami "
|
|
235
|
+
"są {labels_str}. Wartości powinny być listami fragmentów danej "
|
|
236
|
+
"kategorii, dokładnie tak, jak pojawiają się w tekście.",
|
|
237
|
+
default_prompt_label_mapping="auto",
|
|
238
|
+
),
|
|
239
|
+
PORTUGUESE: PromptConfig(
|
|
240
|
+
default_prompt_prefix="A seguir estão textos e dicionários JSON com as "
|
|
241
|
+
"categorias que aparecem no texto dado.",
|
|
242
|
+
default_prompt_template="Texto: {text}\nCategorias: {label}",
|
|
243
|
+
default_instruction_prompt="Texto: {text}\n\nIdentifique as categorias "
|
|
244
|
+
"no texto. Você deve imprimir isso como um dicionário JSON com as "
|
|
245
|
+
"chaves sendo {labels_str}. Os valores devem ser listas dos trechos "
|
|
246
|
+
"dessa categoria, exatamente como aparecem no texto.",
|
|
247
|
+
default_prompt_label_mapping="auto",
|
|
248
|
+
),
|
|
249
|
+
SLOVAK: PromptConfig(
|
|
250
|
+
default_prompt_prefix="Nižšie sú texty a JSON slovníky s kategóriami, "
|
|
251
|
+
"ktoré sa v danom texte vyskytujú.",
|
|
252
|
+
default_prompt_template="Text: {text}\nKategórie: {label}",
|
|
253
|
+
default_instruction_prompt="Text: {text}\n\nIdentifikujte kategórie v "
|
|
254
|
+
"texte. Mali by ste to vypísať ako JSON slovník, kde kľúče sú "
|
|
255
|
+
"{labels_str}. Hodnoty by mali byť zoznamy úsekov danej kategórie, "
|
|
256
|
+
"presne tak, ako sa objavujú v texte.",
|
|
257
|
+
default_prompt_label_mapping="auto",
|
|
258
|
+
),
|
|
259
|
+
SWEDISH: PromptConfig(
|
|
260
|
+
default_prompt_prefix="Nedan är texter och JSON-ordböcker med de "
|
|
261
|
+
"kategorier som förekommer i den givna texten.",
|
|
262
|
+
default_prompt_template="Text: {text}\nKategorier: {label}",
|
|
263
|
+
default_instruction_prompt="Text: {text}\n\nIdentifiera kategorierna "
|
|
264
|
+
"i texten. Du ska skriva ut detta som en JSON-ordbok med nycklarna "
|
|
265
|
+
"som är {labels_str}. Värdena ska vara listor över utdragen av den "
|
|
266
|
+
"kategorin, precis som de visas i texten.",
|
|
267
|
+
default_prompt_label_mapping="auto",
|
|
268
|
+
),
|
|
269
|
+
UKRAINIAN: PromptConfig(
|
|
270
|
+
default_prompt_prefix="Нижче наведено тексти та JSON-словники з "
|
|
271
|
+
"категоріями, які зустрічаються в наведеному тексті.",
|
|
272
|
+
default_prompt_template="Текст: {text}\nКатегорії: {label}",
|
|
273
|
+
default_instruction_prompt="Текст: {text}\n\nВизначте категорії в "
|
|
274
|
+
"тексті. Ви повинні надрукувати це як JSON-словник, де ключі - це "
|
|
275
|
+
"{labels_str}. Значення повинні бути списками уривків цієї категорії, "
|
|
276
|
+
"саме так, як вони з'являються в тексті.",
|
|
277
|
+
default_prompt_label_mapping="auto",
|
|
278
|
+
),
|
|
279
|
+
}
|
euroeval/scores.py
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
"""Aggregation of raw scores into the mean and a confidence interval."""
|
|
2
2
|
|
|
3
|
+
import collections.abc as c
|
|
3
4
|
import logging
|
|
4
5
|
import typing as t
|
|
5
6
|
import warnings
|
|
6
7
|
|
|
7
8
|
import numpy as np
|
|
8
9
|
|
|
10
|
+
from .logging_utils import log
|
|
11
|
+
|
|
9
12
|
if t.TYPE_CHECKING:
|
|
10
13
|
from .metrics import Metric
|
|
11
14
|
from .types import ScoreDict
|
|
12
15
|
|
|
13
|
-
logger = logging.getLogger("euroeval")
|
|
14
|
-
|
|
15
16
|
|
|
16
17
|
def log_scores(
|
|
17
18
|
dataset_name: str,
|
|
18
|
-
metrics:
|
|
19
|
-
scores:
|
|
19
|
+
metrics: c.Sequence["Metric"],
|
|
20
|
+
scores: c.Sequence[dict[str, float]],
|
|
20
21
|
model_id: str,
|
|
21
22
|
model_revision: str,
|
|
23
|
+
model_param: str | None,
|
|
22
24
|
) -> "ScoreDict":
|
|
23
25
|
"""Log the scores.
|
|
24
26
|
|
|
@@ -34,6 +36,8 @@ def log_scores(
|
|
|
34
36
|
The model ID of the model that was evaluated.
|
|
35
37
|
model_revision:
|
|
36
38
|
The revision of the model.
|
|
39
|
+
model_param:
|
|
40
|
+
The model parameter, if any.
|
|
37
41
|
|
|
38
42
|
Returns:
|
|
39
43
|
A dictionary with keys 'raw_scores' and 'total', with 'raw_scores' being
|
|
@@ -42,23 +46,30 @@ def log_scores(
|
|
|
42
46
|
"""
|
|
43
47
|
if model_revision and model_revision != "main":
|
|
44
48
|
model_id += f"@{model_revision}"
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
if model_param is not None:
|
|
50
|
+
model_id += f"#{model_param}"
|
|
47
51
|
|
|
48
52
|
total_dict: dict[str, float] = dict()
|
|
53
|
+
all_log_strs: list[str] = [f"Finished benchmarking {model_id} on {dataset_name}."]
|
|
49
54
|
for metric in metrics:
|
|
50
55
|
test_score, test_se = aggregate_scores(scores=scores, metric=metric)
|
|
51
56
|
test_score, test_score_str = metric.postprocessing_fn(test_score)
|
|
52
57
|
test_se, test_se_str = metric.postprocessing_fn(test_se)
|
|
53
58
|
total_dict[f"test_{metric.name}"] = test_score
|
|
54
59
|
total_dict[f"test_{metric.name}_se"] = test_se
|
|
55
|
-
|
|
60
|
+
log_str = (
|
|
61
|
+
f"- {metric.pretty_name}: {test_score_str} ± {test_se_str}"
|
|
62
|
+
if not np.isnan(test_se)
|
|
63
|
+
else f"- {metric.pretty_name}: {test_score_str}"
|
|
64
|
+
)
|
|
65
|
+
all_log_strs.append(log_str)
|
|
66
|
+
log("\n".join(all_log_strs), level=logging.INFO)
|
|
56
67
|
|
|
57
68
|
return dict(raw=scores, total=total_dict)
|
|
58
69
|
|
|
59
70
|
|
|
60
71
|
def aggregate_scores(
|
|
61
|
-
scores:
|
|
72
|
+
scores: c.Sequence[dict[str, float]], metric: "Metric"
|
|
62
73
|
) -> tuple[float, float]:
|
|
63
74
|
"""Helper function to compute the mean with confidence intervals.
|
|
64
75
|
|
|
@@ -84,7 +95,7 @@ def aggregate_scores(
|
|
|
84
95
|
|
|
85
96
|
if len(test_scores) > 1:
|
|
86
97
|
sample_std = np.std(test_scores, ddof=1)
|
|
87
|
-
test_se = sample_std / np.sqrt(len(test_scores))
|
|
98
|
+
test_se = (sample_std / np.sqrt(len(test_scores))).item()
|
|
88
99
|
else:
|
|
89
100
|
test_se = np.nan
|
|
90
101
|
|