Het Azure Machine Learning-schema onderzoeken

Voltooid

Met azure_ml het schema van de azure_ai extensie kan uw database communiceren met de mogelijkheden van aangepaste machine learning-modellen. Door het azure_ml schema te gebruiken, kunt u uw PostgreSQL-database naadloos integreren met Azure Machine Learning-services. Met deze integratie kunt u machine learning-modellen rechtstreeks vanuit uw database implementeren en bedienen, waardoor realtime deductie efficiënt en schaalbaar wordt.

Realtime deductie met het azure_ml schema

Azure Machine Learning is een cloudplatform dat end-to-end machine learning-werkstromen stroomlijnt. Modellen worden getraind met behulp van frameworks zoals PyTorch en TensorFlow en worden geïmplementeerd als online-eindpunten, waarmee een stabiele URL wordt weergegeven voor het aanvragen van voorspellingen.

Met online-eindpunten die realtime deductie bieden, kunt u met Azure Machine Learning, geïntegreerd met de azure_ai extensie, voorspellingen rechtstreeks uit uw database verkrijgen. De functie die wordt gebruikt voor het aanroepen van een geïmplementeerd model is nu:

  • azure_ml.invoke(jsonb, text)

Met deze functie wordt de nettolading van de JSON-invoer naar uw Azure Machine Learning-eindpunt verzonden en wordt de uitvoer van het model geretourneerd als jsonb.

Azure Machine Learning-eindpunten verwachten een JSON-object als invoer. De structuur van dit object is afhankelijk van het model dat u hebt geïmplementeerd. Een regressiemodel dat is getraind om de dagelijkse huurprijzen te voorspellen, kan bijvoorbeeld invoer verwachten in de vorm van:

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

De verwachte invoerstructuur kan worden gecontroleerd door de Swagger-definitie voor uw geïmplementeerde eindpunt te controleren. Hierin worden de ServiceInput en ServiceOutput schema's vermeld die de vereiste shapes voor aanvragen en antwoorden bepalen.

Een model aanroepen

In het volgende voorbeeld ziet u de volledige stroom voor het verzenden van invoer naar een Azure Machine Learning-model en het retourneren van de voorspellingen.

  1. Verzend de invoerlading

    SELECT azure_ml.invoke(
        '{
          "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]
            ]
          }
        }'::jsonb,
        'rental-price-deployment'
    ) AS prediction;
    

    Het resultaat wordt geretourneerd als een jsonb waarde die de uitvoer van het model bevat. U kunt velden uit dit resultaat extraheren met behulp van standaard PostgreSQL JSON-functies.

  2. Werken met de uitvoer

    Als het model bijvoorbeeld een matrix met voorspelde waarden retourneert:

    WITH result AS (
        SELECT azure_ml.invoke(
            '{
              "input_data": {
                "columns": ["neighbourhood","bedrooms","bathrooms"],
                "index": [0],
                "data": [["Queen Anne", 2, 1]]
              }
            }'::jsonb,
            'rental-price-deployment'
        ) AS output
    )
    SELECT jsonb_array_elements(output) AS predicted_value
    FROM result;
    

    U kunt deze oplossing zo nodig opnemen in weergaven, functies en rapportagequery's.

Een verbinding met Azure Machine Learning configureren

Voordat u azure_ml.invoke() voor realtime inference gebruikt, moet u de extensie configureren met uw Azure Machine Learning-scoring-eindpunt en -sleutel. De waarde voor azure_ml.scoring_endpoint is het REST-eindpunt voor uw geïmplementeerde model en azure_ml.endpoint_key is de primaire of secundaire sleutel.

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

Takeaways

Door het azure_ml schema in de azure_ai extensie toe te passen, kunt u uw PostgreSQL-database eenvoudig integreren met Azure Machine Learning-services. Met deze integratie kunt u realtime deductie uitvoeren met behulp van aangepaste machine learning-modellen, zodat u uw toepassingen kunt verbeteren met voorspellende mogelijkheden rechtstreeks vanuit uw databaseomgeving.