PredictFromModel

从指定文本嵌入向量的训练回归模型中返回预测值。

格式 

PredictFromModel ( 模型名称 ; v1 )

参数 

模型名称 - 任何指定已加载到内存中的训练回归模型名称的文本表达式。

v1 - 包含预测输入特征的任何文本表达式、字段或容器字段。可以作为 JSON 数组(例如 [1.2,3.4,5.6])或作为包含嵌入向量的二进制容器数据提供。

返回的数据类型 

数字

原始版本 

22.0

说明 

PredictFromModel 使用配置回归模型脚本步骤训练和加载的回归模型生成数值预测。该函数接受输入特征(可以是嵌入向量),并根据模型训练期间得出的模式返回单个数值预测。

在使用此函数之前,您必须:

  1. 使用配置回归模型脚本步骤训练回归模型。

  2. 确保模型已加载到内存中。模型保持加载状态,直到显式卸载或 FileMaker 会话结束。

  3. 提供与用于创建模型的训练数据具有相同结构和维度的输入特征。

v1 参数接受两种格式的输入功能:

  • 包含 JSON 数值数组的文本,如 [1.2、3.4、5.6、7.8]。这种格式是人类可读的,适用于简单的用例。JSON 数组也可以由 AI 模型生成的嵌入向量组成。

  • 存储为二进制容器数据的嵌入向量。这种格式通常为大规模操作提供更好的性能,并且是使用 AI 模型生成的嵌入向量时的首选格式。

注释 

  • v1 中的输入特征必须具有相同的维度数量,并且顺序与用于创建模型的训练数据相同。

  • 要使用 AI 模型生成用于 v1 的嵌入向量,您可以使用插入嵌入脚本步骤在搜索结果中插入嵌入脚本步骤,或 GetEmbedding函数

  • 使用二进制容器数据嵌入向量通常比 JSON 数组提供更好的性能,特别是对于高维特征向量。

  • 模型名称区分大小写,必须与使用配置回归模型脚本步骤加载的模型名称完全匹配。

  • 模型会保留在内存中,直到明确删除,因此无需重新加载即可高效地进行多次预测。

  • 函数在以下情况下返回“?”:

    • 指定的模型名称不存在或当前未加载到内存中。

    • 与模型的训练数据相比,输入特征的尺寸或格式不正确。

示例 1 

一个使用在配置回归模型示例 1 所训练的房价模型进行简单预测的表达式。输入特征适用于面积、卧室和房龄。

复制
PredictFromModel ( "HousePriceModel" ; "[1600, 3, 20]" )

返回基于1600 平方英尺、3 间卧室和 20 年的预测房价。可能的返回值是 256.96153846153845279(价格单位与训练数据中使用的目标值相同)。

示例 2

利用在配置回归模型示例 2 所训练的模型,根据客户评论的文本内容预测其星级评分。脚本要求用户输入评论 ($reviewInput),配置 AI 账户,然后使用该账户获取 $reviewInput 的文本嵌入向量。接下来,它加载存储在全局字段 Reviews::ReviewModel 中的回归模型,然后使用加载的模型“ReviewModel”和嵌入向量显示预测评级 ($reviewEmbedding)。完成后,脚本会从内存中卸载模型。

复制
显示自定义对话框 ["输入您的评论"; $reviewInput ]

配置 AI 账户 [ 账户名称: "AI_Model_Server" ; 模型提供商: 自定义 ; 端点: "https://myserver.example.com:8080/" ; 验证 SSL 证书 ; API 密钥: Global::API_Key ]

插入嵌入 [ 账户名称: "AI_Model_Server" ; 嵌入模型: "all-MiniLM-L12-v2" ; 输入: $reviewInput ; 目标: $reviewEmbedding ]

配置回归模型 [ 操作: 加载模型 ; 模型名称: "ReviewModel" ; 模型加载自: Reviews::ReviewModel ]

显示自定义对话框 [ "预测的评级"; PredictFromModel ( "ReviewModel" ; $reviewEmbedding ) ]

配置回归模型 [ 操作: 卸载模型 ; 模型名称: "ReviewModel" ]

对于一条正面评价,若训练时使用的目标评分值范围为 1 至 5,则模型可能预测出的评分为 4.8700974666666665414