导入模型使用说明

本文介绍了使用Row-oriented AI导入模型的操作步骤。

步骤1:开启PolarDB for AI功能和冷数据归档功能

您需要在目标集群上开启PolarDB for AI功能和冷数据归档功能,具体的操作步骤请参见开启PolarDB for AI功能开启冷数据归档

说明

对于大语言模型,执行完步骤1之后,您可以跳过步骤2直接执行步骤3、步骤4和步骤5

步骤2:上传模型

连接数据库,并使用以下SQL语句将训练好的模型上传至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:部署模型

使用以下SQL语句来部署模型。

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

部署完成后,您可以使用SHOW MODEL脚本来查看模型状态。部署成功后的状态为serving,表示模型部署完毕。

/*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中生成的UDF(.so文件)来创建函数。

CREATE FUNCTION function_name RETURNS return_value SONAME "soname";

参数说明如下:

参数名称

参数说明

function_name

函数名称。

说明

函数名称需要与步骤2中的模型名称保持一致。

return_value

返回值类型。目前支持REAL、STRING和INTEGER三种返回值类型。

说明

设置返回值类型时,需和模型实际输出类型保持一致,否则输出的结果可能和预期不符。

soname

.so文件。命名规则需要满足以下条件:

#ailib#_模型名称.so

函数创建成功后,您可以通过查询系统表来确认函数是否创建成功。

SELECT * FROM mysql.func;

步骤5:调用函数进行模型推理

您可以使用以下SQL语句来调用函数进行模型推理。

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替换为您需要删除的模型名称。