檢查 Azure Machine Learning 架構

已完成

azure_ml 延伸模組的 azure_ai 架構可讓您的資料庫與自定義建置機器學習模型的功能互動。 藉由利用 azure_ml 架構,您可以順暢地整合 PostgreSQL 資料庫與 Azure Machine Learning 服務。 這項整合可讓您直接從資料庫部署及提供機器學習模型,讓即時推斷更有效率且可調整。

使用 azure_ml 架構的即時推斷

Azure Machine Learning 是一個雲端式平臺,可簡化端對端機器學習工作流程。 在 Azure Machine Learning 中,模型是使用 PyTorch 和 TensorFlow 等熱門架構所開發。 定型之後,這些模型會部署為端點、可要求預測的穩定 URL。

透過提供即時推斷的在線端點,Azure Machine Learning 與 azure_ai 擴充功能整合,可讓您直接從資料庫進行精確的預測。 此架構內的 inference 函式的設計目的是使用 Azure Machine Learning 的定型模型進行預測或產生輸出。 當您部署模型時,推斷函式可讓您叫用模型,並取得新數據的預測。

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

inference() 函式需要下列輸入參數:

參數 類型 違約 描述
input_data jsonb JSON 物件,其中包含與 Azure Machine Learning 模型互動所需的 input_data 物件。
deployment_name text NULL::text (選擇性)要以指定 Azure Machine Learning 端點為目標的模型部署名稱。
timeout_ms integer NULL::integer 設定在推斷作業逾時之前等待的最大時間(以毫秒為單位)。
throw_on_error boolean true 判斷如果推斷作業發生問題,是否擲回錯誤。
max_attempts integer 1 在發生失敗時重試對 Azure OpenAI 服務的呼叫次數。
retry_delay_ms integer 1000 嘗試重試呼叫 Azure OpenAI 服務端點之前所要等候的時間量,以毫秒為單位。

Azure Machine Learning 推斷端點預期 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 Machine Learning 的連線

使用 azure_ml.inference() 函式執行即時推斷之前,您必須使用 Azure Machine Learning 評分端點和金鑰來設定擴充功能。 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}');