全部產品
Search
文件中心

Artificial Intelligence Recommendation:日誌配置

更新時間:Sep 24, 2025

調試日誌配置

當服務上線後,為了更精確的分析線上的結果,需要匯總各種資訊。線上下可以通過列印日誌進行調試,當服務上線後,無法靈活的進行列印。

本配置主要用於收集線上調試資訊,並能靈活地開啟將其列印到終端,或者輸出到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、filter和general_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條記錄,每條記錄對應一路召回。同樣,filter和general_rank也是按此邏輯列印。

Datahub 配置

在Datahub配置中,您可以不用建立topic,  只要指定topic和schemas,引擎會自動建立。

{
    "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控制台,看到有日誌輸出時,系統可以自行建立MaxCompute與Datahub的訂閱關係(把Datahub中的資料落盤到MaxCompute表中)。

欄位名

類型

是否必填

描述

Endpoint

string

Datahub的DataHub網域名稱列表,如果Datahub的Project和PAI-Rec是同一個 region,一般使用 VPC 地址,否則一般使用外網地址。

ProjectName

string

Datahub的專案名稱。

TopicName

string

Datahub的Topic名稱。

Schemas

[]map

Datahub的Schema詳情。

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,  只要指定topic和schemas,引擎會自動建立。

{
    "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

Datahub的DataHub網域名稱列表,如果Datahub的Project和PAI-Rec是同一個 region,一般使用 VPC 地址,否則一般使用外網地址。

ProjectName

string

Datahub的專案名稱。

TopicName

string

Datahub的Topic名稱。

Schemas

[]map

Datahub的Schema詳情。