Share via


Machine Learning Studio-integrering (klassisk) i Stream Analytics

Viktigt!

Stödet för Azure Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du övergår till Azure Machine Learning vid det datumet.

Från och med den 1 december 2021 kan du inte skapa nya Machine Learning Studio-resurser (klassiska) (arbetsyta och webbtjänstplan). Till och med den 31 augusti 2024 kan du fortsätta att använda befintliga Machine Learning Studio-experiment (klassiska) och webbtjänster. Mer information finns i:

Dokumentationen för Machine Learning Studio (klassisk) dras tillbaka och kanske inte uppdateras i framtiden.

Azure Stream Analytics stöder användardefinierade funktioner (UDF:er) som anropar Azure Machine Learning Studio-slutpunkter (klassiska). Stream Analytics REST API-biblioteket beskriver REST API-stöd för den här funktionen.

Den här artikeln innehåller kompletterande information som du behöver för en lyckad implementering av den här funktionen i Stream Analytics. En självstudiekurs finns också.

Översikt: Terminologi för Machine Learning Studio (klassisk)

Machine Learning Studio (klassisk) är ett samarbetsverktyg för dra och släpp som du kan använda för att skapa, testa och distribuera förutsägelseanalyslösningar på dina data. Du kan använda Machine Learning Studio (klassisk) för att interagera med dessa maskininlärningsresurser:

  • Arbetsyta: En container som innehåller alla andra maskininlärningsresurser tillsammans för hantering och kontroll.
  • Experiment: Ett test som dataexperter skapar för att använda datamängder och träna en maskininlärningsmodell.
  • Slutpunkt: Ett objekt som du använder för att ta funktioner som indata, tillämpa en angiven maskininlärningsmodell och returnera poängsatta utdata.
  • Bedömning av webbtjänst: En samling slutpunkter.

Varje slutpunkt har API:er för batchkörning och synkron körning. Stream Analytics använder synkron körning. Den specifika tjänsten kallas för en begäran/svar-tjänst i Machine Learning Studio (klassisk).

Machine Learning Studio-resurser (klassiska) som behövs för Stream Analytics-jobb

För bearbetning av Stream Analytics-jobb krävs en slutpunkt för begäran/svar, en API-nyckel och en Swagger-definition för att slutföra körningen. Stream Analytics har ytterligare en slutpunkt som konstruerar URL:en för en Swagger-slutpunkt, söker upp gränssnittet och returnerar en UDF-standarddefinition till användaren.

Konfigurera en Stream Analytics- och Machine Learning Studio-UDF (klassisk) via REST API

Genom att använda REST-API:er kan du konfigurera jobbet så att det anropar Funktioner i Machine Learning Studio (klassisk):

  1. Skapa ett Stream Analytics-jobb.
  2. Definiera indata.
  3. Definiera utdata.
  4. Skapa en UDF.
  5. Skriv en Stream Analytics-transformering som anropar UDF.
  6. Starta jobbet.

Skapa en UDF med grundläggande egenskaper

Följande exempelkod skapar till exempel en skalär UDF med namnet newudf som binder till en Machine Learning Studio-slutpunkt (klassisk). Du hittar endpoint värdet (tjänst-URI) på API-hjälpsidan för den valda tjänsten. Du hittar apiKey värdet på tjänstens huvudsida.

PUT : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>

Exempel på begärandetext:

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77fb4b46bf2a30c63c078dca/services/b7be5e40fd194258796fb402c1958eaf/execute ",
                        "apiKey": "replacekeyhere"
                    }
                }
            }
        }
    }

Anropa Slutpunkten RetrieveDefaultDefinition för standard-UDF

När du har skapat UDF-skelettet behöver du den fullständiga definitionen av UDF. Slutpunkten RetrieveDefaultDefinition hjälper dig att få standarddefinitionen för en skalär funktion som är bunden till en Machine Learning Studio-slutpunkt (klassisk).

Följande nyttolast kräver att du hämtar UDF-standarddefinitionen för en skalär funktion som är bunden till en Studio-slutpunkt (klassisk). Den anger inte den faktiska slutpunkten eftersom begäran PUT redan har angett den.

Stream Analytics anropar slutpunkten från begäran om begäran uttryckligen angav en slutpunkt. Annars använder Stream Analytics slutpunkten som ursprungligen refererades till. Här tar UDF en enskild strängparameter (en mening) och returnerar ett enda utdata av typen string som anger etiketten för den Sentiment meningen.

POST : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>/RetrieveDefaultDefinition?api-version=<apiVersion>

Exempel på begärandetext:

    {
        "bindingType": "Microsoft.MachineLearning/WebService",
        "bindingRetrievalProperties": {
            "executeEndpoint": null,
            "udfType": "Scalar"
        }
    }

Utdata från den här begäran ser ut ungefär som i följande exempel:

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "inputs": [{
                    "dataType": "nvarchar(max)",
                    "isConfigurationParameter": null
                }],
                "output": {
                    "dataType": "nvarchar(max)"
                },
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77ga4a4bbf2a30c63c078dca/services/b7be5e40fd194258896fb602c1858eaf/execute",
                        "apiKey": null,
                        "inputs": {
                            "name": "input1",
                            "columnNames": [{
                                "name": "tweet",
                                "dataType": "string",
                                "mapTo": 0
                            }]
                        },
                        "outputs": [{
                            "name": "Sentiment",
                            "dataType": "string"
                        }],
                        "batchSize": 10
                    }
                }
            }
        }
    }

Korrigera UDF med svaret

Nu måste du korrigera UDF med föregående svar.

PATCH : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>

Begärandetext (utdata från RetrieveDefaultDefinition):

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "inputs": [{
                    "dataType": "nvarchar(max)",
                    "isConfigurationParameter": null
                }],
                "output": {
                    "dataType": "nvarchar(max)"
                },
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77ga4a4bbf2a30c63c078dca/services/b7be5e40fd194258896fb602c1858eaf/execute",
                        "apiKey": null,
                        "inputs": {
                            "name": "input1",
                            "columnNames": [{
                                "name": "tweet",
                                "dataType": "string",
                                "mapTo": 0
                            }]
                        },
                        "outputs": [{
                            "name": "Sentiment",
                            "dataType": "string"
                        }],
                        "batchSize": 10
                    }
                }
            }
        }
    }

Implementera en Stream Analytics-transformering för att anropa UDF

Fråga UDF (här med namnet scoreTweet) för varje indatahändelse och skriv ett svar för händelsen till ett utdata:

    {
        "name": "transformation",
        "properties": {
            "streamingUnits": null,
            "query": "select *,scoreTweet(Tweet) TweetSentiment into blobOutput from blobInput"
        }
    }

Få hjälp

Om du vill ha mer hjälp kan du prova microsofts Q&A-sida för Azure Stream Analytics.

Nästa steg