Sanskriti#

概述#

Sanskriti 是一个多项选择题基准测试,用于评估对印度各邦文化、历史和地理知识的掌握情况。题目基于各邦特有的属性(如艺术、美食、节日等)构建,答案均参考维基百科。该适配器加载的是 SANSKRITI 论文(arXiv:2506.15355)中所用数据集在 ModelScope 上的镜像版本 evalscope/Sanskriti。

任务描述#

  • 任务类型:多项选择题问答(Multiple-Choice Trivia Question Answering)

  • 输入:一道关于特定印度邦文化/地理/历史的问题,附带 4 个选项

  • 输出:正确答案对应的字母(A/B/C/D)

  • 子集:association(邦与属性关联类题目)、country(国家层面常识题)、gk(通用知识题)、states(邦识别类题目)

评估说明#

  • 默认配置采用 0-shot 评估方式(尽管上游数据集中该部分被命名为 train,但实际为评估数据)

  • 问题和选项均为英文

  • 论文指出部分题目涉及的文化元素存在模糊性;加载时会跳过少量(约 0.6%)答案字段与四个选项均不匹配的样本

属性#

属性

值

基准测试名称

sanskriti

数据集ID

evalscope/Sanskriti

论文

N/A

标签

Knowledge, MCQ

指标

accuracy

默认示例数

0-shot

评估划分

train

数据统计#

指标

值

总样本数

21,726

提示词长度(平均)

322.93 字符

提示词长度(最小/最大)

256 / 636 字符

各子集统计数据:

子集

样本数

提示词平均长度

提示词最小长度

提示词最大长度

association

5,453

343.41

273

523

country

5,563

284.48

256

417

gk

5,328

346.94

263

547

states

5,382

318.17

260

636

样例示例#

子集: association

{
  "input": [
    {
      "id": "0629b222",
      "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\nWhich of the given regions is home to the Jarawa body painting?\n\nA) Surguja district\nB) South Andaman and Middle Andaman Islands\nC) Buddha Marg, Patna\nD) Telangana"
    }
  ],
  "choices": [
    "Surguja district",
    "South Andaman and Middle Andaman Islands",
    "Buddha Marg, Patna",
    "Telangana"
  ],
  "target": "B",
  "id": 0,
  "group_id": 0,
  "subset_key": "association",
  "metadata": {
    "state": "Andaman_and_Nicobar",
    "attribute": "Art"
  }
}

提示模板#

提示模板:

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 sanskriti \
    --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=['sanskriti'],
    dataset_args={
        'sanskriti': {
            # subset_list: ['association', 'country', 'gk']  # 可选,用于指定评估特定子集
        }
    },
    limit=10,  # 正式评估时请删除此行
)

run_task(task_cfg=task_cfg)