Udostępnij za pośrednictwem


Integracja usługi Machine Learning Studio (wersja klasyczna) w usłudze Stream Analytics

Ważne

Obsługa usługi Azure Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning do tej daty.

Od 1 grudnia 2021 r. nie można utworzyć nowych zasobów usługi Machine Learning Studio (klasycznego) (obszaru roboczego i planu usługi internetowej). Do 31 sierpnia 2024 r. możesz nadal korzystać z istniejących eksperymentów i usług internetowych usługi Machine Learning Studio (klasycznych). Aby uzyskać więcej informacji, zobacz:

Dokumentacja usługi Machine Learning Studio (klasyczna) jest wycofywana i może nie zostać zaktualizowana w przyszłości.

Usługa Azure Stream Analytics obsługuje funkcje zdefiniowane przez użytkownika (UDF), które są wywoływane do punktów końcowych usługi Azure Machine Learning Studio (wersja klasyczna). Biblioteka interfejsu API REST usługi Stream Analytics opisuje obsługę interfejsu API REST dla tej funkcji.

Ten artykuł zawiera dodatkowe informacje potrzebne do pomyślnej implementacji tej funkcji w usłudze Stream Analytics. Dostępny jest również samouczek .

Omówienie: terminologia usługi Machine Learning Studio (klasyczna)

Usługa Machine Learning Studio (klasyczna) udostępnia narzędzie do współpracy, przeciągania i upuszczania, którego można użyć do tworzenia, testowania i wdrażania rozwiązań analizy predykcyjnej na danych. Możesz użyć usługi Machine Learning Studio (klasycznej) do interakcji z tymi zasobami uczenia maszynowego:

  • Obszar roboczy: kontener, który przechowuje wszystkie inne zasoby uczenia maszynowego razem na potrzeby zarządzania i kontroli.
  • Eksperyment: test tworzony przez analityków danych w celu korzystania z zestawów danych i trenowania modelu uczenia maszynowego.
  • Punkt końcowy: obiekt używany do stosowania funkcji jako danych wejściowych, stosowania określonego modelu uczenia maszynowego i zwracania wygenerowanych danych wyjściowych.
  • Usługa sieci Web oceniania: kolekcja punktów końcowych.

Każdy punkt końcowy ma interfejsy API do wykonywania wsadowego i wykonywania synchronicznego. Usługa Stream Analytics używa synchronicznego wykonywania. Określona usługa jest nazywana usługą żądania/odpowiedzi w usłudze Machine Learning Studio (wersja klasyczna).

Zasoby usługi Machine Learning Studio (klasyczne) potrzebne do zadań usługi Stream Analytics

Do celów przetwarzania zadań usługi Stream Analytics punkt końcowy żądania/odpowiedzi, klucza interfejsu API i definicji struktury Swagger są niezbędne do pomyślnego wykonania. Usługa Stream Analytics ma dodatkowy punkt końcowy, który konstruuje adres URL punktu końcowego programu Swagger, wyszukuje interfejs i zwraca domyślną definicję funkcji zdefiniowanej przez użytkownika.

Konfigurowanie funkcji zdefiniowanej przez użytkownika usługi Stream Analytics i usługi Machine Learning Studio (klasycznej) za pośrednictwem interfejsu API REST

Za pomocą interfejsów API REST możesz skonfigurować zadanie tak, aby wywoływać funkcje usługi Machine Learning Studio (klasyczne):

  1. Tworzenie zadania usługi Stream Analytics
  2. Zdefiniuj dane wejściowe.
  3. Zdefiniuj dane wyjściowe.
  4. Tworzenie funkcji zdefiniowanej przez użytkownika.
  5. Napisz przekształcenie usługi Stream Analytics, które wywołuje funkcję zdefiniowanej przez użytkownika.
  6. Uruchom zadanie.

Tworzenie funkcji zdefiniowanej przez użytkownika z podstawowymi właściwościami

Na przykład poniższy przykładowy kod tworzy skalarną funkcję zdefiniowaną przez użytkownika o nazwie newudf , która wiąże się z punktem końcowym usługi Machine Learning Studio (wersja klasyczna). Wartość (identyfikator URI usługi) można znaleźć endpoint na stronie pomocy interfejsu API dla wybranej usługi. Wartość można znaleźć apiKey na stronie głównej usługi.

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

Przykładowa treść żądania:

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

Wywoływanie punktu końcowego RetrieveDefaultDefinition dla domyślnej funkcji zdefiniowanej przez użytkownika

Po utworzeniu szkieletu funkcji zdefiniowanej przez użytkownika potrzebna jest pełna definicja funkcji zdefiniowanej przez użytkownika. Punkt RetrieveDefaultDefinition końcowy ułatwia uzyskanie domyślnej definicji funkcji skalarnej powiązanej z punktem końcowym usługi Machine Learning Studio (klasycznym).

Poniższy ładunek wymaga uzyskania domyślnej definicji funkcji zdefiniowanej przez użytkownika dla funkcji skalarnej powiązanej z punktem końcowym programu Studio (klasycznym). Nie określa rzeczywistego punktu końcowego, ponieważ PUT żądanie już go dostarczyło.

Usługa Stream Analytics wywołuje punkt końcowy z żądania, jeśli żądanie jawnie dostarczyło punkt końcowy. W przeciwnym razie usługa Stream Analytics używa punktu końcowego, do którego pierwotnie odwołuje się odwołanie. W tym miejscu funkcja UDF przyjmuje pojedynczy parametr ciągu (zdanie) i zwraca pojedyncze dane wyjściowe typu string , które wskazują etykietę Sentiment dla tego zdania.

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

Przykładowa treść żądania:

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

Dane wyjściowe tego żądania wyglądają podobnie do następującego przykładu:

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

Poprawianie funkcji zdefiniowanej przez użytkownika przy użyciu odpowiedzi

Teraz należy zastosować poprawkę funkcji zdefiniowanej przez użytkownika przy użyciu poprzedniej odpowiedzi.

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

Treść żądania (dane wyjściowe z RetrieveDefaultDefinitionelementu ):

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

Implementowanie przekształcenia usługi Stream Analytics w celu wywołania funkcji zdefiniowanej przez użytkownika

Wykonaj zapytanie dotyczące funkcji zdefiniowanej przez użytkownika (tutaj o nazwie scoreTweet) dla każdego zdarzenia wejściowego i zapisz odpowiedź dla tego zdarzenia do danych wyjściowych:

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

Uzyskaj pomoc

Aby uzyskać dalszą pomoc, wypróbuj stronę pytań i pytań firmy Microsoft dla usługi Azure Stream Analytics.

Następne kroki