このトピックでは、カスタムソートモデルとは何か、およびカスタムソートモデルを作成する方法について説明します。
概要
OpenSearchは、検索結果のソートにおけるユーザーエクスペリエンスを向上させるために、カスタムソートモデルをサポートしています。ビジネスシナリオに基づいてカスタム特徴データを追加し、カスタムPythonまたはTensorFlowスクリプトを使用してソートモデルをトレーニングし、ソートモデル記述を作成できます。これにより、検索結果を柔軟かつパーソナライズされた方法でソートできます。
手順
カスタムソートモデルを作成する前に、特徴記述とモデル記述を作成する必要があります。
特徴記述を作成する
専用クラスタタイプのOpenSearch Industry Algorithm Editionインスタンスを作成した後、OpenSearch Industry Algorithm Editionコンソールにログインします。左側のナビゲーションペインで、検索アルゴリズムセンター > ソート設定を選択します。ソート設定ページの左側のペインで、カスタムソートモデルをクリックします。特徴記述タブで、作成をクリックします。
表示されるページで、特徴記述名を入力し、ソートモデル特徴を追加します。特徴を追加するには、特徴名を指定し、特徴タイプを選択してから、特徴を選択する必要があります。
カスタムソートモデルの特徴タイプの詳細については、カスタムソートモデルの特徴設定属性を参照してください。
特徴の選択方法の詳細については、基本的な組み込み特徴を参照してください。
モデル記述を作成する
専用クラスタタイプのOpenSearch Industry Algorithm Editionインスタンスを作成した後、OpenSearch Industry Algorithm Editionコンソールにログインします。左側のナビゲーションペインで、検索アルゴリズムセンター > ソート設定を選択します。ソート設定ページの左側のペインで、カスタムソートモデルをクリックします。モデル記述タブで、作成をクリックします。
表示されるページで、モデル記述名を入力し、Pythonスクリプトを記述して、送信をクリックします。
サンプルコードの詳細については、カスタムソートモデルの開発者ガイドを参照してください。
カスタムソートモデルを作成する
OpenSearch Industry Algorithm Editionコンソールにログインします。左側のナビゲーションペインで、検索アルゴリズムセンター > ソート設定を選択します。ソート設定ページの左側のペインで、カスタムソートモデルをクリックします。ソートモデルタブで、作成をクリックします。
表示されるページで、モデル名を入力し、モデルタイプを選択します。デフォルトでは、モデルタイプとしてカスタムソートモデルが選択されています。ビジネス要件に基づいてスケジュールトレーニングをオンにします。作成した特徴記述とモデル記述を選択し、送信をクリックします。
モデルが作成されたら、ソートモデルタブでモデルを見つけ、アクション列のトレーニングをクリックします。
トレーニングが開始されたら、モデル詳細ページでトレーニングの進捗状況を確認します。
トレーニングが完了し、モデルが利用可能状態になったら、モデルを使用します。モデルがまだ利用不可状態の場合は、モデル詳細ページのデータ検証セクションにある整合性レベルアップグレードの条件に基づいてモデルを調整します。モデルが条件を満たすように調整されたら、翌日モデルをトレーニングします。ご質問がある場合は、チケットを送信してテクニカルサポートにお問い合わせください。
Cavaベースのソートポリシーを作成する
左側のナビゲーションペインで、検索アルゴリズムセンター > ソート設定を選択します。ソート設定ページの左側のペインで、ポリシー管理をクリックします。ポリシー管理ページで、作成をクリックします。
表示されるページで、ポリシー名を入力し、スコープドロップダウンリストから精密ソートを選択し、タイプドロップダウンリストからCavaスクリプトを選択して、次へをクリックします。
スクリプトファイルを追加をクリックし、サンプルCavaスクリプトをスクリプトエディターにコピーします。コンパイルをクリックします。コンパイルが成功したら、保存と公開をクリックします。その後、検索テストを実行できます。
サンプルCavaスクリプト:
package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
import com.aliyun.opensearch.cava.features.algo.AlgoModel;
class BasicSimilarityScorer {
// メンバー変数を定義できます。
boolean init(OpsScorerInitParams params) {
// コードを実装し、検索リクエストに関連する変数(クラスのメンバー変数など)を初期化します。
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
double score = 10;
// コードを実装し、スコアの結果をscoreパラメータに割り当てます。
doc.trace("double value:", score);
return score;
}
};
class IntelligenceAlgorithmScorer {
AlgoModel _algoModel;
boolean init(OpsScorerInitParams params) {
// tf_checkpointパラメータは固定パラメータです。
_algoModel = AlgoModel.create(params, "tf_checkpoint","rank", "カスタムソートモデルの名前");
return true;
}
double score(OpsScoreParams params) {
OpsDoc doc = params.getDoc();
double modelScore = _algoModel.evaluate(params);
doc.trace("rankModelScore: ", modelScore);
double score = modelScore + 700;
return score;
}
};検索テストの結果を表示する
左側のナビゲーションペインで、機能拡張 > 検索テストを選択します。検索テストページで、検索条件を指定します。
注:
検索リクエストでは、query、second_rank_type、second_rank_name、およびraw_queryパラメータが必要です。
使用上の注意
カスタムソートモデルは、Cavaベースのプラグインでのみ使用できます。
カスタムソートモデルは、専用クラスタタイプのOpenSearch Industry Algorithm Editionインスタンスでのみ使用できます。
各インスタンスは、最大3つのカスタムソートモデルをサポートします。
アップグレード条件のraw_queryパラメータは、検索リクエストで必須のパラメータです。パラメータの値は、検索結果を持つ一意で独立した検索クエリである必要があります。詳細については、検索機能を実装するためのデモコードを参照してください。
関連するAPI操作とSDKの詳細については、アルゴリズムを参照してください。
カスタムソートモデルのトレーニングには別途料金がかかります。詳細については、用語を参照してください。
ベストプラクティスの詳細については、カスタムソートモデルを作成するを参照してください。