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

PolarDB:AIモデルベースの推論結果をデータベースに書き戻す

最終更新日:Jun 03, 2024

このトピックでは、PolarDB for AIを使用して、AIモデルの推論結果を含む拡張テーブル (AAT) を生成する方法について説明します。 AATは、さまざまなシナリオで使用して、データに関する洞察を得て、情報に基づいた意思決定を行うのに役立ちます。

AATとは何ですか

AATは、AIモデルの推論結果を1つ以上の列に含むテーブルです。 例:

図1の表では、TripID列が主キーであり、Airline、Flight、AirportFrom、AirportTo、DayOfWeek、Time、およびLength列には、各フライトに関する情報が含まれています。 図2の表は、図1の表のAATである。 テーブルの結果列には、AIで生成された結果が含まれます。 AATにはAIモデルのデータと推論結果が含まれています。 PolarDBデータベースに保存されているAATを使用することで、旅行者はフライトが遅れる可能性があるかどうかを確認でき、航空会社はフライトスケジュールを最適化して時間厳守を改善できます。

図 1. オリジナルテーブル

image.png

図2. AAT

image.png

リレーショナルデータベースにAATを導入すると、効率が向上します。 たとえば、AATに保存されているデータを使用して、ユーザーグループの分類、販売金額の予測、AI生成コンテンツの取得を簡単に行うことができます。 AATは通常の外部テーブルと同じ方法で使用されます

AATを使用したAIモデルとデータベースの接続

次の例は、AATの使用方法を示しています。

  1. コールドデータアーカイブ機能を有効にします。 詳細については、「コールドデータアーカイブの有効化」をご参照ください。

    AIモデルがデータベースに頻繁にデータを書き込まないようにするため、PolarDBはAATを外部テーブルとしてObject Storage Service (OSS) に保存します。 したがって、AATを使用する前に、コールドデータアーカイブ機能を有効にする必要があります。

  2. データベースの作成

    polar4aiという名前のデータベースを作成します。 自動的に生成されるAATは、デフォルトでpolar4aiデータベースに格納される。 データベースを作成するときは、utf8mb4文字セットを選択します。 承認されたデータベースアカウントは、PolarDB for AIで使用されるアカウントと同じである必要があります。 また、アカウントに読み取りおよび書き込み権限を付与する必要があります。

  3. 次のSQL文を実行してAIモデルをトレーニングします。

    /* polar4ai * /
      モデルを作成するairlines_gbm_copy1 
      WITH (model_class='lightgbm' 、x_cols ='航空会社、フライト、AirportFrom、AirportTo、DayOfWeek、時間、長さ' 、y_cols='Delay' 、
      model_parameter=(boosting_type='gbdt' 、n_estimators=100、 
                       max_depth=8、num_leaves=256)
      AS (SELECT * FROM airlines_train) 
  4. データベース内のモデルを照会します。

    /* polar4ai * /ショーモデル;

    次の出力が返されます。

    image.png

  5. トレーニング済みモデルを使用してオフライン予測タスクを実行し、AATを生成します。

    /* polar4ai */SELECT TripID、遅延
    から
      予測 (
        モデルairlines_gbm_copy1、
          SELECT * からairlines_train_1000_copy1)
    と
      (
    s_cols='TripID、遅延 '、
        x_cols = '航空会社、フライト、AirportFrom、AirportTo、DayOfWeek、時間、長さ' 、
        y_cols='Delay' 、primary_key='TripID', mode='async', into_type='db')
    へlightgbm_v2_predict82201; 

    上記のステートメントでは、lightgbm_v2_predict82201は自動的に作成されるAATの名前で、TripIDはAATの主キーです。 上記のステートメントの実行が完了すると、タスクIDが返されます。 例: babc6d66-xxxx-yyyy-a4b8-1b1426ce861 4

  6. オフラインタスクのステータスを表示します。

    タスクIDを使用してタスクの状態を確認します。 タスクが完了状態の場合、AIモデルはデータ推論を完了しています。

    /* polar4ai * /ショータスク 'babc6d66-xxxx-yyyy-a4b8-1b1426ce8614 '

    次の出力が返されます。

    image.png

  7. polar4aiデータベースで自動的に生成されるAATのスキーマを照会します。

    SHOW CREATE TABLE polar4ai.lightgbm_v2_predict82201;

    次の出力が返されます。

    テーブル 'lightgbm_v2_predict82201 'を作成 (
     'TripID' bigint(20) NOT NULL、
     'Delay' bigint(20) DEFAULT NULL、
     「結果」テキスト、
     プライマリーキー ('TripID')
    ) ENGINE=CSVデフォルトCHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!99990 800020204 NULL_MARKER='NULL' */ CONNECTION='default_oss_server ' 

    AATにおけるTripIDおよびDelayのタイプおよび長さは、元のテーブルと同じである。 結果列には、AIモデルの推論結果が含まれ、AATに書き込まれます。

  8. AAT内のデータの1,000行を照会します。

    SELECT * FROM polar4ai.lightgbm_v2_predict82201 LIMIT 1000;

    次の出力が返されます。

    image.png

    上記のクエリ結果は、新しく生成された結果列に予測結果とその確率値が含まれることを示しています。

  9. データベース内のテーブルにAATを参加させます。

    lightgbm_v2_predict82201テーブルは、データベース内の他のテーブルと同様に使用できます。 このテーブルは、結合操作でも使用できます。 例:

    SELECT * FROM
    airlines_train_1000_copy1, polar4ai.lightgbm_v2_predict82204
    どこ
    airlines_train_1000_copy1.TripID=polar4ai.lightgbm_v2_predict82204.TripID
    そして
    airlines_train_1000_copy1.Delay=1 

    次の出力が返されます。

    image.png