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_ai 拡張機能と統合された Azure Machine Learning を使用して、データベースから直接正確な予測を行うことができます。 このスキーマ内の inference 関数は、Azure Machine Learning からトレーニング済みのモデルを使用して予測を行ったり、出力を生成したりできるように設計されています。 モデルをデプロイすると、推論関数を使用してモデルを呼び出し、新しいデータの予測を取得できます。

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

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

パラメーター タイプ デフォルト 形容
input_data jsonb Azure Machine Learning モデルの操作に必要な input_data オブジェクトを含む JSON オブジェクト。
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 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}');