モデル設定
ファインランク段階では、PAI-Rec は Elastic Algorithm Service (EAS) 上のアルゴリズムモデルサービスを呼び出してスコアを取得します。EAS では、PAI-Rec が呼び出すことができる EasyRec、TorchEasyRec、TensorFlow、PMML、PS、Alink など、さまざまなモデルタイプをデプロイできます。
EasyRec のコードはオープンソースです。PAI-Rec でスコアリングに使用するには、EasyRec ドキュメントに従ってモデルをトレーニングし、モデルをエクスポートし、EasyRec プロセッサを使用して EAS サービスとしてデプロイします。
TorchEasyRec は EasyRec の Torch バージョンです。PAI-Rec でスコアリングに使用するには、TorchEasyRec ドキュメントに従ってモデルをトレーニングし、モデルをエクスポートし、EasyRec プロセッサを使用して EAS サービスとしてデプロイします。
設定例
{
"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": "dbmtl_v1",
"Type": "EAS",
"EasConf": {
"Processor": "EasyRec",
"Timeout": 300,
"ResponseFuncName": "easyrecMutValResponseFunc",
"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 |
文字列 |
はい |
モデル情報のカスタム名。この名前は |
|
Type |
文字列 |
はい |
モデルデプロイタイプ。 |
EasConf
|
パラメーター |
データ型 |
必須 |
説明 |
|
Processor |
文字列 |
はい |
モデルタイプ。有効な値:
|
|
Timeout |
int |
いいえ |
モデルリクエストのタイムアウト期間 (ミリ秒単位)。 |
|
ResponseFuncName |
文字列 |
はい |
レスポンスデータを解析するために使用される関数。この関数は
|
|
Url |
文字列 |
はい |
モデルのエンドポイント URL。 |
|
EndpointType |
文字列 |
いいえ |
エンドポイントタイプ。有効な値: エンジンとモデルの両方が EAS にデプロイされている場合は、このパラメーターを |
|
Auth |
文字列 |
はい |
モデル認証用のトークン。 |
easyrecMutValResponseFunc、torchrecMutValResponseFunc、tfMutValResponseFunc 関数は、複数のターゲット予測値を返すことができます。PAI-Rec ではこれらの値を処理する操作を設定できます。たとえば、返されたすべての値を合計して、最終的なランキングスコアを生成できます。
モデルが EAS にデプロイされている場合は、PAI-EAS コンソールで Url と Auth の値を確認できます。
PAI-EAS コンソールで、 [Inference Service] ページに移動します。対象のサービスを見つけ、 [Invocation Information] リンクをクリックします。表示されるダイアログボックスで、 [VPC Address Call] タブを選択して Url を取得します。Auth の値は [token] フィールドに対応します。
アルゴリズム設定
アルゴリズム設定は、設定概要の RankConf に対応します。RankConf は Map[string]object 構造です。キーはシナリオ名 (例では ${scene_name1} や ${scene_name2}) です。AlgoConfs で定義されたカスタムモデル名を使用して、各シナリオに異なるモデルを選択できます。
設定例
{
"RankConf": {
"${scene_name1}": {
"RankAlgoList": [
"fm"
],
"RankScore": "${fm}"
},
"${scene_name2}": {
"RankAlgoList": [
"dbmtl_v1"
],
"RankScore": "${dbmtl_v1_probs_ctr} * (${dbmtl_v1_probs_view} + ${dbmtl_v1_y_view_time} + 0.5 * ${dbmtl_v1_probs_on_wheat} + 0.5 * ${dbmtl_v1_y_on_wheat_time} + 0.25 * ${dbmtl_v1_y_gift} + 0.25 * ${dbmtl_v1_probs_add_friend} + 0.1)",
"Processor": "EasyRec"
}
}
}
|
パラメーター |
データ型 |
必須 |
説明 |
|
RankAlgoList |
[]string |
はい |
|
|
RankScore |
文字列 |
はい |
モデル融合式。 |
|
Processor |
文字列 |
いいえ |
|
|
BatchCount |
int |
いいえ |
モデルへの 1 回のバッチリクエストで送信するアイテムの数。デフォルト値は 100 です。 |
|
ContextFeatures |
[]string |
いいえ |
プロセッサに渡すコンテキスト特徴のリスト。このパラメーターは |
|
ItemFeatures |
[]string |
いいえ |
EasyRec プロセッサに渡すアイテム特徴のリスト。これにより、プロセッサにキャッシュされたアイテム特徴が上書きされます。このパラメーターは |
RankScore は、複数のターゲット予測値のモデル融合式です。たとえば、dbmtl_v1_probs_ctr では、dbmtl_v1 はモデル設定名を指し、probs_ctr はマルチオブジェクティブモデルの目的の 1 つを指します。
RankScore は、加算 (+)、減算 (-)、乗算 (*)、除算 (/)、べき乗 (^)、モジュロ (%) の算術演算子をサポートしています。たとえば、${dbmtl_v1_probs_ctr}%2 はモジュロ演算を実行し、${dbmtl_v1_probs_ctr}^2 はべき乗演算を実行します。
複数のモデルのスコアを融合する場合も、同様のパターンに従います。たとえば、dbmtl_v1 と dbmtl_v2 という名前の 2 つのモデルがある場合、RankAlgoList を ["dbmtl_v1","dbmtl_v2"] に設定します。その後、RankScore を ${dbmtl_v1_probs_ctr}+${dbmtl_v2_probs_y_gift} のような式に設定できます。式の各部分は、モデル名とそのターゲット目的の 1 つを組み合わせたものです。この例では、probs_ctr と y_gift は説明のために使用されています。
BatchCount は、PAI-Rec が 1 回のバッチリクエストで送信するアイテムの数を指定します。たとえば、ランキング用の候補セットに 1,000 個のアイテムが含まれており、BatchCount を 100 に設定した場合、PAI-Rec は 10 個の個別のバッチリクエストを送信し、それぞれに 100 個のアイテムが含まれます。モデル推論サービスのリソースに基づいて、このパラメーターを調整してください。