更新时间:2024-06-06 17:23:42

流程介绍

(1)添加大模型 –> (2)添加prompt –> (3)准备/上传测试数据集 –> (4)添加benchmark配置 –> (5)添加Benchmark 任务 –> (6)运行评测任务,查看日志/报告



(1)数据集

需要包含输入数据(input)、期望的数据结果/金标准(output),input传递给测试对象(即算法)作为输入,output作为评测指标传递给Metric。数据通过AD数据集模块上传/管理。

(2)内置指标(Metric)

AD内置7种指标,其中intelliqa_keypoint、intelliqa_answer、long_bench、matc以及fuzzy_match为大模型评估指标,model_ie和kbqa为内置小模型评估指标。具体说明如下:

Metric名称 intelliqa_keypoint
描述 评估模型的问答能力:将模型返回答案与数据集中keypoints字段进行匹配,如果符合要求则判定为回答正常,否则回答错误。acc越高则表示回答正确的问题数越多,所以acc越高越好。
输入参数说明

Keypoints:数据集中理想结果字段。

数据示例:

{"$and": ["周转率","损耗率","标准化率"]} -- 理想结果需要同时包含3个关键字

{"$or": ["1m", "1米"]} -- 理想结果需要包含其中1

{"$or":[{"$and": ["大鼠",""]},{"$and": ["大鼠",""]}]} -- 组合形式,理想结果希望包含其中一组答案

answer:内置benchmark任务 adapter将模型返回答案以list形式提供给内置metric的参数

指标输出

average_ans_len:平均答案长度

sample_num:样例个数

answer_num:有回答个数

model_predicts_no_answer:模型返回无答案的精确率,公式:(数据集keypoints、模型返回均无答案的数量)/模型返回无答案数量

model_predicts_an_answer:模型返回有答案的精确率,公式:(模型返回有答案且答案正确的数量)/模型返回有答案总数

ground_truth_no_answer:无答案问题的召回率,公式:(数据集keypoints、模型返回均无答案的数量)/数据集预期无答案的数量

ground_truth_have_an_answer:有答案问题的召回率,公式:(模型返回有答案且答案正确的数量)/数据集预期有答案的问题数量

reject_rate:拒答率(有答案的情况下),公式:(数据集有答案、模型返回无答案的数量)/数据集预期有答案的问题数量

acc:准确率,回答正确问题数量/总问题数量

 

Metric名称 intelliqa_answer
描述  
输入参数说明

ground_truth:

answer: 内置benchmark任务 adapter将模型返回答案以list形式提供给内置metric的参数

指标输出

verage_ans_len:平均答案长度

sample_num:样例个数

answer_num:有回答个数

model_predicts_no_answer:模型预测无答案的精确率,公式:(预期无答案,同时模型返回无答案的数量)/模型返回无答案数量

ground_truth_no_answer:无答案问题的召回率,公式:(预期无答案,同时模型返回无答案的数量)/预期无答案的数量

reject_rate:拒答率(有答案的情况下),公式:(预期有答案,模型返回无答案的数量)/预期有答案的问题数量

rouge_l:rouge-l方法计算出的rouge

f1_score:f1值,精确率和召回率的调和平均数

f1_r:f1 值的一种变体,通常用于处理类别不平衡的情况

 

Metric名称 long_bench
描述  
输入参数说明

correct_answers:

answer:内置benchmark任务 adapter将模型返回答案以list形式提供给内置metric的参数

指标输出 score:longbench得分,rouge

 

Metric名称 match
描述  
输入参数说明

ideal:

answer:内置benchmark任务 adapter将模型返回答案以list形式提供给内置metric的参数

指标输出 accuracy:准确率, 正确个数/总数

 

Metric名称 fuzzy_match
描述  
输入参数说明

correct_answer:数据集中的正确答案,类型为list[str]

algorithm_answer:算法计算得出的答案,类型为list[str]

指标输出

accuracy:准确率, 正确个数/总数

f1_score:f1值,精确率和召回率的调和平均数

f1_r:f1 值的一种变体,通常用于处理类别不平衡的情况。

 

Metric名称 model_ie
描述  
输入参数说明

dataset_spos: 来自数据集本身的标准答案,类型为list[map],需要有o_text键

spos: 算法得出的答案,类型为list[map],需要有o_text键

指标输出

accuracy:准确率, 正确个数/总数

 

Metric名称 kbqa_intent
描述  
输入参数说明

Ideal: 理想的答案,来自数据集,类型为list[list[str]]

Answer: 算法给出的答案,类型为list[list[str]]

指标输出

accuracy:准确率, 正确个数/总数

 

(3)Benchmark配置 Adapter使用内置metric时无需上传

(4)算法:即评测对象,AD Benchmark支持评测的对象支持:

  1. 大模型:指通过AD模型工厂添加/管理的大模型
  2. 小模型:指AD模型工厂中内置的小模型
  3. 自定义应用:指AD认知应用模块中开发的自定义应用服务
  4. 外部接入:除了以上3中AD内部的算法外,还可支持直接对接外部API评测算法。

(5)Benchmark任务 Adapter使用内置metric时无需上传

(6)报告:展示Metric评测结果

 

最佳实践之对接大模型

本章节以爱数发布的AishuReader v2大模型为例。

进入【模型工厂】-【大语言模型】- 点击【新建】,输入配置信息后点击【测试连接】,测试成功后点击【保存】,模型会在列表中展示,模型添加完成。

进入【模型工厂】-【提示词模板】- 点击【新建】,输入对应信息后点击【保存】:

内置metric只要数据集符合要求即可直接使用内置adapter,省去写adapter的过程。不同metric的数据集格式不同,以下为intelliqa_keypoint数据集格式:

l 数据集文件格式为“.jsonl”,内容参考如下

l 上传数据集:进入【数据集】,点击【新建】,输入数据集名称和描述

l 编辑数据集描述,切换至【文件与版本】上传文件

注意:本地需要有eceph存储地址证书才能正常访问,如无证书需要先访问eceph存储地址,浏览器添加信任后才能上传成功

l 预览数据集:点击文件列表中文件名即可预览文件内容,点击“↑”返回上一层

大模型、prompt、数据集配置完成后,可进入Benchmark配置,具体配置步骤如下:

(1)新建task

(2)选择数据集

说明:报告中一个task一条测试结果,一个task若包含多个测试文件最终会合并为1条结果

(3)选择内置Metric

注意:

为保证benchmark评测的公正性已发布的配置不允许再编辑,故配置完成后建议只保存不发布,等评测任务测试完成后再考虑发布

 

Benchmark配置完成后,该benchmark的测试数据集和指标都已确定,接下来是配置Benchmark任务。

(1)添加任务

进入【Benchamark】-【Benchmark任务】新建任务,输入任务名后,

1) 选择对应Benchmark配置、算法类型、评测算法和对应提示词:

2) 点击运行

 

(2)查看任务

点击如下区域可查看构建任务:

(3)榜单

注意:只有Benchmark配置为“已发布”状态的任务完成后才会进入榜单,其他状态的运行结果可在任务中查看:

稳定的且已发布的benchmark配置运行出来的任务可在榜单中对比不同模型下的测试结果