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. À l’aide du schéma azure_ml, vous pouvez intégrer de manière transparente votre base de données PostgreSQL aux services Azure Machine Learning service. Cette intégration vous permet de déployer et de mettre à disposition 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 évolutive.

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

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

Dans la mesure où les points de terminaison en ligne fournissent 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 de ce schéma est conçue pour faciliter les prédictions ou la génération de sorties à l’aide d’un modèle formé à partir d’Azure Machine Learning. Quand vous déployez un modèle, la fonction d’inférence vous permet d’appeler ce 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 Par défaut Descriptif
données d'entrée jsonb Objet JSON contenant l’objet input_data nécessaire à l’interaction avec les modèles Azure Machine Learning.
nom_de_déploiement text NULL::text (Facultatif) Nom du déploiement de modèle à cibler au niveau du point de terminaison Azure Machine Learning spécifié.
timeout (délai en 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 nouvelles tentatives d’appel à Azure OpenAI Service en cas d’échec.
retry_delay_ms integer 1000 Durée d’attente, en millisecondes, avant une nouvelle tentative d’appel du point de terminaison de service Azure OpenAI.

Les points de terminaison d’inférence Azure Machine Learning attendent un objet JSON (JavaScript Object Notation) en tant qu’entrée. 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 quotidiens des locations de logements de courte durée dans la région de Seattle, Washington, en fonction d’entrées spécifiques telles que 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]]
  }
}

Vous pouvez récupérer la structure attendue de l’objet d’entré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, qui vous permettent de déterminer vos entrées et vos 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 correspond au 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}');