このトピックでは、AnalyticDB for MySQL で SQL を使用して Behavior Sequence Transformer (BST) モデルをデプロイし、機械学習タスクを実行する方法について説明します。このプロセスは、データ変換、モデル作成からトレーニング、評価、予測までのワークフロー全体をカバーします。
シナリオ
SQL クエリを使用して、モデルのトレーニングと推論を迅速に実行できます。SQL は、データの前処理、トレーニング、推論を含むプロセス全体を簡素化します。
AnalyticDB for MySQL は BST モデルをサポートしています。これらのモデルは、ユーザーの行動パターンの理解、ユーザーの嗜好の分析、将来のトレンドの予測、またはパーソナライズされた推奨の提供が必要なシナリオで使用できます。たとえば、ゲームや e コマース業界では、ユーザーの行動における長期的な依存関係を捉えることができます。これにより、ユーザーの行動や嗜好をより深く理解・予測し、パーソナライズされたサービスや推奨を提供できます。
前提条件
クラスターは Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスターである必要があります。
クラスターのカーネルバージョンは 3.2.4.0 以降である必要があります。
説明AnalyticDB for MySQL クラスターのマイナーバージョンを表示および更新するには、AnalyticDB for MySQL コンソールにログインし、クラスター情報 ページの 構成情報 セクションに移動します。
AI リソースグループ機能を有効にする必要があります。この機能はパブリックプレビュー段階です。有効にするには、テクニカルサポートにお問い合わせください。
ステップ 1: AI リソースグループを作成し、通常のリソースグループにアタッチする
SQL を使用して機械学習タスクを実行するには、2 種類のリソースグループが必要です:
AI リソースグループ: このグループは、機械学習タスクをサポートするように設計されています。これらのタスクに必要な GPU リソースを管理し、モデルのトレーニングと予測における計算集約的な操作をサポートします。
通常のリソースグループ: このグループは、トレーニングデータの生成や予測関数の実行など、標準 SQL クエリを処理するために使用されます。
SQL 文は、まず通常のリソースグループに送信されます。システムが SQL 文に AI 計算が必要であると検出すると、タスクは自動的にアタッチされた AI リソースグループに転送されて実行されます。
したがって、まず AI リソースグループを作成し、それを通常のリソースグループにアタッチする必要があります。
AnalyticDB for MySQL コンソールにログインします。コンソールの左上隅でリージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。管理するクラスターを見つけて、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、クラスター管理 > リソース管理 を選択し、リソースグループ管理 タブをクリックします。
リソースグループリストの右上隅にある 新規リソースグループ をクリックして、AI リソースグループを作成します。
パラメーター
説明
リソースグループ名
リソースグループのカスタム名。名前は 2~30 文字で、先頭は英字にする必要があります。英字、数字、アンダースコアのみ使用できます。
タスクタイプ
ドロップダウンリストから [AI] を選択します。
重要[AI] オプションが利用できない場合、インスタンスで AI リソースグループ機能が有効になっていません。テクニカルサポートにお問い合わせください。
仕様
GPU、CPU、メモリリソースの組み合わせ。[ADB.MLLarge.24]、[ADB.MLLarge.2]、または [ADB.MLAdvavced.6] を選択できます。
最小数
リソースユニットの最小数。
最大数
リソースユニットの最大数。
を決定 をクリックしてリソースグループを作成します。
ターゲットの通常のリソースグループを見つけます。操作 列で、変更 をクリックします。ML ジョブ配信ルール を使用して、通常のリソースグループを新しく作成した AI リソースグループにアタッチします。
ステップ 2: データ変換
データ変換は、生データをモデルトレーニングに適した形式に変換するプロセスです。このプロセスは、生データの形式、そのストレージの場所、およびモデルで必要な入力データ形式という 3 つの主要な要因に依存します。
モデルトレーニングデータのテーブルスキーマ要件
入力特徴量列: この列は、カンマ区切りの一連の整数を含む文字列である必要があります。各エントリはサンプルの特徴量ベクターを表します。
ターゲットラベル列: この列には、分類タスクのクラスラベルを表すために、0 や 1 などの 2 つの可能な値が含まれます。
テーブルスキーマの例: ('1,2,3',0), ('3,2,1',1)。
データ変換メソッド
生データの形式がモデルトレーニングに必要な形式と異なる場合は、次のメソッドを使用してデータを変換します:
JAR パッケージの準備: Spark データ変換プログラムを JAR ファイルにパッケージ化し、OSS バケットにアップロードします。
Spark ジョブパラメーターの設定: Spark ジョブを送信するときに、必須パラメーターを設定します。パラメーターの詳細については、「Spark アプリケーション設定パラメーター」をご参照ください。
生データがすでにモデルトレーニングの形式要件を満たしている場合は、このステップをスキップできます。
ステップ 3: モデルの作成とトレーニング
機械学習モデルを作成し、そのパラメーターを定義し、トレーニングデータを指定して、モデルのステータスを確認します。
左側のナビゲーションウィンドウで、 を選択します。
[SQL コンソール] で、モデル文を使用してモデルを作成し、トレーニングします。
-- モデルを作成
-- リソースグループを指定
/*+resource_group=itrain*/
CREATE MODEL bstdemo.bst-- モデル名
OPTIONS (
model_type='bst_classification', -- モデルタイプ
feature_cols=(event_list), -- 特徴量列
target_cols=(target), -- 予測するターゲット列
hyperparameters = ( -- その他のモデルハイパーパラメーター
use_best_ckpt = 'False',
early_stopping_patience='0'
)
)
AS SELECT event_list, target FROM bstdemo.adb; -- モデルデータのソース。このクエリの結果は、指定された変数でモデルをトレーニングするために使用されます。
-- モデルのトレーニングステータスを確認します。ステータスが READY に変わるとトレーニングは完了です。
SHOW MODEL bstdemo.bst;ステップ 4: モデルの評価
作成した機械学習モデルを評価して、そのパフォーマンスを検証します。
-- この文のフォーマットは、モデルを作成するための文と似ています。
/*resource_group=rg1*/
EVALUATE MODEL bstdemo.bst
OPTIONS (
feature_cols=(event_list),
target_cols=(target),
)
AS SELECT event_list, target FROM bstdemo.adb01;ステップ 5: モデルの予測
テーブルから特徴量列を選択し、データをトレーニング済みモデルに渡し、この入力データに基づいて予測結果を取得します。
-- トレーニング済みモデルを予測に使用します。
-- ml_predict 関数の最初のパラメーターはモデル名です。後続のパラメーターはモデルの入力列です。
SELECT ML_PREDICT('bstdemo.bst', event_list) FROM bstdemo.adb02;