大语言模型使用案例

更新时间:
复制 MD 格式

本文通过大语言模型案例来说明如何使用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)
  1. 在目标集群上开启PolarDB for AI功能和冷数据归档功能。具体的操作步骤请参见开启PolarDB for AI功能开启冷数据归档

  2. 连接数据库,并部署内置函数模型。

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

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

    /*polar4ai*/ SHOW MODEL builtin_qwen;
  3. 创建名称为qwen的大语言模型函数。

    CREATE FUNCTION qwen RETURNS STRING SONAME "#ailib#_builtin_qwen.so";
  4. 调用函数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("你好,杭州亚运会什么时候举行")                |
      +---------------------------------------------------+
      | 杭州亚运会将于2023923日至108日举行。          |
      +---------------------------------------------------+
      1 row in set (0.94 sec)