2026-07-08 08:57:50 +00:00

4.3 KiB
Raw Permalink Blame History

MMMLU

概述

MMMLUMultilingual Massive Multitask Language Understanding多语言大规模多任务语言理解是 MMLU 基准测试的多语言扩展版本。它在 14 种语言中评估语言模型的多语言知识与推理能力,涵盖原始 MMLU 基准中的 57 个学科。

任务描述

  • 任务类型:多语言多项选择题问答
  • 输入:以 14 种语言之一呈现的问题包含四个选项A、B、C、D
  • 输出:单个正确答案字母
  • 语言:阿拉伯语、孟加拉语、德语、西班牙语、法语、印地语、印尼语、意大利语、日语、韩语、葡萄牙语、斯瓦希里语、约鲁巴语、中文
  • 学科MMLU 中的 57 个学科STEM、人文学科、社会科学、其他

主要特点

  • 完整 MMLU 基准的多语言翻译
  • 覆盖主要语系的 14 种类型学上多样化的语言
  • 测试跨语言知识迁移与多语言推理能力
  • 与原始 MMLU 相同的学科覆盖范围57 个学科)
  • 包含低资源语言(例如斯瓦希里语、约鲁巴语)

评估说明

  • 默认配置使用 0-shot 评估(仅测试集)
  • 使用 subset_list 评估特定语言(例如 ['ZH_CN', 'JA_JP', 'FR_FR']
  • 结果按语言子集分组
  • 支持跨语言性能比较

属性

属性
基准测试名称 mmmlu
数据集ID openai-mirror/MMMLU
论文 N/A
标签 Knowledge, MCQ, MultiLingual
指标 acc
默认示例数 0-shot
评估分割 test

数据统计

指标
总样本数 196,588
提示词长度(平均) 624.75 字符
提示词长度(最小/最大) 136 / 5975 字符

各子集统计数据:

子集 样本数 提示平均长度 提示最小长度 提示最大长度
AR_XY 14,042 584.94 231 4735
BN_BD 14,042 654.99 247 4914
DE_DE 14,042 791.64 294 5657
ES_LA 14,042 753.18 271 5791
FR_FR 14,042 777.82 278 5952
HI_IN 14,042 675.02 256 5379
ID_ID 14,042 726.51 270 5539
IT_IT 14,042 761.19 277 5975
JA_JP 14,042 322.79 149 2064
KO_KR 14,042 354.35 153 2345
PT_BR 14,042 706.79 258 5635
SW_KE 14,042 699.08 259 5566
YO_NG 14,042 681.01 248 5644
ZH_CN 14,042 257.15 136 1495

样例示例

子集: AR_XY

{
  "input": [
    {
      "id": "e43faf14",
      "content": "أجب على سؤال الاختيار من متعدد التالي. يجب أن يكون السطر الأخير من إجابتك بالتنسيق التالي: 'ANSWER: [LETTER]' (بدون علامات اقتباس) حيث [LETTER] هو أحد الحروف A,B,C,D. فكّر خطوة بخطوة قبل الإجابة.\n\nأوجد درجة امتداد الحقل المحدد Q(sqrt(2)، sqrt(3)، sqrt(18)) على Q.\n\nA) 0\nB) 4\nC) 2\nD) 6"
    }
  ],
  "choices": [
    "0",
    "4",
    "2",
    "6"
  ],
  "target": "B",
  "id": 0,
  "group_id": 0,
  "metadata": {
    "subject": "abstract_algebra",
    "language": "AR_XY"
  }
}

提示模板

提示模板:

Answer the following multiple choice question. The last line of your response should be of the following format: 'ANSWER: [LETTER]' (without quotes) where [LETTER] is one of {letters}. Think step by step before answering.

{question}

{choices}

使用方法

使用 CLI

evalscope eval \
    --model YOUR_MODEL \
    --api-url OPENAI_API_COMPAT_URL \
    --api-key EMPTY_TOKEN \
    --datasets mmmlu \
    --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=['mmmlu'],
    dataset_args={
        'mmmlu': {
            # subset_list: ['AR_XY', 'BN_BD', 'DE_DE']  # 可选,用于评估特定子集
        }
    },
    limit=10,  # 正式评估时请删除此行
)

run_task(task_cfg=task_cfg)