MILU#
概述#
MILU(Multi-task Indic Language Understanding Benchmark,多任务印度语言理解基准)是一个全面的评估数据集,用于衡量大语言模型(LLM)在11种印度语言上的表现。该数据集涵盖8个领域和41个主题,结合了翻译而来的通用知识问题以及具有印度文化特色的本地内容。
任务描述#
任务类型:多语言多项选择题问答(Multilingual Multiple-Choice Question Answering)
输入:用11种语言之一编写的包含四个选项的问题
输出:单个正确答案的字母(A/B/C/D)
语言:英语、孟加拉语、古吉拉特语、印地语、卡纳达语、马拉雅拉姆语、马拉地语、奥里亚语、旁遮普语、泰米尔语、泰卢固语
主要特点#
覆盖8个领域 / 41个主题,包括印度特有的文化、历史和时事内容
使用母语编写的问题,而非机器翻译版的MMLU
每种语言作为独立的数据集配置,可分别加载
评估说明#
默认配置使用 0-shot 评估(测试集
test)可通过
subset_list参数指定评估特定语言(例如['Hindi', 'Tamil']),或使用limit限制样本数量 —— 评估全部11种语言的完整测试集将是一次大规模运行设置
few_shot_num> 0 可启用少样本提示(few-shot prompting),示例从validation验证集中抽取默认从 ModelScope 加载(evalscope 的默认
dataset_hub),该数据集在此平台公开且无需访问令牌。若显式将dataset_hub设为huggingface,请注意ai4bharat/MILU在 Hugging Face 上是受限制数据集 —— 需先在 huggingface.co 上接受数据集条款,并设置HF_TOKEN(或运行huggingface-cli login)
属性#
属性 |
值 |
|---|---|
基准测试名称 |
|
数据集ID |
|
论文 |
无 |
标签 |
|
指标 |
|
默认样本数 |
0-shot |
评估集 |
|
训练集 |
|
数据统计#
指标 |
值 |
|---|---|
总样本数 |
79,608 |
提示词长度(平均) |
377.16 字符 |
提示词长度(最小/最大) |
223 / 2110 字符 |
各子集统计信息:
子集 |
样本数 |
提示平均长度 |
提示最小长度 |
提示最大长度 |
|---|---|---|---|---|
|
13,535 |
397.01 |
227 |
1930 |
|
6,637 |
359.93 |
232 |
1828 |
|
4,826 |
359.36 |
230 |
1785 |
|
14,831 |
367.43 |
229 |
1907 |
|
6,234 |
364.45 |
229 |
1753 |
|
4,321 |
388.2 |
239 |
2110 |
|
6,924 |
394.85 |
223 |
1888 |
|
4,525 |
366.63 |
238 |
1825 |
|
4,099 |
364.93 |
234 |
1874 |
|
6,372 |
382.22 |
230 |
1934 |
|
7,304 |
384.05 |
233 |
1806 |
样例示例#
子集: English
{
"input": [
{
"id": "84726982",
"content": "Answer the following multiple choice question. The entire content of your response should be of the following format: 'ANSWER: [LETTER]' (without quotes) where [LETTER] is one of A,B,C,D.\n\nBakelite is what type of polymer?\n\nA) Thermosetting polymer\nB) Thermoplastic polymer\nC) Fibre\nD) Elastomer"
}
],
"choices": [
"Thermosetting polymer",
"Thermoplastic polymer",
"Fibre",
"Elastomer"
],
"target": "A",
"id": 0,
"group_id": 0,
"metadata": {
"language": "English"
}
}
提示模板#
提示模板:
Answer the following multiple choice question. The entire content of your response should be of the following format: 'ANSWER: [LETTER]' (without quotes) where [LETTER] is one of {letters}.
{question}
{choices}
使用方法#
使用 CLI#
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets milu \
--limit 10 # 正式评估时请删除此行
使用 Python#
from evalscope import run_task
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['milu'],
dataset_args={
'milu': {
# subset_list: ['English', 'Bengali', 'Gujarati'] # 可选,用于评估特定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)