Azure Machine Learning モデルを呼び出す

完了

azure_ml スキーマを使用すると、データベースはカスタム構築された機械学習モデルの機能とやりとりできるようになります。 azure_ml スキーマを利用することで、PostgreSQL データベースを Azure Machine Learning services とシームレスに統合できます。 この統合により、データベースから機械学習モデルを直接デプロイして提供できるようになり、リアルタイム推論を効率的かつスケーラブルにします。

azure_ml スキーマを使用したリアルタイム推論

azure_ai 拡張機能を使用する場合、azure_ml スキーマには、データベースからリアルタイム推論を直接実行するための関数が用意されています。 このスキーマ内の inference 関数は、Azure Machine Learning のトレーニング済みモデルを使用して、予測または出力の生成を容易に実行できるように設計されています。 モデルをデプロイすると、推論関数を使用してモデルを呼び出し、新しいデータについて予測を取得できます。

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

inference() 関数では次の入力パラメーターが必要になります。

パラメーター Type Default 説明
input jsonb Azure Machine Learning モデルとやりとりするために必要な input_data オブジェクトを含む JSON オブジェクト。
timeout_ms integer NULL::integer タイムアウト...
throw_on_error boolean true 説明...
deployment_name text NULL::text (省略可能) 指定した Azure Machine Learning エンドポイントを対象とするモデル デプロイの名前。

Azure Machine Learning 推論エンドポイントでは、入力として JavaScript Object Notation (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 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}');