跳到主要内容

自定义评测数据集

介绍

CSGHub提供的模型评测工具,并支持自定义评测数据集。用户可以上传自己的数据集,然后使用这些数据集来评测模型的效果。本文将详细介绍如何自定义评测数据集。

EvalScope 自定义数据集的使用

选择题(MCQ)

CSV格式

mcq/
├── example_dev.csv # (可选)文件名组成为`{subset_name}_dev.csv`,用于fewshot评测
└── example_val.csv # 文件名组成为`{subset_name}_val.csv`,用于实际评测的数据

CSV文件需要为下面的格式:

id,question,A,B,C,D,answer
1,通常来说,组成动物蛋白质的氨基酸有____,4种,22种,20种,19种,C
2,血液内存在的下列物质中,不属于代谢终产物的是____。,尿素,尿酸,丙酮酸,二氧化碳,C

JSONL格式

mcq/
├── example_dev.jsonl # (可选)文件名组成为`{subset_name}_dev.jsonl`,用于fewshot评测
└── example_val.jsonl # 文件名组成为`{subset_name}_val.jsonl`,用于实际评测的数据

JSONL文件需要为下面的格式:

{"id": "1", "question": "通常来说,组成动物蛋白质的氨基酸有____", "A": "4种", "B": "22种", "C": "20种", "D": "19种", "answer": "C"}
{"id": "2", "question": "血液内存在的下列物质中,不属于代谢终产物的是____。", "A": "尿素", "B": "尿酸", "C": "丙酮酸", "D": "二氧化碳", "answer": "C"}

其中:

    id是序号(可选字段)

question是问题

A, B, C, D等是可选项,最大支持10个选项

answer是正确选项

问答题格式(QA)

JSONL格式

qa/
└── example.jsonl

该jsonline文件需要为下面的格式:

{"system": "你是一位地理学家", "query": "中国的首都是哪里?", "response": "中国的首都是北京"}
{"query": "世界上最高的山是哪座山?", "response": "是珠穆朗玛峰"}
{"query": "为什么北极见不到企鹅?", "response": "因为企鹅大多生活在南极"}

其中:

    system是系统prompt(可选字段)

query是问题(必须)

response是正确回答(必须)

CSGHUB 会根据数据集的名称解析{subset_name},并进行模型评测。 参考数据集: https://opencsg.com/datasets/xzgan/evalscope-custom-data 更多细节参考:evalscope 自定义数据集

OpenCompass 自定义数据集的使用

选择题 (MCQ)

对于选择 (mcq) 类型的数据,默认的字段如下:

  • question: 表示选择题的题干
  • A, B, C, ...: 使用单个大写字母表示选项,个数不限定。默认只会从 A 开始,解析连续的字母作为选项。
  • answer: 表示选择题的正确答案,其值必须是上述所选用的选项之一,如 A, B, C 等。

对于非默认字段,我们都会进行读入,但默认不会使用。如需使用,则需要在 .meta.json 文件中进行指定。

.jsonl 格式样例如下:

{"question": "165+833+650+615=", "A": "2258", "B": "2263", "C": "2281", "answer": "B"}
{"question": "368+959+918+653+978=", "A": "3876", "B": "3878", "C": "3880", "answer": "A"}
{"question": "776+208+589+882+571+996+515+726=", "A": "5213", "B": "5263", "C": "5383", "answer": "B"}
{"question": "803+862+815+100+409+758+262+169=", "A": "4098", "B": "4128", "C": "4178", "answer": "C"}

.csv 格式样例如下:

question,A,B,C,answer
127+545+588+620+556+199=,2632,2635,2645,B
735+603+102+335+605=,2376,2380,2410,B
506+346+920+451+910+142+659+850=,4766,4774,4784,C
504+811+870+445=,2615,2630,2750,B

参考数据集: https://opencsg.com/datasets/xzgan/opencompass-custom-mcq

问答题 (QA)

对于问答 (qa) 类型的数据,默认的字段如下:

  • question: 表示问答题的题干
  • answer: 表示问答题的正确答案。可缺失,表示该数据集无正确答案。

对于非默认字段,我们都会进行读入,但默认不会使用。如需使用,则需要在 .meta.json 文件中进行指定。

.jsonl 格式样例如下:

{"question": "752+361+181+933+235+986=", "answer": "3448"}
{"question": "712+165+223+711=", "answer": "1811"}
{"question": "921+975+888+539=", "answer": "3323"}
{"question": "752+321+388+643+568+982+468+397=", "answer": "4519"}

.csv 格式样例如下:

question,answer
123+147+874+850+915+163+291+604=,3967
149+646+241+898+822+386=,3142
332+424+582+962+735+798+653+214=,4700
649+215+412+495+220+738+989+452=,4170

参考数据集: https://opencsg.com/datasets/xzgan/opencompass-custom-qa

lm-evaluation-harness 自定义数据集的使用

问答题 (QA)

  1. 定义一套标准的HF datasets 数据 比如参考: https://opencsg.com/datasets/AIWizards/gsm8k
  2. 在数据集里定义task yaml 文件 更多详情参考: https://github.com/EleutherAI/lm-evaluation-harness/blob/6b3f3f7e2aece0597a0a4853d364061f93eef5ef/docs/new_task_guide.md

Note: 该repo 需要包含一个task yaml 文件,以便于识别与task名称与类别 最终数据集文件repo 参考: https://opencsg.com/datasets/xzgan/harness-custom-dataset