Azure Machine Learning スキーマについて調べる

完了

azure_ai 拡張機能の azure_ml スキーマを使用すると、データベースでカスタム構築機械学習モデルの機能を操作できます。 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() 関数には、次の入力パラメータが必要です。

パラメーター Type Default 説明
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 desc...
max_attempts integer 1 エラー発生時の Azure OpenAI サービスへの呼び出しの再試行回数。
retry_delay_ms integer 1000 Azure OpenAI サービス エンドポイントの呼び出しを再試行する前の待機時間 (ミリ秒単位)。

Azure Machine Learning 推論エンドポイントには、入力として JavaScript Object Notation (JSON) オブジェクトが必要です。 ただし、このオブジェクトの構造は、基になるモデルに依存します。 たとえば、ワシントン州シアトルの短期賃貸住宅の 1 日あたりの料金を予測するようにトレーニングされた回帰モデルの場合、近隣情報、郵便番号、寝室の数、バスルームの数などの特定の入力は次のような形になります。

{
  "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}');