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
OpenDAS
opencompass
Commits
d6aaac22
You need to sign in or sign up before continuing.
Unverified
Commit
d6aaac22
authored
Nov 13, 2023
by
Fengzhe Zhou
Committed by
GitHub
Nov 13, 2023
Browse files
[Feature] Update cmb (#571)
parent
9e42cb16
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
68 additions
and
55 deletions
+68
-55
configs/datasets/cmb/cmb_gen.py
configs/datasets/cmb/cmb_gen.py
+1
-1
configs/datasets/cmb/cmb_gen_72cbb7.py
configs/datasets/cmb/cmb_gen_72cbb7.py
+0
-43
configs/datasets/cmb/cmb_gen_dfb5c4.py
configs/datasets/cmb/cmb_gen_dfb5c4.py
+49
-0
opencompass/datasets/cmb.py
opencompass/datasets/cmb.py
+12
-11
opencompass/utils/text_postprocessors.py
opencompass/utils/text_postprocessors.py
+6
-0
No files found.
configs/datasets/cmb/cmb_gen.py
View file @
d6aaac22
from
mmengine.config
import
read_base
from
mmengine.config
import
read_base
with
read_base
():
with
read_base
():
from
.cmb_gen_
72cbb7
import
cmb_datasets
# noqa: F401, F403
from
.cmb_gen_
dfb5c4
import
cmb_datasets
# noqa: F401, F403
configs/datasets/cmb/cmb_gen_72cbb7.py
deleted
100644 → 0
View file @
9e42cb16
from
opencompass.openicl.icl_prompt_template
import
PromptTemplate
from
opencompass.openicl.icl_retriever
import
FixKRetriever
from
opencompass.openicl.icl_inferencer
import
GenInferencer
from
opencompass.datasets
import
CMBDataset
cmb_datasets
=
[]
cmb_reader_cfg
=
dict
(
input_columns
=
[
"exam_type"
,
"exam_class"
,
"question_type"
,
"question"
,
"option_str"
],
output_column
=
None
,
train_split
=
"val"
,
test_split
=
"test"
)
cmb_infer_cfg
=
dict
(
ice_template
=
dict
(
type
=
PromptTemplate
,
template
=
dict
(
begin
=
"</E>"
,
round
=
[
dict
(
role
=
"HUMAN"
,
prompt
=
f
"以下是中国{{exam_type}}中{{exam_class}}考试的一道{{question_type}},不需要做任何分析和解释,直接输出答案选项。
\n
{{question}}
\n
{{option_str}}
\n
答案: "
,
),
dict
(
role
=
"BOT"
,
prompt
=
"{answer}"
),
],
),
ice_token
=
"</E>"
,
),
retriever
=
dict
(
type
=
FixKRetriever
,
fix_id_list
=
[
0
,
1
,
2
,
3
,
4
]),
inferencer
=
dict
(
type
=
GenInferencer
),
)
cmb_datasets
.
append
(
dict
(
type
=
CMBDataset
,
path
=
"./data/CMB/"
,
abbr
=
"cmb"
,
reader_cfg
=
cmb_reader_cfg
,
infer_cfg
=
cmb_infer_cfg
)
)
\ No newline at end of file
configs/datasets/cmb/cmb_gen_dfb5c4.py
0 → 100644
View file @
d6aaac22
from
opencompass.openicl.icl_prompt_template
import
PromptTemplate
from
opencompass.openicl.icl_retriever
import
ZeroRetriever
from
opencompass.openicl.icl_inferencer
import
GenInferencer
from
opencompass.datasets
import
CMBDataset
from
opencompass.openicl.icl_evaluator
import
AccEvaluator
from
opencompass.utils.text_postprocessors
import
multiple_select_postprocess
cmb_datasets
=
[]
for
split
in
[
"val"
,
"test"
]:
cmb_reader_cfg
=
dict
(
input_columns
=
[
"exam_type"
,
"exam_class"
,
"question_type"
,
"question"
,
"option_str"
],
output_column
=
"answer"
,
train_split
=
split
,
test_split
=
split
,
)
cmb_infer_cfg
=
dict
(
prompt_template
=
dict
(
type
=
PromptTemplate
,
template
=
dict
(
round
=
[
dict
(
role
=
"HUMAN"
,
prompt
=
f
"以下是中国{{exam_type}}中{{exam_class}}考试的一道{{question_type}},不需要做任何分析和解释,直接输出答案选项。
\n
{{question}}
\n
{{option_str}}
\n
答案: "
,
),
dict
(
role
=
"BOT"
,
prompt
=
"{answer}"
),
],
),
),
retriever
=
dict
(
type
=
ZeroRetriever
),
inferencer
=
dict
(
type
=
GenInferencer
,
max_out_len
=
10
),
)
cmb_eval_cfg
=
dict
(
evaluator
=
dict
(
type
=
AccEvaluator
),
pred_postprocessor
=
dict
(
type
=
multiple_select_postprocess
),
)
cmb_datasets
.
append
(
dict
(
abbr
=
"cmb"
if
split
==
"val"
else
"cmb_test"
,
type
=
CMBDataset
,
path
=
"./data/CMB/"
,
reader_cfg
=
cmb_reader_cfg
,
infer_cfg
=
cmb_infer_cfg
,
eval_cfg
=
cmb_eval_cfg
,
)
)
opencompass/datasets/cmb.py
View file @
d6aaac22
...
@@ -13,18 +13,19 @@ class CMBDataset(BaseDataset):
...
@@ -13,18 +13,19 @@ class CMBDataset(BaseDataset):
@
staticmethod
@
staticmethod
def
load
(
path
:
str
):
def
load
(
path
:
str
):
with
open
(
osp
.
join
(
path
,
'test.json'
),
'r'
,
encoding
=
'utf-8'
)
as
f
:
test_data
=
json
.
load
(
f
)
with
open
(
osp
.
join
(
path
,
'val.json'
),
'r'
,
encoding
=
'utf-8'
)
as
f
:
with
open
(
osp
.
join
(
path
,
'val.json'
),
'r'
,
encoding
=
'utf-8'
)
as
f
:
val_data
=
json
.
load
(
f
)
val_data
=
json
.
load
(
f
)
for
d
in
val_data
:
d
[
'option_str'
]
=
'
\n
'
.
join
(
[
f
'
{
k
}
.
{
v
}
'
for
k
,
v
in
d
[
'option'
].
items
()
if
len
(
v
)
>
1
])
d
[
'answer'
]
=
'NULL'
val_dataset
=
Dataset
.
from_list
(
val_data
)
for
da
in
test_data
:
with
open
(
osp
.
join
(
path
,
'test.json'
),
'r'
,
encoding
=
'utf-8'
)
as
f
:
da
[
'option_str'
]
=
'
\n
'
.
join
(
test_data
=
json
.
load
(
f
)
[
f
'
{
k
}
.
{
v
}
'
for
k
,
v
in
da
[
'option'
].
items
()
if
len
(
v
)
>
1
])
for
d
in
test_data
:
for
da
in
val_data
:
d
[
'option_str'
]
=
'
\n
'
.
join
(
da
[
'option_str'
]
=
'
\n
'
.
join
(
[
f
'
{
k
}
.
{
v
}
'
for
k
,
v
in
d
[
'option'
].
items
()
if
len
(
v
)
>
1
])
[
f
'
{
k
}
.
{
v
}
'
for
k
,
v
in
da
[
'option'
].
items
()
if
len
(
v
)
>
1
])
test_dataset
=
Dataset
.
from_list
(
test_data
)
test_dataset
=
Dataset
.
from_list
(
test_data
)
val_dataset
=
Dataset
.
from_list
(
val_data
)
return
DatasetDict
({
'
test'
:
test_dataset
,
'val'
:
val
_dataset
})
return
DatasetDict
({
'
val'
:
val_dataset
,
'test'
:
test
_dataset
})
opencompass/utils/text_postprocessors.py
View file @
d6aaac22
...
@@ -98,3 +98,9 @@ def first_number_postprocess(text: str) -> float:
...
@@ -98,3 +98,9 @@ def first_number_postprocess(text: str) -> float:
# if a match is found, return it. Otherwise, return None.
# if a match is found, return it. Otherwise, return None.
return
float
(
match
.
group
(
1
))
if
match
else
None
return
float
(
match
.
group
(
1
))
if
match
else
None
@
TEXT_POSTPROCESSORS
.
register_module
(
'multiple-select'
)
def
multiple_select_postprocess
(
text
:
str
)
->
str
:
ret
=
set
([
t
for
t
in
text
if
t
.
isupper
()])
return
''
.
join
(
sorted
(
ret
))
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