# 评测数据集格式说明

> 全部文档的索引见 [llms.txt](https://ark.volcengine.com/llms.txt)；在任一文档页面地址后追加 `.md` 可获取该页的 Markdown 版本。

<span id="f7bb0a91"></span>
## 预置数据集

<span id="5f68b782"></span>
### 评测集

平台提供丰富的预置数据集，覆盖多个维度与领域，帮助用户高效全面评估模型性能。

| | | |
|能力维度 ||评测数据 |
|---|---|---|
| | | |
|综合能力 ||* MMLU: MMLU 是业界评测大模型最常用的综合数据集，由各种学科的多项选择题组成。其涵盖了人文学科、社会科学、自然科学和其他重要的学科领域。其中包括57个任务，包括初等数学、历史、计算机科学、法律等等。为了在这个测试中达到高准确度，模型必须具有广泛的世界知识和问题解决能力。 |
|基础能力 |推理数学 |* BBH(Big-bench Hard): BBH从BIG-Bench数据集中选择了23个最难的任务，要求模型根据给定的问题，生成正确的回答。该数据集涉及不同的领域，主要涵盖数学，常识推理，软件开发等。 | \
| | |* GSM8K: GSM8K是由OpenAI发布的，包含1千多道需要2到8个步骤解决，主要涉及基本算术运算的小学数学题数据集。 | \
| | |* WinoGrande: WinoGrande是一个用于常识推理的大规模数据集，包含1千多个问题，每个问题都是由一个句子和一个代词组成，要求根据上下文判断代词指代的是哪个名词。 | \
| | |* LSAT分析推理: LSAT(Law School Admission Test)，法学院入学考试，由阅读理解、逻辑推理、分析推理三个部分组成。该数据集是其中的分析推理部分，由230道需要模型根据给定条件和限制关系进行推理的选择题组成，主要测试模型理解复杂关系结构并推出结论的能力。 | \
| | |* LSAT逻辑推理: LSAT(Law School Admission Test)，法学院入学考试，由阅读理解、逻辑推理、分析推理三个部分组成。该数据集是其中的逻辑推理部分，由510道包含短文或对话的选择题组成，主要测试模型从已知事实或前提推理得出合理结论的能力。 |
| | | |
|^^| | | \
| |语言创作 |* 高考语文: 高考是中国最具权威性和全面性的标准化考试之一，该数据集包含246道从2010年到2022年的高考语文试题。 | \
| | |* 高考英语: 高考是中国最具权威性和全面性的标准化考试之一，该数据集包含306道从2010年到2022年的高考英语试题。 | \
| | |* LSAT阅读理解: LSAT(Law School Admission Test)，法学院入学考试，由阅读理解、逻辑推理、分析推理三个部分组成。该数据集是其中的阅读理解部分，由269道包含文章和问题的选择题组成，主要测试模型准确阅读并理解复杂文章，组织有关信息并得出合理结论的能力。 | \
| | |* Hellaswag: HellaSwag 是一个用于评估常识自然语言理解的挑战性数据集，它对于目前的最先进的模型来说非常困难，但是对于人类来说却很容易（>95%的准确率）。它包含了10042个多选问题，每个问题都有一个场景和四个可能的结局，要求模型选择最合理的结局。 | \
| | |* BoolQ: BoolQ 是一个阅读理解数据集，包含3千多个问题和相关的维基百科段落，模型需要依据维基百科段落中的信息针对问题回答是/否。 |
| | | |
|^^| | | \
| |知识能力 |* Natural Questions: Natural Questions是一个问答数据集，包含3600多个问题，每个问题都是从google查询而来。 | \
| | |* TriviaQA: TriviaQA 是一个现实的基于文本的问答数据集，内容主要来自维基百科。 | \
| | |* 高考文理综: 高考是中国最具权威性和全面性的标准化考试之一，该数据集包含1千多道从2010年到2022年的高考文综和理综试题。 |
| | | |

<span id="d35abb51"></span>
### 评测方式

评测得分包括综合评分与能力维度评分。其中，综合评分是模型在所有能力维度评分的平均值，能力维度评分则是各能力维度下所有数据集评测得分的平均值。 

<div style="text-align: center">![](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/5af21f77ddc74299bdb7d054cf8c78de~tplv-goo7wpa0wc-image.image)</div>

平台预设了不同数据集的评测方式，无需用户操作。各数据集根据自身特性，采用不同的评测方式，主要依据评测集中提供的参考答案的类型选择相应的评测指标。例如：

|评估指标 |适用评测题目类型 |预置数据集举例 |
|---|---|---|
|正确率(Accuracy) |常用于判断题(是/否)以及选择题(ABCD)，这类问题的数据集占比最大，有MMLU, 高考数据集等。 |MMLU, 高考, LSAT, Hellaswag, BoolQ, AQUA-RAT, WinoGrande, BBH |
|匹配率(Exact Match) |常用于问答题以及阅读理解任务，判断模型输出的文本与标准答案是否一致。这类数据集主要包括Natural Questions, TriviaQA等。 |GSM8K, Natural Questions, TriviaQA |

<span id="aa78daa2"></span>
## 用户数据集

用户数据集格式支持 .jsonl, .xlsx, .xls。每次评测最多上传10个文件，每个文件最多1000行。

<span id="1e3567a3"></span>
### 通用参数说明

|字段 |类型 |备注 |
|---|---|---|
|session_id |int |对话标识符 |
|endpoint_id |str |推理接入点ID |
|system_prompt/system |str |系统提示 |
|query/prompt |str |用户提示 |
|reference_response/answer |str |参考回复 |
|response |str |模型回答 |
|analysis |str |ai裁判员回答 |
|score |float |分数 |
|parameters |dict |推理参数，包括logprobs、top_logprobs、frequency_penalty、temperature、top_p、max_tokens、stop等。具体参考 [请求参数](/docs/chat-api#request-parameters)。 |
|usage |dict |tokens使用信息，包括prompt_tokens、completion_tokens、total_tokens等，具体参考 [请求参数Usage](/docs/chat-api#usage)。 |
|error |str |推理无法完成时，将展示error信息 |

<span id="d3cc93ce"></span>
### Excel格式的参数

<span id="e68a4abe"></span>
#### 单轮对话的输入参数

每一行代表一次单轮对话，session_id列可选择不填， 但不能重复。
若需要平台进行推理和评测，则reference_response必填。

|字段 |类型 |是否必填 |备注 |
|---|---|---|---|
|session_id |int |否。可不填，但不能填写重复值 |对话标识符 |
|system_prompt |str |否 |系统提示 |
|query |str |是 |用户提示 |
|reference_response |str |否。若评测方式选择推理+自动评测，则必填 |参考回复 |
|parameters |dict |否。支持对每次对话设置不同推理参数。若用户在评测集与方舟控制台中都设置了推理参数，以评测集为准。 |推理参数，包括logprobs、top_logprobs、frequency_penalty、temperature、top_p、max_tokens、stop等。具体参考 [请求参数](/docs/chat-api#request-parameters)。 |

选择「推理+自动评测」的示例：

|session_id |system_prompt |query |reference_response |parameters |response |
|---|---|---|---|---|---|
|0 |你是一名精通各大中餐菜系的中餐传奇大厨 |家里有鸡蛋、西红柿 |那可以做一道经典的西红柿炒鸡蛋呀。以下是做法： |{'logprobs': False, 'top_logprobs': 10, 'frequency_penalty': 0.0, 'temperature': 1.0, 'top_p': 0.7, 'max_tokens': 4096, 'stop': []} |（留空，待被测模型推理） | \
| | | |所需材料：鸡蛋2 - 3个、西红柿2个、葱花适量、盐适量、白糖适量、食用油适量。 | | | \
| | | |步骤：把鸡蛋打入碗中，加入少量盐，用筷子搅拌均匀。西红柿洗净后在顶部划十字花刀，放入开水中烫一会儿，去皮后切成小块。锅中倒入适量食用油，油热后倒入蛋液，待蛋液凝固，用铲子快速翻炒成小块盛出。锅中再倒少许油，放入葱花爆香，然后加入西红柿块翻炒，炒出汁后加入适量盐和一小勺白糖提味。最后倒入炒好的鸡蛋，翻炒均匀，让鸡蛋裹满西红柿汁就可以出锅装盘了。 | | | \
| | | |这道菜色泽鲜艳，味道酸甜可口，非常下饭。 | | |
|1 |你是一个精通中国历史和文化的段子手，擅长通过幽默的表达方式让人发笑。 |程序员写了个bug，把公司数据库给误删除了 |哎呀，这程序员可真是“威力巨大”啊！就像一个不小心的武林高手，一招“数据库消失术”就把公司的数据库给灭了。这大概就像是厨师做菜，本来想加点盐，结果把整锅菜都给倒掉了一样。估计公司老板当时脸都绿了，那表情可能就像吃了苦瓜还被人踩了一脚。这程序员啊，估计现在在公司里走路都得低着头，心里想着：“我这不是写代码，我这是给公司制造‘灾难大片’呢。” |{'logprobs': False, 'top_logprobs': 10, 'frequency_penalty': 0.0, 'temperature': 1.0, 'top_p': 0.7, 'max_tokens': 4096, 'stop': []} |（留空，待被测模型推理） |

<span id="89cf48fc"></span>
#### 多轮对话的输入参数

同一session_id代表一次多轮对话，对话顺序与表格从上至下顺序一致

| | | | |
|字段 |类型 |是否必填 |备注 |
|---|---|---|---|
| | | | |
|session_id |int |是。同一session_id代表一次多轮对话。 |对话标识符 |
|system_prompt |str |否。但是相同session_id的system_prompt必须相同 |系统提示 |
|query |str |是 |用户提示 |
|response |str |若评测方式为推理+自动评测，则一次多轮对话（同一session_id）中，最后一行样本只填reference_response，response不填，其余样本reference_response不填，response选填（填写则代表这次多轮对话有上文）。 |模型回复 | \
| | |若评测方式选择仅推理，则一次多轮对话中，最后一行样本response和reference_response不填，其余样本reference_response不填，response选填（填写则代表这次多轮对话有上文）。 | |
| | |^^| | \
|reference_response |str | |参考回复 |
|parameters |dict |否。支持对每次对话设置不同推理参数。若用户在评测集与方舟控制台中都设置了推理参数，以评测集为准。 |推理参数，包括logprobs、top_logprobs、frequency_penalty、temperature、top_p、max_tokens、stop等。具体参考 [请求参数](/docs/chat-api#request-parameters)。 |

选择「推理+自动评测」的示例：

|session_id |system_prompt |query |reference_response |parameters |response |
|---|---|---|---|---|---|
|0 |你是一名精通各大中餐菜系的中餐传奇大厨 |家里有鸡蛋、西红柿 | | |那可以做一道经典的西红柿炒鸡蛋呀。以下是做法： | \
| | | | | |所需材料：鸡蛋2 - 3个、西红柿2个、葱花适量、盐适量、白糖适量、食用油适量。 | \
| | | | | |步骤：把鸡蛋打入碗中，加入少量盐，用筷子搅拌均匀。西红柿洗净后在顶部划十字花刀，放入开水中烫一会儿，去皮后切成小块。锅中倒入适量食用油，油热后倒入蛋液，待蛋液凝固，用铲子快速翻炒成小块盛出。锅中再倒少许油，放入葱花爆香，然后加入西红柿块翻炒，炒出汁后加入适量盐和一小勺白糖提味。最后倒入炒好的鸡蛋，翻炒均匀，让鸡蛋裹满西红柿汁就可以出锅装盘了。 | \
| | | | | |这道菜色泽鲜艳，味道酸甜可口，非常下饭。 |
|0 |你是一名精通各大中餐菜系的中餐传奇大厨 |家里还有排骨 | | |那还可以做一道西红柿炖排骨。 | \
| | | | | |食材准备 | \
| | | | | |排骨500克、西红柿3 - 4个、姜1块、葱1根、八角2个、桂皮1小块、香叶2片、料酒适量、生抽适量、盐适量、冰糖适量。 | \
| | | | | |制作步骤排骨洗净后剁成小段，冷水下锅，加入姜片、料酒，焯水去腥，水开后煮5分钟左右，捞出排骨用温水冲洗干净。西红柿顶部划十字，放入开水中烫一下去皮，切成小块。姜切片，葱切段。锅中倒油，油热后放入冰糖，小火炒出糖色，当冰糖变成焦糖色并冒小泡泡时，放入排骨翻炒上色。加入姜片、葱段、八角、桂皮、香叶继续翻炒出香味，再加入生抽翻炒均匀。倒入西红柿块，翻炒均匀后让西红柿出汁，加入适量清水，没过排骨。大火烧开后转小火慢炖约1 - 1.5小时，直到排骨软烂。根据口味加入适量盐调味，然后再大火收汁，使汤汁浓稠即可。这道菜既有排骨的肉香，又有西红柿的酸甜，营养丰富，味道独特。 |
|0 |你是一名精通各大中餐菜系的中餐传奇大厨 |还有一条鱼 |那还可以做一道红烧鱼。准备食材和调料：鲜鱼（如鲤鱼、草鱼等）1 条、葱 2 根、姜 1 块、蒜 3 瓣、干辣椒 3 个、料酒 1 勺、生抽 2 勺、老抽 1 勺、白糖 1 勺、盐适量、鸡精适量、食用油适量。 |{'logprobs': False, 'top_logprobs': 10, 'frequency_penalty': 0.0, 'temperature': 1.0, 'top_p': 0.7, 'max_tokens': 4096, 'stop': []} |（留空，待被测模型推理） | \
| | | |处理鱼：将鱼处理干净，在鱼身上划几刀，方便入味。用厨房纸巾擦干鱼身水分，防止煎鱼时溅油。 | | | \
| | | |煎鱼：锅中倒入适量食用油，油热后放入鱼。用中小火煎鱼，避免火大导致鱼皮破裂。煎至两面金黄，盛出备用。 | | | \
| | | |炒香调料：锅中留少许底油，放入葱段、姜片、蒜粒、干辣椒炒香。 | | | \
| | | |调味：加入料酒、生抽、老抽、白糖，翻炒均匀，让调料混合出香味。 | | | \
| | | |加水煮鱼：锅中加入适量清水，没过鱼身。大火烧开后转小火，盖上锅盖煮 15-20 分钟，期间可将鱼翻面，使鱼充分吸收汤汁的味道。 | | | \
| | | |收汁调味：待鱼熟透，汤汁变浓稠时，根据个人口味加入适量盐和鸡精调味，然后大火收汁即可。 | | |
|1 |你是一个精通中国历史和文化的段子手，擅长通过幽默的表达方式让人发笑。 |程序员写了个bug，把公司数据库给误删除了 | | |哎呀，这程序员可真是“威力巨大”啊！就像一个不小心的武林高手，一招“数据库消失术”就把公司的数据库给灭了。这大概就像是厨师做菜，本来想加点盐，结果把整锅菜都给倒掉了一样。估计公司老板当时脸都绿了，那表情可能就像吃了苦瓜还被人踩了一脚。这程序员啊，估计现在在公司里走路都得低着头，心里想着：“我这不是写代码，我这是给公司制造‘灾难大片’呢。” |
|1 |你是一个精通中国历史和文化的段子手，擅长通过幽默的表达方式让人发笑。 |996福报 |老板在大会上激情演讲：“996 是福报啊，你们想想，别的公司下班早，员工回家就知道打游戏、刷剧、躺平浪费时间。咱们公司实行 996，大家在公司能不断成长，多学习知识，多积累经验，这多好！” |{'logprobs': False, 'top_logprobs': 10, 'frequency_penalty': 0.0, 'temperature': 1.0, 'top_p': 0.7, 'max_tokens': 4096, 'stop': []} |（留空，待被测模型推理） | \
| | | |员工小李小声嘀咕：“可不嘛，我现在回家倒头就睡，连打游戏、刷剧浪费时间的机会都没有，真是‘福报’，福都给我享尽了。” | | |

<span id="e777ca94"></span>
### Jsonl格式的参数

<span id="924b46aa"></span>
#### 单轮对话的输入参数

每一行代表一次单轮对话

|字段 |类型 |是否必填 |备注 |
|---|---|---|---|
|system |str |否 |系统提示 |
|prompt |str |是 |用户提示 |
|answer |str |否。若评测方式选择推理+自动评测，则必填 |参考回复 |
|parameters |dict |否。支持对每次对话设置不同推理参数。若用户在评测集与方舟控制台中都设置了推理参数，以评测集为准。 |推理参数，包括logprobs、top_logprobs、frequency_penalty、temperature、top_p、max_tokens、stop等。具体参考 [请求参数](/docs/chat-api#request-parameters) |

选择「推理+自动评测」的示例：

输入数据集：

```JSONL
{"system":"请完成下面的计算题","prompt":"0+1","answer":"1","parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}}
{"system":"请完成下面的计算题","prompt":"0+2","answer":"2","parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}}
```

输出数据集（参数解释详见下面 Jsonl 多轮对话的参数说明）：

```JSONL
{"session_id": 0, "messages": [{"role": "system", "content": "请完成下面的计算题"}, {"role": "user", "content": "0+1"}, {"role": "assistant", "reference_response": "1", "responses": [{"parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}, "usage": {"prompt_tokens": 13, "completion_tokens": 577, "total_tokens": 590}, "content": "\n\n0 + 1 的计算过程如下：\n\n1. **理解数字含义**：  \n   - 0 表示“没有数量”。\n   - 1 表示“一个单位”。\n\n2. **加法定义**：  \n   加法是将两个数合并，得到它们的总和。任何数加 0 都等于它本身（加法单位元性质）。\n\n3. **应用交换律**：  \n   根据交换律，\\(0 + 1 = 1 + 0\\)，而 \\(1 + 0 = 1\\)，因此 \\(0 + 1 = 1\\)。\n\n4. **实际举例验证**：  \n   - 如果有 0 个苹果，再获得 1 个苹果，最终有 1 个苹果。\n   - 数轴上从 0 向右移动 1 个单位，到达 1。\n\n**答案**：\\(0 + 1 = 1\\)", "score": 2.0, "analysis": "模型回复详细解释了0 + 1的计算过程，包括加法定义、交换律应用及实际举例验证，所有步骤均正确，最终答案与参考回复一致。虽然过程较为繁琐，但无任何错误，符合评估要求中的『完全正确』标准。"}]}]}
{"session_id": 1, "messages": [{"role": "system", "content": "请完成下面的计算题"}, {"role": "user", "content": "0+2"}, {"role": "assistant", "reference_response": "2", "responses": [{"parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}, "usage": {"prompt_tokens": 13, "completion_tokens": 943, "total_tokens": 956}, "content": "\n\n0 + 2 的计算过程如下：\n\n1. **加法定义**：任何数与0相加，结果均为该数本身。即 \\( a + 0 = a \\)。  \n2. **应用交换律**：根据加法交换律，\\( 0 + 2 = 2 + 0 \\)。  \n3. **简化计算**：\\( 2 + 0 = 2 \\)。  \n\n**答案**：\\( 0 + 2 = 2 \\)  \n\n通过数轴、集合论、公理体系或实际例子（如温度变化、物品数量）验证，结果一致。因此，0加2的最终结果为2。", "score": 2.0, "analysis": "模型回复详细解释了0+2的计算过程，尽管部分内容（如交换律应用、验证方法）对于简单加法问题可能显得冗余，但最终答案正确且与参考回复一致。回复中没有出现任何错误，符合评估要求中的完全正确标准。"}]}]}
```

<span id="b4298873"></span>
#### 多轮对话的输入参数

每一行代表一次多轮对话

|字段 |类型 |是否必填 |备注 |
|---|---|---|---|
|session_id |str |否 |多轮对话标识符 |
|messages |list |是 |代表一个多轮对话（系统、用户、模型助手），其中每一个字典元素的参数包括role（角色：system、user、assistant）和content（角色的输入）。messages必须以role为user的字典元素结尾。 | \
| | | |评测时，平台会在messages最后一个{role:"user","content":"xxx"}后插入{role:"assistant","content":"xxx"}作为模型的输出。 |
|answer |str |否。若评测方式选择推理+自动评测，则必填 |针对messages中最后一个用户user提问的模型参考回复 |
|parameters |dict |否。支持对每次对话设置不同推理参数。若用户在评测集与方舟控制台中都设置了推理参数，以评测集为准。 |推理参数，包括logprobs、top_logprobs、frequency_penalty、temperature、top_p、max_tokens、stop等。具体参考 [请求参数](/docs/chat-api#request-parameters)。 |

选择「推理+自动评测」的示例：

输入数据集：

```JSONL
{"messages": [{"role": "user", "content": "1+1"}], "answer": "2","parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}}
{"messages": [{"role": "system", "content": "请完成下面的计算题"}, {"role": "user", "content": "2+1"}], "answer": "3","parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}}
{"messages": [{"role": "system", "content": "请完成下面的计算题"}, {"role": "user", "content": "3+1"}, {"role": "assistant", "content": "999"}, {"role": "user", "content": "3+2"}], "answer": "5","parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}}
```

输出数据集：

```JSONL
{"session_id": 0, "messages": [{"role": "user", "content": "1+1"}, {"role": "assistant", "reference_response": "2", "responses": [{"parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}, "usage": {"prompt_tokens": 11, "completion_tokens": 56, "total_tokens": 67}, "content": "按照基本的数学运算规则，在十进制中，1 + 1 = 2。但在二进制里，1 + 1 = 10  。如果没有特别说明，一般默认是十进制，所以通常1+1的结果为2。 ", "score": 2.0, "analysis": "问题仅要求计算1+1的值，参考回复为2，模型回复虽详细说明了不同进制下的情况，但最终得出通常1+1结果为2，与参考回复一致，满足评估要求。"}]}]}
{"session_id": 1, "messages": [{"role": "system", "content": "请完成下面的计算题"}, {"role": "user", "content": "2+1"}, {"role": "assistant", "reference_response": "3", "responses": [{"parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}, "usage": {"prompt_tokens": 20, "completion_tokens": 16, "total_tokens": 36}, "content": "根据基本的数学加法运算，2 + 1 = 3。 ", "score": 2.0, "analysis": "问题要求完成计算题2 + 1，参考回复为3，模型回复准确计算出2 + 1 = 3，与参考回复一致，完全正确，符合评估要求。"}]}]}
{"session_id": 2, "messages": [{"role": "system", "content": "请完成下面的计算题"}, {"role": "user", "content": "3+1"}, {"role": "assistant", "content": "999"}, {"role": "user", "content": "3+2"}, {"role": "assistant", "reference_response": "5", "responses": [{"parameters": {"logprobs": false, "top_logprobs": 10, "frequency_penalty": 0.0, "temperature": 1.0, "top_p": 0.7, "max_tokens": 4096, "stop": []}, "usage": {"prompt_tokens": 35, "completion_tokens": 13, "total_tokens": 48}, "content": "根据加法运算，3 + 2 = 5。 ", "score": 2.0, "analysis": "问题要求完成计算题3 + 2，参考回复为5，模型回复根据加法运算得出3 + 2 = 5，与参考回复一致，完全正确，符合评估要求。"}]}]}
```
