Azure Machine Learning モデルを呼び出す

完了

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

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

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

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

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

パラメーター タイプ 既定値 説明
インプット jsonb Azure Machine Learning モデルの操作に必要な input_data オブジェクトを含む JSON オブジェクト。
timeout_ms integer NULL::integer タイムアウト...
throw_on_error boolean true desc...
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 定義を調べることで、予想される入力オブジェクト構造を取得できます。 この定義では、入力と出力を決定するために使用できる 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}');