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:
- Migrera till Azure Machine Learning från Machine Learning Studio (klassisk)
- Vad är Azure Machine Learning?
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):
- Skapa ett Stream Analytics-jobb.
- Definiera indata.
- Definiera utdata.
- Skapa en UDF.
- Skriv en Stream Analytics-transformering som anropar UDF.
- 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
- Introduktion till Azure Stream Analytics
- Analysera bedrägliga samtalsdata med Stream Analytics och visualisera resultat på en Power BI-instrumentpanel
- Skala ett Azure Stream Analytics-jobb för att öka dataflödet
- Referens för Frågespråk för Azure Stream Analytics
- Azure Stream Analytics Management REST API