Integratie van Machine Learning Studio (klassiek) in Stream Analytics
Belangrijk
Ondersteuning voor Azure Machine Learning Studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden op die datum over te stappen naar Azure Machine Learning .
Vanaf 1 december 2021 kunt u geen nieuwe Machine Learning Studio-resources (klassiek) maken (werkruimte- en webserviceplan). Tot en met 31 augustus 2024 kunt u de bestaande Experimenten en webservices van Machine Learning Studio (klassiek) blijven gebruiken. Zie voor meer informatie:
- Migreren naar Azure Machine Learning vanuit Machine Learning Studio (klassiek)
- Wat is Azure Machine Learning?
Machine Learning Studio -documentatie (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet bijgewerkt.
Azure Stream Analytics biedt ondersteuning voor door de gebruiker gedefinieerde functies (UDF's) die worden aangeroepen voor Azure Machine Learning Studio-eindpunten (klassiek). De Stream Analytics REST API-bibliotheek beschrijft REST API-ondersteuning voor deze functie.
Dit artikel bevat aanvullende informatie die u nodig hebt voor een succesvolle implementatie van deze mogelijkheid in Stream Analytics. Er is ook een zelfstudie beschikbaar.
Overzicht: Terminologie van Machine Learning Studio (klassiek)
Machine Learning Studio (klassiek) biedt een hulpprogramma voor samenwerking, slepen en neerzetten waarmee u predictive analytics-oplossingen voor uw gegevens kunt bouwen, testen en implementeren. U kunt Machine Learning Studio (klassiek) gebruiken om te communiceren met deze machine learning-resources:
- Werkruimte: Een container met alle andere machine learning-resources samen voor beheer en beheer.
- Experiment: Een test die gegevenswetenschappers maken om gegevenssets te gebruiken en een machine learning-model te trainen.
- Eindpunt: Een object dat u gebruikt om functies als invoer te gebruiken, een opgegeven machine learning-model toe te passen en een gescoorde uitvoer te retourneren.
- Scorewebservice: een verzameling eindpunten.
Elk eindpunt heeft API's voor batchuitvoering en synchrone uitvoering. Stream Analytics maakt gebruik van synchrone uitvoering. De specifieke service wordt een aanvraag-/antwoordservice genoemd in Machine Learning Studio (klassiek).
Machine Learning Studio -resources (klassiek) die nodig zijn voor Stream Analytics-taken
Voor de verwerking van Stream Analytics-taken zijn een aanvraag-/antwoordeindpunt, een API-sleutel en een Swagger-definitie allemaal nodig voor een geslaagde uitvoering. Stream Analytics heeft een extra eindpunt waarmee de URL voor een Swagger-eindpunt wordt samengesteld, de interface wordt opgezoekt en een standaard-UDF-definitie wordt geretourneerd aan de gebruiker.
Een Stream Analytics- en Machine Learning Studio -UDF (klassiek) configureren via REST API
Met behulp van REST API's kunt u uw taak configureren om Machine Learning Studio-functies (klassiek) aan te roepen:
- Een Stream Analytics-taak maken.
- Definieer een invoer.
- Definieer een uitvoer.
- Maak een UDF.
- Schrijf een Stream Analytics-transformatie die de UDF aanroept.
- Start de taak.
Een UDF maken met basiseigenschappen
Als voorbeeld maakt de volgende voorbeeldcode een scalaire UDF met de naam newudf die is gekoppeld aan een Machine Learning Studio-eindpunt (klassiek). U vindt de endpoint
waarde (service-URI) op de API-helppagina voor de gekozen service. U vindt de apiKey
waarde op de hoofdpagina van de service.
PUT : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>
Voorbeeld van aanvraagtekst:
{
"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"
}
}
}
}
}
Het RetrieveDefaultDefinition-eindpunt aanroepen voor de standaard-UDF
Nadat u de skelet-UDF hebt gemaakt, hebt u de volledige definitie van de UDF nodig. Met RetrieveDefaultDefinition
het eindpunt krijgt u de standaarddefinitie voor een scalaire functie die is gebonden aan een Machine Learning Studio-eindpunt (klassiek).
Voor de volgende nettolading moet u de standaard UDF-definitie ophalen voor een scalaire functie die is gebonden aan een Studio-eindpunt (klassiek). Het werkelijke eindpunt wordt niet opgegeven, omdat de PUT
aanvraag deze al heeft opgegeven.
Stream Analytics roept het eindpunt aan vanuit de aanvraag als de aanvraag expliciet een eindpunt heeft opgegeven. Anders gebruikt Stream Analytics het eindpunt waarnaar oorspronkelijk is verwezen. Hier gebruikt de UDF één tekenreeksparameter (een zin) en retourneert één uitvoer van het type string
dat het Sentiment
label voor die zin aangeeft.
POST : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>/RetrieveDefaultDefinition?api-version=<apiVersion>
Voorbeeld van aanvraagtekst:
{
"bindingType": "Microsoft.MachineLearning/WebService",
"bindingRetrievalProperties": {
"executeEndpoint": null,
"udfType": "Scalar"
}
}
De uitvoer van deze aanvraag ziet er ongeveer als volgt uit:
{
"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
}
}
}
}
}
Patch de UDF met het antwoord
Nu moet u de UDF patchen met het vorige antwoord.
PATCH : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>
Aanvraagtekst (uitvoer van 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
}
}
}
}
}
Een Stream Analytics-transformatie implementeren om de UDF aan te roepen
Voer een query uit op de UDF (hier benoemd scoreTweet
) voor elke invoer gebeurtenis en schrijf een antwoord voor die gebeurtenis naar een uitvoer:
{
"name": "transformation",
"properties": {
"streamingUnits": null,
"query": "select *,scoreTweet(Tweet) TweetSentiment into blobOutput from blobInput"
}
}
Hulp vragen
Probeer de Microsoft Q&A-pagina voor Azure Stream Analytics voor meer hulp.
Volgende stappen
- Inleiding tot Azure Stream Analytics
- Frauduleuze gespreksgegevens analyseren met Stream Analytics en resultaten visualiseren in een Power BI-dashboard
- Een Azure Stream Analytics-taak schalen om de doorvoer te verhogen
- Naslaginformatie over Azure Stream Analytics-querytaal
- Azure Stream Analytics Management REST API