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

AnalyticDB:SQLを使用した機械学習予測の実装

最終更新日:Dec 24, 2024

このトピックでは、SQLを使用してAnalyticDB for MySQLに動作シーケンストランスフォーマー (BST) モデルをすばやくデプロイし、データ処理とモデルの作成、トレーニング、評価、予測などの機械学習ジョブを実行する方法について説明します。

シナリオ

SQLクエリを使用して、データの前処理、トレーニング、および推論を実装するモデルをすばやくデプロイできます。

AnalyticDB for MySQLはBSTモデルをサポートしています。 BSTモデルは、将来の傾向を予測し、パーソナライズされた推奨を提供するために、ユーザーの行動パターンおよび好みが分析されるシナリオに適しています。 例えば、ゲーム又は電子商取引業界では、ユーザ行動間の長期的な依存性を捕捉して、ユーザ行動パターン及び好みを正確に理解及び予測し、個人化されたサービス及び推奨を提供することができる。

概要BSTモデル

BSTモデルを使用して、挙動シーケンスデータを処理することができる。 モデルは一連の行動イベントIDを受け取り、分類結果として0または1を返します。

例えば、ゲームにおけるプレーヤの相互作用を記録し、一連の行動イベントに変換することができる。

プレイヤーは、ゲーム内で、ログオン、ログオン報酬の受け取り、タスクの受け入れ、戦い、戦い、戦い、タスクの完了、再充電、戦い、ログアウトの一連の行動を持つことができます。

行動のシーケンスは、イベントIDのシーケンス0、1、2、3、3、3、4、5、3、および6に変換することができる。 イベントIDのシーケンスは、文字列形式でBSTモデルに提供されます。 BSTモデルはシーケンスを分析し、特定の動作シーケンスが事前設定されたカテゴリに属することを示す分類結果 (0または1) を返します。

前提条件

  • 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リソースグループに関連付けます。

  1. AnalyticDB for MySQL コンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。 管理するクラスターを確認し、クラスター ID をクリックします。

  2. 左側のナビゲーションウィンドウで、クラスター管理 > リソース管理 を選択します。 [リソース管理] ページで、リソースグループ管理 タブをクリックします。

  3. [リソースグループ] タブの右上隅にある 新規リソースグループ をクリックします。 [リソースグループの作成] パネルで、次の表に示すパラメーターを設定して、AIリソースグループを作成します。

    パラメーター

    説明

    リソースグループ名

    リソースグループの名前。 リソースグループ名は2 ~ 30文字で、英数字、アンダースコア (_) を使用できます。 リソースグループ名は文字で始まる必要があります。

    タスクタイプ

    ジョブタイプ。 ドロップダウンリストから [AI] を選択します。

    重要

    AnalyticDB for MySQLクラスターでAIリソースグループ機能が無効になっている場合、AIオプションは使用できません。 この場合は、テクニカルサポートにお問い合わせください。

    仕様

    GPU、CPU、およびメモリリソースの組み合わせ。 ADB.MLLarge.24ADB.MLLarge.2、またはADB.MLAdvavced.6を選択します。

    最小数

    リソースの最小数。

    最大数

    リソースの最大数。

  4. を決定 をクリックします。 AIリソースグループが作成されます。

  5. 管理する一般的なリソースグループを見つけて、操作 列の 変更 をクリックします。 [リソースグループの変更] パネルで、ML ジョブ配信ルール セクションで一般リソースグループを作成したAIリソースグループに関連付けます。

ステップ2: プロセスデータ

データ処理は、生のビジネスデータをモデルトレーニングに適した形式に変換するプロセスです。 データ処理は、生データのフォーマット、生データの格納場所、およびモデルトレーニングのための入力データフォーマット要件の3つの重要な要因に大きく依存する。

モデルトレーニングのテーブルスキーマ要件

  • 入力フィーチャ列: 列の値は、コンマ (,) で区切られた整数の文字列です。 各エントリは、サンプルの特徴ベクトルを指定する。

  • 結果ラベル列: この列では、0と1などの2つの値のいずれかを使用してカテゴリラベルを示します。

テーブルスキーマの例 :( '1,2,3 ',0) 、('3,2,1',1) 。

データ処理方法

生データの形式がモデルトレーニングに必要な形式と異なる場合は、次の方法を使用してデータを処理します。

  1. Sparkデータ処理プログラムを含むJARパッケージをObject Storage Service (OSS) バケットにアップロードします。

  2. Sparkジョブを送信するときに、ジョブに必要なパラメーターを設定します。 詳細については、「Sparkアプリケーション設定パラメーター」をご参照ください。

生データがモデルトレーニングに必要な形式を満たしている場合は、この手順をスキップできます。

ステップ3: 機械学習モデルの作成とトレーニング

機械学習モデルを作成し、モデルパラメーターを定義し、トレーニングデータを指定してから、モデルの状態を確認します。

  1. 左側のナビゲーションウィンドウで、ジョブを開発する > Sql開発 を選択します。

  2. [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;