本文介绍了使用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
替换为您需要删除的模型名称。