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

Artificial Intelligence Recommendation:詳細ランク構成

最終更新日:Sep 24, 2025

モデル構成

詳細ランクステージでは、通常、Elastic Algorithm Service(EAS)上のアルゴリズムモデルサービスを呼び出してスコアを取得します。 EAS は様々なタイプのモデルのデプロイをサポートしており、PAI Recommendation(PAI-Rec)も EasyRec、TorchEasyRec、TensorFlow、PMML、PS、Alink など、様々なモデルの呼び出しをサポートしています。 モデル情報構成は、構成概要の AlgoConfs に対応します。

EasyRec のコードはオープンソースです。モデルをトレーニングし、モデルをエクスポートし、EasyRec プロセッサ(スコアリングサービス)を使用して、EasyRec ドキュメントに基づいて EAS サービスをデプロイできます。 PAI-Rec を使用して呼び出しとスコアリングを行うことができます。

TorchEasyRec は EasyRec の Torch バージョンです。 モデルをトレーニングし、モデルをエクスポートし、TorchEasyRec プロセッサを使用して、TorchEasyRec ドキュメントに基づいて EAS サービスをデプロイできます。 その後、PAI-Rec を使用して呼び出しとスコアリングを行うことができます。

構成例:

{
  "AlgoConfs": [
    {
      "Name": "room3_mt_v2",
      "Type": "EAS",
      "EasConf": {
        "Processor": "EasyRec",
        "Timeout": 300,
        "ResponseFuncName": "easyrecMutValResponseFunc",
        "Url": "http:xxx.pai-eas.aliyuncs.com/api/predict/xxx",
        "EndpointType": "DIRECT",
        "Auth": ""
      }
    },
    {
      "Name": "room3_mt_v2_torch",
      "Type": "EAS",
      "EasConf": {
        "Processor": "EasyRec",
        "Timeout": 300,
        "ResponseFuncName": "torchrecMutValResponseFunc",
        "Url": "http:xxx.pai-eas.aliyuncs.com/api/predict/xxx",
        "EndpointType": "DIRECT",
        "Auth": ""
      }
    },
    {
      "Name": "tf",
      "Type": "EAS",
      "EasConf": {
        "Processor": "TensorFlow",
        "ResponseFuncName": "tfMutValResponseFunc",
        "Url": "http:xxx.pai-eas.aliyuncs.com/api/predict/xxx",
        "Auth": ""
      }
    },
    {
      "Name": "ps_smart",
      "Type": "EAS",
      "EasConf": {
        "Processor": "PMML",
        "ResponseFuncName": "pssmartResponseFunc",
        "Url": "http:xxx.pai-eas.aliyuncs.com/api/predict/xxx",
        "Auth": ""
      }
    },
    {
      "Name": "fm",
      "Type": "EAS",
      "EasConf": {
        "Processor": "ALINK_FM",
        "ResponseFuncName": "alinkFMResponseFunc",
        "Url": "http:xxx.pai-eas.aliyuncs.com/api/predict/xxx",
        "Auth": ""
      }
    }
  ]
}

フィールド名

タイプ

必須

説明

Name

string

はい

カスタムモデル情報名。RankConf で参照されます。

Type

string

はい

モデルデプロイタイプ

EasConf

フィールド名

タイプ

必須

説明

Processor

string

はい

モデルタイプ、列挙値:

  • EasyRec

  • TensorFlow

  • ALINK_FM

  • PMML

  • TFServing

Timeout

int

いいえ

リクエストモデルタイムアウト

ResponseFuncName

string

はい

返されたデータを解析するために必要な関数。Processor タイプと一致します。

  • EasyRec

    • TF バージョンは easyrecMutValResponseFunc に対応

    • Torch バージョンは torchrecMutValResponseFunc に対応

  • TensorFlow は tfMutValResponseFunc に対応

  • ALINK_FM は alinkFMResponseFunc に対応

  • PMML は pssmartResponseFunc に対応

  • TFServing は tfServingResponseFunc に対応

Url

string

はい

モデルアドレス

EndpointType

string

いいえ

列挙値:DOCKER/DIRECT

エンジンとモデルの両方が EAS にデプロイされている場合、DIRECT に設定して直接接続でモデルをリクエストできます。これにより、パフォーマンスが向上します。

Auth

string

はい

モデルトークン

上記の easyrecMutValResponseFunctorchrecMutValResponseFunc、および tfMutValResponseFunc は、複数のターゲット予測値を含むことができる戻り値です。これらの複数のターゲット予測値は、PAIREC で操作関数を構成することで処理できます。たとえば、すべての戻り値を合計して、最終的な合計ランキングスコアの基礎とすることができます。

モデルが EAS にデプロイされている場合、Url と Auth はどちらも EAS コンソールにあります。

image.png

アルゴリズム構成

アルゴリズム構成は、構成の概要の RankConf に対応します。RankConf は Map[string]object 構造で、キーはシナリオ名です (${scene_name1} と ${scene_name2} は 2 つの推奨シナリオの名前です)。シナリオごとに異なるモデルを選択できます。モデル構成で構成されたカスタムモデル名を使用する必要があります。

構成例:

{
  "RankConf": {
    "scene_name1": {
      "RankAlgoList": [
        "fm"
      ],
      "RankScore": "${fm}"
    },
    "scene_name2": {
      "RankAlgoList": [
        "room3_mt_v2"
      ],
      "RankScore": "${room3_mt_v2_probs_ctr} * (${room3_mt_v2_probs_view} + ${room3_mt_v2_y_view_time} + 0.5 * ${room3_mt_v2_probs_on_wheat} + 0.5 * ${room3_mt_v2_y_on_wheat_time} + 0.25 * ${room3_mt_v2_y_gift} + 0.25 * ${room3_mt_v2_probs_add_friend} + 0.1)",
      "Processor": "EasyRec"
    }
}

フィールド

タイプ

必須

説明

RankAlgoList

[]string

はい

AlgoConfs で定義されたモデル。このシナリオでスコアリングにどのモデルを使用するかを示します。

RankScore

string

はい

モデル融合式。

Processor

string

いいえ

AlgoConfs のプロセッサが EasyRec の場合は入力必須で、値も EasyRec です。

BatchCount

int

いいえ

バッチリクエストモデルデータサイズ。 デフォルト値:100。

ContextFeatures

[]string

いいえ

AlgoConfs のプロセッサが EasyRec の場合、コンテキスト特徴が渡されます。 渡す必要のある特徴がない場合は、この値を省略できます。 コンテキスト特徴をプロセッサに渡す必要がある場合は、特徴のフィールド名を ContextFeatures で構成する必要があります。

ItemFeatures

[]string

いいえ

AlgoConfs のプロセッサが EasyRec の場合、プロセッサにキャッシュされたアイテム特徴を使用する代わりに、アイテム特徴が EasyRec プロセッサに渡されます。 すべてのアイテム特徴を渡すには、["*"] 構成を使用できます。 また、["feature1","feature2"] 形式で関連する特徴を指定することもできます。 このフィールドは、ContextFeatures フィールドと一緒に構成できます。

RankScore は、複数のターゲット予測値の融合式です。たとえば、dbmtl_v1_probs_ctr の場合、dbmtl_v1 は前述のモデル構成名であり、probs_ctr はモデル構成サービスの戻り値です。

RankScore 式では、加算 (+)、減算 (-)、乗算 (*)、除算 (/)、べき乗 (^)、および剰余 (%) の算術演算子がサポートされています。これらの演算子は同様の方法で使用できます。前述の文の RankScore 式は参考用です。剰余演算の例: ${dbmel_v1_probs_ctr}%2。べき乗演算の例: ${dbmel_v1_probs_ctr}^2。

マルチモデル融合スコアリングも同様のアプローチに従います。たとえば、dbmtl_v1 と dbmtl_v2 の 2 つのモデルがある場合、RankAlgoList を ["dbmtl_v1","dbmtl_v2"] に設定し、RankScore を ${dbmtl_v1_probs_ctr}+${dbmtl_v2_probs_y_gift} に設定できます。各モデルサービスは、それぞれのターゲットと連結されます。ここでは、probs_ctr と y_gift が例として使用されています。

BatchCount は、PAI-Rec のバッチリクエストデータサイズです。 たとえば、推奨ランキングの候補セットに 1000 個の item_id がある場合、BatchCount を 100 に設定すると、PAI-Rec は 10 バッチでリクエストを送信し、各バッチには 100 個のリクエストが含まれます。 これは、モデル推論サービスのリソースに応じて柔軟に構成できます。