本文通过大语言模型案例来说明如何使用Row-oriented AI功能。在该案例中,虽然大模型并不运行于AI节点,但与运行在AI节点上的实现原理和使用方式相同。未运行在AI节点的大模型,后端会自动生成UDF来调用大模型。
对于大语言模型,目前提供了免费的在线推理服务,用户可以直接在PolarDB集群中部署模型和创建调用大语言模型的函数,并通过创建的函数进行在线推理或交互式问答。
本文中的案例以内置的qwen(千问)模型函数为例,来说明如何使用Row-oriented AI功能。
假设数据中有一张电影影评表movie_comment,影评数据如下:
mysql> select * from movie_comment;
+----+--------------+----------------------------------------------------------------------+
| id | name | review |
+----+--------------+----------------------------------------------------------------------+
| 1 | 奥本海默 | 作品本身是挺好的作品,五星点赞! |
| 2 | 奥本海默 | 满分!这次诺兰发挥的确有水平,从叙事手法到剧情推理向大家展示了多么成熟的水准和技术。|
| 3 | 奥本海默 | 爆炸之初是无声的,想毁灭后的后知后觉。太震撼了!! |
| 4 | 奥本海默 | 很无聊,三个多小时的电影,没办法坚持看完 |
| 5 | 一次离别 | 把那么多人物和转折都表现得很赞,真厉害 |
| 6 | 一次离别 | 丝丝入扣,人性的真实最动人,结局很棒 |
| 7 | 一次离别 | 伊朗电影,没想到这么好看 |
| 8 | 流浪地球2 | 国产电影的高峰 |
| 9 | 流浪地球2 | 国产电影也可以这么刺激过瘾 |
| 10 | 流浪地球2 | 剧情有些生硬,开头代入感很一般 |
+----+--------------+----------------------------------------------------------------------+
10 rows in set (0.00 sec)
-
在目标集群上开启PolarDB for AI功能和冷数据归档功能。具体的操作步骤请参见开启PolarDB for AI功能和开启冷数据归档。
-
连接数据库,并部署内置函数模型。
/*polar4ai*/ DEPLOY MODEL builtin_qwen WITH (mode = 'in_db');部署完成后,您可以使用
SHOW MODEL脚本来查看模型状态。部署成功后的状态为serving,表示模型部署完毕。/*polar4ai*/ SHOW MODEL builtin_qwen; -
创建名称为
qwen的大语言模型函数。CREATE FUNCTION qwen RETURNS STRING SONAME "#ailib#_builtin_qwen.so"; -
调用函数
qwen来进行在线推理。-
示例1:调用
qwen函数可以直接通过SQL语句对影评数据进行分类预测,将影评分为"好"、"一般"、"不好"三类。对应的SQL语句如下:SELECT qwen(CONCAT("将如下文本按感情色彩分为以下3类: [好、一般、不好],输出三个类别中的一类类别名称。比如输入[这个电影太棒了],输出 好。再比如输入[这个电影太无聊了],输出 不好。", review)) as 感情色彩分类 FROM movie_comment;返回结果如下:
+----------------+ | 感情色彩分类 | +----------------+ | 好 | | 好 | | 好 | | 不好 | | 好 | | 好 | | 好 | | 好好 | | 好 | | 一般 | +----------------+ 10 rows in set (5.36 sec) -
示例2:调用
qwen函数进行交互式问答,对应的SQL语句如下:SELECT qwen("你好,杭州亚运会什么时候举行");返回结果如下:
| qwen("你好,杭州亚运会什么时候举行") | +---------------------------------------------------+ | 杭州亚运会将于2023年9月23日至10月8日举行。 | +---------------------------------------------------+ 1 row in set (0.94 sec)
-
该文章对您有帮助吗?