检查 Azure 机器学习架构
azure_ai
扩展的 azure_ml
架构允许数据库与自定义生成的机器学习模型的功能进行交互。 利用 azure_ml
架构,可以将 PostgreSQL 数据库与 Azure 机器学习服务无缝集成。 通过此集成,可以直接从数据库部署和提供机器学习模型,使实时推理变得高效且可缩放。
使用 azure_ml
架构进行实时推理
Azure 机器学习是基于云的平台,可简化端到端机器学习工作流。 在 Azure 机器学习内,使用 PyTorch 和 TensorFlow 等常见框架开发模型。 训练后,这些模型将部署为终结点、可请求预测的稳定 URL。
借助提供实时推理的在线终结点,Azure 机器学习与 azure_ai
扩展集成,使你能够直接从数据库进行准确的预测。 此架构中的 inference
函数旨在使用通过 Azure 机器学习训练而来的模型进行预测或生成输出。 部署模型时,推理函数允许你调用模型并获取对新数据的预测。
azure_ml.inference(jsonb,integer,boolean,text)
inference()
函数需要以下输入参数:
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
input_data | jsonb |
包含与 Azure 机器学习模型交互所需的 input_data 对象的 JSON 对象。 |
|
deployment_name | text |
NULL::text |
(可选)针对指定的 Azure 机器学习终结点的模型部署的名称。 |
timeout_ms | integer |
NULL::integer |
超时... |
throw_on_error | boolean |
true |
描述... |
max_attempts | integer |
1 |
在发生故障时重新调用 Azure OpenAI 服务的尝试次数。 |
retry_delay_ms | integer |
1000 |
尝试重新调用 Azure OpenAI 服务终结点之前等待的时间(以毫秒为单位)。 |
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 定义来检索预期的输入对象结构。 此定义指定 ServiceInput
和 ServiceOutput
结构,可使用这两个结构确定输入和输出。
配置与 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}');