特征一致性对比

功能说明

本功能用于自动化进行离在线特征一致性对比工作,排查以下问题:

  • 特征不匹配,体现在在线的特征名称与离线的特征不匹配

  • 特征类型不匹配, 相同的特征名称,在线离线类型不匹配

  • 特征缺失, 在线的特征缺失,或者没有构造出相应的特征。传入的上下文特征没有,或者在线服务没有构造出相关特征

  • 特征值不匹配,在线的特征值的处理逻辑或者方法与离线的构造不一致

  • 模型的特征处理逻辑有误, processor 在打分之前,如果需要对特征的处理,比如 easyrec, 这块特征处理涉及特征加载,特征默认值,特征的生成等等。这里通过开启 processor debug 模式,获取生成的特征,来做进一步的对比

对比流程

流程图

img.png

流程说明

第一步:配置中心开启任务

要进行特征一致性对比,首先要在配置中心启动配置好的的任务。

在启动任务时,配置中心会先根据任务配置检查和创建执行任务所必要的资源,包括 DataHub Topic 和 MaxCompute 表,它们用于处理特征日志和模型日志。资源成功创建后,配置中心会更新服务参数。至此,任务成功开启。

第二步:PAI-Rec 引擎获取任务参数

PAI-Rec 引擎通过 配置中心SDK 获取最新的配置中心服务参数,从中得到已开启的的特征一致性任务的参数。

第三、四步:特征日志回流和同步

PAI-Rec 引擎得到已开启的的特征一致性任务的参数后,将服务过程中产生的特征日志回流到 DataHub。随后同步到 MaxCompute 中。

直到任务设置的结束时间,结束日志回流,等待所有回流的特征日志同步完成。

第五步:特征对比

如果对比任务没有开启特征回放,那么在配置中心检查到所有回流的特征日志同步完成后,任务成功完成,然后就可以通过已有的特征日志和离线样本进行特征对比。

第六步:配置中心消费特征日志

如果要进一步排查模型特征处理,对比任务就要开启特征回放。配置中心就会消费回流到 DataHub 的特征日志,直到任务设置的结束时间。

第七步:配置中心调用 PAI-Rec 引擎特征重放 API

配置中心在消费特征日志的同时,根据获得的特征日志,按任务设置的比例,批量地调用 PAI-Rec 引擎特征重放API。

第八步:PAI-Rec 引擎调用 EAS 模型

PAI-Rec 引擎接受到回放请求后,以 debug 模式调用 EAS 模型,在此过程中生成模型日志。

第九、十步:模型日志

与特征日志一样,模型日志也是先回流到 DataHub,然后同步到 MaxCompute。

等到回流结束,并且配置中心检测到所有日志同步完成,配置中心会调用集成的特征一致性对比工具,分析日志。完成后,可以在配置中心查看报表,也可以通过 oss 下载文件。

所有步骤完成后,配置中心会清理创建的 DataHub 资源。

使用说明

以下步骤在配置中心完成

1. 配置特征一致性任务

前置条件

在配置中心添加执行特征一致性任务所需要的数据源,包括 DataHubMaxCompute 和模型 EAS 数据源。如果需要输出结果至 OSS,那么还需要添加 OSS 数据源。

如何添加数据源参考: 元数据管理操作参考文档链接

操作步骤

点击侧边栏特征管理下的特征一致性,进入特征一致性任务管理页面,新增任务或编辑已有任务。

要填写的信息包括:

  • 任务名称:自定义名称

  • 关联场景:关联的推荐场景,可下拉选择

  • 采样比例:调整采样数量,最大为 100%,可以减轻任务对服务产生的 qps 压力

  • 回流消息队列及 Datahub 数据源:选择对应类型和数据源即可

  • 数据落地数据源:用于日志落地的对应数据源

  • EAS模型地址:EAS 模型对应数据源

  • oss_arn:任务运行需要使用到 PAI,这个信息从阿里云进入PAI-Studio,点击左侧边栏设置,OSS访问权限下点击显示可以获取

  • fg_json文件名称:DataWorks MaxCompute 中用于模型训练的 fg 文件名称

  • User特征表:离线 user 特征表

{
  "table_name": "",
  "user_id": "",
  "partition": {
    "name": "ds"
  }
}

需要填写:table_name 表名,user_id id字段名,partition name 分区字段名

  • Item特征表:离线 item 特征表,与离线 user 特征表要填写的信息类似,不再详述

  • 特征重放参数:如果选择特征重放,那么需要填写以下参数

img.png

API 接口应为引擎服务地址加上路径/api/feature_reply,如:http://pairec.service.host/api/feature_reply

EAS token 为服务 token ,重放消息队列及 Datahub 数据源选择对应类型和数据源即可。

  • 高级设置:选择 OSS 输出结果需要填写以下参数,按要求填写

img_1.png

2. 运行特征一致性任务和查看结果

运行任务

在特征一致性任务管理页面,对应任务操作栏点击启动任务来运行任务,需要填写运行时间和运行环境(日常、预发或生产)。

然后等待任务结束,或者中途取消任务。

查看结果

在侧边栏特征管理下的任务日志,可查看任务运行情况,一般来说任务执行的实际时长会大于设定的时间。这是因为需要额外的时间等待数据同步完成以及最后做分析。

当任务执行成功,点击对应日志操作栏的任务详情查看报表结果:

img.png

包括任务基本信息,oss 输出路径(如果设置了输出),打分差异表(按差异大小降序排序),点击特征查看可以查看对应特征差异。

img.png

3. 结果使用

若选择了高级设置,会将生成的任务文件以压缩包(package.zip)的方式存至 OSS,OSS 的存储地址为高级设置中所填地址。

下面说明压缩包如何上传至 dataworks 中手动运行任务

  1. 首先将 OSS 中的压缩包下载至本地

  2. 进入 dataworks,顺序点击如下按钮

img.png

  1. 点击迁移助手,再点击 DataWorks 导入

img.png

  1. 点击右上角 新建导入任务

img.png

  1. 输入自定义名称,点击上传文件,将本地的 压缩包上传,随后点击上传确认即可

  2. 任务所在的文件夹即为在高级配置中所填写的 workflow_name

4. 问题排查

如果任务显示成功,报表数据为空,可能原因为日志数据缺失,可以排查DataHub 和 MaxCompute 是否有相应日志数据,以及引擎服务日志是否有报错信息。

任务失败则根据运行日志消息的提示排查问题。