更新时间:2024-06-06 17:24:40

本文以评测AF算法接口(Restful API) 为例,采用benchmark外部对接方式评测模型效果

 

流程介绍

一、外接算法评测步骤

1.准备/上传测试数据集

2.自定义Metric

3.创建Benchmark配置

4.添加Benchmark 任务

5.运行评测任务,查看日志/报告

 

二、评审过程的整体数据流向

1.数据集

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

2.指标 Metric

  • AD内置七种指标,可前往【Benchmark】-【Benchmark配置】-【指标库】查看
  • 支持用户自定义,自定义内容可参考上传窗口的《示例模版.py》,包含:指标的定义,计算方法的定义
  • 输入input分别需要“Benchmark配置 Adapter”和“Benchmark任务 Adapter”提供

3.Benchmark配置

(1)Adapter:将数据集output传递给Metric作为计算指标的参数之一

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

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

4.Benchmark任务

(1)Adapter

  • 第一部分是将数据集input传递给算法,作为算法的输入值
  • 第二部分是将算法的结果传递给Metric作为计算指标的参数

5.报告

展示Metric评测结果

 

最佳实践

一、AF算法接口

本文以评测AF算法接口(对应 benchmark外部对接方式) 为例,该接口将符合格式的的json经过算法解析后得到的指定字段结果对比groudtruth计算bleu指标,请求体和返回体如下:

这里我们拿整个请求的请求体作为算法评测数据集的输入,输出从response中解析得到。

 

二、数据集准备

Benchmark配置中支持解析的文件类型为:json、jsonl、csv(分隔符为‘\t’),如果数据不满足以上要求的,需要先处理数据集格式。

当前AF提供测试数据集为xlxs,且把12个数据集都放在一个文件中。


需要做如下步骤:

1. 把原文件切分出不同维度的csv数据集,以方便测试报告呈现出不同维度的能力,拆封后测试集内容结构如下:

2. 上传处理后的数据集至AD的数据集板块

 

三、自定义Metric

当数据集确认后,确定Metric的计算方式。

AF采用hugging face的evaluate中bleu指标匹配数据理解的相似度,AD默认不包含该指标,需要用户自定义。自定义模版下载入口和上传入见下图:

基于代码模版需要做如下补充/修改:

1.补充Bleu指标方法

2.修改Metric计算逻辑

3.修改输入输出定义和指标定义

(1)Metric输入输出定义

(2)指标定义


注意

  • 注意Executor命名,类名为metric_name+“Executor”
  • 上传时需要确保ad-task/ray-head/ray-worker/model-factory服务已包含需要的依赖,目前缺失的依赖需要手动进入安装(后续迭代优化)

 

四、Benchmark配置

数据集、Metric都上传完成后,可进入Benchmark配置,具体配置步骤如下:

1.新建Task报告中一个task一条测试结果,一个task若包含多个测试文件最终会合并为1条结果

2.选择数据集

3.选择Metric

4.点击Adapter,下载示例模版,基于示例模版修改


注意:

  1. 上传时需要确保ad-task/ray-head/ray-worker/model-factory服务已包含需要的依赖,目前缺失的依赖需要手动进入安装(后续迭代优化)
  2. 为保证benchmark评测的公正性已发布的配置不允许再编辑,故配置完成后建议只保存不发布,等评测任务测试完成后再考虑发布

 

五、Benchmark 任务

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

1. 添加任务

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

(1)选择对应的配置、类型,输入算法名称和URL地址

(2)下载示例模版,并基于示例模版修改数据集到算法、算法结果到metric的逻辑

  • 数据集input传递给算法

  • 算法返回结果到Metric

3.点击【运行】按钮,即可

 

2.查看任务

(1)点击“状态”区域,可以查看构建任务,如下图:

 

3.榜单

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


注意:

只有Benchmark配置为“已发布”状态的任务完成后才会进入榜单,其他状态的运行结果,可以在任务列表中单击“操作-查看结果”查看,如图:

 

六、Adapter总结

  1. 脚本中的类名或方法名与数据集名等有强绑定关系,建议按步骤操作后基于下载的示例模版修改实现
  2. 梳理清楚【benchmark配置Adapter】测试数据集输入与Metric输入的对应关系
  3. 梳理清楚【benchmark配置Adapter】测试数据集输出与【benchmark任务Adapter】输入的对应关系
  4. 注意传递参数的格式/内容是否符合下一个接收者