其他配置

调试配置

当服务上线后,为了更精确的分析线上的结果,需要汇总各种信息。在线下可以通过打印日志进行调试,当服务上线后,无法灵活的进行打印。

本配置主要用于收集线上调试信息,并能灵活地开启将其打印到终端,或者输出到Datahub上进行更细致的分析,也可以输出到本地文件以供其它调用。目前 收集的是召回、过滤和粗排之后的items数据。

调试配置对应配置总览中的DebugConfs,DebugConfs是一个Map[string]object结构,其中key是场景,可以对不同的场景进行配置隔离。

{
    "DebugConfs": {
        "${scene_name}": {
            "OutputType": "datahub",
            "Rate": 0,
            "DebugUsers": [
                "1001"
            ],
            "DatahubName": "dh_debug_log",
            "KafkaName": "pairec_debug_log",
            "FilePath": "/Users/username/pairec/debug_log/",
            "MaxFileNum": 20
        }
    }
}

字段名

类型

是否必填

描述

OutputType

string

调试日志的输出方式,取值如下:

  • console:控制台输出。

  • datahub:输出到Datahub的某个topic中。

  • kafka:输出到Kafka的某个topic中。

  • file:本地文件输出。

Rate

int

日志的采样比例,取值范围0-100。您可以根据线上服务的QPS进行适当调整。

注:当值为0时,不输出调试信息。

DebugUsers

[]string

只对某些UID进行日志记录。例如 "DebugUsers": [ "1001"],表示只对1001这个user记录日志,其他user不记录。

DatahubName

string

OutputType=datahub时,需要填写此参数。

来源于数据源配置中的DatahubConfs的自定义名称。

KafkaName

string

OutputType=kafka时,需要填写此参数。

来源于数据源配置中的KafkaConfs的实例名称。

FilePath

string

OutputType=file时,需要填写此参数。

会将debug日志输出到此路径,路径不存在时会自动创建。

MaxFileNum

int

OutputType=file时,可以选择性填写此参数。

设置FilePath路径中可保存的最大日志数量,默认为20。路径中每个日志文件大小限制为1 G,超过会进行文件轮转。

若文件数量超过MaxFileNum,会删除最旧的日志文件。

目前输出的信息包括如下:

  • request_id:请求标识。

  • module:标识哪个模块的日志,目前包括recall、filtergeneral_rank。

  • scene_id:场景ID。

  • exp_id:实验ID。

  • request_time:请求时间戳,单位为秒。

  • uid:用户ID。

  • retrieveid:召回ID。

  • items:item list列表,格式为 "item1:score1:{'dbmtl_prob_click':'0.03'},item2:score2:{'dbmtl_prob_click':'0.04'}",  表示当module = recall 或 filter时, score为召回得分;

    module=general_rank、rank 和 sort 时,items 格式为 "item1:score1:{'dbmtl_prob_click':'0.03'},item2:score2:{'dbmtl_prob_click':'0.03'}",其中 score 为 general rank 或 rank 阶段模型服务的打分,dbmtl_prob_click 为模型的其中一个目标得分,如果模型服务有多个目标,大括号中会包含所有的目标得分,具体名称以模型服务真实的多目标为准,dbmtl_prob_click这里这是举例。

目前在某个module下, items是分retrieveid进行输出的。比如有5个召回源,那么在module = recall时, 会有5条记录,每条记录对应一路召回。同样,filtergeneral_rank也是按此逻辑打印。

Datahub 配置

Datahub配置中,您可以不用创建topic,  只要指定topicschemas,引擎会自动创建。

{
    "DatahubConfs": {
        "dh_debug_log": {
            "Endpoint": "http://dh-cn-beijing-int-vpc.aliyuncs.com",
            "ProjectName": "project_test",
            "TopicName": "pairec_debug_log",
            "Schemas": [
                {
                    "Field": "request_id",
                    "Type": "string"
                },
                {
                    "Field": "module",
                    "Type": "string"
                },
                {
                    "Field": "scene_id",
                    "Type": "string"
                },
                {
                    "Field": "request_time",
                    "Type": "integer"
                },
                {
                    "Field": "exp_id",
                    "Type": "string"
                },
                {
                    "Field": "items",
                    "Type": "string"
                },
                {
                    "Field": "retrieveid",
                    "Type": "string"
                },
                {
                    "Field": "uid",
                    "Type": "string"
                }
            ]
        }
    }
}

当运行服务时,引擎会自动创建此Topic: pairec_debug_log,并使用上述schema。 当您在Datahub控制台,看到有日志输出时,系统可以自行创建MaxComputeDatahub的订阅关系。

字段名

类型

是否必填

描述

Endpoint

string

DatahubDataHub域名列表,如果DatahubProjectPAI-Rec是同一个 region,一般使用 VPC 地址,否则一般使用外网地址。

ProjectName

string

Datahub的项目名称。

TopicName

string

DatahubTopic名称。

Schemas

[]map

DatahubSchema详情。

Kafka 配置

kafka配置中,需要配置对应的实例名称(对应DebugConfs中配置的KafkaName)、域名接入点BootstrapServers以及已经创建好的Topic名称。

{
    "KafkaConfs": {
        "pairec_debug_log": {
            "BootstrapServers": "alikafka-post-cn-xxxxx-1.alikafka.aliyuncs.com:9093,alikafka-post-cn-xxxxx-2.alikafka.aliyuncs.com:9093,alikafka-post-cn-xxxxx-3.alikafka.aliyuncs.com:9093",
            "Topic": "debug_log"
        }
    }
}
重要

如果您使用PAI-Rec控制台进行配置,当服务部署到EAS时,专有网络配置的VPC和交换机需与当前Kafka实例保持一致。

特征日志配置

本配置主要用于收集线上user侧和item侧的特征,输出到Datahub上进行更细致的分析。

特征日志配置对应配置总览中的FeatureLogConfs,FeatureLogConfs是一个Map[string]object结构,其中key是场景,可以对不同的场景进行配置隔离。

{
    "FeatureLogConfs": {
        "${scene_name}": {
            "OutputType": "datahub",
            "DatahubName": "",
            "UserFeatures": "",
            "ItemFeatures": ""
        }
    }
}

字段名

类型

是否必填

描述

OutputType

string

调试日志的输出方式,目前仅支持datahub。

DatahubName

string

OutputType=datahub时,需要填写此参数。

来源于数据源配置中的DatahubConfs的自定义名称。

UserFeatures

string

由于整个user的特征可能会有很多,这里可以选择user侧部分特征,多个特征之间使用英文逗号分隔。当使用 "*" 时,会将user侧所有的特征记录下来;如果不填此参数或者为空,则不会落user侧的任何特征。

ItemFeatures

string

同上,这里也可以选择item侧部分特征,当使用 "*" 时,会落引擎中item侧的所有特征;当为空时,会将召回ID和模型打分特征记录下来。

Datahub 配置

Datahub配置中,您可以不用创建topic,  只要指定topicschemas,引擎会自动创建。

{
    "DatahubConfs": {
        "dh_feature_log": {
            "Endpoint": "http://dh-cn-beijing-int-vpc.aliyuncs.com",
            "ProjectName": "",
            "TopicName": "pairec_feature_log",
            "Schemas": [
                {
                    "Field": "request_id",
                    "Type": "string"
                },
                {
                    "Field": "scene_id",
                    "Type": "string"
                },
                {
                    "Field": "exp_id",
                    "Type": "string"
                },
                {
                    "Field": "request_time",
                    "Type": "integer"
                },
                {
                    "Field": "user_id",
                    "Type": "string"
                },
                {
                    "Field": "user_features",
                    "Type": "string"
                },
                {
                    "Field": "item_id",
                    "Type": "string"
                },
                {
                    "Field": "position",
                    "Type": "string"
                },
                {
                    "Field": "item_features",
                    "Type": "string"
                }
            ]
        }
    }
}

当运行服务时,引擎会自动创建此Topic: pairec_feature_log,并使用上述schema。

字段名

类型

是否必填

描述

Endpoint

string

DatahubDataHub域名列表,如果DatahubProjectPAI-Rec是同一个 region,一般使用 VPC 地址,否则一般使用外网地址。

ProjectName

string

Datahub的项目名称。

TopicName

string

DatahubTopic名称。

Schemas

[]map

DatahubSchema详情。