检查 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}');