このトピックでは、SQLを使用してAnalyticDB for MySQLに動作シーケンストランスフォーマー (BST) モデルをすばやくデプロイし、データ処理とモデルの作成、トレーニング、評価、予測などの機械学習ジョブを実行する方法について説明します。
シナリオ
SQLクエリを使用して、データの前処理、トレーニング、および推論を実装するモデルをすばやくデプロイできます。
AnalyticDB for MySQLはBSTモデルをサポートしています。 BSTモデルは、将来の傾向を予測し、パーソナライズされた推奨を提供するために、ユーザーの行動パターンおよび好みが分析されるシナリオに適しています。 例えば、ゲーム又は電子商取引業界では、ユーザ行動間の長期的な依存性を捕捉して、ユーザ行動パターン及び好みを正確に理解及び予測し、個人化されたサービス及び推奨を提供することができる。
前提条件
AnalyticDB for MySQL
Data Lakehouse Editionクラスターが作成されます。AnalyticDB for MySQLクラスターのマイナーバージョンは3.2.4.0以降です。
説明AnalyticDB for MySQLのマイナーバージョンを照会するには
Data Lakehouse Editionクラスターで、SELECT adb_version();
文を実行します。 クラスターのマイナーバージョンを更新するには、テクニカルサポートにお問い合わせください。AIリソースグループ機能が有効になっています。 AIリソースグループ機能はパブリックプレビュー中です。 この機能を有効にするには、テクニカルサポートにお問い合わせください。
手順1: AIリソースグループを作成し、一般的なリソースグループをAIリソースグループに関連付ける
SQLを使用して機械学習ジョブを実行する場合は、次の種類のリソースグループが必要です。
AIリソースグループ: 機械学習ジョブに必要なGPUリソースを管理し、モデルのトレーニングと予測で計算集約的な操作をサポートします。
一般リソースグループ: トレーニングデータの生成や予測関数の実行など、通常のSQLクエリを処理します。
SQL文は、最初に実行のために一般的なリソースグループに送信されます。 SQL文を実行するためにAIコンピューティングが必要な場合、一般リソースグループに関連付けられているAIリソースグループに自動的に再送信されます。
次の手順を実行してAIリソースグループを作成し、一般的なリソースグループをAIリソースグループに関連付けます。
AnalyticDB for MySQL コンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。 管理するクラスターを確認し、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、クラスター管理 > リソース管理 を選択します。 [リソース管理] ページで、リソースグループ管理 タブをクリックします。
[リソースグループ] タブの右上隅にある 新規リソースグループ をクリックします。 [リソースグループの作成] パネルで、次の表に示すパラメーターを設定して、AIリソースグループを作成します。
パラメーター
説明
リソースグループ名
リソースグループの名前。 リソースグループ名は2 ~ 30文字で、英数字、アンダースコア (_) を使用できます。 リソースグループ名は文字で始まる必要があります。
タスクタイプ
ジョブタイプ。 ドロップダウンリストから [AI] を選択します。
重要AnalyticDB for MySQLクラスターでAIリソースグループ機能が無効になっている場合、AIオプションは使用できません。 この場合は、テクニカルサポートにお問い合わせください。
仕様
GPU、CPU、およびメモリリソースの組み合わせ。 ADB.MLLarge.24、ADB.MLLarge.2、またはADB.MLAdvavced.6を選択します。
最小数
リソースの最小数。
最大数
リソースの最大数。
を決定 をクリックします。 AIリソースグループが作成されます。
管理する一般的なリソースグループを見つけて、操作 列の 変更 をクリックします。 [リソースグループの変更] パネルで、ML ジョブ配信ルール セクションで一般リソースグループを作成したAIリソースグループに関連付けます。
ステップ2: プロセスデータ
データ処理は、生のビジネスデータをモデルトレーニングに適した形式に変換するプロセスです。 データ処理は、生データのフォーマット、生データの格納場所、およびモデルトレーニングのための入力データフォーマット要件の3つの重要な要因に大きく依存する。
モデルトレーニングのテーブルスキーマ要件
入力フィーチャ列: 列の値は、コンマ (,) で区切られた整数の文字列です。 各エントリは、サンプルの特徴ベクトルを指定する。
結果ラベル列: この列では、0と1などの2つの値のいずれかを使用してカテゴリラベルを示します。
テーブルスキーマの例 :( '1,2,3 ',0) 、('3,2,1',1) 。
データ処理方法
生データの形式がモデルトレーニングに必要な形式と異なる場合は、次の方法を使用してデータを処理します。
Sparkデータ処理プログラムを含むJARパッケージをObject Storage Service (OSS) バケットにアップロードします。
Sparkジョブを送信するときに、ジョブに必要なパラメーターを設定します。 詳細については、「Sparkアプリケーション設定パラメーター」をご参照ください。
生データがモデルトレーニングに必要な形式を満たしている場合は、この手順をスキップできます。
ステップ3: 機械学習モデルの作成とトレーニング
機械学習モデルを作成し、モデルパラメーターを定義し、トレーニングデータを指定してから、モデルの状態を確認します。
左側のナビゲーションウィンドウで、
を選択します。[SQLConsole] タブで、次のSQL文を入力してモデルを作成およびトレーニングします。
-- Create a model.
-- Specify a resource group.
/*+resource_group=itrain*/
CREATE MODEL bstdemo.bst-- The name of the model.
OPTIONS (
model_type='bst_classification', -- The type of the model.
feature_cols=(event_list), -- The input feature columns.
target_cols=(target), -- The result label columns.
hyperparameters = ( -- Other model hyperparameters.
use_best_ckpt = 'False',
early_stopping_patience='0'
)
)
AS SELECT event_list, target FROM bstdemo.adb; -- The data source of the model. The results of the query are provided to the preceding variables for training.
-- Query the training status of the model. After the training is complete, the status changes to READY.
SHOW MODEL bstdemo.bst;
ステップ4: モデルの評価
作成した機械学習モデルを評価して、モデルの正確性を検証します。
-- Similar to the syntax for creating a model.
/*resource_group=rg1*/
EVALUATE MODEL bstdemo.bst
OPTIONS (
feature_cols=(event_list),
target_cols=(target),
)
AS SELECT event_list, target FROM bstdemo.adb01;
ステップ5: モデル予測
テーブルからフィーチャ列を選択し、列の値をトレーニング済みモデルに渡します。 データの予測結果を照会します。
-- Use the trained model to perform prediction.
-- In the ML_PREDICT() function, the first parameter specifies the name of the model, and the second parameter specifies the input feature columns.
SELECT ML_PREDICT('bstdemo.bst', event_list) FROM bstdemo.adb02;