Unverified Commit 8aeff141 authored by heli-qi's avatar heli-qi Committed by GitHub
Browse files

Add MMLU-ProX task (#2811)

* update mmlu_prox configs

* update tasks/README

* correct hyphon to underline in task/README

* update pre-commit codes
parent 8028a42f
group: mmlu_prox_bn
task:
- mmlu_prox_bn_biology
- mmlu_prox_bn_business
- mmlu_prox_bn_chemistry
- mmlu_prox_bn_computer_science
- mmlu_prox_bn_economics
- mmlu_prox_bn_engineering
- mmlu_prox_bn_health
- mmlu_prox_bn_history
- mmlu_prox_bn_law
- mmlu_prox_bn_math
- mmlu_prox_bn_other
- mmlu_prox_bn_philosophy
- mmlu_prox_bn_physics
- mmlu_prox_bn_psychology
aggregate_metric_list:
- aggregation: mean
metric: exact_match
weight_by_size: true
filter_list: custom-extract
metadata:
version: 0.0
description: 'নিম্নলিখিত জীববিজ্ঞান সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_biology
task_alias: biology
process_docs: !function utils.process_biology
description: 'নিম্নলিখিত ব্যবসা সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_business
task_alias: business
process_docs: !function utils.process_business
description: 'নিম্নলিখিত রসায়ন সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_chemistry
task_alias: chemistry
process_docs: !function utils.process_chemistry
description: 'নিম্নলিখিত কম্পিউটার বিজ্ঞান সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)।
ধাপে ধাপে চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে
X হল সঠিক বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_computer_science
task_alias: computer_science
process_docs: !function utils.process_computer_science
description: 'নিম্নলিখিত অর্থনীতি সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_economics
task_alias: economics
process_docs: !function utils.process_economics
description: 'নিম্নলিখিত প্রকৌশল সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_engineering
task_alias: engineering
process_docs: !function utils.process_engineering
description: 'নিম্নলিখিত স্বাস্থ্য সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_health
task_alias: health
process_docs: !function utils.process_health
description: 'নিম্নলিখিত ইতিহাস সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_history
task_alias: history
process_docs: !function utils.process_history
description: 'নিম্নলিখিত আইন সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে চিন্তা
করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক বিকল্পের
অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_law
task_alias: law
process_docs: !function utils.process_law
description: 'নিম্নলিখিত গণিত সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে চিন্তা
করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক বিকল্পের
অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_math
task_alias: math
process_docs: !function utils.process_math
description: 'নিম্নলিখিত অন্যান্য সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_other
task_alias: other
process_docs: !function utils.process_other
description: 'নিম্নলিখিত দর্শন সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে চিন্তা
করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক বিকল্পের
অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_philosophy
task_alias: philosophy
process_docs: !function utils.process_philosophy
description: 'নিম্নলিখিত পদার্থবিজ্ঞান সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে
ধাপে চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল
সঠিক বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_physics
task_alias: physics
process_docs: !function utils.process_physics
description: 'নিম্নলিখিত মনোবিজ্ঞান সম্পর্কে বহুনির্বাচনী প্রশ্ন (উত্তরসহ)। ধাপে ধাপে
চিন্তা করুন এবং তারপর আপনার উত্তর "উত্তর হল (X)" দিয়ে শেষ করুন যেখানে X হল সঠিক
বিকল্পের অক্ষর।
'
include: _bn_template_yaml
task: mmlu_prox_bn_psychology
task_alias: psychology
process_docs: !function utils.process_psychology
from functools import partial
from os.path import basename, dirname
from lm_eval.tasks.mmlu_prox.lang_libs import LANG_LIBS
lang_abbr = basename(dirname(__file__))
lang_dict = LANG_LIBS[lang_abbr]
choices = [
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
]
max_opt_num = 10
def format_cot_example(example, including_answer=True):
prompt = f"{lang_dict[0]}\n"
question = example["question"]
prompt += question + "\n"
prompt += f"{lang_dict[1]}\n"
for i in range(max_opt_num):
opt = example[f"option_{i}"]
if opt is not None:
prompt += "{}. {}\n".format(choices[i], opt)
if including_answer:
cot_content = example["cot_content"].replace(lang_dict[4], lang_dict[2])
prompt += cot_content + "\n\n"
else:
prompt += lang_dict[2]
return prompt
doc_to_text = partial(format_cot_example, including_answer=False)
fewshot_to_text = partial(format_cot_example, including_answer=True)
def process_docs(dataset, subject):
return dataset.filter(lambda x: x["category"] == subject)
process_biology = partial(process_docs, subject="biology")
process_business = partial(process_docs, subject="business")
process_chemistry = partial(process_docs, subject="chemistry")
process_computer_science = partial(process_docs, subject="computer science")
process_economics = partial(process_docs, subject="economics")
process_engineering = partial(process_docs, subject="engineering")
process_health = partial(process_docs, subject="health")
process_history = partial(process_docs, subject="history")
process_law = partial(process_docs, subject="law")
process_math = partial(process_docs, subject="math")
process_other = partial(process_docs, subject="other")
process_philosophy = partial(process_docs, subject="philosophy")
process_physics = partial(process_docs, subject="physics")
process_psychology = partial(process_docs, subject="psychology")
dataset_path: li-lab/MMLU-ProX
dataset_name: de
test_split: test
fewshot_split: validation
fewshot_config:
sampler: first_n
doc_to_text: !function utils.fewshot_to_text
doc_to_target: ""
output_type: generate_until
doc_to_text: !function utils.doc_to_text
doc_to_target: answer
filter_list:
- name: "custom-extract"
filter:
- function: "regex"
regex_pattern: 'Die Antwort ist \(?([ABCDEFGHIJ])\)?'
- function: "take_first"
generation_kwargs:
until:
- "</s>"
- "Q:"
- "Frage:"
- "<|im_end|>"
do_sample: false
temperature: 0.0
max_gen_toks: 2048
num_fewshot: 5
metric_list:
- metric: exact_match
aggregation: mean
higher_is_better: true
ignore_case: true
ignore_punctuation: true
metadata:
version: 0.0
group: mmlu_prox_de
task:
- mmlu_prox_de_biology
- mmlu_prox_de_business
- mmlu_prox_de_chemistry
- mmlu_prox_de_computer_science
- mmlu_prox_de_economics
- mmlu_prox_de_engineering
- mmlu_prox_de_health
- mmlu_prox_de_history
- mmlu_prox_de_law
- mmlu_prox_de_math
- mmlu_prox_de_other
- mmlu_prox_de_philosophy
- mmlu_prox_de_physics
- mmlu_prox_de_psychology
aggregate_metric_list:
- aggregation: mean
metric: exact_match
weight_by_size: true
filter_list: custom-extract
metadata:
version: 0.0
description: 'Im Folgenden sind Multiple-Choice-Fragen (mit Antworten) zu Biologie.
Denken Sie Schritt für Schritt nach und beenden Sie Ihre Antwort mit "Die Antwort
ist (X)", wobei X der richtige Buchstabe ist.
'
include: _de_template_yaml
task: mmlu_prox_de_biology
task_alias: biology
process_docs: !function utils.process_biology
description: 'Im Folgenden sind Multiple-Choice-Fragen (mit Antworten) zu Wirtschaft.
Denken Sie Schritt für Schritt nach und beenden Sie Ihre Antwort mit "Die Antwort
ist (X)", wobei X der richtige Buchstabe ist.
'
include: _de_template_yaml
task: mmlu_prox_de_business
task_alias: business
process_docs: !function utils.process_business
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment