调用 Azure 机器学习模型

已完成

azure_ml 架构允许数据库与自定义生成的机器学习模型的功能进行交互。 利用 azure_ml 架构,可以将 PostgreSQL 数据库与 Azure 机器学习服务无缝集成。 通过此集成,可以直接从数据库部署和提供机器学习模型,使实时推理变得高效且可缩放。

使用 azure_ml 架构进行实时推理

使用 azure_ai 扩展时,azure_ml 架构提供了一个函数,用于直接从数据库执行实时推理。 此架构中的 inference 函数旨在使用通过 Azure 机器学习训练而来的模型进行预测或生成输出。 部署模型时,推理函数允许你调用模型并获取对新数据的预测。

azure_ml.inference(jsonb,integer,boolean,text)

inference() 函数需要以下输入参数:

参数 类型 默认 说明
input jsonb 包含与 Azure 机器学习模型交互所需的 input_data 对象的 JSON 对象。
timeout_ms integer NULL::integer 超时...
throw_on_error boolean true 描述...
deployment_name text NULL::text (可选)针对指定的 Azure 机器学习终结点的模型部署的名称。

Azure 机器学习推理终结点需要 JavaScript 对象表示法 (JSON) 对象作为输入。 但是,此对象的结构取决于基础模型。 例如,在给定邻近区域、邮政编码、卧室数、浴室数等特定输入的情况下,经过训练的用于预测西雅图地区短租房的每日租金价格的回归模型如下所示:

{
  "input_data": {
    "columns": [
      "host_is_superhost",
      "host_has_profile_pic",
      "host_identity_verified",
      "neighbourhood_group_cleansed",
      "zipcode",
      "property_type",
      "room_type",
      "accommodates",
      "bathrooms",
      "bedrooms",
      "beds"
    ],
    "index": [0],
    "data": [["False", "False", "False", "Central Area", "98122", "House", "Entire home/apt", 4, 1.5, 3, 3]]
  }
}

可以通过检查与已部署终结点关联的 Swagger 定义来检索预期的输入对象结构。 此定义指定 ServiceInputServiceOutput 结构,可使用这两个结构确定输入和输出。

配置与 Azure 机器学习的连接

在使用 azure_ml.inference() 函数执行实时推理之前,必须为扩展配置 Azure 机器学习评分终结点和密钥。 azure_ml.scoring_endpoint 的值是已部署模型的 REST 终结点。 azure_ml.endpoint_key 的值可以是此终结点的主密钥或辅助密钥。

SELECT azure_ai.set_setting('azure_ml.scoring_endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_ml.endpoint_key','{api-key}');