Examiner le schéma Azure Machine Learning

Effectué

Le schéma azure_ml de l’extension azure_ai permet à votre base de données d’interagir avec les fonctionnalités des modèles Machine Learning personnalisés. En utilisant le schéma azure_ml, vous pouvez intégrer en toute transparence votre base de données PostgreSQL aux services Azure Machine Learning. Cette intégration vous permet de déployer et de servir des modèles Machine Learning directement à partir de votre base de données, ce qui rend l’inférence en temps réel efficace et évolutif.

Inférence en temps réel avec le schéma azure_ml

Azure Machine Learning est une plateforme cloud qui simplifie les flux de travail Machine Learning de bout en bout. Dans Azure Machine Learning, les modèles sont développés à l’aide de frameworks populaires comme PyTorch et TensorFlow. Une fois formés, ces modèles sont déployés en tant que points de terminaison, URL stables où les prédictions peuvent être demandées.

Avec les points de terminaison en ligne fournissant une inférence en temps réel, Azure Machine Learning intégré à l’extension azure_ai vous permet d’effectuer des prédictions précises directement à partir de votre base de données. La fonction inference au sein de ce schéma est conçue pour faciliter la création de prédictions ou la génération de sorties à l’aide d’un modèle entraîné à partir d’Azure Machine Learning. Lorsque vous déployez un modèle, la fonction d’inférence vous permet d’appeler le modèle et d’obtenir des prédictions sur de nouvelles données.

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

La fonction inference() attend les paramètres d’entrée suivants :

Paramètre Type Faire défaut Description
input_data jsonb Objet JSON contenant l’objet input_data requis pour interagir avec les modèles Azure Machine Learning.
deployment_name text NULL::text (Facultatif) Nom du déploiement du modèle à cibler sur le point de terminaison Azure Machine Learning spécifié.
timeout_ms integer NULL::integer Définit la durée maximale (en millisecondes) d’attente d’une opération d’inférence avant d’expirer.
throw_on_error boolean true Détermine s’il faut lever une erreur si l’opération d’inférence rencontre un problème.
max_attempts integer 1 Nombre de fois où réessayer l’appel au service Azure OpenAI en cas de défaillance.
retry_delay_ms integer 1000 Durée, en millisecondes, d’attente avant de tenter de réessayer d’appeler le point de terminaison de service Azure OpenAI.

Les points de terminaison d’inférence Azure Machine Learning s’attendent à ce qu’un objet JSON (JavaScript Object Notation) soit entré. Toutefois, la structure de cet objet dépend du modèle sous-jacent. Par exemple, un modèle de régression formé pour prédire les prix de location quotidiens de logements à court terme dans la région de Seattle, Washington, en fonction d’entrées spécifiques comme le quartier, le code postal, le nombre de chambres, le nombre de salles de bains, etc. a la forme suivante :

{
  "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]]
  }
}

La structure d’objet d’entrée attendue peut être récupérée en examinant la définition Swagger associée à votre point de terminaison déployé. Cette définition spécifie les structures ServiceInput et ServiceOutput, que vous pouvez utiliser pour déterminer vos entrées et sorties.

Configurer une connexion à Azure Machine Learning

Avant d’utiliser la fonction azure_ml.inference() pour effectuer une inférence en temps réel, vous devez configurer l’extension avec votre point de terminaison et votre clé de scoring Azure Machine Learning. La valeur de azure_ml.scoring_endpoint est le point de terminaison REST de votre modèle déployé. La valeur de azure_ml.endpoint_key peut être la clé primaire ou secondaire de ce point de terminaison.

SELECT azure_ai.set_setting('azure_ml.scoring_endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_ml.endpoint_key', '{api-key}');