すべてのプロダクト
Search
ドキュメントセンター

:ログの設定

最終更新日:Mar 18, 2026

デバッグログの設定

サービスが公開された後、さまざまな情報を収集してオンラインパフォーマンスを分析できます。オフラインデバッグのためにログを出力することもできますが、この方法はオンラインサービスにとっては柔軟性が十分ではありません。

この設定は、オンラインのデバッグ情報を収集します。この設定を有効にすると、情報をコンソールに出力したり、各リコールの効果を分析するなどの詳細な分析のために DataHub に出力したり、他の呼び出しのためにローカルファイルに書き込んだりできます。現在、この設定は、リコール、フィルタリング、および粗ランクの段階を経た後のアイテムデータを収集します。

デバッグ設定は、設定概要の `DebugConfs` に対応します。`DebugConfs` は `Map[string]object` 構造で、キーはシナリオを表します。これにより、さまざまなシナリオに対して分離された設定を作成できます。

{
    "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 のトピックに出力します。

  • kafka:Kafka のトピックに出力します。

  • file:ローカルファイルに出力します。

Rate

int

はい

ログのサンプリング率。値の範囲は 0 から 100 です。オンラインサービスの秒間クエリ数 (QPS) に基づいてこの値を調整してください。

注意: 値が 0 の場合、デバッグ情報は出力されません。

DebugUsers

[]string

いいえ

特定の UID のログのみを記録します。たとえば、`"DebugUsers": [ "1001"]` は、ユーザー 1001 のログのみが記録されることを意味します。

DatahubName

string

いいえ

`OutputType` が `datahub` に設定されている場合に必須です。

これは、データソース設定内の `DatahubConfs` で定義したカスタム名です。

KafkaName

string

いいえ

`OutputType` が `kafka` に設定されている場合に必須です。

これは、データソース設定内の `KafkaConfs` で定義したインスタンス名です。

FilePath

string

いいえ

`OutputType` が `file` に設定されている場合に必須です。

デバッグログはこのパスに出力されます。パスが存在しない場合は自動的に作成されます。

MaxFileNum

int

いいえ

`OutputType` が `file` に設定されている場合はオプションです。

`FilePath` ディレクトリに保存できるログファイルの最大数を設定します。デフォルト値は 20 です。各ログファイルは 1 GB に制限されます。ファイルがこの制限を超えると、ファイルのローテーションが行われます。

ファイル数が `MaxFileNum` を超えると、最も古いログファイルが削除されます。

出力情報には、次のフィールドが含まれます:

  • request_id:各推薦リクエストの一意の ID。

  • module:ログを生成したモジュール。現在のモジュールには、`recall`、`filter`、`general_rank` が含まれます。

  • scene_id:シナリオ ID。

  • exp_id:実験 ID。

  • request_time:リクエストの UNIX タイムスタンプ (秒単位)。

  • uid:ユーザー ID。

  • retrieveid:リコール ID。

  • items:アイテムのリスト。フォーマットは `"item1:score1:{'dbmtl_prob_click':'0.03'},item2:score2:{'dbmtl_prob_click':'0.04'}"` です。`module` が `recall` または `filter` の場合、`score` はリコールスコアです。

    `module` が `general_rank`、`rank`、または `sort` の場合、フォーマットは `"item1:score1:{'dbmtl_prob_click':'0.03'},item2:score2:{'dbmtl_prob_click':'0.03'}"` です。この場合、`score` は総合ランクまたはランク段階でのモデルサービスからのスコアです。`dbmtl_prob_click` はモデルのターゲットスコアの 1 つです。モデルサービスに複数のターゲットがある場合、中括弧にはすべてのターゲットスコアが含まれます。ターゲットの実際の名前はモデルサービスに依存し、`dbmtl_prob_click` は単なる例です。

現在、モジュール内では、アイテムは各 `retrieveid` ごとに個別に出力されます。たとえば、5 つのリコールソースがある場合、`module` が `recall` のときに 5 つのレコードが生成されます。各レコードは 1 つのリコールソースに対応します。`filter` および `general_rank` モジュールも同じロギングロジックに従います。

DataHub の設定

DataHub の設定では、トピックを作成する必要はありません。トピックとスキーマを指定すると、エンジンが自動的に作成します。

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

サービスが実行されると、エンジンは自動的に `pairec_debug_log` トピックを作成し、指定されたスキーマを適用します。DataHub コンソールでログ出力を確認した後、MaxCompute と DataHub の間にサブスクリプション関係を作成できます。これにより、DataHub のデータが MaxCompute テーブルに保存されます。

フィールド名

必須

説明

Endpoint

string

はい

エンドポイントは、DataHub ドメイン名リストのドメイン名です。DataHub プロジェクトと PAI-Rec が同じリージョンにある場合は、VPC アドレスを使用します。それ以外の場合は、パブリックアドレスを使用します。

ProjectName

string

はい

DataHub プロジェクトの名前。

TopicName

string

はい

DataHub トピックの名前。

Schemas

[]map

はい

DataHub スキーマの詳細。

Kafka の設定

Kafka の設定では、インスタンス名 (`DebugConfs` の `KafkaName` に対応)、`BootstrapServers` 接続エンドポイント、および既存のトピックの名前を設定します。

{
    "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 にデプロイされるとき、ネットワーク設定の Virtual Private Cloud (VPC) と vSwitch は、現在の Kafka インスタンスのものと同じである必要があります。

特徴量ログの設定

この設定は、オンラインのユーザー側とアイテム側の特徴量を収集するために使用されます。これらの特徴量は、詳細な分析のために DataHub に出力されます。

特徴量ログの設定は、設定概要の `FeatureLogConfs` で定義されます。`FeatureLogConfs` は `Map[string]object` 構造です。キーはシナリオを表し、これにより各シナリオの設定を分離できます。

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

フィールド

必須

説明

OutputType

string

はい

デバッグログの出力方法。現在、`DataHub` のみがサポートされています。

DatahubName

string

はい

`OutputType` が `datahub` に設定されている場合に必須です。

これは、データソース設定内の `DatahubConfs` で定義したカスタム名です。

Rate

int

いいえ

データサンプリング率。値の範囲は 0 から 100 です。オンラインサービスの QPS に基づいてこの値を調整してください。

重要

以前のバージョンとの互換性を確保するため、このパラメーターを指定しないか、`Rate` を 0 に設定した場合、すべてのデータがサンプリングされます。これは `Rate` を 100 に設定するのと同じです。

UserFeatures

string

いいえ

ユーザーは多くの特徴量を持つことができます。ここでは、ユーザー側の特徴量のサブセットを選択できます。複数の特徴量はカンマで区切ります。アスタリスク (`*`) を使用して、すべてのユーザー側の特徴量を記録します。このパラメーターが空または指定されていない場合、ユーザー側の特徴量は記録されません。

ItemFeatures

string

いいえ

上記と同様に、アイテム側の特徴量のサブセットを選択できます。アスタリスク (`*`) を使用して、エンジン内のすべてのアイテム側の特徴量を記録します。このパラメーターが空の場合、リコール ID とモデルスコアリング特徴量が記録されます。

SplitUserItemLogs

bool

いいえ

ユーザーとアイテムの特徴量ログを分離するかどうかを指定します。デフォルトでは、単一のリクエストに対する各ログレコードには、ユーザー特徴量の完全なセットと 1 つのアイテムの特徴量が含まれます。これにより、冗長なユーザー特徴量データが作成されます。このパラメーターを有効にすると、1 つのログレコードにはユーザー特徴量のみが含まれ、同じリクエストの後続のレコードにはアイテム特徴量のみが含まれるようになります。これにより、データ冗長性が排除されます。

DataHub の設定

DataHub の設定では、トピックを作成する必要はありません。トピックとスキーマを指定すると、エンジンが自動的にトピックを作成します。

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

サービスが実行されると、エンジンは自動的に `pairec_feature_log` トピックを作成し、指定されたスキーマを適用します。

フィールド名

必須

説明

Endpoint

string

はい

DataHub ドメイン名リストからの DataHub エンドポイント。DataHub プロジェクトと PAI-Rec が同じリージョンにある場合、通常は VPC アドレスが使用されます。それ以外の場合は、通常、パブリックネットワークアドレスが使用されます。

ProjectName

string

はい

DataHub プロジェクトの名前。

TopicName

string

はい

DataHub トピックの名前。

Schemas

[]map

はい

DataHub スキーマの詳細。