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

Artificial Intelligence Recommendation:ログ設定

最終更新日:Nov 04, 2025

デバッグログ設定

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

この設定は、オンラインのデバッグ情報を収集します。これを有効にすると、情報をコンソールに出力したり、各リコールの効果の分析などの詳細な分析のために 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 の Topic に出力します。

  • kafka: Kafka の Topic に出力します。

  • 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 G に制限されます。ファイルがこの制限を超えると、ファイルのローテーションが発生します。

ファイル数が `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 設定では、Topic を作成する必要はありません。Topic とスキーマを指定すると、エンジンが自動的に作成します。

{
    "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` Topic を作成し、指定されたスキーマを適用します。DataHub コンソールでログ出力を確認した後、MaxCompute と DataHub の間にサブスクリプション関係を作成できます。これにより、DataHub データが MaxCompute テーブルに保存されます。

フィールド

タイプ

必須

説明

Endpoint

string

はい

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

ProjectName

string

はい

DataHub プロジェクトの名前。

TopicName

string

はい

DataHub Topic の名前。

Schemas

[]map

はい

DataHub スキーマの詳細。

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 (virtual private cloud) と vSwitch は、現在の Kafka インスタンスのものと同じでなければなりません。

特徴ログ設定

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

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

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

フィールド

タイプ

必須

説明

OutputType

string

はい

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

DatahubName

string

はい

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

これは、データソース設定の `DatahubConfs` からのカスタム名です。

UserFeatures

string

いいえ

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

ItemFeatures

string

いいえ

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

Datahub 設定

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

{
    "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` Topic を作成し、指定されたスキーマを適用します。

フィールド

タイプ

必須

説明

Endpoint

string

はい

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

ProjectName

string

はい

DataHub プロジェクトの名前。

TopicName

string

はい

DataHub Topic の名前。

Schemas

[]map

はい

DataHub スキーマの詳細。