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

PolarDB:モデルのインポート

最終更新日:Dec 19, 2024

このトピックでは、Row-oriented AIを使用してモデルをインポートする方法について説明します。

ステップ1: PolarDB for AIおよびコールドデータアーカイブ機能の有効化

モデルをインポートする前に、クラスターのPolarDB for AIおよびコールドデータアーカイブ機能を有効にする必要があります。 詳細については、「PolarDB For AI機能の有効化」および「コールドデータアーカイブの有効化」をご参照ください。

説明

インポートするモデルがLLM (large language model) の場合は、手順1で説明した操作を実行した後、手順2をスキップして、手順3、手順4、および手順5で説明した操作を実行できます。

ステップ2: モデルのアップロード

データベースに接続し、次のステートメントを実行して、作成したモデルをクラスター内のAIノードにアップロードします。

/*polar4ai*/ UPLOAD MODEL model_name WITH (model_location = 'https://mybucket.oss-cn-hangzhou.aliyuncs.com/logisitic_regression.tgz');

モデルがアップロードされたら、SHOW modelスクリプトを使用してモデルのステータスを表示できます。 モデルがアップロードされた後、モデルはsaved_oss状態になります。

/*polar4ai*/ SHOW MODEL model_name;

次の表に、上記のステートメントで設定できるパラメーターを示します。

パラメーター

説明

model_name

アップロードする事前作成モデルの名前。 モデル名にはハイフン (-) を含めることはできません。

model_location

モデルのダウンロードに使用されるパブリックURL。

ステップ3: モデルのデプロイ

次のステートメントを実行して、モデルをデプロイします。

/*polar4ai*/ DEPLOY MODEL model_name WITH (mode = 'in_db');

ステートメントの実行後、SHOW MODELスクリプトを使用してモデルのステータスを表示できます。 モデルステータスが提供中の場合、モデルはデプロイされています。

/*polar4ai*/ SHOW MODEL model_name;
説明
  • model_nameパラメーターの値は、手順2で説明したモデル名と一致している必要があります。

  • モデルのデプロイに使用されるステートメントのmodeパラメーターは、in_dbに設定する必要があります。

  • モデルのデプロイには時間がかかる場合があります。 後続の操作を実行する前に、モデルのステータスがservingに変わるまで待つ必要があります。

ステップ4: 関数の作成

重要

関数を作成するには、特権アカウントを使用するか、mysql.funcシステムテーブルに対する標準アカウント権限を付与する必要があります。 MySQLクライアントで次のステートメントを実行するには、特権アカウントを使用してシステムテーブルの標準アカウント権限を付与します。

-- root login:
mysql> grant insert on mysql.* to 'normal'@'localhost';
Query OK, 0 rows affected (0.01 sec)

mysql> grant delete on mysql.* to 'normal'@'localhost';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.04 sec)

mysql> select * from mysql.func;
Empty set (0.00 sec)

-- normal login:
mysql> select myfunc_int(1);
ERROR 1046 (3D000): No database selected
mysql> select * from mysql.func;
ERROR 1142 (42000): SELECT command denied to user 'normal'@'localhost' for table 'func'
mysql> create function myfunc_int returns int soname 'udf_example.so';
Query OK, 0 rows affected (0.01 sec)
mysql> select myfunc_int(1);
+---------------+
| myfunc_int(1) |
+---------------+
| 1             |
+---------------+
1 row in set (0.00 sec)
mysql> drop function myfunc_int;
Query OK, 0 rows affected (0.00 sec)

手順3で生成されたユーザー定義関数 (.soファイル) を使用して関数を作成できます。

CREATE FUNCTION function_name RETURNS return_value SONAME "soname";

次の表に、上記のステートメントで設定できるパラメーターを示します。

パラメーター

説明

function_name

関数名。

説明

関数名は、手順2で指定したモデル名と一致している必要があります。

return_value

戻り値の型。 REAL、STRING、INTEGERタイプがサポートされています。

説明

返される値の型は、モデルの実際の入力型と一致している必要があります。 そうでない場合、出力は期待される結果と一致しない場合があります。

soname

の名前。The name of the. そうファイル。 ファイルの名前は次の形式です。

# ailib#_ModelName.so

関数の作成後、次のステートメントを実行してシステムテーブルを照会し、関数が作成されているかどうかを確認できます。

SELECT * FROM mysql.func;

ステップ5: 関数を呼び出してモデル推論を実行

次のステートメントを実行して、モデル推論の関数を呼び出すことができます。

SELECT function_name(feature1, feature2) from predict_table;
SELECT function_name("content");

次の表に、上記のステートメントで設定できるパラメーターを示します。

パラメーター

説明

function_name

関数名。

feature1

モデル推論に使用される列の名前。

feature2

モデル推論に使用される列の名前。

predict_table

モデル推論に使用されるテーブルの名前。

content

モデル推論の入力。

(オプション) ステップ6: 関数とモデルの削除

関数とモデルが不要になった場合は、関数を削除してから、AIノードで作成されたモデルを削除する必要があります。 関数とモデルを削除するには、次のスクリプトを使用します。

  • 関数を削除する

    DROP FUNCTION function_name;

    スクリプトを実行するときに、function_nameパラメーターを削除する関数の名前に置き換えます。

  • モデルの削除

    /*polar4ai*/ DROP MODEL model_name;

    スクリプトを実行するときに、model_nameパラメーターを削除するモデルの名前に置き換えます。