Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
lm-evaluation-harness
Commits
bbb371a4
Unverified
Commit
bbb371a4
authored
May 23, 2024
by
Jess
Committed by
GitHub
May 23, 2024
Browse files
Merge pull request #25 from JessicaOjo/africamgsm
add verbalizer for afrixnli
parents
bceca7ce
d82bf9d9
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
0 deletions
+53
-0
lm_eval/filters/extraction.py
lm_eval/filters/extraction.py
+37
-0
lm_eval/tasks/afrixnli/manual/direct/afrixnli_manual_direct_yaml
.../tasks/afrixnli/manual/direct/afrixnli_manual_direct_yaml
+8
-0
lm_eval/tasks/afrixnli/manual/translate/afrixnli_manual_translate_yaml
.../afrixnli/manual/translate/afrixnli_manual_translate_yaml
+8
-0
No files found.
lm_eval/filters/extraction.py
View file @
bbb371a4
...
...
@@ -49,6 +49,43 @@ class RegexFilter(Filter):
return
filtered_resps
@
register_filter
(
"verbalizer"
)
class
VerbalizerFilter
(
Filter
):
""" """
def
__init__
(
self
,
verbalizer_dict
:
dict
,
)
->
None
:
"""
pass a string `regex` to run `re.compile(r"regex")` on.
`fallback` defines the output returned if no matches for the regex are located.
"""
self
.
verbalizer_dict
=
verbalizer_dict
def
apply
(
self
,
resps
,
docs
):
# here, we assume we have a list, in which each element is
# a list of model responses for some particular input/target pair.
# so we process each of these (same input/target response sets)
# independently (and keep them a list.)
def
verbalize
(
value
):
for
key
,
values
in
self
.
verbalizer_dict
.
items
():
for
v
in
values
:
if
v
in
value
:
return
key
return
value
def
filter_value
(
inst
):
filtered
=
[]
for
resp
in
inst
:
match
=
verbalize
(
resp
.
lower
())
filtered
.
append
(
match
)
return
filtered
filtered_resps
=
map
(
lambda
x
:
filter_value
(
x
),
resps
)
return
filtered_resps
@
register_filter
(
"regex-numbers"
)
class
RegexNumberFilter
(
Filter
):
""" """
...
...
lm_eval/tasks/afrixnli/manual/direct/afrixnli_manual_direct_yaml
View file @
bbb371a4
...
...
@@ -16,6 +16,14 @@ doc_to_choice:
- "contradiction"
should_decontaminate: true
doc_to_decontamination_query: premise
filter_list:
- name: "verbalizer_extract"
filter:
- function: verbalizer
verbalizer_dict: {
"entailment": ['encouragement', 'entitlement', 'entails', 'entailed', 'entailment'],
"contradiction": ['contradictory', 'contradicts', 'contradiction'],
"neutral": ['neutral']}
metric_list:
- metric: f1
aggregation: !function utils.weighted_f1_score
...
...
lm_eval/tasks/afrixnli/manual/translate/afrixnli_manual_translate_yaml
View file @
bbb371a4
...
...
@@ -15,6 +15,14 @@ doc_to_choice:
- "contradiction"
should_decontaminate: true
doc_to_decontamination_query: premise
filter_list:
- name: "verbalizer_extract"
filter:
- function: verbalizer
verbalizer_dict: {
"entailment": ['encouragement', 'entitlement', 'entails', 'entailed', 'entailment'],
"contradiction": ['contradictory', 'contradicts', 'contradiction'],
"neutral": ['neutral']}
metric_list:
- metric: f1
aggregation: !function utils.weighted_f1_score
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment