特征一致性对比¶
功能说明¶
本功能用于自动化进行离在线特征一致性对比工作,排查以下问题:
特征不匹配,体现在在线的特征名称与离线的特征不匹配
特征类型不匹配, 相同的特征名称,在线离线类型不匹配
特征缺失, 在线的特征缺失,或者没有构造出相应的特征。传入的上下文特征没有,或者在线服务没有构造出相关特征
特征值不匹配,在线的特征值的处理逻辑或者方法与离线的构造不一致
模型的特征处理逻辑有误, processor 在打分之前,如果需要对特征的处理,比如 easyrec, 这块特征处理涉及特征加载,特征默认值,特征的生成等等。这里通过开启 processor debug 模式,获取生成的特征,来做进一步的对比
对比流程¶
流程图¶
流程说明¶
第一步:配置中心开启任务¶
要进行特征一致性对比,首先要在配置中心启动配置好的的任务。
在启动任务时,配置中心会先根据任务配置检查和创建执行任务所必要的资源,包括 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. 配置特征一致性任务¶
前置条件¶
在配置中心添加执行特征一致性任务所需要的数据源,包括 DataHub
和 MaxCompute
和模型 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 特征表要填写的信息类似,不再详述
特征重放参数:如果选择特征重放,那么需要填写以下参数
API 接口应为引擎服务地址加上路径/api/feature_reply,如:http://pairec.service.host/api/feature_reply
EAS token 为服务 token ,重放消息队列及 Datahub 数据源选择对应类型和数据源即可。
高级设置:选择 OSS 输出结果需要填写以下参数,按要求填写
2. 运行特征一致性任务和查看结果¶
运行任务¶
在特征一致性任务管理页面,对应任务操作栏点击启动任务来运行任务,需要填写运行时间和运行环境(日常、预发或生产)。
然后等待任务结束,或者中途取消任务。
查看结果¶
在侧边栏特征管理下的任务日志,可查看任务运行情况,一般来说任务执行的实际时长会大于设定的时间。这是因为需要额外的时间等待数据同步完成以及最后做分析。
当任务执行成功,点击对应日志操作栏的任务详情查看报表结果:
包括任务基本信息,oss 输出路径(如果设置了输出),打分差异表(按差异大小降序排序),点击特征查看可以查看对应特征差异。
3. 结果使用¶
若选择了高级设置,会将生成的任务文件以压缩包(package.zip)的方式存至 OSS,OSS 的存储地址为高级设置中所填地址。
下面说明压缩包如何上传至 dataworks 中手动运行任务
首先将 OSS 中的压缩包下载至本地
进入 dataworks,顺序点击如下按钮
点击
迁移助手
,再点击DataWorks 导入
点击右上角
新建导入任务
输入自定义名称,点击上传文件,将本地的 压缩包上传,随后点击上传确认即可
任务所在的文件夹即为在高级配置中所填写的
workflow_name
中
4. 问题排查¶
如果任务显示成功,报表数据为空,可能原因为日志数据缺失,可以排查DataHub 和 MaxCompute 是否有相应日志数据,以及引擎服务日志是否有报错信息。
任务失败则根据运行日志消息的提示排查问题。