SELECT语法用于对状态为READY的模型进行模型推理。推理任务共两类:时序类和非时序类,不同任务类型的语法及参数要求不同。

引擎与版本

  • SELECT语法适用于时序引擎和AI引擎。

  • 时序引擎3.4.26及以上版本支持SELECT语法。

  • AI引擎无版本限制。

重要
  • 要求Lindorm SQL为2.6.1及以上版本。如何查看Lindorm SQL的版本,请参见SQL版本说明

  • 如果您需要创建AI推理服务模型(文本、图像、音视频等非结构化数据的AI分析与处理),需开通2.5.1.1及以上版本的宽表引擎。

非时序类任务

非时序类任务包括:文生图、多模态图片生成、基础问答和检索类任务(语义检索和检索问答)。

语法

SELECT function_identifier(model_identifier, field1_identifier, field2_identifier, ..., params) [FROM table_identifier [WHERE clause]]

使用说明

系统函数(function_identifier

取值为ai_inferai_infer为执行非时序类任务时使用的推理函数。

模型名称(model_identifier)

model_identifier为已创建的模型名称,必选参数,类型为VARCHAR。

字段名称(field_identifier)

不同的TASK(任务类型)可指定的字段数量不同,且含义不同。具体说明如下表所示:

任务类型

参数

是否必选

参数类型

说明

文生图

field1_identifier

VARCHAR

表(FROM条件中指定的表)中的字符串列。

多模态图片生成

field1_identifier

VARCHAR

Lindorm S3协议兼容的地址。如何获取,请参见查看宽表引擎连接地址

field2_identifier

VARCHAR

表(FROM条件中指定的表)中的字符串列。

语义检索

field1_identifier

VARCHAR

需要检索的文本常量。

基础问答

field1_identifier

VARCHAR

输入的问题。

检索问答

field1_identifier

VARCHAR

输入的问题。

例如,当任务类型为检索问答时,ai_infer('rqa_model', 'Lindorm是什么')中,field1_identifier为'Lindorm是什么',即输入的问题。

推理调整参数(params)

可选参数。格式为:key1=value1, [key2=value2]。具体说明如下表所示:

任务类型

参数

说明

特征提取

normalize

是否对返回的向量进行归一化处理。取值如下:

  • true:默认值,是。

  • false:否。

文生图

无。

语义检索

score

是否返回语义相似度。取值如下:

  • true:是。

  • false:否。

topK

检索时返回最相似的数据条数。取值范围为[1, 10000],默认值为10。

efSearch

检索时动态列表的长度,取值范围为[1,1000],默认值为100。efSearch的值越大,查询精度越高,同时会消耗更多的性能,降低查询速度。

threshold

检索时返回数据需满足语义相似度的最低阈值,取值范围为[0, 1.0],默认值为0.6。

returnChunk

是否返回文档切片(Chunk)而不是原始语料(仅在模型创建时指定text_splitter参数为on时有效)。取值如下:

  • true:是。

  • false:否。

extendChunk

在返回Chunk时指定进行前后扩展(根据Chunk的顺序)的数量(仅在指定returnChunk参数为true且模型创建时指定text_splitter参数为on时有效)。取值范围为[1,100]。

rrfK

指定混合检索时使用的RRF算法中的常量K(仅在模型创建时混合检索功能打开时生效),取值范围为[1,100]。默认值为60。

verbose

是否返回详细信息。取值如下:

  • true:是。

  • false:否。

基础问答

无。

检索问答

topK

检索时返回最相似的数据条数。取值范围为[1, 10000],默认值为10。

efSearch

检索时动态列表的长度。取值范围为[1,1000],默认值为100。efSearch的值越大,查询精度越高,同时会消耗更多的性能,降低查询速度。

threshold

检索时返回数据需满足语义相似度的最低阈值。取值范围为[0, 1.0],默认值为0.6。

extendChunk

在检索获取Chunk时指定进行前后扩展(根据Chunk顺序)的数量(仅在模型创建时指定text_splitter参数为on时有效)。取值范围为[1,100]。

verbose

是否返回详细信息。取值如下:

  • true:是。

  • false:否。

返回结果集说明

返回值取决于任务类型,即模型创建时设置的TASK(任务类型)参数。

任务类型

返回值类型

返回值说明

特征提取

VARCHAR

返回文本对应的向量。

文生图

VARCHAR

图片在Lindorm S3兼容协议中的地址。

语义检索

VARCHAR

以JSON格式表示的相似文本列表。

基础问答

VARCHAR

问答的答案。

检索问答

VARCHAR

问答的答案。

示例

使用ai_infer函数进行模型推理。

SELECT ai_infer('rqa_model', 'Lindorm是什么');

时序类任务

时序类任务包括:时序预测和时序异常检测。

语法

SELECT function_identifier(field_identifier, model_identifier, params) FROM table_identifier [WHERE clause] SAMPLE BY time_interval

使用说明

系统函数(function_identifier)

取值如下:

返回结果集说明

任务类型

返回值类型

返回值说明

时序预测

DOUBLE

时序预测结果。

时序异常检测

BOOLEAN

时序异常检测结果。具体说明如下:

  • true:表示有异常;

  • false:表示无异常。

示例

SELECT `time`, id_code, forecast(sales, 'tft_model') AS sales_forecast FROM fresh_sales WHERE `time` >= '2022-07-18T00:00:00+08:00' AND id_code = 'bf502edc7025604a51c96d21e09de0e8' sample BY 0;