面向 AI 助手:本页的 Markdown 版本位于 https://ark.volcengine.com/region:cn-beijing/docs/evaluation-dataset-format.md,全部文档索引见 https://ark.volcengine.com/llms.txt。

评测数据集格式说明

预置数据集#

评测集#

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

能力维度 评测数据
综合能力 * 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年的高考文综和理综试题。

评测方式#

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

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

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

用户数据集#

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

通用参数说明#

字段 类型 备注
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等。具体参考 请求参数。
usage dict tokens使用信息,包括prompt_tokens、completion_tokens、total_tokens等,具体参考 请求参数Usage。
error str 推理无法完成时,将展示error信息

Excel格式的参数#

单轮对话的输入参数#

每一行代表一次单轮对话,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等。具体参考 请求参数。

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

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

多轮对话的输入参数#

同一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等。具体参考 请求参数。

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

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 勺、盐适量、鸡精适量、食用油适量。
处理鱼:将鱼处理干净,在鱼身上划几刀,方便入味。用厨房纸巾擦干鱼身水分,防止煎鱼时溅油。
煎鱼:锅中倒入适量食用油,油热后放入鱼。用中小火煎鱼,避免火大导致鱼皮破裂。煎至两面金黄,盛出备用。
炒香调料:锅中留少许底油,放入葱段、姜片、蒜粒、干辣椒炒香。
调味:加入料酒、生抽、老抽、白糖,翻炒均匀,让调料混合出香味。
加水煮鱼:锅中加入适量清水,没过鱼身。大火烧开后转小火,盖上锅盖煮 15-20 分钟,期间可将鱼翻面,使鱼充分吸收汤汁的味道。
收汁调味:待鱼熟透,汤汁变浓稠时,根据个人口味加入适量盐和鸡精调味,然后大火收汁即可。
(留空,待被测模型推理)
1 你是一个精通中国历史和文化的段子手,擅长通过幽默的表达方式让人发笑。 程序员写了个bug,把公司数据库给误删除了 哎呀,这程序员可真是“威力巨大”啊!就像一个不小心的武林高手,一招“数据库消失术”就把公司的数据库给灭了。这大概就像是厨师做菜,本来想加点盐,结果把整锅菜都给倒掉了一样。估计公司老板当时脸都绿了,那表情可能就像吃了苦瓜还被人踩了一脚。这程序员啊,估计现在在公司里走路都得低着头,心里想着:“我这不是写代码,我这是给公司制造‘灾难大片’呢。”
1 你是一个精通中国历史和文化的段子手,擅长通过幽默的表达方式让人发笑。 996福报 老板在大会上激情演讲:“996 是福报啊,你们想想,别的公司下班早,员工回家就知道打游戏、刷剧、躺平浪费时间。咱们公司实行 996,大家在公司能不断成长,多学习知识,多积累经验,这多好!”
员工小李小声嘀咕:“可不嘛,我现在回家倒头就睡,连打游戏、刷剧浪费时间的机会都没有,真是‘福报’,福都给我享尽了。”
(留空,待被测模型推理)

Jsonl格式的参数#

单轮对话的输入参数#

每一行代表一次单轮对话

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

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

输入数据集:

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的计算过程,尽管部分内容(如交换律应用、验证方法)对于简单加法问题可能显得冗余,但最终答案正确且与参考回复一致。回复中没有出现任何错误,符合评估要求中的完全正确标准。"}]}]}

多轮对话的输入参数#

每一行代表一次多轮对话

字段 类型 是否必填 备注
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等。具体参考 请求参数。

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

输入数据集:

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,与参考回复一致,完全正确,符合评估要求。"}]}]}