本文介绍了PolarDB for AI的子功能Row-oriented AI的概念、适用场景、使用限制以及使用方法等内容。
简介
Row-oriented AI,即AI模型推理以及通过Loadable Function作为Hook来调用LLM(大语言模型)的能力,是PolarDB for AI的一个重要子功能。该功能支持用户将创建模型好的AI模型注册到PolarDB内部进行推理,并提供Native SQL能力给用户,对于内置模型性能有明显优势,同时支持使用Hook函数来连接大语言模型。
用户可以像使用Database内置函数一样简单操作AI模型和大语言模型。该功能的初衷是将AI能力集成到PolarDB内部,并给用户提供Native SQL能力来操作AI模型,以最小化数据移动来保证数据的一致性并提升推理性能。
Row-oriented AI功能支持使用导入模型和内置平台模型两种模型,这两种模型的注册方式不同,但使用方式完全一致,都是通过原生SQL进行后续查询。
导入模型
导入模型,即用户创建模型好的模型或远端大模型。具体包括以下3类:
用户自定义模型:用户将自定义创建好的模型通过SQL语句注册到PolarDB中,再创建函数进行推理。Row-oriented AI将在AI节点上部署推理服务,然后通过自动生成的UDF(
.so
文件)来调用AI节点的推理服务进行计算,数据无需导出数据库。第三方预创建模型:第三方库模型(Pre-Trained Models),使用方法和用户自定义模型一致,需要先将模型注册到PolarDB后,再创建函数进行推理。
大语言模型:由用户提供远端大模型相关元信息(如推理服务地址、API_KEY等),Row-oriented AI会自动生成对应的UDF(
.so
文件),并作为Hook来调用模型推理服务。
内置平台模型
内置平台模型,即PolarDB for AI提供的自研平台类模型,会集成到PolarDB中发布,如通义千问、诊断咨询机器人、聊天机器人、菜鸟决策树模型和异常检测模型等。用户只需要在数据库中部署模型和创建函数即可进行模型推理。目前提供的可使用的内置函数和对应的
.so
文件如下:函数名称
模型名称
.so文件
返回类型
描述
polarchat
builtin_polarchat
#ailib#_builtin_polarchat.so
STRING
基于大语言模型的交互式问答函数。
polarzixun
builtin_polarzixun
#ailib#_builtin_polarzixun.so
STRING
基于Retrieval+大语言模型的咨询函数。
qwen
builtin_qwen
#ailib#_builtin_qwen.so
STRING
基于通义千问的大模型函数。
适用场景
数据库表中每一行数据对应一个模型推理输出结果的场景。
AI模型依赖于数据更新,无法频繁将数据导出数据库进行推理的场景。
AI模型推理使用的SQL语句能够结合复杂查询功能(如Group By、Subquery、Join等)。
利用数据库中的表数据进行大语言模型推理的场景。
导入模型目前仅支持TensorFlow模型(输入为一维数组或句子),支持的输出类型为INTEGER、REAL或STRING。
使用限制
仅支持在PolarDB MySQL版8.0.2版本的企业版集群中使用该功能。
费用
使用说明
具体的使用详情请参见导入模型使用说明和内置平台模型使用说明。